diff --git a/platformio.ini b/platformio.ini index 49a1bb8..91d930e 100644 --- a/platformio.ini +++ b/platformio.ini @@ -148,7 +148,7 @@ build_flags = -DCORE_DEBUG_LEVEL=0 -DESP32C3 -DARDUINO_ESP32C3_DEV - -DUSE_SERIAL_PINS # Use the TX/RX pins for the serial port + #-DUSE_SERIAL_PINS # Use the TX/RX pins for the serial port lib_deps = ${common_env_data.lib_deps} ${common_env_data.lib_deps32} @@ -181,7 +181,7 @@ build_flags = -DCORE_DEBUG_LEVEL=0 -DESP32S2 -DARDUINO_ESP32S2_DEV - -DUSE_SERIAL_PINS # Use the TX/RX pins for the serial port + #-DUSE_SERIAL_PINS # Use the TX/RX pins for the serial port lib_deps = ${common_env_data.lib_deps} lib_ignore = @@ -226,7 +226,7 @@ build_flags = -DCORE_DEBUG_LEVEL=5 -DJTAG_DEBUG -DESP32C3 - -DUSE_SERIAL_PINS # Use the TX/RX pins for the serial port + #-DUSE_SERIAL_PINS # Use the TX/RX pins for the serial port -DARDUINO_ESP32C3_DEV -DCOLLECT_PERFDATA # Collect runtime data for a few defined methods to measure time, dumped to serial and/or influxdb lib_deps = diff --git a/src_docs/source/compiling.rst b/src_docs/source/compiling.rst index 2f3c243..ec722bb 100644 --- a/src_docs/source/compiling.rst +++ b/src_docs/source/compiling.rst @@ -37,6 +37,26 @@ In the platformio config there are 3 targets defined The debug target can be unstable and crash the device under certain circumstanses. Excessive logging to the serial port can cause corruption and crashes. So only enable enough debugging to troubleshoot your changes. +Serial debugging on battery +=========================== + +.. image:: images/serial.png + :width: 600 + :alt: Serial output + +On the ESP32 builds the serial output can be written to UART0 which is connected to the RX/TX pins on the chip. This way the serial output can be viewed +without a connection to the USB port, convinient when running the device on battery power. In order to get this to work you need to compile the sofware +with the option **DUSE_SERIAL_PINS** and attach as USB to TTL cable to the correct pins. + +You connect the USB to TTL cable that you connect the TX, RX and GND pins. **Dont connect the power pin** if you are powering the device from USB or Battery. + +.. image:: images/usb-ttl.jpg + :width: 300 + :alt: USB to TTL cable + +.. image:: images/serial_esp32c3.jpg + :width: 300 + :alt: Serial output ESP32c3 Source structure ================ @@ -92,4 +112,6 @@ This is a list of C++ defines that is used to enable/disable functions in the co - Password to the SSID * - CFG_APPVER - Defines the version of the compiled software + * - USE_SERIAL_PINS + - Will send the serial console to the TX/RX pins on an ESP32 target so that debugging can be done when on battery diff --git a/src_docs/source/configuration.rst b/src_docs/source/configuration.rst index 40da152..082a7c8 100644 --- a/src_docs/source/configuration.rst +++ b/src_docs/source/configuration.rst @@ -10,7 +10,7 @@ One of the following conditions will place the device in ``configuration mode``: - Gyro has not been calibrated - Sleep mode has been disabled in the web interface - Placed in horizontal mode 85-90 degrees -- Charger connected >4.15V +- Charger connected >4.15V (or the value that is configured) Status @@ -39,7 +39,7 @@ connection. It will show 0 if data has not been collected yet. The button `view error log` will show the last error messages on the device. This can be useful for checking errors without the need to connect to the serial port or to check what errors has occurred while in `gravity mode`. From v1.1 it will also detect - any abnormal restarts or crashes and record these in the logfile. + any abnormal restarts or crashes and record these in the logfile (this applies to esp8266 only). Configuration diff --git a/src_docs/source/index.rst b/src_docs/source/index.rst index 71f7a8e..d72e5ca 100644 --- a/src_docs/source/index.rst +++ b/src_docs/source/index.rst @@ -7,53 +7,14 @@ Welcome to GravityMon ##################### .. note:: - This documentation reflects **v1.2 - beta 1**. Last updated 2022-10-22 - -User interface overview ------------------------ - -This animation shows how the user interface is structured, it reflects an older version but the structure is the same. - -.. image:: images/gravitymon.gif - :width: 800 - :alt: User Inteface Walkthrough - -.. _main_features: - -Main features -------------- - -* Support either an ESP8266-d1-mini, ESP32-mini, ESP32S2-mini or ESP32C3-mini board (see :ref:`hardware`) -* Operates in two modes gravity monitoring and configuration mode -* Gravity mode is comparable to how the iSpindle works when collecting data -* Configuration mode has a modern HTML5 based web UI. No need to start the access point to change settings -* Offloading some of the functionality to run in the web browser, this allows for more advanced features. -* REST API to enable scripted configuration -* Send data to multiple endpoints and services at once (2xHTTP POST, HTTP GET, MQTT, INFLUXDB2) -* Directly test all endpoints from user interface with feedback to simplify troubleshooting -* Complete format customization for all endpoints using templates (don't really need to change the software to support new services) -* Setup guides for how to send data to many popular services. Currently 10+ are documented -* Automatic temperature adjustment of gravity (just tick a checkbox) -* OTA support from webserver -* Firmware update via web interface -* Built in function to create gravity formulas, no need for additional software, just enter tilt/gravity and let GravityMon creates a formula -* Visual graph showing how formula will be interpreted based on entered values -* Using the temperature sensor in gyro instead of DS18B20 (faster) -* SSL support in all endpoints (no certificate validation due to limitations on esp8266). -* Built in performance measurements (used to optimize code) -* Storage mode when placed on cap (indefinite sleep) -* Customize various hardware parameters to optimize device functionality. - -For a complete breakdown see the :ref:`functionality` - -.. note:: - If you are missing some feature, please reach out on `Github `_ or `homebrewtalk.com `_ + This documentation reflects **v1.2 - beta 1**. Last updated 2022-11-04 What is GravityMon? -------------------- -GravityMon is used to measure gravity and temperature during fermentation of beer and report the progress. The graph below is -an example on how the fermentation process can be tracked. The graph has been rendered using Fermentrack. +GravityMon is a electronic hydrometer software that can be used to measure gravity and temperature during fermentation of beer and report the progress to a number of external +services. Is uses a gyro to measure the gravity since there is a correlation between gravity an the density of the fluid. Based on the density the hydrometer will float at a different angle. +The graph below is an example on how the fermentation process can be tracked. The graph has been rendered using Fermentrack. .. image:: images/fermentation.png :width: 500 @@ -61,10 +22,11 @@ an example on how the fermentation process can be tracked. The graph has been re GravityMon is a replacement firmware for the iSpindle and uses the same hardware configuration and is 100% compatible. It implements a lot of the features that has been requested in the original iSpindle project but never implemented for -various reasons. Here is a list of :ref:`main_features`. +various reasons. -From v0.9 the firmware also supports a iSpindle built using an ESP32 d1 mini (pin compatible with esp8266). Currently this is an experimental -version but since it has more memory and processing capacity it could support more functions. See :ref:`hardware`. +The firmware also supports a iSpindle built using an ESP32 which is pin compatible with esp8266, currently there are 3 options that are +supported ESP32-D1 mini, ESP32-C3 mini and ESP32-S2 mini. See :ref:`hardware`. The more modern hardware will allow better support for SSL and +other memory intensive functions. I started GravityMon because I like to create software and wanted to do some microcontroller programming. I had done a few projects based on esp8266 and also started to brew beer so this combination was quite natural. @@ -82,13 +44,14 @@ The github repository can be found here; `GravityMon on Github `_ -* Docs for: `v0.9 `_ +This animation shows how the features of the user interface. It's for an older version but the main features are the same. +.. image:: images/gravitymon.gif + :width: 800 + :alt: User Inteface Walkthrough Software architecture --------------------- @@ -174,13 +137,12 @@ the following libraries and without these this would have been much more difficu :maxdepth: 2 :caption: Contents: - intro - releases functionality + intro installation configuration - troubleshooting - q_and_a + releases + hardware formula services advanced @@ -188,8 +150,9 @@ the following libraries and without these this would have been much more difficu data compiling contributing - hardware license + troubleshooting + q_and_a Indices and tables ================== diff --git a/src_docs/source/installation.rst b/src_docs/source/installation.rst index 37415d8..75389ea 100644 --- a/src_docs/source/installation.rst +++ b/src_docs/source/installation.rst @@ -113,23 +113,6 @@ Serial Monitoring To check output from the device (logs) there are several tools out there. I found this simple tool in the Windows Store called ``Serial Port Monitoring``. Just select a baud rate of 115200, 8N1. -.. image:: images/serial.png - :width: 600 - :alt: Serial output - -On the build for ESP32C3 and ESP32S2 the serial output is written to UART0 which is connected to the RX/TX pins on the chip. This way the serial output can be viewed -without a connection to the USB port, convinient when running the device on battery power. - -You need a USB to TTL cable that you connect the TX, RX and GND pins. **Dont connect the power pin** if you are powering the device from USB or Battery. - -.. image:: images/usb-ttl.jpg - :width: 300 - :alt: USB to TTL cable - -.. image:: images/serial_esp32c3.jpg - :width: 300 - :alt: Serial output ESP32c3 - .. _setup_wifi: Configuring WIFI diff --git a/src_docs/source/releases.rst b/src_docs/source/releases.rst index 825b953..ca4febc 100644 --- a/src_docs/source/releases.rst +++ b/src_docs/source/releases.rst @@ -3,19 +3,15 @@ Releases ######## -v1.2.0 - beta2 -============== - -Features -++++++++ -* Added support for the ESP32 S2 mini board - v1.2.0 - beta1 ============== +* Changes to 1.2.0 only affect the ESP32 hardware, the ESP8266 is the same as for v1.1.1 + Features ++++++++ * 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. Issues adressed