rims-arduino-library changelog
v3.1.1
changes :
- Rims : increase default ADC filtering value for higly insulated RIMS (noisy)
- RimsTuner : increase max sample per period for slow RIMS (high insulation)
v3.1
changes :
- doc details
- possibility to insert code for a custom temperature probe
- examples change with the new setTempProbe arguments sturcture
v3.0
changes :
- added : RimsTuner, a robust PID auto-tuner for Rims based on Fourier analysis (more info in doc)
- added : RimsTuner basic example
- modified : library used SRAM shrinked by inserting strings letterals in
- Arduino program memory (with F("") macro)
- examples is included in documentation
- massive documentation clean-up and corrections
v2.5
changes :
- mistakes in flash mem doc
- doc additions
- temp probe unconnected boolean attribute removed since useless with NaN
- slower steps in RimsIdent (more precise but bump test is now 90 min)
- added : endSession method (code reuse for other classes)
- debug : stuck PID outputing NaN values
- debug : flow measurement on pump warning in RimsIdent was stuck at 0 L/min
v2.4
changes :
- debug : warning message at compiling undefined behavior on array
- default heater action led is LED_BUILTIN
- RimsIdent code simplifcation
- UIRimsIdent reomved and merge with UIRims
- Countdown is never stopped when SP is NAN
- Manual model identification bump tests enhanced with static gain test and fast bump
- RTD amp Res1 is replaced by 124.5 ohm (249 // 249, standard values)
- MAXTEMPVAR is reduced to 1 deg C (with the new ADC pre-filter)
- setInterruptFlow rename to setFlowSensor with pin number (no more needs to externally enable pull-up on selected pin)
- debug : flow sensor uncommon weird value (0 L/min) caused by non-rentrency function micros (solved using noInterrupt shortly)
- added : hall effect flow sensor basic example
- doc
v2.3
Changes :
- lot of doc correction
- flash mem methods definition seperate cpp file
- data loggers code simplification
- new method to init all Rims attributes and IO
- code clean-up for auto-tuner
- RimsIdent tested bumps are smarter (30%long-55%long-5%avrg-55%short).
v2.2
Changes :
- PID output (ssrControl) is now in duty-cycle (0-100%) instead of 0-SSRWINDOWSIZE which is way more standard. PID coefficients will have "normal size" with this change.
v2.1
changes :
- Support for RTD reading with an instrument amplifier and cubic fitting
- Temperature pre-filtering before PID
- Critical flow simplification
- Unconnected sensors (temperature or unused flow) is now NaN
- Flow measurement is hide from the UI if sensor is not configured
- Debug
v2.0.2
debug :
- verify memConnected before adding brew data
v2.0.1
Debug :
- MEM NOT FOUND print on USB access mode if the flash is not found
Comments :
- pinMode(pinUsedForInterrupt,INPUT_PULLUP) should be called in the setup() function of the main sketch for the interrupt used by the flow sensor (see doc).
v2.0
Added :
- Winbond W25Q80BV SPI Flash memory for brew data. (see docs)
- USB menu to access memory data (by holding KEYSELECT at startup)
v1.7.2
changes :
- ISR Flow Sensor speed improvement (less CPU time spent in the flow calculation)
- Alarm if no voltage on heater (useful for breaker and manual swtich -> see docs)
- Different frequencies for each alarms : (low pitch --- high pitch)
- (noVoltageAlarm --- timerElapsedAlarm --- incorrectFlowAlarm --- disconnectedThermistorAlarm)
- Removed set point filter ("useless" with a good PIDF setting)
v1.6.1
bugfixe :
- Integrator clamping anti-windup is now functional and work pretty well ! Zero temperature overshoot on my RIMS !
v1.6
Added :
- Filter on derivative only
- Integration clamping (better than integration static saturation)
- Lot of bugfixes
v1.5.1
Debug :
- first PID value was invalid
v1.5
Debug :
- debug : PID output saturation moved after filter (it was causing a very slow regulator)
Added :
- set point, timer and mash water values are remembered after entire cycle is restarted
v1.4
Lot of changes :
- Temperature is maintained when time is elapsed (until KEYSELECT is pressed)
- Lot of alarm debug
- Serial monitor warning in identification tool
- arguments in setInterruptFlow to set lower and upper bound of flow rate (because it's not the same on all Rims system : if LWD or ULWD for ex.)
- MAXTEMPVAR = 1 deg Celcius
- Time remaining added to data logging
- Char showing if timer is counting down or not on LCD
v1.2.1
added :
- support for multiple regulator (up to 4) useful for diffrents mash water quantities
v1.1
debug :
- FLOWUPBOUND = 5 L/min
- CRITICALFLOW = 1.0 L/min
- flow sent over usb didn't had limits
v1.0
debug :
- _refreshDisplay() when switch screen
- temp ADC >= 1021 is considered like unconnected thermistor
v0.8.5
bugfixes :
- rimsBasic.ino now compile
- IdentRims flow warning LCD refresh rate = IDENTSAMPLETIME
v0.8.4
bugfixe :
- sometime, PID calculation was skipped
v0.8.3
debug :
- flowWarning LCD refresh rate = PIDSAMPLETIME
v0.8.2
Debug :
- better timing in Rims and RimsIdent : if sample time is a bit longer than it should be, entire time line is no longer shifted
v0.8.1
major bugs fixed :
- debug : ssrRefresh each iteration
- debug : set point filter initial condition = operating point
v0.8
Fixed:
- fixed sample time in identification
- identification procedure was too short : now 30 minutes
- LCD refresh time now 1000 mSec (500 mSec was too short for my LCD)
- better timing in Rims to assure constant PID sample time calculation
- RimsIdent uses parent class run() method
Added:
- basic data logging through Serial communication (usb port)
- turn off heater if flow is critically low (less than 0.5 L/min)