This is a file system plus console plus MQTT plus take-your-pick multiplexer for MicroPython.
On the embedded device, a small single-client server runs in the background. It receives file system commands, REPL input, OTA updates, MQTT messages, and/or any other commands you might want to hook up. It sends MQTT messages, REPL output, and any replies your commands generate.
The other side (Linux, for now) starts a multiplexer which connects to that mini-server and exposes a messaging socket and a bidirectional channel for raw REPL data. It also connects to MQTT.
A FUSE driver links the messaging socket to a convenient place in the file system; it’s also possible to send file system commands directly.
A terminal program (based on pyserial-miniterm) is included.
TODO
OTA updates.
File system commands from the command line / an async Python program.
The msgpack implementation needs improvement; it is crazy inefficient. Sending a console line should eat 50 bytes (one three-element dict to be transmitted) or zero bytes (if we hand-roll the message), not 1700.
There is not yet any attempt at reconnecting. (Should there be?)
There are occasional MicroPython crashes:
assertion "ATB_GET_KIND(block) == AT_HEAD" failed: file "…/micropython/py/gc.c", line 591, function: gc_free
This definitely looks like a MicroPython bug. The problem might be related to bytearray slicing.
Release files for microfuse 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| microfuse-0.2.1.tar.gz | 66.2 kB | Details |
Release files / microfuse-0.2.1.tar.gz
| Download URL | microfuse-0.2.1.tar.gz |
|---|---|
| Size | 66.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fd6aa4744d51390ab9ff460f85f22137b82e4a933c6ba7fb5cea4732f474e5cc
|
|
BLAKE2b-256 checksum How to use checksums |
dc88fa61ea4073b2df1394425bdad19598aeadc8be213bf85c8bbadff6383c71
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.4.2 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.9.2
|