Terkin Datalogger CHANGES

in progress

2022-11-26 0.14.0

  • Allow joining hidden WiFi APs on MicroPython devices. Thanks, @nznobody!

  • Update runtime and sandbox dependencies

  • Add support for CPython 3.10 and 3.11

  • Update to pyserial==3.5

  • Update Adafruit library versions

2021-09-17 0.13.0

  • CPython: Improve tests for HTTP telemetry subsystem

  • CPython: Adjust software tests to use Mosquitto 2.0

  • CPython: Run software tests on GitHub Actions

  • CPython: Switch from PyCrypto to PyCryptodome

  • Implement TelemetryClient.FORMAT_CSV. Thanks, @nznobody!

  • Enable NTP/RTC sync from settings with networking.ntp.enabled. Thanks, @nznobody!

  • VEDirect driver: Add support for MicroPython. Thanks, @nznobody!

2021-07-28 0.12.0

  • Documentation: Fix build and update to Sphinx 4

  • CPython: Don’t enable modeserver in example configuration blueprints

  • Sensors: Implement temperature compensation for HX711 sensors. Thanks, @WSt89!

  • CPython: Fix HTTP telemetry

2021-07-26 0.11.4

  • CPython: Add missing dependency modules umqtt and urequests

2021-07-26 0.11.3

  • CPython: Fix runtime dependency: Don’t use os_path

2021-07-26 0.11.2

  • CPython: Add “psutil” to list of runtime dependencies

2021-07-26 0.11.1

  • CPython: Fix runtime dependency: Don’t use os_path

  • CPython: Improve configuration blueprints

  • CPython: Provide real values to mem_{free,alloc} and machine.freq

  • Fix software tests by making dualchannel scale mode (“scaleB”) optional

  • CPython: Upgrade Adafruit-Blinka to resolve dependency woes

2021-07-26 0.11.0

  • Add DS3231micro.py driver. Thanks, @poesel!

  • Upgrade to PyCayenneLPP 1.5.0. Thanks, @smlng!

  • Add “make firmwares” release target

  • Add “get_sensor_by_type” helper method

  • Switch to “DS3231tokei” library. Thanks, @poesel!

  • Fix installation on CPython

2020-05-22 0.10.0

  • Rework LoRaWAN settings and remove join_attempt_count since we can’t control the join attempts. Thanks, @thiasB!

  • Add APB activation method for LoRaWAN. Thanks, @thiasB!

  • Rename “busses” to “buses” all over the place

  • Fix ABP auth parameter passing for Dragino

  • Improve inline documentation and logging re. LoRaWAN OTAA vs. ABP

  • Disable LoRa by default

  • LoRaWAN: consider restored join status for both, OTAA and ABP activation. Thanks, @thiasB!

  • Add Sphinx documentation. Thanks, @poesel!

  • Update Makefile tooling for upgrading Pycom MicroPython firmware

  • Add Makefile target to generate callgraph

  • Add minimal weight scale adjustment wizard

  • Add Sequans LTE Modem support for Pycom GPy/FiPy devices. Thanks, @wetterfrosch and @tonke!

  • Refactor more sensors for self-registration

  • Adjust sandbox for installation on newer Debian/Ubuntu distributions. Thanks, Jan!

  • Add sensor wrappers for BMP280 and INA219. Thanks, @tonke!

  • Don’t log configuration on startup by default. Thanks, @tonke!

  • Improve registering buses

  • Add sensor tests for SBCs

  • Add sensor wrapper for PiUSV. Thanks, @tonke!

  • Update PyCayenneLPP library to include “Generic” and “Unix Time” types.

  • Add updated MicroPython “datetime” module to satisfy PyCayenneLPP

  • Improve firmware builder

  • Add make target to upload “settings.py”

2020-05-04 0.9.0

  • Fix LoRa subsystem

  • Add Si7021 sensor. Thanks, @thiasB!

  • Add a bunch of sensors for RaspberryPi. Thanks, @tonke!

  • Improve drivers VEDirect, EPSolar, ADS1x15. Thanks, @tonke!

  • Fix tests

  • Update TTN decoder.js. Thanks, @thiasB!

  • Improve reading sensors by returning SensorReading object from driver

  • Improve registering sensors by moving the setup to the sensor modules

  • Improve CPython/RaspberryPi setup tooling and documentation

  • Improve new sensor registration architecture once more

  • Clean up EPSolar hardware driver

  • Self-register EPSolarSensor

  • Resolve woes with ModuleNotFoundError

  • Switch settings to new LPP format scheme. Thanks, @thiasB!

  • Import scale parameters as floating point number. Thanks, @thiasB!

  • Update TTN README. Thanks, @thiasB!

  • Enable native DS18x20 driver by default. Thanks, @ClemensGruber and @thiasB!

  • Nail RaspberryPi dependencies

  • Add sensors.power_toggle_buses setting, defaults to True. Thanks, @tonke!

  • Improve PyTrack sensor. Thanks, @tonke!

  • Update Dragino setup tooling

  • Add “join_attempt_count” and “join_attempt_interval” settings re. LoRa. Thanks, @tonke!

  • Add setup.py for CPython

  • Improve logging and exception handling for CPython

  • Make configuration file backup optional

  • Improve sensor registration and startup

  • Add “terkin” commandline entrypoint

  • Trim CPython compatibility layer

  • Improve CPython bootstrapping and logging

  • Improve gpiozero and gpsd sensors. Thanks, @tonke!

  • Add BME280 on Odroid XU4 based on smbus2. Thanks, @tonke!

  • Fix setup.py re. encoding of README.rst

  • LoRa: Ignore downlink messages for sleep interval and data payload inclusion on devices not running Pycom or Vanilla MicroPython. Thanks, @thiasB!

  • LoRa: return to sleep interval from settings after reset. Thanks, @thiasB!

  • Improve I2C bus support for Odroid XU4. Thanks, @tonke!

  • Improve GPSD sensor. Thanks, @tonke!

  • Use I2C bus 5 as secondary on Raspberry Pi. Thanks, @tonke!

  • Improve sensor enablement evaluation. Now, sensor sections have to be enabled explicitly within settings.

  • Fix button manager setup

  • Update documentation

  • Fix DS18x20 module names

  • Fix tests and improve test robustness

  • Fix LANG locale setting for Click at runtime. Thanks, @tonke!

  • Improve CPython bootstrapping

  • Fix webserver imports

  • Move UDP modeserver implementation

  • Don’t start WiFi by default

  • Make UDP modeserver and HTTP API ports configurable

  • Various networking improvements

  • Improve CPython setup

  • Add UI spike on CPython based on Picotui

  • Upgrade MicroWebSrv2 module

  • Improve packaging and prepare upload to PyPI

2020-04-28 0.8.0

2020-04-27 0.7.2

  • Fix I2CBus.power_on. Thanks, @tonke!

2020-04-26 0.7.1

2020-04-22 0.7.0

  • Fix sandbox installation issue by nailing pycopy-cpython-upip to 1.2.6

  • Improve sanity checks for sandbox setup

  • Improve RGB-LED signalling

  • Import microWebSrv only when enabling HTTP service to save memory

  • Make WiFi work in non-threaded environments again

  • Improve MiniNet WiFi connectivity

  • Improve logging timestamping

  • Improve sandbox tooling robustness

  • Upgrade to pycopy-cpython-upip==1.3.3 again. Thanks, Paul!

  • Add basic recycle task for uploading the code to the Pyboard D

  • Start LoRa on demand to reduce memory consumption

  • Defer loading modules for sensors at runtime to save memory

  • Load the ADC module for “SystemBatteryLevel” at runtime

  • Fix missing ADC module import

  • Process DS18B20 addresses case insensitive

  • Port to ESP32 WROVER with MicroPython 1.11. Thanks, Markus!

  • Fix network status flag

  • Improve cross-compilation tooling re. Pycom vs. pyboard-D

  • Display HTTP egress payload in log output on INFO level

  • Add option to use external WiFi antenna

  • Pyboard D-series: Improve sandbox tooling

  • Pyboard D-series: Make the source tree compatible with Genuine MicroPython

  • Adjust slightly for running on Pycom devices again

  • WiFi adjustments for Pyboard-D

  • Appropriately compute sleep time, resolve #4

  • Make make setup more platform-agnostic, resolve #20

  • Add external antenna option for vanilla MicroPython

  • Use trimmed-down settings.py for PYBD

  • Add configuration settings overlay per settings-user.json

  • Improve robustness with minimal configuration for PYBD

  • Improve instructions for Pycom firmware bundling and installation

  • Adjust sandbox infrastructure for Pycom MicroPython 1.11

  • Fix import path of onewire module

  • Fix weird error when freezing modules

  • Add LoPy4 support in Bootloader. Thanks, @poesel.

  • Add auto docstrings with pyment. Thanks, @poesel.

  • Large refactoring.
    • Get rid of the “hiveeyes” module namespace.

    • Rework the “sensors.system” configuration section.

  • Improve configuration module.
    • Reduce convolution of “purge_sensible_settings”

    • Be more graceful when attempting to read json settings

  • Add missing import socket to LoRa module. Thanks, @thiasB!

  • Improve multi-platform support
    • Refactor platform switch and rename first stage bootloader to Universal MicroPython Application Loader (umal)

    • Improve gracefulness for MachineResetCause helper

  • Improve WiFi robustness on first connection attempt

  • Gracefully handle buses without names. Thanks, @thiasB!

  • Be graceful if OSError exception object received from MQTT publishing has no “errno” attribute.

  • Improve sensor registration mechanics again

  • Improve utility functions to work around the 128-bit UUID byte swap problem. Thanks, @poesel!

  • Disable web server by default.

  • Make use of LoRaWAN state restoration from NVRAM. Thanks, @thiasB!

  • Only restore LoRa state from NVRAM on wake from deep sleep. Thanks, @thiasB!

  • Refactor BLE encoding/decoding utility functions

  • Improve connection to WiFi after starting again

  • Use lte.deinit(reset=True) for shutting down LTE modem on startup, see https://forum.pycom.io/topic/3083/lte-deinit-not-working/2. Thanks, @combaindeft!

  • Speed up shutting down LTE modem on startup by not invoking “detach” as we haven’t actually been attached at all, like lte.deinit(detach=False, reset=True). Thanks @arapostol for https://github.com/pycom/pycom-micropython-sigfox/pull/255/files which made us look at the source code in detail.

  • Improve robustness of WiFi manager re. “connectivity after reset” again

  • Improve inline documentation

  • Improve platform switch for system sensors

  • Acquire onewire.py drivers for both Vanilla MicroPython and Pycom MicroPython as onewire_native.py vs. onewire_python.py.

  • Fix 1-Wire multi-platform support again. Thanks, @poesel!

  • Port codebase to Genuine MicroPython on ESP32. Thanks, @poesel!

  • Adjust naming for sensor driver adapters

  • Obtain improved lowlevel MicroPython driver for the MAX17043. Thanks, @poesel!

  • Upgrade to MicroWebSrv2. Thanks, Jean-Christophe (@jczic)!

  • Fix multi-platform support for SystemTemperatureSensor

  • Improve WiFi connectivity after hard reset again

  • Catch KeyboardInterrupt in order to properly shut down the HTTP server. Thanks, @jczic!

  • Just start HTTP server once without trying again

  • Upgrade to MicroWebSrv2 2.0.2

  • Catch KeyboardInterrupt exceptions in WiFi keepalive thread and UdpServer in order to shut down using a single CTRL-C

  • Upgrade to MicroWebSrv2 2.0.3. Thanks, @jczic!

  • Improve thread shutdown behavior when receiving SIGINT / CTRL-C

  • Improve sensor reading from 1-Wire DS18X20 devices

  • Support native 1-Wire/DS18X20 MicroPython driver

  • Improve 1-Wire/DS18X20 support after the pure-Python variant has aligned its API to the one of Genuine MicroPython. Thanks, @robert-hh!

  • Remove fastboot setting as the LTE modem can already be shutdown more quickly by using deattach=False

  • Improve timekeeping

  • Update 1-Wire/DS18X20 driver again. The DS18B20 driver now also supports parasite power mode. Thanks, @robert-hh!

  • Improve bootstrap messages

  • Add boolean flags for enabling/disabling Wifi and LoRa. Thanks @thiasB!

  • Skip reading WiFi sensors when WiFi is disabled. Thanks @thiasB!

  • Optimize reading the HX711. Don’t ever use read_average(). Instead, just read() the sensor ten times for computing the median.

  • Port LTE attach procedure from “Autonome Zelle”. Thanks, @wtf!

  • Fix installation of “MicroWebSrv2” dependency. Thanks, Chris!

  • Shut down peripherals regardless of using deep sleep or not

  • Battery voltage sensor: Make ADC attenuation configurable. Thanks, @thiasB!

  • Power on I2C peripheral after power off. Thanks, @ckrohne!

  • Enable WiFi by default if not explicitly disabled within configuration

  • Improve “make install-ng”: Now also works over USB/UART

  • LoRaWAN/TTN integration for real. Thanks, @thiasB!

  • Introduce DataFrame object to improve internal data transfer.

  • Backward compatibility for sensor type “system.battery-voltage”.

  • Improve cross-compilation for MicroPython 1.12, see #61. Thanks, @poesel!

  • Fix Makefile target “install-pycom-firmware”.

  • Add GPRS modem support for SIM800. Thanks, @sarusso!

  • Sandbox: Separate desktop notifications from tools/terkin.py. Fix nasty dependency bug on the “netaddr” module. Add gracefulness to “make notify” target.

  • Adjust directory layout: Move “terkin” files to “lib” folder

  • Adjust directory layout: Move root files to “src/” folder

  • Support firmware image building for Genuine MicroPython

  • Sandbox presets: “config.mk” is now “presets.mk”

  • Upgrade to rshell 0.0.26

  • Adjust directory layout: Move “lib/” folder inside “src/” folder

  • Add missing “_boot.py” to custom MicroPython firmware images. Thanks, @poesel!

  • Clean up rshell upload scripts for bytecode uploading

  • Fix module search path computation in bootloader

  • Stop messing with terminal on UART0 for now

  • Add firmware builder machinery

  • Add lowlevel driver for DS3231 RTC

  • Upgrade to rshell 0.0.27

  • Add basic test suite

  • Adjust machinery to run under pytest

  • Add tests for WiFi

  • Add MQTT telemetry test. Needs running MQTT broker.

  • Add pytest-docker-fixtures to invoke the MQTT telemetry tests against a Mosquitto broker running on Docker.

  • Add test coverage reporting

  • Skip Mosquitto/Docker integration tests on Windows/WSL

  • Improve test suite re. Mosquitto dependency

  • Add LoRaWAN tests

  • Add tests covering sleep modes and maintenance mode

  • Add tests covering sensor machinery

  • Add tests covering GPRS telemetry

  • Improve tests covering LoRaWAN message decoding with environmental sensors

  • Update 3rd-party modules

  • Fix flakyness of MQTT test

  • Add tests covering HTTP uplink telemetry

  • Use updated “umqtt” module for CPython compatibility

  • Use “time.time()” rather than “time.time_ns()” to retain compatibility with Python3.6. Thanks, Matthias!

  • Add new make targets for the testsuite to the inline Make documentation. Thanks, Markus!

  • Improve error reporting for “make setup”

  • Improve test coverage for HTTP telemetry / urequests module

  • Add test coverage for “system.voltage.battery” by mocking the ADC

  • Round sensor values according to settings

  • Start supporting CPython on Linux/RaspberryPi. Thanks, @tonke!

2019-08-19 0.6.0

  • Explicitly deinit() LTE modem on each startup

  • Fix settings.example-bob.py. Thanks, @MKO1640 and @ClemensGruber.

  • Improve formatting of BEEP telemetry field mapping for BOB

  • Disable telemetry adapter offline state for now

  • Disable DEBUG log level for system sensors

  • Add the “maintenance” device status / mode

  • Add UDP mode server for signalling the device into maintenance mode

  • Add device discovery and UDP client for signalling maintenance mode

  • Attempt to fix woes with IPv6 addresses from terkin.py

  • Skip networks like 127.0.0.0/8 and 169.254.0.0/16 for terkin.py

  • Make “terkin.py” handle multiple MAC address prefixes coming from different Pycom devices. Now: WiPy, FiPy.

  • Optionally read MAC address from command line in order to discover and maintain specific device

  • Add MQTT authentication

  • Update documentation

  • Improve rshell access over IP

  • Rename environment variable MCU_SERIAL_PORT to MCU_PORT for configuring both USB/UART port and IP address

  • Use offset values for DS18B20 sensors from settings

  • Enable/disable individual sensors per settings

  • Install MicroWebSrv and MicroDNSSrv libraries into dist-packages folder

  • Add singleton factory method to TerkinDatalogger. Thanks, @DieDiren.

  • Increase timeout for ARP ping requests with “terkin.py”

  • Use most recent “dotty_dict” module

  • Properly format MAC addresses

  • Add maintenance mode interval to configuration settings

  • Lazily import “ButtonManager” for trimming #11

  • Improve MAC address parsing and formatting

  • Improve MAC address normalization by also removing dashes and dots

  • Follow the Pycopy MicroPython fork, standard library wise

  • Upgrade to Dotty Dict 1.1.1. Thanks, @pawelzny.

  • Improve sandbox tooling incl. FTP source code upload

  • DS18B20: Extend time between starting the conversion and reading the sensor to one second.

  • Add MiniNet helper and corresponding Makefile rule wifi-connect

  • Ship configuration blueprint with deep sleep disabled

  • Improve MiniNet helper to get IP address

  • Set default maintenance duty cycle to 15 seconds

  • Improve Watchdog subsystem by adjusting to edge cases. Thanks, @pinguin999.

  • Reorder sections when uploading using FTP

  • Add Self-documenting-Makefile helper

  • Improve Pycom firmware installation

  • Slightly document Makefile targets

  • Increase timeout when sending ARP packets for device discovery. Thanks, @ClemensGruber.

  • Slightly adjust “make help”. More Makefile improvements.

  • Desktop notifications for MicroTerkin Agent

  • Make MicroTerkin Agent write detected IP address into file

  • Improve Makefile sandbox tooling

  • Prettify logging

  • Optionally start modeserver, defaulting to true

  • Add basic HTTP API subsystem. Thanks @vkuhlen and @DieDiren.

  • Add make provide-wifi command for starting the access point interactively

  • Start WiFi in STA_AP mode by default

  • Disable garbage collector when reading sensors to improve timing

  • Improve tooling and inline documentation

  • Add option main.fastboot for skipping LTE modem teardown for faster development iterations

  • Curate the garbage collector

  • Add backup mechanism for configuration files

  • Fix polling for WiFi connectivity

  • HTTP API: Add basic endpoints for configuration settings

  • Add backup configuration snippet to settings blueprint files

  • Makefile: Prompt for restart after FTP transfer

  • Makefile: Add RUNNING_IN_HELL flag

  • Makefile: Suppress desktop notifications on Windows for now

  • Makefile-Todo: Use lftp.exe for file transfer on Windows?

  • Extend module search path to “terkin” and “hiveeyes” folders in order to support native Pymakr operation

  • Make reference to “datalogger” object available in global scope

  • Slightly tweak garbage collector curator to collect garbage after computing and setting threshold

  • Add more accessor methods to TerkinConfiguration

  • Add get_last_stacktrace utility function

  • Fix memory exhaustion when starting the MicroWebSrv twice

  • HTTP API: Add endpoints for getting and setting individual configuration settings

  • Object model refactoring

  • HTTP API: Add endpoint for getting the last reading

  • Refactor sensors-section of configuration settings

  • Settings: Rename sensor “key” attribute to sensor “id”

  • Settings: Rename HX711 enumeration attribute from “address” to “number”

  • Fix broken dependencies re. pycopy-collections

  • Move HTTP API request/response examples to screenshots folder

  • Constructor refactoring and naming things

  • Add id attribute to bus configuration settings

  • Refactor and improve DS18B20 settings, reading and processing

  • Improve prettified sensor readings log output

  • Improve HTTP API

  • Improve initialization robustness with bus device objects

  • Add mpy-cross-util.py

  • Add ahead-of-time compilation using mpy-cross through make recycle-ng MPY_CROSS=true

  • Refactoring, documentation, cleanups, naming things

  • Improve user experience with mpy-mk sandbox toolkit. Thanks, @rohlan and @ClemensGruber. - Fix interactive confirmation - Add advices to guide user on errors - Improve Windows compatibility for the ng series of commands

  • Add colors to mpy-mk

  • Add note about installing pycom-fwtool-cli on Linux. Thanks, weef.

  • mpy-mk: Improve operating system detection

  • mpy-mk: Streamline user interface

  • Another attempt at touch button wakeup

  • mpy-mk: Improve cross compilation

  • sensors: Use BME280 library by robert-hh

  • mpy-mk: Add “make colors” for colored output testing on Windows

  • Make MicroTerkin Agent compatible with Python3.5. Thanks, @rohlan.

  • Attempt to automate installation of the modem firmware (WIP). Thanks, @rohlan.

  • Gracefully ignore missing “py-notifier” package on Linux. Thanks, @rohlan.

  • Fix scapy dependency woes. Thanks, @rohlan.

  • Add tools for building firmware images for ESP32 based on Pycom MicroPython. Thanks, @emmanuel-florent.

  • onewire.py: Use library optimized for timing and with enabled CRC checks by @robert-hh, thanks!

  • First steps with BLE (WIP)

  • First steps with LTE (WIP)

  • Be more graceful when starting network services

  • Wrap “station.isconnected()” to mitigate unhandled exceptions on timeout errors

  • Extend default watchdog timeout to 60 seconds

  • Try two times to connect to WiFi station

  • Makefile improvements - Don’t run “mpy-cross-setup” on each invocation of “mpy-compile” - Don’t clobber “mpy_cross_all.py”

  • Improve LED signalling

  • Parallelize networking subsystem

  • Prepare real “light sleep” (WIP)

  • Attempt to reset WiFi connection if scanning fails

  • Add umal, the Universal MicroPython Application Loader

  • Reconfigure watchdog when connecting the device using MiniNet

  • Propagate platform information for implementing platform switch conditions

  • Transfer umal bootloader and the mininet module to the lib folder

  • Start making Terkin platform-agnostic. Thanks, Markus!

  • Add release archives with frozen modules compatible to Pycom MicroPython

2019-06-22 0.5.1

  • HX711: Configure data pin as pull-up to be able to detect readiness

  • Disable Watchdog in blueprint settings

  • Improve logging and terminal handling in bootstrap phase

  • Improve release bundling

2019-06-22 0.5.0

Power saving.

  • Improve documentation

  • Improve voltage divider settings for reading the battery level

  • Package the release bundle with the same directory layout as the sandbox

  • Add foundation for having button events through ESP32 touch pads

  • Add basic logging configuration settings to support turning off logging entirely

  • Fix purging of sensible configuration keys

  • Improve MAC address formatting when logging network status

  • Try 11 dB attenuation for measuring vcc

  • Disable heartbeat through RGB-LED, just blink twice on startup

  • Turn off interrupts while powering down the HX711

  • Improve inline documentation and logging

  • Improve IRQ handling when reading the HX711

  • Sleep for 80 microseconds after pulling HX711 clock pin PD_SCK to HIGH

  • Improve bus- and sensor power-management. Add “power_on” signal.

  • Explicitly turn off LTE modem before deep sleep

  • Use 6dB attenuation factor again when reading the ADC for measuring VCC

  • Conditionally turn off LTE modem

  • WiFi STA: Get hold of auth mode and store into NVRAM to skip WiFi scan on each cycle

  • WiFi STA: Erase auth mode from NVRAM if connection fails

  • Refactor radio/networking subsystem

  • Explicitly start and stop Terminal on UART0 based on configuration

  • HX711: Hold clock pin “PD_SCK” in designated state through internal pull-up in the RTC-domain, even during deep sleep.

  • HX711: Improve setup and initialization after power up

  • Add watchdog and feed it

2019-06-17 0.4.0

Getting real.

  • Upgrade to Pycom MicroPython 1.20.0.rc11

  • Stop leaking sensible information into settings output

  • Improve documentation

  • Switch to LittleFS

  • Add deep sleep

  • Improve Makefile targets

  • Add more wakeup reasons

  • Add missing configuration section for HX711 to settings example. Thanks, @ClemensGruber.

  • Add basic device-interval sensors SystemTemperature and SystemBatteryLevel

  • Explicitly shut down all peripherals having implicitly been turned on

  • Add SystemWiFiMetrics sensor

  • Add SystemUptime sensor

  • Fix: Better explicitly initialize the ADC before reading it

  • Improve SystemBatteryLevel sensor. Thanks, @ayoy.

  • Make TelemetryTransportHTTP work again

  • Improve telemetry subsystem re. multi-protocol and -topology. Enable HTTP telemetry.

  • Add configuration example for BEEP-BOB settings.example-bob.py

  • Honor “scale” and “offset” parameters when reading the HX711. Fix #6.

  • Improve reading the HX711 re. wrong kg scaling. Transmit all raw values and settings of HX711.

  • Attempt to improve #5: Reading Vcc.

  • Add missing “topology” configuration settings attribute for MQTT telemetry to example configurations

  • Fix deep sleep

  • Conditionally start telemetry subsystem just if networking is available

  • Improve robustness wrt. WiFi connectivity

  • Improve log messages

  • Bump version to 0.4.0dev

  • Improve purging of sensible configuration settings

  • SystemBatteryLevel: Obtain voltage divider parameters from settings

  • Improve release tooling

  • Improve error signalling for missing “topology” configuration setting

2019-06-07 0.3.0

Yaks all the way down.

  • Add ds18x20 lib

  • Implement DS and HX sensors using AbstractSensor

  • ds18x20: Add reading multiple sensors

  • Populate SensorManager, add bus management, add OneWireBus

  • SensorManager: Make ds18x20 use OneWire-Bus through AbstractBus

  • ds18x20: fix runtime issues, resetting OneWire before scanning for devices

  • Little cleanup

  • SensorManager
    • Add bus driver for i2c and onewire buses

    • Settings: add buses to (sensor-)settings

    • Convention: Bus address <BUS_FAMILY>:<BUS_NUMBER>

  • Makefile|libs:
    • Add bme280, Pycoproc, Quectel L76 GNSS library (Pytrack Board)

    • Add Pytrack Board Library, Pytrack Board Accelerator

  • SensorManager
    • Add bus to sensor registry

    • Add bme280 (humidity, temperature, pressure)

    • Add i2c bus

    • Cleanups

  • Compensate for missing _onewire package, maybe on older firmwares

  • Move acquire_bus to AbstractSensor

  • Fix I2C pin propagation

  • Add Pytrack sensor

  • Don’t croak on failures

  • Fix HX711 pin wiring

  • Move Pytrack sensor to ratrack namespace

  • Add Pytrack Quectel L76 GNSS sensor

  • Makefile: cleanup (rm old DS18X20 lib)

  • settings|sensor: add TODO: “i2c-address -> settings -> sensor”

  • settings|sensor: add TODO: “i2c-address -> settings -> sensor”

  • Sensors: naming, (WIP!) hardcoded proposal for naming (see bme280)

  • Add Pytrack support

  • Moar sensors

  • Add appropriate logging

  • Improve LoRa subsystem

  • Improve logging, code cosmetics

  • Add “make clean” target

  • Enable all sensors

  • Improve bus registration

  • Improve BME280 readings

  • Improve documentation

  • Update documentation

  • Add LoRaWAN/TTN telemetry with CayenneLPP

  • Start WiFi before LoRaWAN

  • Reduce logging noise

  • Improve sandbox, documentation and naming things

  • Update documentation

  • Remove main.py.dist again

  • Improve automatic sensor field naming

  • Improve example settings

  • Improve logging all over the place

  • Upgrade to rshell 0.0.21

  • Use “device_id” as part of the MQTT “client_id”

  • Fix telemetry success signalling

  • Cleanup

  • Improve network/telemetry error handling, robustness and convenience for WiFi and MQTT connectivity

  • Improve logging

  • Update documentation

  • Improve reporting about which telemetry targets succeeded

2019-03-23 0.2.1

Fixes.

  • Fix install-requirements re. dotty_dict patching

  • Fix “make list-serials”

  • Dependencies: add OneWire & DS18x20 libraries

  • Fix urllib dep

  • Introduce SensorManager

  • Fix urllib dep

2019-03-17 0.2.0

Fill in the gaps, lots of.

  • Update documentation

  • Update backlog

  • Improve MQTT robustness by compensating ECONNRESET and ECONNABORTED exceptions from connection to MQTT broker by attempting to transparently reconnect next time when performing a telemetry submission.

  • Stop connecting to further WiFi networks after getting connected already

  • Make the telemetry domain obtain the “format” parameter from configuration settings in order to control the serialization method.

  • Update MQTT address example settings

  • Improve WiFi STA connectivity and status reporting

  • Improve status reporting and inline comments

  • Fix example configuration

  • Improve documentation

  • Preparing cayenneLPP into telemetry, new convention for sensor mapping (e.g. channel in CayenneLPP)

  • Lora works now, cleaning up and restructuring, might be good

  • Add TTN to get_handler() and transmit()

  • Improve telemetry target selector

  • Add PyCayenneLPP package to foundation libraries

  • Add telemetry target for running Base64-encoded CayenneLPP over MQTT

  • install upip via pypi

  • Add project header to main sketch files

  • Improve PyCayenneLPP installation

  • Reduce rshell buffer size to “30”

  • Improve Telemetry - Multiple telemetry sinks running in parallel - Add MQTT driver adapter

  • Streamline sensor reading vs. telemetry submission

  • Trim configuration settings output

  • Naming things

  • Improve documentation

  • Fix channel naming in example configuration

  • Skip reporting the current configuration settings as this crashes the serial output on WSL.

  • Use environment variable “MCU_SERIAL_PORT” for configuring serial port

  • Overhaul make target “setup-requirements” to populate “dist-packages”

  • Update documentation, improve README and add README-HARDWARE.md

  • Improve “refresh-requirements” make target

  • Documentation, once more

  • Bump documentation again

  • Slight application namespace refactoring

  • Improve reporting

  • Don’t enable serial device in “boot.py”

  • Improve documentation

  • Add examples for different use cases

  • Build distribution archive files and upload them to GitHub

  • Refactoring/modularization

  • Update documentation

  • Minor fixes

  • Re-add BobDatalogger

  • Add release tooling

2019-03-14 0.1.0

Architecture blueprint. Works, sort of.

  • Add build environment

  • Begin with documentation

  • Large refactoring

  • Remove “urllib” package as we might want to pull it back in using “upip” later.

  • Add dependency management through “dist-packages” folder by using “upip” with MicroPython on Unix

  • Improve framework layout

  • Improve robustness of TelemetryClient

  • Add DummySensor

  • Add MemoryFree sensor

  • Update documentation

  • Add vanilla hx711.py by David Gerber

  • Add improved HX711 library by Ralf Lindlein

  • Improve documentation

  • Code cosmetics, improve logging

  • Add HX711 sensor component

  • Update documentation and tooling

  • Improve HX711 sensor robustness, don’t block the device driver while waiting for hardware intercom

  • Add watchdog timer (WDT) support

  • Idle in the mainloop

  • Naming things

  • Run garbage collector on each loop iteration

  • Prepare RTC code

  • Ignore empty sensor readings

  • Naming things, HX711 robustness

  • Add vanilla Dotty Dict package

  • Add basic TTN example

  • TTN for real?

  • Improve configuration system and WiFi STA connectivity

  • Update documentation

  • This and that

  • Troubleshooting git errors, whatever, need to commit

  • Add LoRaWAN (TTN) flavour to terking devices

  • this and that, still WIP, not working

  • WIP: code is running, but not connected to TTN successfull

  • Lora works now, cleaning up and restructuring, might be good

  • Resolve urllib dependency woes

  • Use telemetry parameters from configuration settings

  • This and that

  • Use sensor parameters from configuration settings

  • Increase number of retry attempts for catching a WiFi connection, essentially checking for 15 seconds

  • Update documentation

  • Refactor LoRaWAN bootstrapping

2019-03-01 0.0.0

Baby steps.

  • Initial commit

  • Add .gitignore to exclude *_local.py configuration files

  • WIP: Hands on FiPy

  • First stable version