model-1's People
Forkers
davidsean opensourcescientist timsp abigail-cordiner incusearchca kumarpatel tmopencell ztnel fgrazzmodel-1's Issues
setpoint limits
change gas min=0.1, max=20.,
temp min = 20, max = 45
message from RPi to LCD display
Change O2 settings to 0.1% increments.
Much like temperature, if you hold the button down, it changes in 5 degree increments.
At present, the lowest O2 setting is 0.5%. This needs to be 0. The user should also need to be able to lower in 0.1% increments. (i.e. it's currently impossible to set to 0.3%)
Please change.
PID algorithm for temperature control
may be related to #1 but one may consider using a PID control algorithm to stabilize environmental conditions.
parameter change from RPi
Currently the serial link is in one direction: for monitoring only.
Changing the variables from the RPi would be hugely beneficial, for example #1 could be controlled from the RPi, not to mention the obvious feature of remotely changing the params, or pre-program environmental conditions changes in time (small increase in temperature everyday, of gradual depletion of O2, etc.)
EM stays Disabled() after saving settings in UI
Upon entering Setup-Mode The environmental managers become paused using Disable()
. Upon saving the changes Enable()
is never called.
serial message the same for all UARTs
The serial message just needs to be built once to remove code duplication. The one for the PiLink should be kept and the other discarded.
unnecessary valve actuation
I am counting the number of valve actuations to evaluate their lifetimes. For now just CO2 but O2 will come shortly.
Basically I just count the number of times the valves have toggled over a week:
digitalWrite(pinAssignment_Valve, HIGH);
this->valve_trigger_count++;
Interestingly I hear an audible "click" without seeing an increase in the valve_trigger_count
. Looking at the logs I think it comes from:
// CO2 level above setpoint.
digitalWrite(pinAssignment_Valve, LOW); // just to make sure
...since the temperature is slightly above the setpoint when I hear the "click". I won't dig deeper until the test is finished (7days), but if the digitalWrite(pinAssignment_Valve, LOW)
call indeed energizes the solenoid enough to hear a "click", this may contribute to premature failure.
New board from Bittele Electronics not connecting via Arduino IDE in RaspberryPi
This message is on behalf of Flemming Rasmussen.
@shadjiantoniou connected Flemming with Bittele Electronics Inc to get new boards manufactured.
We received these new boards that are a clone of the old Incuvers model
We've connected this board to RaspeberryPi and attempting to upload Incuvers code on it.
I used these settings to set everything up.
This keeps timing out when I try to upload code
So far we've tried all physical USB ports on the RaspberryPi. Still doesn't work.
Note: We've been able to connect and upload code successfully on another Arduino ATMega2560 board using the same RaspberryPi
So it's likely not the RaspberryPi or the USB cable. (but I'm no expert ¯\(ツ)/¯)
Is there anything special that needs to be done to these new boards when received directly from the manufacturer?
Are there any drivers that need to be installed on RaspberryPi?
Could this be a bootloader issue? if so, how do I go about installing a new one?
@davidsean
Remove initial setup stage
Remove the need to manually identify the sensors
Add support for hardware 1.0.2
The soon to be obtained controller model 1.0.2 will feature different interface pins for each of the temperature sensors, the Heat module should be updated to support this.
testsuite for heating cycles and choosing parameter sets
It would be nice to have an testsuite that sweeps through heating cycles with different parameter sets.
The sweeps could generate temperature versus time plots so that the behaviour of the parameters become more transparent.
It would allow one to
- re-run in a different lab setting
- make an informed decision
- easily re calibrate the units after a design iteration
hold running average for temperature
It seems like the readings of some temperature sensors fluctuate a bit. Three readings in a 1 second window can all vary by 0.1 Deg C. It is possible some manufactures offer a filtered readout while others are raw. For the latter case, a running average on the Arduino-side should be internally performed.
messaging protocol
The error rate (failed checksums) between the PRi and the board is a bit high. Consider using an existing messaging protocol, like CmdMessenger or equivalent.
Help with uploading code using the Arduino IDE
Cc. @timsp , Flemming Rasmussen [email protected]
Update: 24th December
Successfully compiled and uploaded code (without making any changes to master branch) to Model-1
I had to change Board type in Arduino IDE to Arduino/Genuino Mega or Mega 2560
and Processor to ATmega2560 (mega 2560)
Now my question is what is the significance of the below .ino files.
Incuvers_Incubator.ino
IncuversHardwareDefinitionWriter.ino
Could you point me to a piece of documentation that might explain this?
23rd December
I've been following this guide.
https://github.com/Incuvers-Inc/Model-1/wiki/Uploading-code-using-the-Arduino-IDE
Installed all three libraries.
MAX31850 DallasTemp by Adafruit" -> 1.0.0
MAX31850 OneWire by Adafruit" -> 1.0.1
arduino-display-lcdkeypad -> 4.0.2 (removed LcdKeypad.h and LcdKeypad.cpp)
Programmer: AVRISP mkII
Board: Arduino/Genuino UNO
Open Arduino Sketches/Main/Incuvers_Incubator/Incuvers_Incubator.ino in Arduino IDE.
(Side note: There's also Arduino Sketches/Support/IncuversHardwareDefinitionWriter/IncuversHardwareDefinitionWriter.ino)
Not sure which ino file is meant to be compiled as part of the above documentation
Then upon compiling, I get the following error:
In file included from /Users/kumarpatel/Projects/Model-1/Arduino Sketches/Main/Incuvers_Incubator/Incuvers_Incubator.ino:113:0:
sketch/SenseWrap_Serial.h: In member function 'void IncuversSerialSensor::Initialize(int, int, String, String)':
SenseWrap_Serial.h:19:23: error: 'Serial3' was not declared in this scope
this->dC = &Serial3;
^~~~~~~
sketch/SenseWrap_Serial.h:19:23: note: suggested alternative: 'Serial'
this->dC = &Serial3;
^~~~~~~
Serial
SenseWrap_Serial.h:25:23: error: 'Serial2' was not declared in this scope
this->dC = &Serial2;
^~~~~~~
sketch/SenseWrap_Serial.h:25:23: note: suggested alternative: 'Serial'
this->dC = &Serial2;
^~~~~~~
Serial
SenseWrap_Serial.h:31:23: error: 'Serial1' was not declared in this scope
this->dC = &Serial1;
^~~~~~~
sketch/SenseWrap_Serial.h:31:23: note: suggested alternative: 'Serial'
this->dC = &Serial1;
^~~~~~~
Serial
Multiple libraries were found for "LiquidTWI2.h"
Used: /Users/kumarpatel/Documents/Arduino/libraries/arduino-display-lcdkeypad
Multiple libraries were found for "EEPROM.h"
Used: /private/var/folders/df/92xjf87j399f425k10qc_dfxns4bp5/T/AppTranslocation/5C351A8F-4092-4A00-BA3D-0090CDF42CC4/d/Arduino.app/Contents/Java/hardware/arduino/avr/libraries/EEPROM
Multiple libraries were found for "OneWire.h"
Used: /Users/kumarpatel/Documents/Arduino/libraries/MAX31850_OneWire
Multiple libraries were found for "DallasTemperature.h"
Used: /Users/kumarpatel/Documents/Arduino/libraries/MAX31850_DallasTemp
Multiple libraries were found for "Wire.h"
Used: /private/var/folders/df/92xjf87j399f425k10qc_dfxns4bp5/T/AppTranslocation/5C351A8F-4092-4A00-BA3D-0090CDF42CC4/d/Arduino.app/Contents/Java/hardware/arduino/avr/libraries/Wire
exit status 1
'Serial3' was not declared in this scope
Move defined values to a common header file
In order to more easily have the rPi do the same sanity checks on values as the Arduino does, we will move all compile-time definition of minimum, maximum, setpoints, etc to a common header file in the Arduino code such that the rPi python code can parse this data and implement all the same limits.
Add hardware enumeration to HardwareDefinitionWriter
When writing the hardware definitions, collect and provide via serial link as many identifiers (firmware, serial, identifier, batch, etc) as possible for the hardware installed in the incubator.
shutdown after 120 minutes on 1.11
A heater alarm initiates shutdown after 120 minutes.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.