Skip to content

3.2.0 Perfect Coffee PID Master Release

Compare
Choose a tag to compare
@medlor medlor released this 02 Mar 20:48
· 58 commits to master since this release
9a94204

New release 3.2.0 of Perfect Coffee PID

  • Add SCALE functionality for brewing.

Changelog

  • 3.2.0:
    • NEW FEATURE (ESP32 & ONLYPID=0): Add SCALE functionality for brewing based on a PR by Hoondie (Many thanks Hoondie!).
      • Rewrite of brew() function to supports stopping brewing by time or weight (see userConfig.h BREWTIME_END_DETECTION):
      • Setup guide in Wiki
      • Display shows actual weight while brewing and additionally brewStatistics/flowRate a couple of seconds after brew (all themes are supported).
      • Automatic tuning of target-weight offset to adapt to dipping effects after brew ends.
    • Refactoring und noticeable further features:
      • Implemented manual calibration feature:
        • Howto:
          • Set ENABLE_CALIBRATION_MODE=1, start machine without any weight on the scale,
            after around 20s put a known weight (which is set in SCALE_SENSOR_CALIBRATION_WEIGHT) on the scale.
            The LOG will show the calculated SCALE_SENSOR_CALIBRATION_FACTOR which has to be added to the userConfig.h .
      • Send brewStatistics to display, mqtt events and LOG: "Brew statistics: 37.36g in 29.78s (1.25g/s) with profile 1".
        • FlowRate also included in output.
        • Display shows brewStatistics after brew for a couple of seconds.
      • Use powerOff and powerUp to save energy and to reduce interrupt conflicts. HX711 is only enabled when brew is running.
      • 3rd party library for the HX711_ADC by Olav Kallhovd (https://github.com/olkal/HX711_ADC) adapted to our needs (Many thanks Olav!):
        • custom async implementation while using ISR to ...
          • reduce processing delays
          • reduce competing interrupts between TSIC, display and scale
          • no TSIC errors!
      • Auto-tare weight (async; without delay) at start of brew.
      • After brew is finished weight is measured for an additional 2 seconds (to include drops after the pump has stopped).
      • If HX711 cannot be initialized on start of brew, fallback to time-based brewing.
      • New scale settings are now tied to "Profiles":
        • Set following settings in userConfig.h / MQTT / "CONTROLS_CONFIG" / Blynk (V64 := activeBrewTimeEndDetection , V65 := activeScaleSensorWeightSetPoint):
          • BREWTIME_END_DETECTIONX: if 0, stop by time else stop by weight
          • SCALE_SENSOR_WEIGHT_SETPOINTX = weight when to stop brewing
      • Custom scaleConfigOverwrite.h
      • ArduinoIDE: Added library/HX711_ADC_fix which has to be manually copied to your arduino library path. (see wiki)
      • ArduinoIDE: Successfully compiles (in addition to Platformio).
    • ArduinoIDE: "library/RemoteDebug" minor compile fix.
    • ArduinoIDE: Add check to force esp32 board version 1.0.6.
    • brew() is only called at most every 1ms.
    • Fix: If you have an analog toggle configured for BREWING and dont turn it off before power-off,
      then brewing will no longer automatically start on power-on.
    • userConfig.h Changes:
      • BREWTIMER_MODE renamed to BREWTIME_TIMER
      • Many new defines called SCALE_SENSOR_*
      • Added BREWTIME_END_DETECTIONX
      • Added SCALE_SENSOR_WEIGHT_SETPOINTX.
      • Added SCALE_SENSOR_CALIBRATION_WEIGHT, SCALE_SENSOR_CALIBRATION_FACTOR
      • Updated circuit-diagrams to add HX711.