gravitymon

iSpindle replacement firmware for beer brewing/fermenting

MIT License

Stars
54
Committers
5

Bot releases are hidden (Show)

gravitymon - v1.4.1 Latest Release

Published by mp-se 8 months ago

Issues adressed

  • Fixed broken iSpindel configuration migration for the esp8266.
  • Fixed broken gather support button.
gravitymon - v1.4.0

Published by mp-se 8 months ago

Features

  • NEW Added led indicator: Blue / Slow Blinking = Config Mode, White/Solid = WiFi setup
  • BUG Reduced WIFI TX Power for C3 chip to improve WIFI connnection stability
  • NEW Added 4 options to ble data transmission (TILT, TILT PRO, GRAVITYMON SERVICE, GRAVITYMON EDDYSTONE)
  • NEW Added support for ESP32S3 mini board
  • NEW Moved to async webserver to speed up performance in configuration mode
  • Added feature to migrate formula and gyro calibration data from an existing ispindel configuration (don't do a full erase before flashing)
  • Added possibility to set wifi settings in config (need manual reboot to apply)
  • Added option that shows the average value from the gyro reads + a button to reset that on the web ui. Might make it easier to do calibration of the value jumps around.

Known issues

  • On ESP32c3 mini the rgb led does not turn blue when in config mode
  • On ESP32s3 mini the rgb led does not work due to issue in arduino/esp32 unless manual patching of the arduino framework #define RGB_BUILTIN LED_BUILTIN+SOC_GPIO_PIN_COUNT

Maintenance

  • Changed wifi manager to modified version since the source project is no longer supported by author
  • Updated dependencies to latest versions as of Aug -23
  • Added UI tests to improve test coverage
  • Added unit tests to improve test coverage
  • Added option to run unit test code coverage with WOKWI
  • Added scripts to check for code coverage on the esp32 (work in progess, not yet covering all parts of the code)
  • Created script that checks for updates to dependant projects (test/converage.py)
gravitymon - v1.4.0 beta 2

Published by mp-se 11 months ago

Features

  • BUG Reduced WIFI TX Power for C3 chip to improve WIFI connnection stability
  • NEW Added experimental support for extended BLE data transmission (will require specialized server software)
  • NEW Added support for ESP32S3 mini board
  • NEW Moved to async webserver to speed up performance in configuration mode

Maintenance

  • Added UI tests to improve test coverage
gravitymon - v1.4.0-beta1

Published by mp-se about 1 year ago

Features

  • Added feature to migrate formula and gyro calibration data from an existing ispindel configuration (don’t do a full erase before flashing)
  • Added possibility to set wifi settings in config (need manual reboot to apply)

Maintenance

  • Changed wifi manager to modified version since the source project is no longer supported by author
  • Updated dependencies to latest versions as of Aug -23
  • Added unit tests to improve coverage
  • Added option to run unit test code coverage with WOKWI
  • Added scripts to check for code coverage on the esp32 (work in progess, not yet covering all parts of the code)
  • Created script that checks for updates to dependant projects (test/converage.py)

Documentation

  • Published code coverage for unit tests and apitest.py (gcov/README.md)

Issues adressed

  • Updated code so it now works with newer versions of ArduniJSON
  • Fixed issue with ESP32 were reboot didnt work sometimes
gravitymon - v1.3.0

Published by mp-se over 1 year ago

This version is identical with the beta3 version. No changes.

Features

  • Refactored logoutput from WifiManager to be consistent with other logs.
  • Added feature to do backup and restore of device settings. Data will be exported as a text (json) file.
  • Added validation feature that checks for configuration errors or missing steps in setup. Warnings will be displayed on index page.
  • Added restore to factory default button under configuration
  • Upgraded to bootstrap v5.2.3, jquery v3.6.3 and jchart v4.2.1
  • Added feature to check for newer GravityMon releases from gravitymon.com (Will only check against promoted / stable version).
  • Added chip information to startup for easier support
  • Added option to select a default gravity formula under settings. This is based on measurements from several different devices.
  • Increased the number of decimals for tilt/angle (3), temperature (2), plato (2), runtime (2).
  • Added ${battery-percent} as new variable for use in format templates.
  • Added battery saving mode. When battery drops below 20% the sleep interval will be changed to 1 hour. Can be disabled in advanced configuration.

Documentation

  • Updated getting started section to clarify what needs to be done during setup.
  • Updated documentation with new images and text
  • Added new option for home assistant sensor registration through automation script.
  • Added description for how to get voltage measurement on a floaty, see Hardware section.

Issues adressed

  • BUG: Double reset was detected incorrectly on ESP32C3, created own code and dropped douoble reset detection library for better stability. Will now require 3 taps within 3 seconds each to go into wifi configuration.
  • BUG: Gyro and Tempsensor was not detected after a reset on ESP32 (needed power cycle), reverted to older Arduino version to solve the problem.
  • BUG: Pin numbers on the newer ESP32C3 is different from v1
  • BUG: Wrong OTA filename for ESP32C3v1
  • BUG: Fixed long statup delay when creating access point on ESP32C3
  • BUG: Sometimes it could be hard to get into config mode and ended up in wifi portal instead due to double restet detect.
  • BUG: If the gyro value was invalid (moving) during startup that would cause the device to go into gravitymode instead of config mode.
  • BUG: When trying to do calibration without a connected gyro the device would enter endless loop.
  • BUG: Clarified that its the bucket ID and auth TOKEN for influxdb (config page)
  • BUG: Fixed wrong device classes in home assistant template.

Other

  • Removed khoih-prog/ESP_DoubleResetDetector since this didnt work properly on the ESP32c3, this library has no support from author anymore.
  • Updated platformio esp8266 to v4.1.0
  • Updated platformio esp32 to v6.0.0
  • Updated h2zero/NimBLE-Arduino to b 1.4.1
  • Updated 256dpi/arduino-mqtt to v2.5.1
  • Created tag v1.0.0 for codeplea/tinyexpr to get control over releases
  • Created tag v1.0.0 for graphitemaster/incbin to get control over releases
  • Updated khoih-prog/ESP_WiFiManager to v1.12.1
  • Updated khoih-prog/ESP_DoubleResetDetector to v1.3.2
gravitymon - v1.3.0 beta 3

Published by mp-se over 1 year ago

This is the last beta for the 1.3.0 release, now its long term stability tests and fixing bugs that are detected.

Features

  • Refactored log output from WIFI Manager to be consistent with other logs.

Issues addressed

  • BUG: Double reset was detected incorrectly on ESP32C3, created own code and dropped double reset detection library for better stability. Will now require 3 taps within 3 seconds each to go into WIFI configuration.
  • BUG: Gyro and Temperature sensor was not detected after a reset on ESP32 (needed power cycle), reverted to older Arduino version to solve the problem.
  • BUG: Pin numbers on the newer ESP32C3 is different from v1
  • BUG: Wrong OTA filename for ESP32C3v1
  • BUG: Fixed long startup delay when creating access point on ESP32C3

Other

  • Removed khoih-prog/ESP_DoubleResetDetector since this didn't work properly on the ESP32c3, this library has no support from author anymore.
gravitymon - v1.3.0-beta2

Published by mp-se over 1 year ago

Update 2023-02-25 Fixed an issue that temp was not displayed in index page. Instead the message was 'no temp sensor found'

Features

  • Added feature to do backup and restore of device settings. Data will be exported as a text (json) file.
  • Added validation feature that checks for configuration errors or missing steps in setup. Warnings will be displayed on index page.
  • Added restore to factory default button under configuration
  • Upgraded to bootstrap v5.2.3, jquery v3.6.3 and jchart v4.2.1
  • Added feature to check for newer GravityMon releases from gravitymon.com (Will only check against promoted / stable version).
  • Added chip information to startup for easier support
  • Added option to select a default gravity formula under settings. This is based on measurements from several different devices.

Documentation

  • Updated getting started section to clarify what needs to be done during setup.
  • Updated documentation with new images and text

Issues addressed

  • BUG: Sometimes it could be hard to get into config mode and ended up in wifi portal instead due to double restet detect.
  • BUG: If the gyro value was invalid (moving) during startup that would cause the device to go into gravitymode instead of config mode.
  • BUG: When trying to do calibration without a connected gyro the device would enter endless loop.
gravitymon - v1.3.0-beta1

Published by mp-se over 1 year ago

First beta of the 1.3 release

Update via the firmware upload feature.

  • Increased the number of decimals for tilt/angle (3), temperature (2), plato (2), runtime (2).
  • Added ${battery-percent} as new variable for use in format templates.
  • Added battery saving mode. When battery drops below 20% the sleep interval will be changed to 1 hour. Can be disabled in advanced configuration.
  • Updated Arduino version and dependent libraries
gravitymon - v1.2.1 Fixed bug in format template engine

Published by mp-se over 1 year ago

In some cases the end of the format template was not added correctly.

gravitymon - v1.2.0 esp32 release

Published by mp-se almost 2 years ago

Features

  • Added function to calculate voltage factor based on measured value.
  • Updated battery estimation for the various esp32 boards.
  • Added support for the ESP32 lite board which is used in the Floaty Hydrometer variant.
  • Added support for the ESP32 C3 mini board
  • Added support for the ESP32 S2 mini board
  • Serial output is written to TX/RX pins instead of the USB connection for the ESP32c3. This way the serial console can be viewed when running on battery power.
  • Merged in unit tests and api tests into this project
  • Added option to download firmware updates from https://www.gravitymon.com

Documentation

  • Added section about the Floaty hardware
  • Fixed schema errors in hardware section and linked PCB options
  • Updated hardware section with options for ESP32 boards
  • Updated installation instructions.

Issues adressed

  • BUG: The first portion of a format template was lost when doing conversion.
gravitymon - v1.2.0 beta 2

Published by mp-se almost 2 years ago

This release adds support for 4 esp32 boards and the floaty hydrometer design.

Features

  • Added function to calculate voltage factor based on measured value.
  • Updated battery estimation for the various esp32 boards.
  • Added support for the ESP32 lite board which is used in the Floaty Hydrometer variant.
  • Allows serial console to be sent to tx/rx pin on all boards

Documentation

  • Added section about the Floaty hardware.
gravitymon - v1.2.0-beta1 First beta for ESP32C3 mini

Published by mp-se about 2 years ago

Features

  • Added support for the ESP32 C3 mini board
  • Added support for the ESP32 S2 mini board
  • Added support for the ESP32 lite mini board (floaty build)
  • Serial output is written to TX/RX pins instead of the USB connection for the ESP32c3. This way the serial console can be viewed when running on battery power.

Issues addressed

  • BUG: The first portion of a format template was lost when doing conversion.

Documentation

  • Updated hardware section with options for ESP32 boards
  • Updated installation instructions.

You need brewflasher 1.5 or newer to flash the c3

esptool.py --port COM6 write_flash --flash_mode dio 0x8000 .\partitions32c3.bin 0x10000 .\firmware32c3.bin

gravitymon - v1.1.1 Fixed conversion bug in format template

Published by mp-se about 2 years ago

BUG: The text before the first variable was missed in the conversion of a format template.

gravitymon - v1.1.0

Published by mp-se about 2 years ago

Features

  • Added information to error log about abnormal resets (for instance crashes) to detect and fix those
  • Changed storage mode so that the device will go into deep sleep until reset (sleep forever)
  • Updated sensor types in home assistant for auto registration of device
  • Added ${app-ver} and ${app-build} to format template as new variables
  • Improved error messages when creating formula so the troublesome measurement points can be identified
  • Changed defaule validation threashold from 1.6 SG to 3.0 SG, this should allow for some more variance when creating formula
  • Updated format template for Home Assistant, aligned with new mqtt configuration format
  • Added format template for Home Assistant with automatic device registration
  • Added storage mode which is activated under hardware setting. When place on the cap (<5 degres tilt) the device will go into storage mode and deep sleep.

Known issues, not yet fixed

  • When updating firmware and the feature deep sleep is active the device will activate deep sleep if the gyro is not responding. FIX: Reboot device

Issues adressed

  • Refactored error logging function to reduce memory usage and crashes. Max size of error log is 2 x 4 kb
  • Refactored format template engine to reduce memory usage and crashes, can how handle slightly larger payloads than before. Increase from around 1100 chars to 1600 chars
  • BUG: Refactored format api to handle larger payloads
  • BUG: After manual firmware upload the device would crash and go into wifi setup mode.
  • BUG: After manual firmware upload the device will in some cases not be able to connect with the gyro, the symptom is that it will say, "Gyro moving" in the web UI. In this case the device needs to be reset (or powered on/off). I havent found a way to fix this from the code. The message after firmware update has been updated with this information
  • BUG: Temp corrected gravity was not used when pushing data to removed
  • BUG: Low memory in format api which resulted in mqtt template to be set to null
  • BUG: Large format templates could be saved but when loading it's only blank
  • BUG: Copy format templates used an old format for iSpindle and Gravmon where the token was not used
  • BUG: Gravity correction formula not calculating correctly

User interface

  • Updated format template with information on size and warning message if the template is too large
  • Added error message if gyro connection/initialization fails (before the message was Gyro Moving only)
  • Added error message if no temp sensor can be found
  • Added drop down menus in user interface to simplify navigation to sub pages (format, test and upload)
  • Added Assistant Device registration, this is only done when format template is saved, during normal operation only data values are posted on MQTT. If HA is restarted then the device will disappear
  • Calibration temperature (for temp adjustment) can now be set under advanced settings, default is 20C
  • Changed length of device name from 12 to 63 chars. 63 is the max limit according to mdns.
  • Under format options its now possible to select brewfather ispindle format to avoid errors connected to using the wrong format template with the various brewfather endpoints
  • Added brewblox as format under format options
  • Added home assistant (with device registration) as format under format options
  • User can now edit the voltage level that forces the device into config mode (device detects charging)

Documentation

  • Added documentation for Brewpiless as target
  • Added documentation for BVrewblox as target
  • Updated documentation for HA integration since described method was deprecated
  • Updated documentation for ubidots service integration
  • Updated documentation in data format section
  • Updated hardware section with documentation on installing reed switch
  • Updated configuration section with documentation on new settings
  • Added q&a on formula creation and value deviation

Other

  • Upgraded framework for ESP8266 to v5.0.0
  • Upgraded framework for ESP32 to v2.0.2
  • Updated OneWire library to be complaint with new ESP32 SDK
  • Fixed issue in i2cdev connected to wrong usage of TwoWire on ESP32 (Gyro initialization hang).
gravitymon - v1.1.0 beta4

Published by mp-se about 2 years ago

User interface

  • Updated format template with information on size and warning message if the template is too large

Features

  • Added information to error log about abnormal resets (for instance crashes) to detect and fix those.
  • Changed storage mode so that the device will go into deep sleep until reset.

Issues adressed

  • Refactored error logging function to reduce memory usage and crashes
  • Refactored format template engine to reduce memory usage and crashes, can how handle slightly larger payloads than before. Increase from around 1100 chars to 1600 chars.
gravitymon - v1.1.0 beta3

Published by mp-se about 2 years ago

User interface

  • Added error message to user message if gyro connection fails.
  • Added message to user message if no temp sensor can be found.
  • Added drop down menus in user interface to simplify navigation to sub pages
  • Changed behavior for Home Assistant Device registration, this is only done when format template is saved, during normal operation only data values are posted on MQTT.

Features

  • Updated sensor types in home assistant (auto registration)

Issues adressed

  • BUG: Refactored format api to handle larger payloads.
  • BUG: After manual firmware upload the device would crash and go into wifi setup mode.
  • BUG: After manual firmware upload the device will in some cases not be able to connect with the gyro, the symptom is that it will say, "Gyro moving" in the web UI. In this case the device needs to be reset (or powered on/off). I havent found a way to fix this from the code. The message after firmware update has been updated with this information.
gravitymon - v1.1.0 beta 2

Published by mp-se about 2 years ago

Documentation

  • Updated docs for HA integration since method was depricated

User interface

  • Calibration temperature (for temp adjustment) can now be set under advanced settings.
  • Changes length of device name from 12 to 63 chars. 63 is the max limit according to mdns.

Features

  • Improved error messages when creating formula so the meaasurement points can be identified.
  • Changed defaule validation threashold from 1.6 SG to 3.0 SG, this should allow for some more variance when creating formula.
  • Updated format template for Home Assistant for using manual configuration (Aligned with new mqtt configuration format)
  • Added format template for Home Assistant with automatic device registration
  • Added ${app-ver} and ${app-build} to format template as new variables.

Issues adressed

  • BUG: Temp corrected gravity was not used when pushing data to removed
  • BUG: Low memory in format api which resulted in mqtt template to be set to null
  • BUG: Large format templates could be saved but when loading it's only blank. Increased total memory from 3kb to 5kb
gravitymon - v1.1.0 Beta 1

Published by mp-se over 2 years ago

This is a beta release and since I have updated a number of dependant libraries I need to do a long term test before this is an official release. The ESP32 release needs a lot of testing due to a major upgrade of the arduino libraries.

Please use the firmware update in the web interface to apply this version.

Documentation

  • Fixed errors in data format section
  • Added q&a on formula creation and value deviation
  • Added documentation for Brewpiless as target
  • Updated docs for ubidots service integration.
  • Added brewblox as new service

User interface

  • Under format options its now possible to select brewfather ispindle format to avoid mixing endpoints.
  • Added brewblox as format under format options.
  • User can now edit the voltage level that forces the device into config mode (charging)

Features

  • Added storage mode which is activated under hardware setting. When place on the cap (<5 degres tilt) the device will go into
    storage mode and sleep for the max allowed time.

Other

  • Upgraded framework for ESP8266 to v5.0.0
  • Upgraded framework for ESP32 to v2.0.2
  • Updated OneWire library to be compliant with new ESP32 SDK
  • Fixed issue in i2cdev connected to wrong usage of TwoWire on ESP32 (Gyro initialization hang).

Issues adressed

  • BUG: Copy format templates used an old format for iSpindle and Gravmon where the token was not used.
  • BUG: Gravity correction formula not calculating correctly.
gravitymon - v1.0.0

Published by mp-se over 2 years ago

v1.0.0

Documentation

  • Update documentation to match v1.0
  • Installation instructions updated on how to find the device after wifi has been configured.
  • Documentation on brewfather has been updated to adress SG/Plato conversion
  • Added circuit diagram for esp8266 and esp32
  • Added additional http error codes to troubleshooting documentation

User interface

  • Upgraded to bootstrap v5.1 for web pages.
  • Added button on indexpage to direct to github issues.
  • Added button to extract important information for support requests.
  • First point in gravity formula is now reserved for water gravity, this to allow detection of angles below water that can be filtered out.
  • Changed layout on index page with measured data on top.
  • Added tooltips to all fields in user interface
  • Added function on format page so that it's easy to copy a format template from the docs (simplify service integration).

Features

  • Added advanced setting to ignore angles that are lower than water. This is disabled by default.
  • Added support for MPU6500 (standard is MPU6050).
  • Removed brewfather option (can use standard HTTP options), the old apporach can still be used via changing format template.
  • Added 5 more points for formula creation, so a total of 10 angles/gravity values can be stored.
  • Added https support for Influxdb v2
  • Added possibility to set 2 wifi ssid where the second acts as a fallback in case it fails to connect. If succesful the seconday becomes the new primary.
  • SSL connections are skipped on ESP8266 when in config mode since there is a high probability it will crash due to low memory.
  • Advanced settings: Added possibility to have variable push intervals for different endpoints so that different frequency can be used, for example; 5min mqtt, 15min brewfather.
  • Advanced settings: Changes how many times the gyro is read (less reads, quicker but less accurate)
  • Advanced settings: Set amount of gyro movement is allowed for a accurate read.
  • Advanced settings: What deviation is acceptable for creating formula deviation
  • Advanced settings: Various timeouts, wifi connect, wifi portal, http connects.
  • Advanced settings: Adjust resolution of temp sensor (9 bits to 12 bits), higher resolution takes longer thus reducing batterylife

Issues adressed

  • BUG: Fixed issue in formula calculation in case there were a gap in the data series
  • BUG: Field name for wifi strength changed from "rssi" to "RSSI"
  • BUG: Fixed issue with probing MFLN on non standard ports
  • BUG: Changed http connection to keep-alive so that server does not close port before the client has had a chance to read the response.
gravitymon - v1.0.0-beta2

Published by mp-se over 2 years ago

update 2022-05-06

  • Fixed calibration bug (calibration was broken via html page)
  • Added esp32 build

v1.0.0-beta2

  • Moved applying temp sensor resolution in loop so there is no need to reboot.
  • Advanced software settings is only disabled if settings contain default values.
  • Added button on indexpage to direct to github issues.
  • Added button to extract important information for support requests.
  • Updated docs with information from beta1.
  • First point in gravity formula is now reserved for water gravity, this to allow detection of angles below water that can be filtered out.
  • Added advanced setting to ignore angles that are lower than water. This is disabled by default.
  • Added experimental support for MPU6500 (allowing that deviceID), waiting for confirmation on function.
  • Changed layout on index page with measured data on top.

TODO:

  • Update documentation to match new version
  • Add circuit schema for ESP32
Related Projects