Releases: cbosoft/syringepump
Releases · cbosoft/syringepump
Alpha v0.8
Changes
- Faster Arduino communication
- PID in passive control mode
- Composition-adaptive controller tuning
TODO
- Tune stress controller (maybe I'll get around to this someday)
Alpha v 0.7
Changes
- Python module!
- Logging optical encoder data!
- Bug fixes! (log control settings properly, log units)
- Passive "control"! (Measure controlled value for a time, then just leave it to vary)
TODO
- Tune stress controller (still)
Alpha v0.6
Ch-ch-ch-changes
- Separated out setter and controller: setpoint for control is set by a constant or time varying function.
- PID controller tuning is hidden in a dialog to de-clutter GUI
- Added log output options: user can decide what information (final values, or raw intermediate values) they want in the output file.
- Reworked how GUI elements are interfaced from the code (more modular, fewer references are held).
TODO
- Tune (stress) controller
- Improve speed/accuracy of controller on Arduino
- Model process to better tune controller
Alpha Release 4
New features:
- stress control
- puts header information within the csv, instead of in the file name (cleaner).
TODO
- Tune stress control
Alpha release 3
Fixed:
- Progress bar wobbles less. Noise in linear pot reading made the progress "wobbly". It no longer updates to a smaller value, so there is no more wobble.
- Errors now actually show up on errno 11. Errors are shown and if errno is set, the associated description is shown. Errrno 11 (resource temporarily unavailable) keeps popping up for a reason I haven't figured out yet, so I wanted to hide the extended description on errno 11, however I ended up hiding the whole error message. Oops. Fixed now though.
- Added setting "stop buffer length". The syringe takes up some room at the end of the pump, so the pump cannot push it fully to the end. The "stop buffer" setting is a distance from the end at which the pump considers itself "done".
- Added setting "inner diameter". Previously the inner diameter of the syringe was hardcoded; now it is a user definable setting.
Alpha release 2
Changes:
- fixed bug where control parameters were not correctly passed to arduino
- fixed some of the occasional crashing
- calibrated sensors and changed units in control
- speed (mm/s) -> flowrate (ml/s)
- load (unitless) -> force (N)
- position (unitless) -> position (mm)
- added integral control (PI, one letter to go!)
Alpha release
Alpha release
I think I've got most of the bugs ironed out, but there may be some I haven't yet found.
Things that work
- controls speed of pump (to a set point of mm/s) (proportional only control, for now)
- control can be turned off if a constant is desired
- logs data taken from Arduino to file
- automatically generate log file names, depending on run parameters, user defined tag, and number of files
- progress bar
- cancel and stop safely (cancelled logs are not deleted, they are saved)
- if the program crashes, logs will be similarly safe.
Things that do not work
- crashes on startup occasionally (seg fault) I am finding it difficult to recreate this, and valgrind is happy with everything so I can't figure out what's wrong.
- only P control (not PID)
- log names only reflect PID control scheme, not constant value control (nor is it set up for possible future control schemes).