Terkin is a flexible data logger application for MicroPython and CPython environments.

Overview

Terkin

https://assets.okfn.org/images/ok_buttons/ok_80x15_red_green.png https://assets.okfn.org/images/ok_buttons/oc_80x15_blue.png https://assets.okfn.org/images/ok_buttons/os_80x15_orange_grey.png

Chart recorder

Data logging for humans, written in MicroPython.



At a glance

Terkin is a flexible data logger application for MicroPython and CPython environments. It provides a lot of sensor-, networking- and telemetry-connectivity options.

Terkin has been conceived for the Bee Observer (BOB) and Hiveeyes projects and was funded by the BMBF.

Features

Batteries included.

Overview

  • Modular firmware framework
  • Flexible configuration settings subsystem
  • Compatible with MicroPython and CPython
  • Concise, readable and modularized code which is easy to follow
  • Decoupled code domains and data models for sensors vs. telemetry
  • Based on approved modules from the MicroPython standard library
  • Convenient development sandbox and test suite for quick iteration cycles

Architecture

  • Datalogger and Device are singleton objects representing the data logger application and the logging device.
  • Components of the sensor subsystem wrap hardware drivers to generalize sensor reading.
  • The telemetry subsystem uses different transport adapters to implement various connectivity scenarios.

Hardware support

Architectures

  • x86_64, ARM, ESP32, STM32

Platforms

  • Genuine MicroPython: PYBOARD-D, TTGO T-Call, TTGO T-Beam
  • Pycom MicroPython: WiPy, GPy, LoPy4, FiPy
  • CPython: Linux x86_64, Linux ARM (BeagleBone, Odroid, Raspberry Pi), macOS, WSL

Peripherals

  • Sensors: 1-Wire, I2C, ADC, System, WiFi
  • Drivers: DS18B20, BME280, BMP280, SI7021, ADS1x15, HX711, MAX17043, DS3231, AT24C32, INA219
  • Adapters: GPSD, EPSolar ViewStar PWM charge controller, Victron Energy VE.Direct MPPT charge controller, Raspberry Pi USV+
  • Connectivity: WiFi, SIM800 for GPRS, SX127x for LoRa (LoPy4, FiPy and Dragino LoRa/GPS HAT), Sequans Monarch for LTE Cat M1 or LTE Cat NB1
  • Telemetry: WiFi/MQTT, WiFi/HTTP, SIM800/HTTP, LoRaWAN/TTN OTAA+ABP

Screenshots

Sensorkit and board

https://ptrace.hiveeyes.org/2019-06-17_bob-sensorkit-small.jpeg

Bee Observer Sensorkit, assembled.

https://ptrace.hiveeyes.org/2019-06-17_bob-board-small.jpeg

Bee Observer Board, assembled.

Console output

To get a better idea about how running this firmware will feel like when watching its log output, we collected some excerpts at Running the Terkin Datalogger.

Getting started

Introduction

See Getting started with the Terkin Datalogger.

The documentation covers the main features of the MicroPython datalogger firmware and walks you through the setup process of the development sandbox environment in detail.

If you feel you have questions about anything you might encounter during the setup and installation process or if you even have suggestions to improve things, feel free to get back to us by creating an issue on the GitHub repository.

Download

On the release page , bundles of the most recent software versions are available through .tar.gz and .zip archives. These are suitable for uploading through Pymakr or similar development environments / file synchronization tools.

Configuration

Copy the settings.example.py blueprint into settings.py and adjust each configuration setting appropriately. The documentation of all parameters is in the file itself and should be reasonably self-explanatory. For using Terkin with TTN/LoRaWAN find some more details here.

Sandbox setup

If you would like to contribute to the development or want to setup a development environment for running the head version of this software, please follow up at Setup Terkin Datalogger sandbox to read about how to install the MicroPython firmware development environment and other software components it relies on and how to configure it properly.

The programming environment is command line based and has been tested successfully on Linux, macOS and the Windows Subsystem for Linux (WSL) shipped with Windows 10.

Acknowledgements

This software is an effort of many people. Thanks to all the contributors who helped to co-create and conceive it in one way or another. You know who you are.

License

This project is licensed under the terms of the AGPL license.


Have fun!

Comments
  • Some test issues

    Some test issues

    'make' listet die tests nicht auf

    FYI:

    test/test_gprs_http.py::test_telemetry_gprs_http FAILED                  [ 21%]
    test/test_lorawan.py::test_uplink_environmental_sensors FAILED           [ 31%]
    test/test_sensors.py::test_sensors FAILED                                [ 57%]
    

    Der Rest geht durch.

    opened by poesel 16
  • Review implementations of system sensors for Pycom MicroPython

    Review implementations of system sensors for Pycom MicroPython

    We just completed reasonable implementations of the most important system sensors we have been aiming at. They acquire runtime metrics from the ESP32 MCU and the FreeRTOS system running the Pycom MicroPython firmware. In general, this is about system uptime, WiFi reception and last but not least package temperature, free memory and battery level.

    Especially, we would like to thank @ayoy for the Pycom MicroPython implementation of system.voltage we have been able to reuse from [1].

    You can find these sensor implementations called SystemMemoryFree, SystemTemperature, SystemUptime and SystemBatteryLevel nicely wrapped up for reuse inside the terkin.sensor.system module.

    As a picture says a thousand words, here is an example telemetry payload message yielded from these sensors.

    {
      "system.time": 921,
      "system.runtime": 16,
      "system.uptime": 4202.907,
      "system.temperature": 41.30435,
      "system.memfree": 2262960,
      "system.voltage": 4.322425,
      "system.wifi.bandwidth": 2,
      "system.wifi.channel": 3,
      "system.wifi.country": "DE",
      "system.wifi.max_tx_power": 78,
      "system.wifi.rssi": -56
    }
    

    [1] https://github.com/ayoy/upython-aq-monitor/blob/lora/lib/adc.py

    opened by amotl 12
  • Implement deep sleep between readings

    Implement deep sleep between readings

    People have been asking [1,2] for Deep Sleep on FiPy. While @einsiedlerkrebs and others [3] tried already,

    I have tried deep sleep, but without success. Tried 1s sleep but device didn't wake up.

    I have to admit that I did not do any debugging on this yet. see: hiveeyes/hiveeyes-micropython-firmware@191a46b

    it looks like it would be harder than expected. As usual, the devil might just be in the details.

    We will try to dedicate some time to that exceptionally important detail.

    [1] https://community.hiveeyes.org/t/bob-platine-im-lipo-betrieb-ohne-deep-sleep/2055 [2] https://github.com/Hiverize/FiPy/issues/2 [3] https://github.com/pycom/pycom-libraries/issues/26

    opened by amotl 12
  • Problems invoking

    Problems invoking "make" on WSL

    Running 'make' on Win10 produces a slightly weird output. First there are two faults from 'sh'. Second: in the rules the first character is strangely missing.

    markus@Calvin:/mnt/c/Users/Markus/Documents/GitHub/hiveeyes-micropython-firmware$ make
    /bin/sh: 1: test: Linux: unexpected operator
    Available rules:
    
     etup                         Prepare sandbox environment and download requirements
     erkin-agent                  Run the MicroTerkin Agent, e.g. "make terkin-agent action=maintain"
     rovide-wifi                  Load the MiniNet module to the device and start a WiFi access point.
     onnect-wifi                  Load the MiniNet module to the device and start a WiFi STA connection.
     p-address                    Load the MiniNet module to the device and get IP address.
     py-compile                   Compile all library files using mpy-cross
     ecycle                       Upload framework, program and settings and restart attached to REPL
     ecycle-ng                    Upload framework, program and settings and restart device
     ketch-and-run                Upload program and settings and restart attached to REPL
     yboard-install               Pyboard-D transfer
     nstall                       Install all files to the device, using rshell
     nstall-ftp                   Install all files to the device, using FTP
     nstall-rshell                Install all files to the device, using USB (rshell)
     nstall-ng                    Install all files to the device, using best method
     name                         Display operating system information
     rint-%                       It allows you to quickly get the value of any makefile variable, e.g. "make print-MCU_PORT"
     estart-device-http           Restart device using the HTTP API
     hip_id                       Display chip_id
     nstall-pycom-firmware        Install Pycom firmware on device
     ormat-flash                  Format flash filesystem with LittleFS
     rase-fs                      Erase flash filesystem
     rase-device                  Erase flash filesystem
     repare-modem-upgrade         Put Sequans modem into recovery mode to prepare firmware upgrade
     ist-serials                  List all serial interfaces
     eset-port                    Reset port or even USB subsystem
     ist-boards                   List all MicroPython boards
     evice-info                   Inquire device information
     onsole                       Open console over serial or telnet
     shell                        Run interactive rshell on the device
     epl                          Run interactive REPL on the device
     eset-device                  Send reset command to device
     eset-device-attached         Send reset command to device and keep the REPL shell attached
    
    /bin/sh: 2: @#: not found
    Documentation:
    

    Please check https://community.hiveeyes.org/t/operate-the-terkin-datalogger-sandbox/2332 in order to get an idea how to operate this software sandbox.

    Have fun!

    opened by poesel 11
  • Adjust software tests to use Mosquitto 2.0.12

    Adjust software tests to use Mosquitto 2.0.12

    Hi there,

    in order to investigate https://github.com/micropython/micropython-lib/issues/445, this bumps the Mosquitto version from 2.0.11 to 2.0.12. See also [1] ff.

    With kind regards, Andreas.

    [1] https://community.hiveeyes.org/t/upgrade-to-mosquitto-2-0/4154

    opened by amotl 9
  • Add MicroPython support for VEDirect driver

    Add MicroPython support for VEDirect driver

    Hi there,

    based on my fork of @karioja's Python library for decoding the Victron Energy VE.Direct text protocol [1] (thanks a stack [2]), this patch will add support for MicroPython. ~~On top of that, it will now understand a boolean async setting parameter, which will divert the actual sensor reading to a dedicated thread.~~

    Cheers, Manu.

    [1] https://github.com/nznobody/vedirect [2] Also thanks to @jmfife, who took over maintenance, added significant improvements and published the library on PyPI [3]. [3] https://pypi.org/project/vedirect-jmfife/

    PS: I ran black over the file, it changed the quotes. Shall I revert those?

    opened by nznobody 9
  • Running

    Running "make setup" inside Docker

    Dear @poesel,

    after merging your update from #19 to the check-program rule, make setup stopped working but croaked at us:

    make setup
    ERROR: "virtualenv" program not installed.
    HINT: Install on Debian-based systems using 'apt install python-virtualenv python3-virtualenv' or use the package manager of your choice
    make[1]: *** [check-program] Error 1
    make: *** [check-virtualenv] Error 2
    

    We reverted this amendment by 29804607. Please feel free to get back to us here in order to sort things out. Why that would not work on your machine is currently beyond my imagination. May I humbly ask on which environment you are running this?

    With kind regards, Andreas.

    opened by amotl 8
  • 'socket' object has no attribute 'flush' on ESP32

    'socket' object has no attribute 'flush' on ESP32

       36.8010 [terkin.telemetry            ] ERROR  : Connecting to MQTT broker at swarm.hiveeyes.org failed: AttributeError: 'socket' object has no attribute 'flush'
    Traceback (most recent call last):
      File "/lib/terkin/telemetry.py", line 684, in connect
      File "/dist-packages/umqtt.py", line 100, in connect
    AttributeError: 'socket' object has no attribute 'flush'
    

    I could of course just comment this out for ESP32 but I'm not sure what it exactly does and if its important.

    opened by poesel 5
  • Add support for MAX17043

    Add support for MAX17043

    Hi there,

    as mentioned within https://github.com/hiveeyes/hiveeyes-micropython-firmware/pull/30#issuecomment-552209237, @poesel wants to support the MAX17043 within this datalogger.

    While we appreciate that in general, we just had a look at DFRobot_MAX17043.py and would like to mention that having these guys on the module level will not be feasible:

    # Get I2C bus
    i2c = I2C(scl = Pin(22), sda = Pin(21), freq=400000)
    

    So, we will have to amend that lowlevel driver accordingly.

    With kind regards, Andreas.

    opened by amotl 5
  • Improve compatibility with Genuine MicroPython on ESP32

    Improve compatibility with Genuine MicroPython on ESP32

    This contains mainly more fixes to the esp32 to make it really work with actual sensors. Only new feature is an 'enabled' option for vcc measuring. This is necessary for the future inclusion of the MAX17043 voltage sensor. 'settings.py' needs to be amended like this: ... 'vcc': {

            'pin': 'P36',
    
            # Main resistor value (R1).
            'resistor_r1': 1000,
    
            # Resistor between input pin and ground (R2).
            'resistor_r2': 1000,
            'enabled': False,
        },
    

    ...

    opened by poesel 5
  • Fix Makefule rules

    Fix Makefule rules "setup-virtualenv" and "check-program" within invocation of "make setup"

    directories .venv2 & .venv3 do not exist yet when they are tested since we install python & virtualenv during the build of the image its save to assume they exist

    sorry for having the other changes in here, too. I'm still new to git :)

    I also don't know why the diff is so big. The actual difference is just two lines.

    opened by poesel 5
  • Testing: Use `pytest-mqtt`

    Testing: Use `pytest-mqtt`

    opened by amotl 0
  • Update build to include main files in pycom firmware base

    Update build to include main files in pycom firmware base

    This PR simply serves to automatically include boot.py and main.py in the base folder path of pycom firmware builds. This simplifies the configuration effort by no longer needing to manually include these files during device provisioning.

    Obviously this has side effects where _main.py is executed prior to running the userspace version of main.py.

    As such I include this PR simply as a POC in case other users of the community wish to solve a similar issue.

    I don't anticipate all users to want to make use of this approach.

    opened by CrispyCrafter 4
  • Compatibility with Kotori: Add `timestamp` field into outbound telemetry message

    Compatibility with Kotori: Add `timestamp` field into outbound telemetry message

    Hi there,

    this patch adds a timestamp field into the outbound telemetry message. The implementation should probably be improved, at least by making this detail configurable.

    Currently, we are using the timestamp of the first reading, which also might have room for improvements.

    With kind regards, Andreas.

    opened by amotl 1
  • [LoRaWAN] Support TTN V3 on RaspberryPi/Dragino

    [LoRaWAN] Support TTN V3 on RaspberryPi/Dragino

    Hi there,

    this patch was originally submitted by @tonkenfo. The implementation is now based upon the recent improvements by @BNNorman (thanks), see also https://github.com/daq-tools/dragino-lorawan/issues/1 ff.

    With kind regards, Andreas.

    opened by amotl 0
  • CPython/Dragino: LoRaWAN implementation croaks with PyCryptodome

    CPython/Dragino: LoRaWAN implementation croaks with PyCryptodome

    Hi there,

    @tonke reported that the Dragino LoRaWAN implementation [1] croaks when using PyCryptodome, the successor library to PyCrypto.

    >>> from Crypto.Cipher import AES
    >>> AES.new(b"foobar")
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: new() missing 1 required positional argument: 'mode'
    

    Thank you!

    Background: We switched to this library because it offers an almost drop-in replacement for the old PyCrypto library [2,3,4], which does not receive updates and is told to have some security flaws. See also #99 and #101.

    With kind regards, Andreas.

    [1] https://github.com/daq-tools/dragino/tree/terkin/dragino/LoRaWAN [2] https://www.dlitz.net/software/pycrypto/ [3] https://pypi.org/project/pycrypto/ [4] https://github.com/pycrypto/pycrypto

    opened by amotl 2
Releases(0.14.0)
  • 0.14.0(Nov 26, 2022)

    What's Changed

    • 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

    Full Changelog: https://github.com/hiveeyes/terkin-datalogger/compare/0.13.0...0.14.0

    Source code(tar.gz)
    Source code(zip)
  • 0.13.0(Sep 17, 2021)

    • 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!
    Source code(tar.gz)
    Source code(zip)
  • 0.12.0(Sep 17, 2021)

    • 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
    Source code(tar.gz)
    Source code(zip)
  • 0.11.4(Sep 17, 2021)

  • 0.11.3(Sep 17, 2021)

  • 0.11.2(Sep 17, 2021)

  • 0.11.1(Sep 17, 2021)

    • 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
    Source code(tar.gz)
    Source code(zip)
  • 0.11.0(Sep 17, 2021)

    • 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
    Source code(tar.gz)
    Source code(zip)
  • 0.10.0(May 22, 2020)

    • 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"
    Source code(tar.gz)
    Source code(zip)
    FiPy-1.20.2.rc6-0.10.0-annapurna.tar.gz(1.23 MB)
    GPy-1.20.2.rc6-0.10.0-annapurna.tar.gz(1.18 MB)
    LoPy4-1.20.2.rc6-0.10.0-annapurna.tar.gz(1.22 MB)
    terkin-datalogger-0.10.0-genuine-mpy-1.12.tar.gz(145.17 KB)
    terkin-datalogger-0.10.0-genuine-mpy-1.12.zip(206.11 KB)
    terkin-datalogger-0.10.0-pycom-mpy-1.11.tar.gz(152.78 KB)
    terkin-datalogger-0.10.0-pycom-mpy-1.11.zip(214.91 KB)
    terkin-datalogger-0.10.0-source.tar.gz(181.34 KB)
    terkin-datalogger-0.10.0-source.zip(249.52 KB)
  • 0.9.0(May 4, 2020)

    • 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
    Source code(tar.gz)
    Source code(zip)
    terkin-datalogger-0.9.0-genuine-mpy-1.12.tar.gz(155.53 KB)
    terkin-datalogger-0.9.0-genuine-mpy-1.12.zip(225.75 KB)
    terkin-datalogger-0.9.0-pycom-mpy-1.11.tar.gz(164.04 KB)
    terkin-datalogger-0.9.0-pycom-mpy-1.11.zip(235.93 KB)
    terkin-datalogger-0.9.0-source.tar.gz(190.73 KB)
    terkin-datalogger-0.9.0-source.zip(267.58 KB)
  • 0.8.0(Apr 28, 2020)

    • Support SX127x on Dragino LoRa/GPS HAT for LoRa. Thanks @tonke and many more, see: https://github.com/mayeranalytics/pySX127x/issues/21#issuecomment-620695583
    • Add TTN/LoRaWAN README. Thanks, @thiasB!
    • TTN: Add payload converter code for PutsReq.com HTTP endpoint. Thanks, @thiasB!
    Source code(tar.gz)
    Source code(zip)
    terkin-datalogger-0.8.0-genuine-mpy-1.12.tar.gz(153.24 KB)
    terkin-datalogger-0.8.0-genuine-mpy-1.12.zip(212.84 KB)
    terkin-datalogger-0.8.0-pycom-mpy-1.11.tar.gz(161.52 KB)
    terkin-datalogger-0.8.0-pycom-mpy-1.11.zip(222.55 KB)
    terkin-datalogger-0.8.0-source.tar.gz(196.75 KB)
    terkin-datalogger-0.8.0-source.zip(257.94 KB)
  • 0.7.0(Apr 22, 2020)

    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
    • 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!
    Source code(tar.gz)
    Source code(zip)
    terkin-datalogger-0.7.0-genuine-mpy-1.12.tar.gz(120.01 KB)
    terkin-datalogger-0.7.0-genuine-mpy-1.12.zip(167.05 KB)
    terkin-datalogger-0.7.0-pycom-mpy-1.11.tar.gz(126.56 KB)
    terkin-datalogger-0.7.0-pycom-mpy-1.11.zip(174.44 KB)
    terkin-datalogger-0.7.0-source.tar.gz(145.79 KB)
    terkin-datalogger-0.7.0-source.zip(191.13 KB)
  • 0.6.0(Aug 19, 2019)

    Mordillo

    image

    • 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 "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
    Source code(tar.gz)
    Source code(zip)
    hiveeyes-micropython-firmware-0.6.0-pycom-mpy.tar.gz(109.86 KB)
    hiveeyes-micropython-firmware-0.6.0-pycom-mpy.zip(149.97 KB)
    hiveeyes-micropython-firmware-0.6.0-source.tar.gz(113.14 KB)
    hiveeyes-micropython-firmware-0.6.0-source.zip(152.22 KB)
  • 0.5.1(Jun 22, 2019)

  • 0.5.0(Jun 22, 2019)

    Power shaving

    image

    • 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
    Source code(tar.gz)
    Source code(zip)
    hiveeyes-micropython-firmware-0.5.0.tar.gz(69.93 KB)
    hiveeyes-micropython-firmware-0.5.0.zip(97.25 KB)
  • 0.4.0(Jun 16, 2019)

    Getting real

    image

    • 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, 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
    Source code(tar.gz)
    Source code(zip)
    hiveeyes-micropython-firmware-0.4.0.tar.gz(64.73 KB)
    hiveeyes-micropython-firmware-0.4.0.zip(89.28 KB)
  • 0.3.0(Jun 22, 2019)

    Yaks all the way down

    image

    • 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
    Source code(tar.gz)
    Source code(zip)
  • 0.2.1(Mar 23, 2019)

  • 0.2.0(Mar 17, 2019)

    Fill in the gaps, lots of

    image

    • 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
    Source code(tar.gz)
    Source code(zip)
    hiveeyes-micropython-firmware-0.2.0.tar.gz(39.41 KB)
    hiveeyes-micropython-firmware-0.2.0.zip(52.63 KB)
  • 0.1.0(Jun 22, 2019)

    Architecture blueprint. Works, sort of.

    image

    • 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
    Source code(tar.gz)
    Source code(zip)
Owner
hiveeyes
A flexible beehive monitoring system based on affordable hardware, wireless telemetry and modern software. Open source, open hardware and a friendly community.
hiveeyes
A Raspberry Pi Pico plant sensor hub coded in Micropython

plantsensor A Raspberry Pi Pico plant sensor hub coded in Micropython I used: 1x Raspberry Pi Pico - microcontroller 1x Waveshare Pico OLED 1.3 - scre

null 78 Sep 20, 2022
uOTA - OTA updater for MicroPython

Update your device firmware written in MicroPython over the air. Suitable for private and/or larger projects with many files.

Martin Komon 25 Dec 19, 2022
An open source operating system designed primarily for the Raspberry Pi Pico, written entirely in MicroPython

PycOS An open source operating system designed primarily for the Raspberry Pi Pico, written entirely in MicroPython. "PycOS" is an combination of the

null 8 Oct 6, 2022
ESP32 micropython implementation of Art-Net client

E_uArtnet ESP32 micropython implementation of Art-Net client Instalation Use thonny Open the root folder in thonny and upload the Empire folder like i

null 2 Dec 7, 2021
Micropython automatic watering

micropython-automatic-watering micropython automatic watering his code was developed to be used with nodemcu esp8266, but can be modified to work with

null 1 Nov 24, 2021
Testing out some (stolen) DMA code for RP2040 Micropython

RP2040_micropython_dma testing out some (stolen) DMA code for RP2040 Micropython. Heavy inspiration and some code from https://iosoft.blog/2021/10/26/

null 2 Dec 29, 2022
ENC28J60 Ethernet chip driver for MicroPython (RP2)

micropy-ENC28J60 ENC28J60 Ethernet chip driver for MicroPython v1.17 (RP2) Rationale ENC28J60 is a popular and cheap module for DIY projects. At the m

null 11 Nov 16, 2022
For use with an 8-bit parallel TFT touchscreen using micropython

ILI9341-parallel-TFT-driver-for-micropython For use with an 8-bit parallel TFT touchscreen using micropython. Many thanks to prenticedavid and his MCU

null 3 Aug 2, 2022
MPY tool - manage files on devices running MicroPython

mpytool MPY tool - manage files on devices running MicroPython It is an alternative to ampy Target of this project is to make more clean code, faster,

Pavel Revak 5 Aug 17, 2022
Controlling fireworks with micropython

Controlling-fireworks-with-micropython How the code works line 1-4 from machine

Montso Mokake 1 Jan 8, 2022
Pylorawan is a Micropython wrapper for lorawan devices from RAK Wireless.

pylorawan Pylorawan is a Micropython wrapper for lorawan devices from RAK Wireless. Tested on a Raspberry PI Pico with a RAK4200(H) Evaluation Board (

Peter Houghton 3 Nov 4, 2022
The ABR Control library is a python package for the control and path planning of robotic arms in real or simulated environments.

The ABR Control library is a python package for the control and path planning of robotic arms in real or simulated environments. ABR Control provides API's for the Mujoco, CoppeliaSim (formerly known as VREP), and Pygame simulation environments, and arm configuration files for one, two, and three-joint models, as well as the UR5 and Kinova Jaco 2 arms. Users can also easily extend the package to run with custom arm configurations. ABR Control auto-generates efficient C code for generating the control signals, or uses Mujoco's internal functions to carry out the calculations.

Applied Brain Research 277 Jan 5, 2023
Isaac Gym Environments for Legged Robots

Isaac Gym Environments for Legged Robots This repository provides the environment used to train ANYmal (and other robots) to walk on rough terrain usi

Robotic Systems Lab - Legged Robotics at ETH Zürich 372 Jan 8, 2023
This application works with serial communication. Use a simple gui to send and receive serial data from arduino and control leds and motor direction

This application works with serial communication. Use a simple gui to send and receive serial data from arduino and control leds and motor direction

ThyagoKZKR 2 Jul 18, 2022
a weather application for the raspberry pi and the Pimorioni Inky pHAT.

raspi-weather a weather application for the raspberry pi and the Inky pHAT

Derek Caelin 59 Oct 24, 2022
An embedded application for toy-car controlling based on Raspberry Pi 3 Model B and AlphaBot2-Pi.

An embedded application for toy-car controlling based on Raspberry Pi 3 Model B and AlphaBot2-Pi. This is the source codes of my programming assignmen

StardustDL 4 Oct 19, 2022
Python application, displaying currently played track from Spotify on OLED display connected via I2C

RaspberryPi Spotify OLED Display This application will display currently played track on SSD1306 OLED display connected to RaspberryPi. Displayed stuf

Wojciech Olech 2 Dec 30, 2021
A python script for macOS to enable scrolling with the 3M ergonomic mouse EM500GPS in any application.

A python script for macOS to enable scrolling with the 3M ergonomic mouse EM500GPS in any application.

null 3 Feb 19, 2022
Python code written to utilize the Korlan usb2can hardware to send and receive data over the can-bus on a 2008 Nissan 350z

nissan_ecu_hacking Python code written to utilize the Korlan usb2can hardware to send and receive data over the can-bus on a 2008 Nissan 350z My goal

Liam Goss 11 Sep 24, 2022