Releases: hiveeyes/terkin-datalogger
Releases · hiveeyes/terkin-datalogger
0.8.0
0.7.2
0.7.1
- Improve packaging
- Improve compatibility between Genuine MicroPython and Pycom MicroPython
2020-04-22 0.7.0
Unnamed
- 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
- Refactor platform switch and rename first stage bootloader
- 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, likelte.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
asonewire_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 singleCTRL-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 usingdeattach=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
Mordillo
- 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
toMCU_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
rulewifi-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
throughmake 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 "mboot", the universal MicroPython bootloader
- Reconfigure watchdog when connecting the device using MiniNet
- Propagate platform information for implementing platform switch conditions
- Transfer "mboot" bootloader and "mininet" module
- Start making Terkin platform-agnostic. Thanks, Markus!
- Add release archives with frozen modules compatible to Pycom MicroPython
2019-06-22 0.5.1
2019-06-22 0.5.0
Power shaving
- 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
andSystemBatteryLevel
- 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,Dominik <https://github.com/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 busses
- Settings: add busses 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