This version uses only blocking i2c calls, and long transfers will
probably cause frame loss. Also, if no BMP280 is present, the firmware
will not start up and hang in an endless loop instead.
The measurement module now provides averaged measurements. These are
used in some places where accuracy is more important than latency (for
example for the temperature limit, where noise triggered the limit too
early).
This is most important for the LEDs and the RS485 interface. If any LED
is on when deep sleep is entered, it will stay on the whole sleep time,
drawing about 10 mA on the 3,3V rail.
The RS485 transceiver must be switched to RX mode, as it consumes about
30 mA from the 5V rail in TX mode.
- Run ADC Calibration on startup (without calibration, there is a huge
offset error, making the current sensing unusable)
- Added calibration factors which allow to compensate for inaccuracies
in the circuitry (example: 1% tolerance transistors)
- Send measured values via RS485