Releases: medlor/bleeding-edge-ranciliopid
Releases · medlor/bleeding-edge-ranciliopid
2.7.1 Bleeding Edge Master Release
New release 2.7.1 of rancilio "bleeding-edge"
- adds (optional) automatic cleaning mode
- adds new icon-collection "static"
- ...
Changelog
- 2.7.1:
- Added PR for automatic cleaning mode (Thanks to urbantrout/Harald).
- Adaptions:
- New cleaning icon: "washing hand" by Mat fine from the Noun Project licensed under CC BY 3.0
- New Blynk VPins (read-only/pull) defined: see Blynk-Setup
- New userConfig Settings:
- CLEANING_CYCLES, CLEANING_INTERVAL, CLEANING_PAUSE.
- Set CLEANING_ENABLE_AUTOMATIC=1 to use automatic cleaning program instead of manual modus.
- Adaptions:
- Feature: (Silvia5E): ENABLE_POWER_OFF_COUNTDOWN timer (in minutes) is available via mqtt("powerOffTimer")/blynk(V45).
- Blynk is fully supporting actionController. Therefore any action can be called via blynk. (see Blynk-Setup)
- Added new icon-collection "static" which just shows a non-moving logo.
- Added userConfig DISPLAY_TEXT_STATE which outputs few status information (Please wait, Ready, Turned off, Cleaning, ..) in the display (supported by all icon-collections).
- Text is not displayed when screensaver is running.
- Fix: Waking up after SLEEPING action re-enables cold-start autotuning.
- Fix: Blynk sometimes crashes when controlActions are changed.
- Fix: SLEEPING action will turn off display even if ENABLE_SCREEN_SAVER=0.
- Fix: DISPLAY_TEXT_STATE is not shown during BREWING.
- Update ZACwire-Library to v1.3.1. and 1.3.0 (beta). (Thanks Adrian)
- Added PR for automatic cleaning mode (Thanks to urbantrout/Harald).
2.7.0 Bleeding Edge Master Release
New release 2.7.0 of rancilio "bleeding-edge"
Milestones:
- Full support for esp32
- Full support for new hardware modification "FullControl"
Changelog
- 2.7.0:
- Feature: FULLY SUPPORT ESP32 with CPU pinning for improved performance.
- Unfortuately there is no mqtt-server broker library available for ESP32. (MQTT_ENABLE must not be 2 or disabled on ESP32)
- Display function is pinned to secondary cpu to further improve performance. No more tearing on screen refresh.
- ZACwire-Library upgrade to stable release v1.3.0 which supports ESP32 and pinning to secondary cpu. Thanks Adrian!
- Feature: "FULL CONTROL" hardware modification is fully supported (in addition to the previous "PidOnly" and "standard" modification)!
- FullControl have all(!) functionality directly controlled by the esp (eg. without the need to manually switch any buttons).
- Instead of having the hardware-switches control brew/hotwater/steaming and have the esp just "cut" the wire, the FullControl modification detects button presses directly and translates them to any custom functionality (using ControlActions, MultiToggle and optionally GpioActions). This allows maximum flexibility.
- Feature: The "MultiToggle" feature triggers any ControlAction based on multiple simultaneous hardware-button states (eg. if hotwater+steaming button is pressed then start the action cleaning).
- This allows to use a total of six ControlActions just by using the three rancilio's hardware-switches and reduces the need for external control (mqtt, blynk, resistor-circuit, ..).
- New UserConfig variables: MULTI_TOGGLE_?ACTION and MULTI_TOGGLE?_GPIOS.
- Feature: GpioAction: If actions are activated, specific GPIOs can be triggered also. This can be used eg. to light up LEDs in Rancilio's custom modified hardware-switches.
- userConfig.h: ENABLE_GPIO_ACTION / pinBrewAction / pinHotwaterAction / pinSteamingAction
- CLEANING action will turn on the brew/hotwater/steaming gpios to make this state easily visible even when no display is used.
- During PowerOn GpioActions and HardwareLed are enabled for a couple of seconds.
- Feature: Added new state "SLEEPING", which shutdowns heater and turns display off either after a period on user inactivity (default 120min) or by user request using the new ControlAction "SLEEPING". Any user activity (controlActions, Hardware-Buttons, MQTT Actions, brew Detection,..) will wake up the maschine.
- New userConfig setting: userConfig HEATER_INACTIVITY_TIMER (0 to disable)
- Feature: (!OnlyPid|Full Control) Added a CLEANING mode which sets pre-infusion pause to 0seconds and disables auto-tuning for as long as mode is active. Use "CLEANING" ControlAction or activate steaming to restore normal operation.
- Feature: You can now set INPUT/INPUT_PULLDOWN/INPUT_PULLUP in CONTROLS_CONFIG.
- Feature: (ENABLE_HARDWARE_LED=2) New settings ENABLE_HARDWARE_LED_RGB_ON/ENABLE_HARDWARE_LED_RGB_OFF to set specific colors.
- Breaking changes:
- CONTROLS_CONFIG format changes to support new INPUT/INPUT_PULLDOWN/INPUT_PULLUP settings.
- CHANGE: (DISPLAY=1) HardwareLed is not turned on when screensaver is running and ENABLE_HARDWARE_LED_OFF_WHEN_SCREENSAVER=1 (even if brew_ready state is reached).
- Fix: Setting setPointSteam via mqtt did not work but did overwrite aggoTv instead. You should update to this version when using mqtt.
- Fix: No one-time heater flapping if maschine is waked up from sleep or pidOff.
- Fix: HardwareLed is only turned on, when temperature > steam_ready_temp AND steaming action is active.
- Fix: (DISPLAY=1) HardwareLed is not turned on when screensaver is running (even if brew_ready state is reached).
- Fix: Minor fixes here and there.
- PubSubClient updated to version 2.8.
- Update userConfig.h.SAMPLE (Thanks Helge)
- Fix typos (Thanks urbantrout)
- (ESP32) Added two new circuit-diagrams which show the complete wiring in "full-control" upgrade.
- Added several 3d models to print:
- display-case-with-buttons
- dual-ssr-relay-case
- pcb-case (eg. to be used for esp32 on a pcb)
- New images here and there.
- Quick documentation on how to setup ESP32 can be found in the wiki.
- Thanks to Tobias for his helpful blog posts at https://voir.pt
- Feature: FULLY SUPPORT ESP32 with CPU pinning for improved performance.
2.6.1 Bleeding Edge Master Release
New release 2.6.1 of rancilio "bleeding-edge"
Changelog
- 2.6.1:
- Feature: Hardware-Led in addition to simple LEDs also support WS2812b LED (stripes) (MANY THANKS P1Rebo for the PR)
2.6.0 Bleeding Edge Master Release
New release 2.6.0 of rancilio "bleeding-edge"
Major stuff:
- new actionController functionality to allow "simple" PID to be used for steaming.
- and much more...
Changelog
- 2.6.0:
- Merged PR by finnito which changed/extended: (MANY THANKS FINNITO)
- Added support for ECM espresso maschine including logo.
- Added/Extended support for special functions (steam, hotwater, brew).
- Added custom steam functionality.
- Extended initial support to call special functions based on Pin A0 (analog levels) which can be used by eg. hardware buttons.
- Added new state to state maschine (6=steam).
- Refactored/Extended finnito's code to integrate our new "actionController":
- fully dynamic mapping of any(!) available analog/digital gpio port to custom functions, which are currently:
- BREWING := start brewing
- STEAMING := automatically manages heat up maschine for streaming
- HOTWATER := start pouring hotwater
- HEATER := activate heater (not yet)
- PUMP := activate pump (not yet)
- VALVE := activate Valve (not yet)
- CLEANING := activate cleaning mode (not yet)
- TEMP_INC := increase setPoint (not yet)
- TEMP_DEC := decrease setPoint (not yet)
- while also supporting the switch types: toggles (eg switches) and triggers (eg push buttons)
- added MQTT Support to control actions using topics ../actions/ with supported payloads of 0|1|-1 (off|on|switch)
Example: "custom/Küche.Rancilio2/actions/STEAMING"
- fully dynamic mapping of any(!) available analog/digital gpio port to custom functions, which are currently:
- Feature: Set userConfig.h ROTATE_DISPLAY to rotate display 180 degree.
- Feature: BrewReadyLed (now called HardwareLed) configured with ENABLE_HARDWARE_LED also lights up when temperature>steamTemp or >STEAM_READY_TEMP.
- Feature: OnlyPid=0: Disable pre-infusion and pause by setting userConfig settings to 0.
- Feature: OnlyPid=1: BrewDetection can now also be triggered by hardware using actionControle "BREWING".
- Feature: New userConfig setting SETPOINT_STEAM is also setable via mqtt/blynk.
- Feature: hardwareLed will glow for a few seconds when the maschine starts up. This helps determine a not starting node.
- Feature: Additional safe-guard to temporary disable heater if temperature is 10 degree above active setPoint.
- Important FIX: mqtt interface for STEADYPOWER_OFFSET_TIME working again. This setting is currenly wrongly set and need to be re-set for auto-tuning to work!
- Fix: EMERGENCY_TEMP setting disables pid when temperature is > and re-enables when < setPoint. Please check your setting to be reasonable high (eg. Rancilio 135 degree). Should at least be higher than SETPOINT_STEAM.
- Feature/Fix: New setting STEAM_READY_TEMP to show our special steaming-icon only when temperature is above.
- There is support for special "in-steaming-state" icons, but I am in no mood to paint them yet. Feel free.
- BREWDETECTION_POWER is now in active right after a brew is detected and not when temp <1.5degree below setpoint.
- Attention: Major userConfig adaptions. Create a backup!
- BREAKING CHANGE:
- OnlyPid=1: Software based brewDetection has to set with "2" (and not "1"!!) in userConfig BREWDETECTION.
- Added:
- SETPOINT_STEAM
- STEAM_READY_TEMP
- CONTROLS_CONFIG
- DEBUG_FORCE_GPIO_CHECK
- ROTATE_DISPLAY
- Removed:
- pinBrewButton (replaced by CONTROLS_CONFIG)
- EMERGENCY_ICON
- OTAHOST (use HOSTNAME instead)
- ENABLE_USER_MENU
- Changed:
- Default of userConfig EMERGENCY_TEMP from 125 to 128.
- Default of userConfig TEMPSENSORRECOVERY from 1 to 0.
- BREAKING CHANGE:
- Sample Config for IoTMQTTPanel: IoTMQTTPanel-rancilio_v2.6.0_v1.json
- Merged PR by finnito which changed/extended: (MANY THANKS FINNITO)
2.4.2 Bleeding Edge Master Release
Neues Release 2.4.2 der "bleeding-edge" Software, welches
- einige bugs fixed.
- ein neuen Schaltplan der Silvia 5E beinhaltet.
Changelog
- 2.4.2 master:
- Bugfix: Revert changes in regard to compiler warnings added in 2.4.1.
- Bugfix (MQTT_ENABLE=1): Auto-Tuning settings are persisted across restarts.
- Bugfix: steadyPowerOffsetTime is configurable via mqtt.
- Bugfix: aggoTn is now correctly published via mqtt.
- Added new circuit-diagrams (Thanks Tempcookies + Helge).
- MQTT code refactorings.
2.4.1 Bleeding Edge Master Release
Neues Release 2.4.1 der "bleeding-edge" Software, welches nun
- ein winter theme hinzufügt.
- einen Power-Off Cooldown (für Silvia 5E) anzeigt.
- diverse kleine Bugs fixed.
Changelog
- 2.4.1 master:
- It fixes some compiler errors and warnings I was seeing on my system. (Thanks nils-werner)
- It contains a small platformio.ini file for Platformio support. (Thanks nils-werner)
- 2.4.0 master:
- Special winter theme added. Activate with ICON_COLLECTION=2 in userConfig.h.
- Added support for a customizable screen-saver (#define ENABLE_SCREEN_SAVER)
- Overwrite Version info at boot time via OVERWRITE_VERSION_DISPLAY_TEXT in userConfig.h.
- Added power-off countdown to hint the user when the maschine is going to shutdown (ENABLE_POWER_OFF_COUNTDOWN) (Silvia 5E)
- Power-off countdown starts 5min before shutdown.
- Bugfix: Fix brew detection (OnlyPid)
- Bugfix: End of BrewTimer correctly displayed (OnlyPid)
- Bugfix: No power-off countdown when brewing.
- Move display stuff into separate files
- alpha code: Intitial support for an user-menu (ENABLE_USER_MENU/pinBrewButton)
- alpha code: Initial infos about how to add a case with hardware-buttons to control basic settings directly at maschine.
2.3.0 Bleeding Edge Master Release
Neues Release 2.3.0 der "bleeding-edge" Software, welches nun
- den PID vollständig automatisch tuned
- MQTT sowohl zum Auslesen als auch zum Configuration vollständig nutzbar hat
- dem Nutzer die Freiheit lässt ohne Netzwerk-Services, mit remote Services oder auch (wenn gewünscht) MQTT lokal auf dem Arduino startet. Somit braucht man keinen Blynk oder MQTT mehr auf anderen Maschinen laufen zu lassen und ist vollständig unabhängig.
Changelog
- 2.3.0:
- PID is completely auto-tuned and should work flawlessly after a few starts. No need to configure PID any longer.
- Bleeding-Edge settings can be configured remotely without requiring a running service (blynk, mqtt-server) running in your network or internet. (No extra raspi required)
You can now freely choose which service you want to use:- Standalone without any network connectivity
- MQTT Server (runs on bleeding-edge arduino) to not depend on a remotely running service
- MQTT Client to connect to an mqtt-services (eg used by smart-home software)
- MQTT fully implemented so you can publish and subscribe to configure settings and monitor states.
- THANKS: Added Adrian's library to efficiently read TSIC values (https://github.com/lebuni/ZACwire-Library)
- ATTENTION: New default values in userConfig.h.
- It is recommended to intially use default values for STEADYPOWER, STEADYPOWER_OFFSET_TIME, STEADYPOWER_OFFSET, STARTTEMP, BREWDETECTION_POWER, BREWDETECTION_SENSITIVITY. Additionally BREWTIME is from now on also used in ONLYPID=1.
- GPIO Pin Mapping moved to userConfig.h.
- ATTENTION: Installation process changed. Libs must be installed as described in "Instructions on how to migrate from official rancilio to bleeding-edge
- Copy contents of folder ranciliopid\arduino-libs to your arduino sketchbook location (normally C:\Users\YOUR_NAME\Documents\Arduino)
- Improve PID:
- Auto-tuning for starttemp is implemented. No need to adapt the STARTTEMP accordingly when SETPOINT is modified
- steadyPowerOffset is gradually decreased over time to better compensate the warm up of maschine.
- PID monitors and tunes steadyPowerOffset.
- One time PID manipulation logic added.
- PID's I parameter filter is reduced in certain situations more strictly.
- BrewDetection optimized:
- (ONLYPID=1) ATTENTION: The BREWTIME setting defines the time-frame of your "normal" brew (in seconds).
When a brew is detected, the brew_timer starts and runs until BREWTIME is reached. During that time
the heater is heating with BREWDETECTION_POWER. - BREWDETECTION_POWER behaviour changed:
(ONLY_PID=0) The power is applied to heater during the complete brew process.
(ONLY_PID=1) The power is applied until the brew_timer is larger than BREWTIME or the current temperature is 1.5 Celcius below setpoint. - (ONLYPID=1) BREWDETECTION_WAIT setting added: After a brew is started the software based BrewDetection is disabled for this number of seconds to prevent the detection of another brew when flushing water.
- (ONLYPID=1) Software BrewDetection estimates the starttime of a brew, so that the brew counter in display is correct.
- (ONLYPID=1) ATTENTION: The BREWTIME setting defines the time-frame of your "normal" brew (in seconds).
- Debug Logs Improvements:
- Add logs for brewReadyStatistic
- When connecting by telnet/blynk the hardware- and software configuration is printed
- Documentation Updates:
- Enabled wiki at https://github.com/medlor/bleeding-edge-ranciliopid/wiki/
- eg. Howto "Setup MQTT": https://github.com/medlor/bleeding-edge-ranciliopid/wiki/MQTT-Setup
- Added link to sample daily Grafana dashboard.
- Enabled wiki at https://github.com/medlor/bleeding-edge-ranciliopid/wiki/
- Fix: userConfig.h: AUTH renamed to BLYNKAUTH
- Fix: No starttemp tuning when when maschine is already warm.
- Fix: burstPower working again.
- Fix: If PID is manually disabled, heater utilization is correctly reported as 0%.
- Fix: Heater overextending handling working as intended.
- Fix: Potential crash when toogling pid on/off
- Fix: Save pidON in eeprom.
- MQTT_ENABLE=1: Configuration retained in mqtt topics are now used on startup.
- Code cleanup and refactorings
- Trigger brewReady when temperature is stable for 60sec (prev: 40s).
2.2.0 Bleeding Edge Master Release
Changelog
- 2.2.0_master:
- Display functionality improved:
- Replaced display lib Adafruit_SSD1306.h with U8G2. Direct support for SH1106_128X64 and SSD1306_128X64 via userConfig.
- Completly new display widgets which show informations according to active PID state.
- Support for icon collections to easily customize/share display widgets. Icon collection "simple" and "smiley" included.
- Support for simple icon animations.
- Service Status Icons are displayed if enabled in userConfig.
- New DEFINES in userConfig.h. Update your config.
- Improvement: Blynk On/Off button re-inits PID state similar to when machine power is turned on.
- Fix: If DISABLE_SERVICES_ON_STARTUP_ERRORS=1 then WIFI reconnect attempts are also prevented.
- Remove define EMERGENCY_TEXT.
- Fix: PID State "brewing" is correctly detected when ONLYPID=0. (Thanks Helge)
- Display functionality improved:
2.1.0 Bleeding Edge Master Release
Es gibt nun ein neues master Release 2.1.0 der "bleeding-edge", welches den Fokus auf Netzwerk-Features und -Stabilität legt und die Performance des Codes optimiert.
Wer Interesse hat kann sich gerne im Chat oder auf Github informieren.
Changelog
- 2.1.0_master:
- Networking:
- Huge improvements in handling unstable WIFI networks and mqtt/blynk service unavailabilities.
- You can disable/enable WIFI, MQTT or Blynk in userConfig.h and stil have a flawlessly working PID controller. Blynk is no longer an hard requirement!
- Offline Modus is fixed and enhanced. If userConfig.h's FORCE_OFFLINE is enabled, then PID fully is working without networking. Ideal in situations when there is no connectivity or you dont want to rely on it.
- Fix of EEPROM functionality: PID settings are correctly saved in EERPOM and correctly used if there are WIFI issues.
- Instead of using dynamic IPs (over DHCPd) you have the option to set a static IP.
- If blynk or mqtt is not working during startup, do not retry the connection periodically (configurable by userconfig.h DISABLE_SERVICES_ON_STARTUP_ERRORS)
- New PID Variable "BREWDETECTION_POWER" introduced which defines the heater power during brewing.
- Complete rewrite of "TSIC sensor read" based on the excellent ISR code by Adrian. (Thanks Adrian!)
- Optimized "TSIC sensor read" to further increase performance.
- Currently it takes <4ms to collect sensor data instead of the previous 78ms).
- Fix: "sensor errors" do not occur anymore.
- Performance/Stability:
- Some system libs are optimized in performance and stability (src/ folder).
- Remove all unneeded external libraries which are installed in system's arduino search path.
- Code Tunings all over the place to increase performance and therefor stability.
- Overall stability better by honoring critical processes.
- Debuglogs can also be accessed via browser (see documentation).
- PID calculations are moved from ISR to loop(). This improves stability even further.
- Fix: Brew detection optimized.
- Safetly feature: Done start brewing if the brew-button is switched "on" on startup
- Fix: After power on, the 5 second wait time until heater starts is removed.
- Library path adapted to support Arduino under Linux.
- Networking:
2.0.2 Bleeding Edge Master Release
Changelog
- 2.0.2_master:
- stable release
- removed 8x8 display support
- Code cleanup
- Major improvements in display related stuff (eg new icons,..) (thanks helge)
- Restructure folders (thanks helge)
- ISR performance optimised when debug is active (spend time reduced from 0.8ms to 0.15ms).
- Move DEBUGMODE to config.h.
- Emergency Logo can be replaced by a nice "milk steam" logo (EMERGENCY_ICON). (Thanks helge for the icon)
- Regular status display is beautified and adapted to normal users needs. (Thanks helge for the code)
- Fix: Reducing "temperature sensor reading" errors.
- Fix: steadyPowerOffset_Time is now correctly configurable via blynk.
- Fix: Hardware switch sensitivity ("brewswitch") is increased from 1000 to 700.
- Improved: mySteadyPower failure detections.
- RemoteDebug inactivity time requires a version not yet in arduino library manager. Therefore a workaround is document in the meantime.
- Pre-Infusion variables are now configurable in config.h: PREINFUSION, PREINFUSION_PAUSE, BREWTIME
- Emergency temperature theshold is now configurable in config.h: EMERGENCY_TEMP
- BrewDetection sensitivity is now configurable in config.h: BREWDETECTION_SENSITIVITY (renamed from brewboarder)
- Limit auto-tuning of steadyPower to reduce overly increased values.
- Fix bug in brew().bezugsZeit calculation.
- Renamed outputK to outputI.
- Explanation of PID log line added.
- Reduce overhead of preinfusion functionality by having it run just every 50ms (and not every ms).
- Add support for custom emergency text in display when temp >120 degree. (see EMERGENCY_TEXT in config.h.SAMPLE)
- Emergency temperature threshold can now be set by variable emergency_temperature.
- RemoteDebug inactivity time increased from 10min to 30min.
- Add missing line-break in brew() debug logging.
- Fix brew() function
- Support virtual BrewReady LED in blynk
- Improve pastChange() in Pid.compute(). (default Kd value has to be doubled)
- Improve Auto-tuning.
- Default PID Value Tunings
- ATTENTION: EEPROM has changed. Therefore you have to connect to blynk at least once, and manually set correct settings in blynk app (see screenshots for default values).
- New PID Controller "Multi-state PID with steadyPower (Bias)"
- "Brew Ready" Detection implemented, which detects when the temperature has stabilized at setPoint. It can send an MQTT event or have hardware pin 15 triggered (which can be used to turn a LED on).
- Because deadtime of Silvia5E is around 45seconds PID.compute() runs every 5 seconds (previous 1sec) and reduce header on/off switches by factor 5
- Temperature polling is also now set to once every second (previous 400ms)
- Code refactoring/cleanup and fixes of bugs.
- BurstShot feature added to temporary overwrite PID controls (useful mainly for tests)
- Added RemoteDebug over telnet so that we dont need USB to debug/tune pid anymore (https://github.com/JoaoLopesF/RemoteDebug)
- Fix: Recover EmergencyStop when temperature poll in setup() fails
- EmergencyStop state logging improved