I'd like to propose adding my project, Belay, to your list! I can open a PR, but I was unsure of what section to put it under. Belay is primarily 2 things:
Allows Easy Computer-Device Communications.
The following code, running on a computer (e.g. with CPython), will toggle an LED on a microcontroller board running micropython. Besides micropython, no prior pre-configuration is required.
import belay
device = belay.Device("/dev/ttyUSB0")
@device.task
def set_led(state):
print(f"Printing from device; turning LED to {state}.")
Pin(25, Pin.OUT).value(state)
set_led(True)
Package Manager
It's been a challenge to get repeatable deployments, and reliable dependency updates. I added a cli tool belay
that is heavily inspired by Poetry.
Basically, micropython dependency URLs can be specified in pyproject.toml
. Running belay update
will fetch and cache those files into the .belay/
folder of your project (this should be committed to git and can be thought of like a lock file). The dependencies and project can then be installed to device via belay install [PORT]
. Hashes of files are compared, so syncs are efficient when only a few changes are made. The CLI has a lot of other actions to aid in development and debugging, but this is the basic use-case.
Here's a very basic project that uses Belay for handling dependencies. Note that in this project, no explicit belay install
needs to be performed since it's automatically handled within main.py
. This also allows for pip-installable libraries/cli to bundle micropython code that can be automatically deployed to micropython microcontrollers.