diff --git a/docs/_images/config1.png b/docs/_images/config1.png
index 7c67b91d..07dd9ed8 100644
Binary files a/docs/_images/config1.png and b/docs/_images/config1.png differ
diff --git a/docs/_sources/configuration.rst.txt b/docs/_sources/configuration.rst.txt
index 923fd156..25e13bbd 100644
--- a/docs/_sources/configuration.rst.txt
+++ b/docs/_sources/configuration.rst.txt
@@ -97,7 +97,16 @@ These are calibration data for the gyro. Place the device flat on a table and pr
* **Factory default**
- This function will reset all settings to factory default. Use with caution!
+This function will reset all settings to factory default. Use with caution!
+
+* **WIFI settings**
+
+Here you can set the wifi settings, for security reasons its not possible to see the current passwords.
+
+* **Restart**
+
+Restarts the device, similar to pressing the reset button
+
Push Settings
+++++++++++++
diff --git a/docs/_sources/functionality.rst.txt b/docs/_sources/functionality.rst.txt
index bcadef82..8a1350fb 100644
--- a/docs/_sources/functionality.rst.txt
+++ b/docs/_sources/functionality.rst.txt
@@ -94,6 +94,11 @@ The main features
If you want to correct gravity based on beer temperature you can do this in the formula but here is a nice
feature that can correct the gravity as a second step making this independent of the formula.
+* **Migration of formula and gyro calibration from iSpindel**
+
+ If GravityMon is installed over an working ispindel it can migrate calibration formula and gyro settings making
+ the transition smooth.
+
* **OTA support from webserver**
When starting up in configuration mode the device will check for a software update from a webserver. This is an easily
diff --git a/docs/_sources/index.rst.txt b/docs/_sources/index.rst.txt
index 1b936da3..73708657 100644
--- a/docs/_sources/index.rst.txt
+++ b/docs/_sources/index.rst.txt
@@ -7,7 +7,7 @@ Welcome to GravityMon
#####################
.. note::
- This documentation reflects **v1.3.0**. Last updated 2023-08-29
+ This documentation reflects **v1.4.0 beta**. Last updated 2023-10-02
What is GravityMon?
--------------------
@@ -156,7 +156,6 @@ the following libraries and without these this would have been much more difficu
compiling
contributing
license
- troubleshooting
q_and_a
Indices and tables
diff --git a/docs/_sources/installation.rst.txt b/docs/_sources/installation.rst.txt
index 78cdaf16..89cce73d 100644
--- a/docs/_sources/installation.rst.txt
+++ b/docs/_sources/installation.rst.txt
@@ -88,6 +88,9 @@ an option for updating firmware. The option is under the maintenance menu.
Select the esp8266 version of the firmware called firmware.bin and press upload.
+If you do an update this way GravityMon will notice that there is a stored configuration file and you will get the option to do a migration
+of the gravity formula and gyro calibration values so you don't need to do a new calibration.
+
Updating firmware
=================
@@ -121,6 +124,18 @@ Just select a baud rate of 115200, 8N1.
.. _setup_wifi:
+WIFI compatibility
+==================
+
+The esp has limited wifi support and still relies on old standards so these are a few things to consider on the wifi setup.
+
+* Don't use space in your wifi SSID or wifi password
+* Only supports 2.4Ghz bands, channels must be 1-13, other channels are not supported (In 802.11 b/g/n modes)
+* Channels between 20-25 Mhz bands
+* SSID must be visible (hidden SSID dont work)
+
+Source: https://www.espressif.com/sites/default/files/esp8266_wi-fi_channel_selection_guidelines.pdf
+
Configuring WIFI
================
diff --git a/docs/_sources/q_and_a.rst.txt b/docs/_sources/q_and_a.rst.txt
index ad43b917..3c8e035d 100644
--- a/docs/_sources/q_and_a.rst.txt
+++ b/docs/_sources/q_and_a.rst.txt
@@ -5,14 +5,18 @@ User interface does not render correctly
----------------------------------------
Since the user interface is built using bootstrap v5 the device requires access to the internet
-to download required javascript and css files. Due to size it would not be possible to store these
+to download required javascript and css files.
+
+Due to size it would not be possible to store these
on the device. Make sure the device can access: https://cdn.jsdelivr.net/npm/bootstrap
Data is not populated in the fields
------------------------------------
The user interface uses JQuery to fetch data from the device. This javascript library needs to be downloaded
-from the internet. Due to size it would not be possible to store these on the device. Make sure the
+from the internet.
+
+Due to size it would not be possible to store these on the device. Make sure the
device can access: https://code.jquery.com
Also ensure that any security tools does not block the execution of these features.
@@ -75,3 +79,79 @@ Device only reporting data once
If the device does not wake up from a deep sleep, this is most likely a hardware problem,
check the resistor / diode between D0 and RST. Wrong value can stop the device from wakeing up.
+
+
+What does the messages in the error log mean
+--------------------------------------------
+
+* Not enough values for deriving formula
+
+ To create a formula its required to have at least 3 measurements.
+
+* Error validating created formula. Deviation to large, formula rejected
+
+ The device will try to create formulas with different complexities. It will try to
+ validate the formula using the supplied values. If the difference is more than 1.6 SG on any point
+ the formula will be rejected. Check the entered values if they seams to be reasonable.
+
+* No valid calibration values, please calibrate the device.
+
+ The gyro needs to be calibrated at 90 degrees (flat). This is done on the configuration page.
+
+* Low on memory, skipping push
+
+ The arduino libraries sometimes leak memory, this only occurs when running in configuration mode. To avoid
+ crashes the device will skip pushing data if the memory drops to much. Network connections seams to be connected
+ to memory leaks.
+
+* Unable to set header, invalid value
+
+ Check the format for your custom header. This means it has not a correct format.
+
+HTTP error codes
+----------------
+
+All these errors are standard http error codes. This are the common ones;
+
+* 400 - Bad request. Probably an issue with the post format. Check format in the format editor.
+* 401 - Unauthorized. The service needs an token or other means to authenticate the device.
+* 403 - Forbidden. Could be an issue with token or URL.
+* 404 - Not found. Probably a wrong URL.
+
+MQTT error codes
+----------------
+
+MQTT connection errors:
+
+* -1 - Connection refused
+* -2 - Send header failed
+* -3 - Send payload failed
+* -4 - Not connected
+* -5 - Connection lost
+* -6 - No stream
+* -7 - No HTTP server
+* -8 - Too little RAM available
+* -9 - Error encoding
+* -10 - Error writing to stream
+* -11 - Read timeout
+* -100 - Endpoint skipped since its SSL and the device is in gravity mode
+
+MQTT push on topic errors:
+
+* -1 - Buffer to short
+* -2 - Overflow
+* -3 - Network failed connected
+* -4 - Network timeout
+* -5 - Network read failed
+* -6 - Network write failed
+* -10 - Connection denied
+* -11 - Failed subscription
+
+WIFI error codes
+----------------
+
+* 1 - No SSID found.
+* 4 - Connection failed.
+* 5 - Connection lot.
+* 6 - Wrong password.
+* 7 - Disconnected by AP.
diff --git a/docs/_sources/releases.rst.txt b/docs/_sources/releases.rst.txt
index 6aa3aa29..a0c2f6c2 100644
--- a/docs/_sources/releases.rst.txt
+++ b/docs/_sources/releases.rst.txt
@@ -3,6 +3,25 @@
Releases
########
+v1.4.0 (beta)
+=============
+
+* Changed wifi manager to modified version since the source project is no longer supported by author
+* Added possibility to set wifi settings in config (need manual reboot to apply)
+* Updated dependencies to latest versions as of Aug -23
+* Added feature to migrate formula and gyro calibration data from an existing ispindel configuration (don't do a full erase before flashing)
+* Updated code so it now works with newer versions of ArduniJSON
+* Added option to check for unit test code coverage with WOKWI
+* Added unit tests to improve coverage
+* Fixed issue with ESP32 were reboot didnt work sometimes
+* Published code coverage for unit tests
+
+v1.3.1
+======
+
+* Added option to restart device from the configuration menu (user request).
+* Updated to latest arduino builds for both esp8266 and esp32.
+
v1.3.0
======
diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js
index 7cf0629b..d9d4c291 100644
--- a/docs/_static/documentation_options.js
+++ b/docs/_static/documentation_options.js
@@ -1,6 +1,6 @@
var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
- VERSION: '1.3.0',
+ VERSION: '1.4.0',
LANGUAGE: 'None',
COLLAPSE_INDEX: false,
BUILDER: 'html',
diff --git a/docs/advanced.html b/docs/advanced.html
index 316710d9..eb3f76be 100644
--- a/docs/advanced.html
+++ b/docs/advanced.html
@@ -5,7 +5,7 @@
-