Update documentation

This commit is contained in:
GitHub Action 2022-10-18 17:33:47 +00:00
parent fc0886d386
commit 4df4391333
40 changed files with 767 additions and 191 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 705 KiB

BIN
docs/_images/esp32_res.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 594 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 624 KiB

BIN
docs/_images/usb-ttl.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View File

@ -84,7 +84,7 @@ GET: /api/status
Retrieve the current device status via an HTTP GET command. Payload is in JSON format.
* ``temp-format`` can be either ``C`` or ``F``
* ``platform`` can be either ``esp8266`` or ``esp32``
* ``platform`` can be either ``esp8266``, ``esp32c3``, ``esp32s2`` or ``esp32``
* ``temp-c`` will be set to -273 C if there is no temp sensor
* ``angle`` will be set to 0 if no valid angle is found and -1 if there is no gyro

View File

@ -29,14 +29,9 @@ In the platformio config there are 3 targets defined
* gravity-debug; Maximum logging for trouble shooting, deep sleep is disabled.
* gravity-release; Standard release
* gravity-perf; Standard release but contains code for measuring performance.
* gravity32-release: Version for ESP32.
* gravity32-perf: Version for ESP32 but contains code for measuring performance.
.. note::
There is an experimental ESP32 target but since platformio only supports SDK 1.0.6 and the WIFI connection is really slow compared to ESP8266,
so the recommendation is to wait for support on 2.0.x branch. With the tested version an wifi connection takes 3-8s on a ESP32 compared
to 0.5s on an ESP8266. There is also a bug in OneWire connected to ESP32 that has not been fixed in the main repository yet.
* gravity32-release: Version for ESP32 mini.
* gravity32-c3-release: Version for ESP32 C3 mini.
* gravity32-s2-release: Version for ESP32 S2 mini.
.. warning::
The debug target can be unstable and crash the device under certain circumstanses. Excessive logging to the serial port can cause corruption and crashes.
@ -91,8 +86,6 @@ This is a list of C++ defines that is used to enable/disable functions in the co
- Done include verbose logging in the corresponding class. Excessive logging may crash device.
* - USE_LITTLEFS
- Use the new filesystem in Ardurino
* - EMBED_HTML
- Html files are included in code, if not defined they are served from the file system.
* - USER_SSID
- If defined the device will always use this SSID
* - USER_SSID_PWD

View File

@ -3,49 +3,89 @@
Hardware
########
There are lots of resources out there on how to build the hardware for an iSpindle so I will not go into details on that part. Here are two of my builds using the iSpindle PCB v4.
iSpindle based on esp8266
=========================
.. image:: images/ispindel.jpg
There are lots of resouces out there on how to build the hardware for an iSpindle so I will not go into details on that part. I typically use one of the
excellent pcb boards that, for example the iSpindel PCB v4.0 from Cherry Philip. Here is one of my standard builds using an esp8266.
.. image:: images/ispindel_esp8266.jpg
:width: 500
:alt: Builds of iSpindel
It's possible to use this PCB and mount an ESP32 on top of that. It must be an pin compatible ESP32 and the one I used was called *ESP32 d1 mini*. Since this is the same width as the PCB you need to
mount it really close to the PCB in order for it to fit in the PET tube/container. I also had to smooth the edge of the ESP32 in order for it to fit.
I would suggest that you try how it fits into the PET tube before soldering it to the PCB. Make sure that the battery is attached since this will be a really tight fit.
You also need to desolder (remove) the RED ON LED from the ESP32 or the battery power will be reduced a lot.
Final thing is to add a resistor between A0 (Analog PIN) and ground of 470k. The reason is that the esp8266 has a build in resistor which
the esp32 does not have. So in order to get a valid voltage (less than 3.2V) on the A0 pin this is needed. Once the modification is done you might
need to adjust the voltage factor so the battery reading is correct.
.. image:: images/esp32.jpg
:width: 500
:alt: Mounting esp32
:alt: iSpindle esp8266
Schema for esp8266 build
------------------------
++++++++++++++++++++++++
.. image:: images/schema_esp8266.png
:width: 700
:alt: Schema esp8266
Schema for esp32 build
----------------------
iSpindle based on esp32
=======================
I've experimented with porting my software version to esp32 and this is a selection of options i have been testing.
.. warning::
Work to support esp32s2 is still ongoing, ESP32-mini and ESP32c3-mini is confirmed to be working. However I would recommend the C3 variant.
.. image:: images/esp32_hardware.jpg
:width: 500
:alt: iSpindle esp32 hardware options
* esp32 mini, this was the first board i tried which is a smaller form factor of the first generetion esp32 with 2 cores. Slow on connecting to wifi is the main downside.
* esp32c3 mini, a newer version based on the latest risc v7 architecture, is seen as the replacement for the esp8266 with bluetooth support.
* esp32s2 mini, similar to the c3 board but without bluetooth support.
It's possible to use this PCB and mount an ESP32 mini on top of that (c3 and s2 are prefered). The esp32 mini is a larger formfactor and can be hard to fit into the tube.
.. note::
This schema assumes that an ESP32 D1 Mini (pin compatible with ESP8266 D1 Mini is used)
The ESP32 has two rows of pins but only the inner row is used. The main difference is the added resistor R3 so we
get a voltage divider for measuring battery. The ESP8266 has a built in resistor thats not visible on the schema.
You need to add a resistor between A0 (Analog PIN) and ground of 470k. The reason is that the esp8266 has a build in resistor for a voltage divider
which the esp32 does not have. So in order to get a valid voltage (less than 3.2V) on the A0 pin this is needed. Once the modification is done you might
need to adjust the voltage factor so the battery reading is correct.
ESP32c3 mini
++++++++++++
This is model is now fully supported by gravitymon.
.. image:: images/ispindel_esp32c3.jpg
:width: 500
:alt: Esp32c3 mini build
Here is an image of where I added the resistor for the voltage divider.
.. image:: images/esp32_res.jpg
:width: 500
:alt: Esp32c3 adding resistor as voltage dividier.
ESP32s2 mini
++++++++++++
Work in progress...
ESP32 d1 mini
+++++++++++++
I would suggest that you try how it fits into the PET tube before soldering it to the PCB. Make sure that the battery is attached since this will be a really tight fit.
.. image:: images/ispindel_esp32.jpg
:width: 500
:alt: Esp32 mini build
Schema for esp32 build
++++++++++++++++++++++
.. note::
This schema assumes that an ESP32 D1 Mini (pin compatible with ESP8266 D1 Mini is used). The ESP32 has two rows of pins but
only the inner row is used. The main difference is the added resistor R3 so we get a voltage divider for measuring battery.
The ESP8266 has a built in resistor thats not visible on the schema and this acts as a voltage divider.
.. image:: images/schema_esp32.png
:width: 700
:alt: Schema esp32
Modifying with reed switch
--------------------------
Adding a reed (magnetic) reset switch
=====================================
A reed switch is a switch that reacts to magnetic fields. The ones I have tested are normally open and close in proximity to
a magnet.

View File

@ -7,7 +7,7 @@ Welcome to GravityMon's documentation!
######################################
.. note::
This documentation reflects **v1.1**. Last updated 2022-08-14
This documentation reflects **v1.2 - beta 1**. Last updated 2022-10-15
User interface overview
-----------------------
@ -23,6 +23,7 @@ This animation shows how the user interface is structured, it reflects an older
Main features
-------------
* Support either an ESP8266-d1-mini, ESP32-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

View File

@ -23,30 +23,30 @@ available here `Brewflasher WEB <https://web.brewflasher.com/>`_.
Binaries
********
In the /bin directory you will find 3 different firmware builds;
In the /bin directory you will find 4 different firmware builds;
* **firmware.bin**
This is the standard release build (preferred version)
* **firmware-perf.bin**
This version also submits performance data to an influx database with detailed execution times.
* **firmware32.bin**
This is the standard release build for an ESP32 variant. When flashing an ESP32 you also need the **partition32.bin** file that outlines the flash memory structure. Due to
This is the release build for an ESP32-d1-mini variant. When flashing an ESP32 you also need the *partition32.bin* file that outlines the flash memory structure. Due to
the size of the firmware we are using a custom partition setup.
In these versions all the html files are embedded in the binaries. The file system is currently only used for storing
the configuration file.
* **firmware32c3.bin**
If the software becomes so large the html files can be moved to the file system, but this is not enabled by
default (see compiling for details). This approach makes installation much easier and ensure that html files
and code is in sync.
This is the release build for an ESP32c3-mini variant. When flashing an ESP32 you also need the *partition32c3.bin* file that outlines the flash memory structure. Due to
the size of the firmware we are using a custom partition setup.
Esptool
=======
* **firmware32s2.bin**
This is the release build for an ESP32s2-mini variant. When flashing an ESP32 you also need the *partition32s2.bin* file that outlines the flash memory structure. Due to
the size of the firmware we are using a custom partition setup.
Esptool (esp8266)
=================
The other option for flashing esp8266 device is via the official esptool. Documentation can be found
here; `esptool home page <https://docs.espressif.com/projects/esptool/en/latest/esp32/>`_
@ -61,8 +61,8 @@ If there are issues you can try do erase the flash first using this command;
``esptool.py --port COM4 erase_flash``
iSpindel
========
iSpindel (esp8266)
==================
If you already have the device flashed with iSpindel firmware you can go into the configuration mode where you will find
an option for updating firmware. The option is under the maintenance menu.
@ -101,9 +101,21 @@ To check output from the device (logs) there are several tools out there. I foun
Just select a baud rate of 115200, 8N1.
.. image:: images/serial.png
:width: 800
:width: 600
:alt: Serial output
On the build for esp32c3 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:
@ -130,7 +142,7 @@ successful then it will be used as primary. *The second wifi setting is optional
.. image:: images/wifi.png
:width: 200
:width: 300
:alt: Wifi page

View File

@ -3,6 +3,23 @@
Releases
########
v1.2.0 - beta1
==============
Features
++++++++
* Added support for the ESP32 C3 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
++++++++++++++++
* 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.
v1.1.1
======
* BUG: The text before the first variable was missed in the conversion of a format template.

4
docs/_static/check-solid.svg vendored Normal file
View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-check" width="44" height="44" viewBox="0 0 24 24" stroke-width="2" stroke="#22863a" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<path d="M5 12l5 5l10 -10" />
</svg>

After

Width:  |  Height:  |  Size: 313 B

7
docs/_static/clipboard.min.js vendored Normal file

File diff suppressed because one or more lines are too long

5
docs/_static/copy-button.svg vendored Normal file
View File

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-copy" width="44" height="44" viewBox="0 0 24 24" stroke-width="1.5" stroke="#000000" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<rect x="8" y="8" width="12" height="12" rx="2" />
<path d="M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2" />
</svg>

After

Width:  |  Height:  |  Size: 411 B

93
docs/_static/copybutton.css vendored Normal file
View File

@ -0,0 +1,93 @@
/* Copy buttons */
button.copybtn {
position: absolute;
display: flex;
top: .3em;
right: .3em;
width: 1.7em;
height: 1.7em;
opacity: 0;
transition: opacity 0.3s, border .3s, background-color .3s;
user-select: none;
padding: 0;
border: none;
outline: none;
border-radius: 0.4em;
/* The colors that GitHub uses */
border: #1b1f2426 1px solid;
background-color: #f6f8fa;
color: #57606a;
}
button.copybtn.success {
border-color: #22863a;
color: #22863a;
}
button.copybtn svg {
stroke: currentColor;
width: 1.5em;
height: 1.5em;
padding: 0.1em;
}
div.highlight {
position: relative;
}
.highlight:hover button.copybtn {
opacity: 1;
}
.highlight button.copybtn:hover {
background-color: rgb(235, 235, 235);
}
.highlight button.copybtn:active {
background-color: rgb(187, 187, 187);
}
/**
* A minimal CSS-only tooltip copied from:
* https://codepen.io/mildrenben/pen/rVBrpK
*
* To use, write HTML like the following:
*
* <p class="o-tooltip--left" data-tooltip="Hey">Short</p>
*/
.o-tooltip--left {
position: relative;
}
.o-tooltip--left:after {
opacity: 0;
visibility: hidden;
position: absolute;
content: attr(data-tooltip);
padding: .2em;
font-size: .8em;
left: -.2em;
background: grey;
color: white;
white-space: nowrap;
z-index: 2;
border-radius: 2px;
transform: translateX(-102%) translateY(0);
transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1);
}
.o-tooltip--left:hover:after {
display: block;
opacity: 1;
visibility: visible;
transform: translateX(-100%) translateY(0);
transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1);
transition-delay: .5s;
}
/* By default the copy button shouldn't show up when printing a page */
@media print {
button.copybtn {
display: none;
}
}

220
docs/_static/copybutton.js vendored Normal file
View File

@ -0,0 +1,220 @@
// Localization support
const messages = {
'en': {
'copy': 'Copy',
'copy_to_clipboard': 'Copy to clipboard',
'copy_success': 'Copied!',
'copy_failure': 'Failed to copy',
},
'es' : {
'copy': 'Copiar',
'copy_to_clipboard': 'Copiar al portapapeles',
'copy_success': '¡Copiado!',
'copy_failure': 'Error al copiar',
},
'de' : {
'copy': 'Kopieren',
'copy_to_clipboard': 'In die Zwischenablage kopieren',
'copy_success': 'Kopiert!',
'copy_failure': 'Fehler beim Kopieren',
},
'fr' : {
'copy': 'Copier',
'copy_to_clipboard': 'Copié dans le presse-papier',
'copy_success': 'Copié !',
'copy_failure': 'Échec de la copie',
},
'ru': {
'copy': 'Скопировать',
'copy_to_clipboard': 'Скопировать в буфер',
'copy_success': 'Скопировано!',
'copy_failure': 'Не удалось скопировать',
},
'zh-CN': {
'copy': '复制',
'copy_to_clipboard': '复制到剪贴板',
'copy_success': '复制成功!',
'copy_failure': '复制失败',
},
'it' : {
'copy': 'Copiare',
'copy_to_clipboard': 'Copiato negli appunti',
'copy_success': 'Copiato!',
'copy_failure': 'Errore durante la copia',
}
}
let locale = 'en'
if( document.documentElement.lang !== undefined
&& messages[document.documentElement.lang] !== undefined ) {
locale = document.documentElement.lang
}
let doc_url_root = DOCUMENTATION_OPTIONS.URL_ROOT;
if (doc_url_root == '#') {
doc_url_root = '';
}
/**
* SVG files for our copy buttons
*/
let iconCheck = `<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-check" width="44" height="44" viewBox="0 0 24 24" stroke-width="2" stroke="#22863a" fill="none" stroke-linecap="round" stroke-linejoin="round">
<title>${messages[locale]['copy_success']}</title>
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<path d="M5 12l5 5l10 -10" />
</svg>`
// If the user specified their own SVG use that, otherwise use the default
let iconCopy = ``;
if (!iconCopy) {
iconCopy = `<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-copy" width="44" height="44" viewBox="0 0 24 24" stroke-width="1.5" stroke="#000000" fill="none" stroke-linecap="round" stroke-linejoin="round">
<title>${messages[locale]['copy_to_clipboard']}</title>
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<rect x="8" y="8" width="12" height="12" rx="2" />
<path d="M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2" />
</svg>`
}
/**
* Set up copy/paste for code blocks
*/
const runWhenDOMLoaded = cb => {
if (document.readyState != 'loading') {
cb()
} else if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', cb)
} else {
document.attachEvent('onreadystatechange', function() {
if (document.readyState == 'complete') cb()
})
}
}
const codeCellId = index => `codecell${index}`
// Clears selected text since ClipboardJS will select the text when copying
const clearSelection = () => {
if (window.getSelection) {
window.getSelection().removeAllRanges()
} else if (document.selection) {
document.selection.empty()
}
}
// Changes tooltip text for two seconds, then changes it back
const temporarilyChangeTooltip = (el, oldText, newText) => {
el.setAttribute('data-tooltip', newText)
el.classList.add('success')
setTimeout(() => el.setAttribute('data-tooltip', oldText), 2000)
setTimeout(() => el.classList.remove('success'), 2000)
}
// Changes the copy button icon for two seconds, then changes it back
const temporarilyChangeIcon = (el) => {
el.innerHTML = iconCheck;
setTimeout(() => {el.innerHTML = iconCopy}, 2000)
}
const addCopyButtonToCodeCells = () => {
// If ClipboardJS hasn't loaded, wait a bit and try again. This
// happens because we load ClipboardJS asynchronously.
if (window.ClipboardJS === undefined) {
setTimeout(addCopyButtonToCodeCells, 250)
return
}
// Add copybuttons to all of our code cells
const codeCells = document.querySelectorAll('div.highlight pre')
codeCells.forEach((codeCell, index) => {
const id = codeCellId(index)
codeCell.setAttribute('id', id)
const clipboardButton = id =>
`<button class="copybtn o-tooltip--left" data-tooltip="${messages[locale]['copy']}" data-clipboard-target="#${id}">
${iconCopy}
</button>`
codeCell.insertAdjacentHTML('afterend', clipboardButton(id))
})
function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
// Callback when a copy button is clicked. Will be passed the node that was clicked
// should then grab the text and replace pieces of text that shouldn't be used in output
function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") {
var regexp;
var match;
// Do we check for line continuation characters and "HERE-documents"?
var useLineCont = !!lineContinuationChar
var useHereDoc = !!hereDocDelim
// create regexp to capture prompt and remaining line
if (isRegexp) {
regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)')
} else {
regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)')
}
const outputLines = [];
var promptFound = false;
var gotLineCont = false;
var gotHereDoc = false;
const lineGotPrompt = [];
for (const line of textContent.split('\n')) {
match = line.match(regexp)
if (match || gotLineCont || gotHereDoc) {
promptFound = regexp.test(line)
lineGotPrompt.push(promptFound)
if (removePrompts && promptFound) {
outputLines.push(match[2])
} else {
outputLines.push(line)
}
gotLineCont = line.endsWith(lineContinuationChar) & useLineCont
if (line.includes(hereDocDelim) & useHereDoc)
gotHereDoc = !gotHereDoc
} else if (!onlyCopyPromptLines) {
outputLines.push(line)
} else if (copyEmptyLines && line.trim() === '') {
outputLines.push(line)
}
}
// If no lines with the prompt were found then just use original lines
if (lineGotPrompt.some(v => v === true)) {
textContent = outputLines.join('\n');
}
// Remove a trailing newline to avoid auto-running when pasting
if (textContent.endsWith("\n")) {
textContent = textContent.slice(0, -1)
}
return textContent
}
var copyTargetText = (trigger) => {
var target = document.querySelector(trigger.attributes['data-clipboard-target'].value);
return formatCopyText(target.innerText, '', false, true, true, true, '', '')
}
// Initialize with a callback so we can modify the text before copy
const clipboard = new ClipboardJS('.copybtn', {text: copyTargetText})
// Update UI with error/success messages
clipboard.on('success', event => {
clearSelection()
temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_success'])
temporarilyChangeIcon(event.trigger)
})
clipboard.on('error', event => {
temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_failure'])
})
}
runWhenDOMLoaded(addCopyButtonToCodeCells)

58
docs/_static/copybutton_funcs.js vendored Normal file
View File

@ -0,0 +1,58 @@
function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
// Callback when a copy button is clicked. Will be passed the node that was clicked
// should then grab the text and replace pieces of text that shouldn't be used in output
export function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") {
var regexp;
var match;
// Do we check for line continuation characters and "HERE-documents"?
var useLineCont = !!lineContinuationChar
var useHereDoc = !!hereDocDelim
// create regexp to capture prompt and remaining line
if (isRegexp) {
regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)')
} else {
regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)')
}
const outputLines = [];
var promptFound = false;
var gotLineCont = false;
var gotHereDoc = false;
const lineGotPrompt = [];
for (const line of textContent.split('\n')) {
match = line.match(regexp)
if (match || gotLineCont || gotHereDoc) {
promptFound = regexp.test(line)
lineGotPrompt.push(promptFound)
if (removePrompts && promptFound) {
outputLines.push(match[2])
} else {
outputLines.push(line)
}
gotLineCont = line.endsWith(lineContinuationChar) & useLineCont
if (line.includes(hereDocDelim) & useHereDoc)
gotHereDoc = !gotHereDoc
} else if (!onlyCopyPromptLines) {
outputLines.push(line)
} else if (copyEmptyLines && line.trim() === '') {
outputLines.push(line)
}
}
// If no lines with the prompt were found then just use original lines
if (lineGotPrompt.some(v => v === true)) {
textContent = outputLines.join('\n');
}
// Remove a trailing newline to avoid auto-running when pasting
if (textContent.endsWith("\n")) {
textContent = textContent.slice(0, -1)
}
return textContent
}

View File

@ -1,6 +1,6 @@
var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
VERSION: '1.1.0',
VERSION: '1.2.0',
LANGUAGE: 'None',
COLLAPSE_INDEX: false,
BUILDER: 'html',

View File

@ -5,9 +5,10 @@
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="REST API" href="api.html" /><link rel="prev" title="Service Integration" href="services.html" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/>
<title>Advanced Configuration - GravityMon 1.1.0 documentation</title>
<title>Advanced Configuration - GravityMon 1.2.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
@ -122,7 +123,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 1.1.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 1.2.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -145,7 +146,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 1.1.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 1.2.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -392,5 +393,7 @@ The save button will save the current formula and reload the data from the devic
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/scripts/furo.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
</body>
</html>

View File

@ -5,9 +5,10 @@
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Data Formats" href="data.html" /><link rel="prev" title="Advanced Configuration" href="advanced.html" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/>
<title>REST API - GravityMon 1.1.0 documentation</title>
<title>REST API - GravityMon 1.2.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
@ -122,7 +123,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 1.1.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 1.2.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -145,7 +146,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 1.1.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 1.2.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -273,7 +274,7 @@
<p>Retrieve the current device status via an HTTP GET command. Payload is in JSON format.</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">temp-format</span></code> can be either <code class="docutils literal notranslate"><span class="pre">C</span></code> or <code class="docutils literal notranslate"><span class="pre">F</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">platform</span></code> can be either <code class="docutils literal notranslate"><span class="pre">esp8266</span></code> or <code class="docutils literal notranslate"><span class="pre">esp32</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">platform</span></code> can be either <code class="docutils literal notranslate"><span class="pre">esp8266</span></code>, <code class="docutils literal notranslate"><span class="pre">esp32c3</span></code>, <code class="docutils literal notranslate"><span class="pre">esp32s2</span></code> or <code class="docutils literal notranslate"><span class="pre">esp32</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">temp-c</span></code> will be set to -273 C if there is no temp sensor</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">angle</span></code> will be set to 0 if no valid angle is found and -1 if there is no gyro</p></li>
</ul>
@ -689,5 +690,7 @@ present or the API call will fail. You only need to include the parameters you w
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/scripts/furo.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
</body>
</html>

View File

@ -5,9 +5,10 @@
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Contributing" href="contributing.html" /><link rel="prev" title="Data Formats" href="data.html" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/>
<title>Compiling the software - GravityMon 1.1.0 documentation</title>
<title>Compiling the software - GravityMon 1.2.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
@ -122,7 +123,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 1.1.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 1.2.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -145,7 +146,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 1.1.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 1.2.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -224,16 +225,10 @@
<ul class="simple">
<li><p>gravity-debug; Maximum logging for trouble shooting, deep sleep is disabled.</p></li>
<li><p>gravity-release; Standard release</p></li>
<li><p>gravity-perf; Standard release but contains code for measuring performance.</p></li>
<li><p>gravity32-release: Version for ESP32.</p></li>
<li><p>gravity32-perf: Version for ESP32 but contains code for measuring performance.</p></li>
<li><p>gravity32-release: Version for ESP32 mini.</p></li>
<li><p>gravity32-c3-release: Version for ESP32 C3 mini.</p></li>
<li><p>gravity32-s2-release: Version for ESP32 S2 mini.</p></li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>There is an experimental ESP32 target but since platformio only supports SDK 1.0.6 and the WIFI connection is really slow compared to ESP8266,
so the recommendation is to wait for support on 2.0.x branch. With the tested version an wifi connection takes 3-8s on a ESP32 compared
to 0.5s on an ESP8266. There is also a bug in OneWire connected to ESP32 that has not been fixed in the main repository yet.</p>
</div>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>The debug target can be unstable and crash the device under certain circumstanses. Excessive logging to the serial port can cause corruption and crashes.
@ -314,16 +309,13 @@ So only enable enough debugging to troubleshoot your changes.</p>
<tr class="row-odd"><td><p>USE_LITTLEFS</p></td>
<td><p>Use the new filesystem in Ardurino</p></td>
</tr>
<tr class="row-even"><td><p>EMBED_HTML</p></td>
<td><p>Html files are included in code, if not defined they are served from the file system.</p></td>
</tr>
<tr class="row-odd"><td><p>USER_SSID</p></td>
<tr class="row-even"><td><p>USER_SSID</p></td>
<td><p>If defined the device will always use this SSID</p></td>
</tr>
<tr class="row-even"><td><p>USER_SSID_PWD</p></td>
<tr class="row-odd"><td><p>USER_SSID_PWD</p></td>
<td><p>Password to the SSID</p></td>
</tr>
<tr class="row-odd"><td><p>CFG_APPVER</p></td>
<tr class="row-even"><td><p>CFG_APPVER</p></td>
<td><p>Defines the version of the compiled software</p></td>
</tr>
</tbody>
@ -400,5 +392,7 @@ So only enable enough debugging to troubleshoot your changes.</p>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/scripts/furo.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
</body>
</html>

View File

@ -5,9 +5,10 @@
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Troubleshooting" href="troubleshooting.html" /><link rel="prev" title="Installation" href="installation.html" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/>
<title>Configuration - GravityMon 1.1.0 documentation</title>
<title>Configuration - GravityMon 1.2.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
@ -122,7 +123,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 1.1.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 1.2.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -145,7 +146,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 1.1.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 1.2.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -556,5 +557,7 @@ accept data every 15 min.</p>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/scripts/furo.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
</body>
</html>

View File

@ -5,9 +5,10 @@
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Hardware" href="hardware.html" /><link rel="prev" title="Compiling the software" href="compiling.html" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/>
<title>Contributing - GravityMon 1.1.0 documentation</title>
<title>Contributing - GravityMon 1.2.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
@ -122,7 +123,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 1.1.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 1.2.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -145,7 +146,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 1.1.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 1.2.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -289,5 +290,7 @@ that this approach works fine.</p>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/scripts/furo.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
</body>
</html>

View File

@ -5,9 +5,10 @@
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Compiling the software" href="compiling.html" /><link rel="prev" title="REST API" href="api.html" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/>
<title>Data Formats - GravityMon 1.1.0 documentation</title>
<title>Data Formats - GravityMon 1.2.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
@ -122,7 +123,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 1.1.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 1.2.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -145,7 +146,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 1.1.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 1.2.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -383,5 +384,7 @@ they can be uploaded manually afterwards.</p>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/scripts/furo.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
</body>
</html>

View File

@ -5,9 +5,10 @@
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Service Integration" href="services.html" /><link rel="prev" title="Q &amp; A" href="q_and_a.html" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/>
<title>Create formula - GravityMon 1.1.0 documentation</title>
<title>Create formula - GravityMon 1.2.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
@ -122,7 +123,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 1.1.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 1.2.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -145,7 +146,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 1.1.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 1.2.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -263,5 +264,7 @@ use the graph on the calibration page to identify angles that is probably not co
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/scripts/furo.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
</body>
</html>

View File

@ -5,9 +5,10 @@
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Installation" href="installation.html" /><link rel="prev" title="Releases" href="releases.html" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/>
<title>Functionality - GravityMon 1.1.0 documentation</title>
<title>Functionality - GravityMon 1.2.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
@ -122,7 +123,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 1.1.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 1.2.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -145,7 +146,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 1.1.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 1.2.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -412,5 +413,7 @@ temperature would reduce the total runtime with 25%. Sending data over http take
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/scripts/furo.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
</body>
</html>

View File

@ -4,9 +4,10 @@
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="#" /><link rel="search" title="Search" href="search.html" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/><title>Index - GravityMon 1.1.0 documentation</title>
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/><title>Index - GravityMon 1.2.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
@ -121,7 +122,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 1.1.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 1.2.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -144,7 +145,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 1.1.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 1.2.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -230,5 +231,7 @@
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/scripts/furo.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
</body>
</html>

View File

@ -5,9 +5,10 @@
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Licence" href="license.html" /><link rel="prev" title="Contributing" href="contributing.html" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/>
<title>Hardware - GravityMon 1.1.0 documentation</title>
<title>Hardware - GravityMon 1.2.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
@ -122,7 +123,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 1.1.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 1.2.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -145,7 +146,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 1.1.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 1.2.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -199,32 +200,65 @@
<article role="main">
<div class="section" id="hardware">
<span id="id1"></span><h1>Hardware<a class="headerlink" href="#hardware" title="Permalink to this headline"></a></h1>
<p>There are lots of resources out there on how to build the hardware for an iSpindle so I will not go into details on that part. Here are two of my builds using the iSpindle PCB v4.</p>
<a class="reference internal image-reference" href="_images/ispindel.jpg"><img alt="Builds of iSpindel" src="_images/ispindel.jpg" style="width: 500px;"/></a>
<p>Its possible to use this PCB and mount an ESP32 on top of that. It must be an pin compatible ESP32 and the one I used was called <em>ESP32 d1 mini</em>. Since this is the same width as the PCB you need to
mount it really close to the PCB in order for it to fit in the PET tube/container. I also had to smooth the edge of the ESP32 in order for it to fit.</p>
<p>I would suggest that you try how it fits into the PET tube before soldering it to the PCB. Make sure that the battery is attached since this will be a really tight fit.</p>
<p>You also need to desolder (remove) the RED ON LED from the ESP32 or the battery power will be reduced a lot.</p>
<p>Final thing is to add a resistor between A0 (Analog PIN) and ground of 470k. The reason is that the esp8266 has a build in resistor which
the esp32 does not have. So in order to get a valid voltage (less than 3.2V) on the A0 pin this is needed. Once the modification is done you might
need to adjust the voltage factor so the battery reading is correct.</p>
<a class="reference internal image-reference" href="_images/esp32.jpg"><img alt="Mounting esp32" src="_images/esp32.jpg" style="width: 500px;"/></a>
<div class="section" id="ispindle-based-on-esp8266">
<h2>iSpindle based on esp8266<a class="headerlink" href="#ispindle-based-on-esp8266" title="Permalink to this headline"></a></h2>
<p>There are lots of resouces out there on how to build the hardware for an iSpindle so I will not go into details on that part. I typically use one of the
excellent pcb boards that, for example the iSpindel PCB v4.0 from Cherry Philip. Here is one of my standard builds using an esp8266.</p>
<a class="reference internal image-reference" href="_images/ispindel_esp8266.jpg"><img alt="iSpindle esp8266" src="_images/ispindel_esp8266.jpg" style="width: 500px;"/></a>
<div class="section" id="schema-for-esp8266-build">
<h2>Schema for esp8266 build<a class="headerlink" href="#schema-for-esp8266-build" title="Permalink to this headline"></a></h2>
<h3>Schema for esp8266 build<a class="headerlink" href="#schema-for-esp8266-build" title="Permalink to this headline"></a></h3>
<a class="reference internal image-reference" href="_images/schema_esp8266.png"><img alt="Schema esp8266" src="_images/schema_esp8266.png" style="width: 700px;"/></a>
</div>
<div class="section" id="schema-for-esp32-build">
<h2>Schema for esp32 build<a class="headerlink" href="#schema-for-esp32-build" title="Permalink to this headline"></a></h2>
</div>
<div class="section" id="ispindle-based-on-esp32">
<h2>iSpindle based on esp32<a class="headerlink" href="#ispindle-based-on-esp32" title="Permalink to this headline"></a></h2>
<p>Ive experimented with porting my software version to esp32 and this is a selection of options i have been testing.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Work to support esp32s2 is still ongoing, ESP32-mini and ESP32c3-mini is confirmed to be working. However I would recommend the C3 variant.</p>
</div>
<a class="reference internal image-reference" href="_images/esp32_hardware.jpg"><img alt="iSpindle esp32 hardware options" src="_images/esp32_hardware.jpg" style="width: 500px;"/></a>
<ul class="simple">
<li><p>esp32 mini, this was the first board i tried which is a smaller form factor of the first generetion esp32 with 2 cores. Slow on connecting to wifi is the main downside.</p></li>
<li><p>esp32c3 mini, a newer version based on the latest risc v7 architecture, is seen as the replacement for the esp8266 with bluetooth support.</p></li>
<li><p>esp32s2 mini, similar to the c3 board but without bluetooth support.</p></li>
</ul>
<p>Its possible to use this PCB and mount an ESP32 mini on top of that (c3 and s2 are prefered). The esp32 mini is a larger formfactor and can be hard to fit into the tube.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This schema assumes that an ESP32 D1 Mini (pin compatible with ESP8266 D1 Mini is used)
The ESP32 has two rows of pins but only the inner row is used. The main difference is the added resistor R3 so we
get a voltage divider for measuring battery. The ESP8266 has a built in resistor thats not visible on the schema.</p>
<p>You need to add a resistor between A0 (Analog PIN) and ground of 470k. The reason is that the esp8266 has a build in resistor for a voltage divider
which the esp32 does not have. So in order to get a valid voltage (less than 3.2V) on the A0 pin this is needed. Once the modification is done you might
need to adjust the voltage factor so the battery reading is correct.</p>
</div>
<div class="section" id="esp32c3-mini">
<h3>ESP32c3 mini<a class="headerlink" href="#esp32c3-mini" title="Permalink to this headline"></a></h3>
<p>This is model is now fully supported by gravitymon.</p>
<a class="reference internal image-reference" href="_images/ispindel_esp32c3.jpg"><img alt="Esp32c3 mini build" src="_images/ispindel_esp32c3.jpg" style="width: 500px;"/></a>
<p>Here is an image of where I added the resistor for the voltage divider.</p>
<a class="reference internal image-reference" href="_images/esp32_res.jpg"><img alt="Esp32c3 adding resistor as voltage dividier." src="_images/esp32_res.jpg" style="width: 500px;"/></a>
</div>
<div class="section" id="esp32s2-mini">
<h3>ESP32s2 mini<a class="headerlink" href="#esp32s2-mini" title="Permalink to this headline"></a></h3>
<p>Work in progress…</p>
</div>
<div class="section" id="esp32-d1-mini">
<h3>ESP32 d1 mini<a class="headerlink" href="#esp32-d1-mini" title="Permalink to this headline"></a></h3>
<p>I would suggest that you try how it fits into the PET tube before soldering it to the PCB. Make sure that the battery is attached since this will be a really tight fit.</p>
<a class="reference internal image-reference" href="_images/ispindel_esp32.jpg"><img alt="Esp32 mini build" src="_images/ispindel_esp32.jpg" style="width: 500px;"/></a>
</div>
<div class="section" id="schema-for-esp32-build">
<h3>Schema for esp32 build<a class="headerlink" href="#schema-for-esp32-build" title="Permalink to this headline"></a></h3>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This schema assumes that an ESP32 D1 Mini (pin compatible with ESP8266 D1 Mini is used). The ESP32 has two rows of pins but
only the inner row is used. The main difference is the added resistor R3 so we get a voltage divider for measuring battery.
The ESP8266 has a built in resistor thats not visible on the schema and this acts as a voltage divider.</p>
</div>
<a class="reference internal image-reference" href="_images/schema_esp32.png"><img alt="Schema esp32" src="_images/schema_esp32.png" style="width: 700px;"/></a>
</div>
<div class="section" id="modifying-with-reed-switch">
<h2>Modifying with reed switch<a class="headerlink" href="#modifying-with-reed-switch" title="Permalink to this headline"></a></h2>
</div>
<div class="section" id="adding-a-reed-magnetic-reset-switch">
<h2>Adding a reed (magnetic) reset switch<a class="headerlink" href="#adding-a-reed-magnetic-reset-switch" title="Permalink to this headline"></a></h2>
<p>A reed switch is a switch that reacts to magnetic fields. The ones I have tested are normally open and close in proximity to
a magnet.</p>
<a class="reference internal image-reference" href="_images/reed.jpg"><img alt="Reed switch" src="_images/reed.jpg" style="width: 400px;"/></a>
@ -283,9 +317,18 @@ I mounted the iSPINDLE PCB v4.0 just under the cap. The lower red circle shows t
<div class="toc-tree">
<ul>
<li><a class="reference internal" href="#">Hardware</a><ul>
<li><a class="reference internal" href="#ispindle-based-on-esp8266">iSpindle based on esp8266</a><ul>
<li><a class="reference internal" href="#schema-for-esp8266-build">Schema for esp8266 build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#ispindle-based-on-esp32">iSpindle based on esp32</a><ul>
<li><a class="reference internal" href="#esp32c3-mini">ESP32c3 mini</a></li>
<li><a class="reference internal" href="#esp32s2-mini">ESP32s2 mini</a></li>
<li><a class="reference internal" href="#esp32-d1-mini">ESP32 d1 mini</a></li>
<li><a class="reference internal" href="#schema-for-esp32-build">Schema for esp32 build</a></li>
<li><a class="reference internal" href="#modifying-with-reed-switch">Modifying with reed switch</a></li>
</ul>
</li>
<li><a class="reference internal" href="#adding-a-reed-magnetic-reset-switch">Adding a reed (magnetic) reset switch</a></li>
</ul>
</li>
</ul>
@ -302,5 +345,7 @@ I mounted the iSPINDLE PCB v4.0 just under the cap. The lower red circle shows t
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/scripts/furo.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
</body>
</html>

View File

@ -5,9 +5,10 @@
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Getting started" href="intro.html" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/>
<title>GravityMon 1.1.0 documentation</title>
<title>GravityMon 1.2.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
@ -122,7 +123,7 @@
</label>
</div>
<div class="header-center">
<a href="#"><div class="brand">GravityMon 1.1.0 documentation</div></a>
<a href="#"><div class="brand">GravityMon 1.2.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -145,7 +146,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="#">
<span class="sidebar-brand-text">GravityMon 1.1.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 1.2.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -201,7 +202,7 @@
<h1>Welcome to GravityMons documentation!<a class="headerlink" href="#welcome-to-gravitymon-s-documentation" title="Permalink to this headline"></a></h1>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This documentation reflects <strong>v1.1</strong>. Last updated 2022-08-14</p>
<p>This documentation reflects <strong>v1.2 - beta 1</strong>. Last updated 2022-10-15</p>
</div>
<div class="section" id="user-interface-overview">
<h2>User interface overview<a class="headerlink" href="#user-interface-overview" title="Permalink to this headline"></a></h2>
@ -211,6 +212,7 @@
<div class="section" id="main-features">
<span id="id1"></span><h2>Main features<a class="headerlink" href="#main-features" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Support either an ESP8266-d1-mini, ESP32-mini or ESP32C3-mini board (see <a class="reference internal" href="hardware.html#hardware"><span class="std std-ref">Hardware</span></a>)</p></li>
<li><p>Operates in two modes gravity monitoring and configuration mode</p></li>
<li><p>Gravity mode is comparable to how the iSpindle works when collecting data</p></li>
<li><p>Configuration mode has a modern HTML5 based web UI. No need to start the access point to change settings</p></li>
@ -338,6 +340,7 @@ the following libraries and without these this would have been much more difficu
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a><ul>
<li class="toctree-l2"><a class="reference internal" href="releases.html#v1-2-0-beta1">v1.2.0 - beta1</a></li>
<li class="toctree-l2"><a class="reference internal" href="releases.html#v1-1-1">v1.1.1</a></li>
<li class="toctree-l2"><a class="reference internal" href="releases.html#v1-1-0">v1.1.0</a></li>
<li class="toctree-l2"><a class="reference internal" href="releases.html#v1-0-0">v1.0.0</a></li>
@ -358,8 +361,8 @@ the following libraries and without these this would have been much more difficu
</li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a><ul>
<li class="toctree-l2"><a class="reference internal" href="installation.html#brewflasher">Brewflasher</a></li>
<li class="toctree-l2"><a class="reference internal" href="installation.html#esptool">Esptool</a></li>
<li class="toctree-l2"><a class="reference internal" href="installation.html#ispindel">iSpindel</a></li>
<li class="toctree-l2"><a class="reference internal" href="installation.html#esptool-esp8266">Esptool (esp8266)</a></li>
<li class="toctree-l2"><a class="reference internal" href="installation.html#ispindel-esp8266">iSpindel (esp8266)</a></li>
<li class="toctree-l2"><a class="reference internal" href="installation.html#updating-firmware">Updating firmware</a></li>
<li class="toctree-l2"><a class="reference internal" href="installation.html#serial-monitoring">Serial Monitoring</a></li>
<li class="toctree-l2"><a class="reference internal" href="installation.html#configuring-wifi">Configuring WIFI</a></li>
@ -440,9 +443,9 @@ the following libraries and without these this would have been much more difficu
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="hardware.html">Hardware</a><ul>
<li class="toctree-l2"><a class="reference internal" href="hardware.html#schema-for-esp8266-build">Schema for esp8266 build</a></li>
<li class="toctree-l2"><a class="reference internal" href="hardware.html#schema-for-esp32-build">Schema for esp32 build</a></li>
<li class="toctree-l2"><a class="reference internal" href="hardware.html#modifying-with-reed-switch">Modifying with reed switch</a></li>
<li class="toctree-l2"><a class="reference internal" href="hardware.html#ispindle-based-on-esp8266">iSpindle based on esp8266</a></li>
<li class="toctree-l2"><a class="reference internal" href="hardware.html#ispindle-based-on-esp32">iSpindle based on esp32</a></li>
<li class="toctree-l2"><a class="reference internal" href="hardware.html#adding-a-reed-magnetic-reset-switch">Adding a reed (magnetic) reset switch</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
@ -522,5 +525,7 @@ the following libraries and without these this would have been much more difficu
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/scripts/furo.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
</body>
</html>

View File

@ -5,9 +5,10 @@
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Configuration" href="configuration.html" /><link rel="prev" title="Functionality" href="functionality.html" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/>
<title>Installation - GravityMon 1.1.0 documentation</title>
<title>Installation - GravityMon 1.2.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
@ -122,7 +123,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 1.1.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 1.2.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -145,7 +146,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 1.1.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 1.2.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -213,28 +214,28 @@ available here <a class="reference external" href="https://web.brewflasher.com/"
<a class="reference internal image-reference" href="_images/brewflasher.png"><img alt="Serial output" src="_images/brewflasher.png" style="width: 600px;"/></a>
<div class="section" id="binaries">
<h3>Binaries<a class="headerlink" href="#binaries" title="Permalink to this headline"></a></h3>
<p>In the /bin directory you will find 3 different firmware builds;</p>
<p>In the /bin directory you will find 4 different firmware builds;</p>
<ul>
<li><p><strong>firmware.bin</strong></p>
<p>This is the standard release build (preferred version)</p>
</li>
<li><p><strong>firmware-perf.bin</strong></p>
<p>This version also submits performance data to an influx database with detailed execution times.</p>
</li>
<li><p><strong>firmware32.bin</strong></p>
<p>This is the standard release build for an ESP32 variant. When flashing an ESP32 you also need the <strong>partition32.bin</strong> file that outlines the flash memory structure. Due to
<p>This is the release build for an ESP32-d1-mini variant. When flashing an ESP32 you also need the <em>partition32.bin</em> file that outlines the flash memory structure. Due to
the size of the firmware we are using a custom partition setup.</p>
</li>
<li><p><strong>firmware32c3.bin</strong></p>
<p>This is the release build for an ESP32c3-mini variant. When flashing an ESP32 you also need the <em>partition32c3.bin</em> file that outlines the flash memory structure. Due to
the size of the firmware we are using a custom partition setup.</p>
</li>
<li><p><strong>firmware32s2.bin</strong></p>
<p>This is the release build for an ESP32s2-mini variant. When flashing an ESP32 you also need the <em>partition32s2.bin</em> file that outlines the flash memory structure. Due to
the size of the firmware we are using a custom partition setup.</p>
</li>
</ul>
<p>In these versions all the html files are embedded in the binaries. The file system is currently only used for storing
the configuration file.</p>
<p>If the software becomes so large the html files can be moved to the file system, but this is not enabled by
default (see compiling for details). This approach makes installation much easier and ensure that html files
and code is in sync.</p>
</div>
</div>
<div class="section" id="esptool">
<h2>Esptool<a class="headerlink" href="#esptool" title="Permalink to this headline"></a></h2>
<div class="section" id="esptool-esp8266">
<h2>Esptool (esp8266)<a class="headerlink" href="#esptool-esp8266" title="Permalink to this headline"></a></h2>
<p>The other option for flashing esp8266 device is via the official esptool. Documentation can be found
here; <a class="reference external" href="https://docs.espressif.com/projects/esptool/en/latest/esp32/">esptool home page</a></p>
<p>Windows 10 should install a driver for the USB -&gt; Serial automatically when you connect a esp8266.</p>
@ -243,8 +244,8 @@ here; <a class="reference external" href="https://docs.espressif.com/projects/es
<p>If there are issues you can try do erase the flash first using this command;</p>
<p><code class="docutils literal notranslate"><span class="pre">esptool.py</span> <span class="pre">--port</span> <span class="pre">COM4</span> <span class="pre">erase_flash</span></code></p>
</div>
<div class="section" id="ispindel">
<h2>iSpindel<a class="headerlink" href="#ispindel" title="Permalink to this headline"></a></h2>
<div class="section" id="ispindel-esp8266">
<h2>iSpindel (esp8266)<a class="headerlink" href="#ispindel-esp8266" title="Permalink to this headline"></a></h2>
<p>If you already have the device flashed with iSpindel firmware you can go into the configuration mode where you will find
an option for updating firmware. The option is under the maintenance menu.</p>
<p>Select the esp8266 version of the firmware called firmware.bin and press upload.</p>
@ -270,7 +271,12 @@ browser and select the firmware.bin file that corresponds to the version you wan
<span id="id3"></span><h2>Serial Monitoring<a class="headerlink" href="#serial-monitoring" title="Permalink to this headline"></a></h2>
<p>To check output from the device (logs) there are several tools out there. I found this simple tool in the Windows Store called <code class="docutils literal notranslate"><span class="pre">Serial</span> <span class="pre">Port</span> <span class="pre">Monitoring</span></code>.
Just select a baud rate of 115200, 8N1.</p>
<a class="reference internal image-reference" href="_images/serial.png"><img alt="Serial output" src="_images/serial.png" style="width: 800px;"/></a>
<a class="reference internal image-reference" href="_images/serial.png"><img alt="Serial output" src="_images/serial.png" style="width: 600px;"/></a>
<p>On the build for esp32c3 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.</p>
<p>You need a USB to TTL cable that you connect the TX, RX and GND pins. <strong>Dont connect the power pin</strong> if you are powering the device from USB or Battery.</p>
<a class="reference internal image-reference" href="_images/usb-ttl.jpg"><img alt="USB to TTL cable" src="_images/usb-ttl.jpg" style="width: 300px;"/></a>
<a class="reference internal image-reference" href="_images/serial_esp32c3.jpg"><img alt="Serial output ESP32c3" src="_images/serial_esp32c3.jpg" style="width: 300px;"/></a>
</div>
<div class="section" id="configuring-wifi">
<span id="setup-wifi"></span><h2>Configuring WIFI<a class="headerlink" href="#configuring-wifi" title="Permalink to this headline"></a></h2>
@ -288,7 +294,7 @@ in the future this is planned to be moved to the normal UI.</p>
</div>
<p>Under wifi settings you can define a primary and secondary wifi SSID. The secondary will be used in case the primary fails. If the secondary is
successful then it will be used as primary. <em>The second wifi setting is optional and not needed.</em></p>
<a class="reference internal image-reference" href="_images/wifi.png"><img alt="Wifi page" src="_images/wifi.png" style="width: 200px;"/></a>
<a class="reference internal image-reference" href="_images/wifi.png"><img alt="Wifi page" src="_images/wifi.png" style="width: 300px;"/></a>
</div>
<div class="section" id="finding-the-device-adress">
<span id="setup-ip"></span><h2>Finding the device adress<a class="headerlink" href="#finding-the-device-adress" title="Permalink to this headline"></a></h2>
@ -355,8 +361,8 @@ with finding the network name you can try the following:</p>
<li><a class="reference internal" href="#binaries">Binaries</a></li>
</ul>
</li>
<li><a class="reference internal" href="#esptool">Esptool</a></li>
<li><a class="reference internal" href="#ispindel">iSpindel</a></li>
<li><a class="reference internal" href="#esptool-esp8266">Esptool (esp8266)</a></li>
<li><a class="reference internal" href="#ispindel-esp8266">iSpindel (esp8266)</a></li>
<li><a class="reference internal" href="#updating-firmware">Updating firmware</a><ul>
<li><a class="reference internal" href="#ota-option">OTA Option</a></li>
<li><a class="reference internal" href="#manual-update">Manual update</a></li>
@ -381,5 +387,7 @@ with finding the network name you can try the following:</p>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/scripts/furo.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
</body>
</html>

View File

@ -5,9 +5,10 @@
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Releases" href="releases.html" /><link rel="prev" title="Welcome to GravityMons documentation!" href="index.html" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/>
<title>Getting started - GravityMon 1.1.0 documentation</title>
<title>Getting started - GravityMon 1.2.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
@ -122,7 +123,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 1.1.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 1.2.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -145,7 +146,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 1.1.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 1.2.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -333,5 +334,7 @@ Its recommended to attach the device to power when you have it in <cite>configur
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/scripts/furo.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
</body>
</html>

View File

@ -5,9 +5,10 @@
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="prev" title="Hardware" href="hardware.html" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/>
<title>Licence - GravityMon 1.1.0 documentation</title>
<title>Licence - GravityMon 1.2.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
@ -122,7 +123,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 1.1.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 1.2.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -145,7 +146,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 1.1.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 1.2.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -256,5 +257,7 @@ SOFTWARE.</p>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/scripts/furo.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
</body>
</html>

View File

@ -5,9 +5,10 @@
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Create formula" href="formula.html" /><link rel="prev" title="Troubleshooting" href="troubleshooting.html" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/>
<title>Q &amp; A - GravityMon 1.1.0 documentation</title>
<title>Q &amp; A - GravityMon 1.2.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
@ -122,7 +123,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 1.1.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 1.2.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -145,7 +146,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 1.1.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 1.2.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -311,5 +312,7 @@ device can access: <a class="reference external" href="https://code.jquery.com">
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/scripts/furo.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
</body>
</html>

View File

@ -5,9 +5,10 @@
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Functionality" href="functionality.html" /><link rel="prev" title="Getting started" href="intro.html" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/>
<title>Releases - GravityMon 1.1.0 documentation</title>
<title>Releases - GravityMon 1.2.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
@ -122,7 +123,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 1.1.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 1.2.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -145,7 +146,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 1.1.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 1.2.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -199,6 +200,29 @@
<article role="main">
<div class="section" id="releases">
<span id="id1"></span><h1>Releases<a class="headerlink" href="#releases" title="Permalink to this headline"></a></h1>
<div class="section" id="v1-2-0-beta1">
<h2>v1.2.0 - beta1<a class="headerlink" href="#v1-2-0-beta1" title="Permalink to this headline"></a></h2>
<div class="section" id="features">
<h3>Features<a class="headerlink" href="#features" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Added support for the ESP32 C3 mini board</p></li>
<li><p>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.</p></li>
</ul>
</div>
<div class="section" id="issues-adressed">
<h3>Issues adressed<a class="headerlink" href="#issues-adressed" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>BUG: The first portion of a format template was lost when doing conversion.</p></li>
</ul>
</div>
<div class="section" id="documentation">
<h3>Documentation<a class="headerlink" href="#documentation" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Updated hardware section with options for ESP32 boards</p></li>
<li><p>Updated installation instructions.</p></li>
</ul>
</div>
</div>
<div class="section" id="v1-1-1">
<h2>v1.1.1<a class="headerlink" href="#v1-1-1" title="Permalink to this headline"></a></h2>
<ul class="simple">
@ -207,8 +231,8 @@
</div>
<div class="section" id="v1-1-0">
<h2>v1.1.0<a class="headerlink" href="#v1-1-0" title="Permalink to this headline"></a></h2>
<div class="section" id="features">
<h3>Features<a class="headerlink" href="#features" title="Permalink to this headline"></a></h3>
<div class="section" id="id2">
<h3>Features<a class="headerlink" href="#id2" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Added information to error log about abnormal resets (for instance crashes) to detect and fix those</p></li>
<li><p>Changed storage mode so that the device will go into deep sleep until reset (sleep forever)</p></li>
@ -258,8 +282,8 @@
<li><p>User can now edit the voltage level that forces the device into config mode (device detects charging)</p></li>
</ul>
</div>
<div class="section" id="documentation">
<h3>Documentation<a class="headerlink" href="#documentation" title="Permalink to this headline"></a></h3>
<div class="section" id="id3">
<h3>Documentation<a class="headerlink" href="#id3" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Added documentation for Brewpiless as target</p></li>
<li><p>Added documentation for BVrewblox as target</p></li>
@ -283,8 +307,8 @@
</div>
<div class="section" id="v1-0-0">
<h2>v1.0.0<a class="headerlink" href="#v1-0-0" title="Permalink to this headline"></a></h2>
<div class="section" id="id2">
<h3>Documentation<a class="headerlink" href="#id2" title="Permalink to this headline"></a></h3>
<div class="section" id="id4">
<h3>Documentation<a class="headerlink" href="#id4" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Update documentation to match v1.0</p></li>
<li><p>Installation instructions updated on how to find the device after wifi has been configured.</p></li>
@ -293,8 +317,8 @@
<li><p>Added additional http error codes to troubleshooting documentation</p></li>
</ul>
</div>
<div class="section" id="id3">
<h3>User interface<a class="headerlink" href="#id3" title="Permalink to this headline"></a></h3>
<div class="section" id="id5">
<h3>User interface<a class="headerlink" href="#id5" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Upgraded to bootstrap v5.1 for web pages.</p></li>
<li><p>Added button on index page to direct to github issues.</p></li>
@ -305,8 +329,8 @@
<li><p>Added function on format page so that its easy to copy a format template from the docs (simplify service integration).</p></li>
</ul>
</div>
<div class="section" id="id4">
<h3>Features<a class="headerlink" href="#id4" title="Permalink to this headline"></a></h3>
<div class="section" id="id6">
<h3>Features<a class="headerlink" href="#id6" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Added advanced setting to ignore angles that are lower than water. This is disabled by default.</p></li>
<li><p>Added support for MPU6500 (standard is MPU6050).</p></li>
@ -323,8 +347,8 @@
<li><p>Advanced settings: Adjust resolution of temp sensor (9 bits to 12 bits), higher resolution takes longer thus reducing battery life</p></li>
</ul>
</div>
<div class="section" id="id5">
<h3>Issues addressed<a class="headerlink" href="#id5" title="Permalink to this headline"></a></h3>
<div class="section" id="id7">
<h3>Issues addressed<a class="headerlink" href="#id7" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>BUG: Fixed issue in formula calculation in case there were a gap in the data series</p></li>
<li><p>BUG: Field name for wifi strength changed from “rssi” to “RSSI”</p></li>
@ -501,21 +525,27 @@ the behaviour in v0.6 is wanted this can be done via the format editor.</p></li>
<div class="toc-tree">
<ul>
<li><a class="reference internal" href="#">Releases</a><ul>
<li><a class="reference internal" href="#v1-2-0-beta1">v1.2.0 - beta1</a><ul>
<li><a class="reference internal" href="#features">Features</a></li>
<li><a class="reference internal" href="#issues-adressed">Issues adressed</a></li>
<li><a class="reference internal" href="#documentation">Documentation</a></li>
</ul>
</li>
<li><a class="reference internal" href="#v1-1-1">v1.1.1</a></li>
<li><a class="reference internal" href="#v1-1-0">v1.1.0</a><ul>
<li><a class="reference internal" href="#features">Features</a></li>
<li><a class="reference internal" href="#id2">Features</a></li>
<li><a class="reference internal" href="#known-issues-not-yet-fixed">Known issues, not yet fixed</a></li>
<li><a class="reference internal" href="#issues-addressed">Issues addressed</a></li>
<li><a class="reference internal" href="#user-interface">User interface</a></li>
<li><a class="reference internal" href="#documentation">Documentation</a></li>
<li><a class="reference internal" href="#id3">Documentation</a></li>
<li><a class="reference internal" href="#other">Other</a></li>
</ul>
</li>
<li><a class="reference internal" href="#v1-0-0">v1.0.0</a><ul>
<li><a class="reference internal" href="#id2">Documentation</a></li>
<li><a class="reference internal" href="#id3">User interface</a></li>
<li><a class="reference internal" href="#id4">Features</a></li>
<li><a class="reference internal" href="#id5">Issues addressed</a></li>
<li><a class="reference internal" href="#id4">Documentation</a></li>
<li><a class="reference internal" href="#id5">User interface</a></li>
<li><a class="reference internal" href="#id6">Features</a></li>
<li><a class="reference internal" href="#id7">Issues addressed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#v0-9-0">v0.9.0</a></li>
@ -541,5 +571,7 @@ the behaviour in v0.6 is wanted this can be done via the format editor.</p></li>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/scripts/furo.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
</body>
</html>

View File

@ -4,8 +4,9 @@
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="#" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/><title>Search - GravityMon 1.1.0 documentation</title><link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/><title>Search - GravityMon 1.2.0 documentation</title><link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
@ -120,7 +121,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 1.1.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 1.2.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -143,7 +144,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 1.1.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 1.2.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="#" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -235,6 +236,8 @@
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/scripts/furo.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
<script src="_static/searchtools.js"></script>
<script src="_static/language_data.js"></script>

File diff suppressed because one or more lines are too long

View File

@ -5,9 +5,10 @@
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Advanced Configuration" href="advanced.html" /><link rel="prev" title="Create formula" href="formula.html" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/>
<title>Service Integration - GravityMon 1.1.0 documentation</title>
<title>Service Integration - GravityMon 1.2.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
@ -122,7 +123,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 1.1.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 1.2.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -145,7 +146,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 1.1.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 1.2.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -516,5 +517,7 @@ in the json document if you need other values as well.</p>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/scripts/furo.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
</body>
</html>

View File

@ -5,9 +5,10 @@
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Q &amp; A" href="q_and_a.html" /><link rel="prev" title="Configuration" href="configuration.html" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/>
<title>Troubleshooting - GravityMon 1.1.0 documentation</title>
<title>Troubleshooting - GravityMon 1.2.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
@ -122,7 +123,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 1.1.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 1.2.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -145,7 +146,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 1.1.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 1.2.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -327,5 +328,7 @@ to memory leaks.</p>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/scripts/furo.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
</body>
</html>