Host-side tools that interact with the ESP-IDF firmware.
Project description
Host Python Tools
This folder contains host-side Python code that interacts with the ESP-IDF firmware (e.g., over serial, sockets, or file exchange). It is kept separate from the firmware build to avoid mixing tool dependencies with ESP-IDF.
Quick start
python -m venv .venv
source .venv/bin/activate
pip install -e .
enode-host --help
enode-host socket 127.0.0.1 3333 "hello"
enode-host server --port 3333 --interactive
enode-host gui --port 3333
Notes
- Add runtime dependencies to
pyproject.tomlunderproject.dependencies. - Keep device/transport details in small modules so they can be shared by scripts and tests.
- The GUI uses wxPython; install it if you plan to run
enode-host gui. - The GUI needs an active X11/Wayland display. On headless hosts, use
xvfb-run enode-host guior runenode-host serverinstead. - If the GUI aborts with WebView/EGL errors on Linux, try
WEBKIT_DISABLE_DMABUF_RENDERER=1 enode-host gui. - If WebView still fails, you can disable the map panel with
ENODE_DISABLE_WEBVIEW=1 enode-host gui.
Protocol (TCP, length-prefixed)
Frame format: 1 byte message type, 2 bytes big-endian payload length, payload.
Message types:
- 0x10 COMMAND (host -> device)
- 0x20 STATUS (device -> host)
- 0x30 ACK (either direction)
- 0x40 DATA (device -> host, ACC batch)
- 0x41 PPS (device -> host, immediate PPS)
Commands (payload begins with command_id):
- 0x01 start_daq
- 0x02 stop_daq
- 0x03 set_mode (1 byte: 0 realtime, 1 past)
- 0x04 start_realtime_stream
- 0x05 stop_realtime_stream
Status payload (16 bytes):
- node_type: uint8
- node_number: uint8
- level: uint8
- parent_mac: 6 bytes
- self_mac: 6 bytes
- rssi: int8
DATA payload:
- node_type: uint8
- node_number: uint8
- sample_count: uint8
- repeated samples (count):
- cc: uint64 (big-endian)
- acc_x: float32 (big-endian)
- acc_y: float32 (big-endian)
- acc_z: float32 (big-endian)
PPS payload:
- node_type: uint8
- node_number: uint8
- cc: uint64 (big-endian)
- epoch: int64 (big-endian)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file enode_host-0.1.6.tar.gz.
File metadata
- Download URL: enode_host-0.1.6.tar.gz
- Upload date:
- Size: 68.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8158589e528c2f97da2d0d1bf9531c4c42c6031042628dc4985a03e4a5d14a0
|
|
| MD5 |
f2cf46cfc7de98899a25e83faa473200
|
|
| BLAKE2b-256 |
b5b54a70f95bf5691040ff72fe5795ff11e493d0921d08e6ba143b85d9af6763
|
File details
Details for the file enode_host-0.1.6-py3-none-any.whl.
File metadata
- Download URL: enode_host-0.1.6-py3-none-any.whl
- Upload date:
- Size: 80.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c80e660ea2278a3ca09379459f179978d9d682e892acb6f1591e284774a3dab
|
|
| MD5 |
136800d9f65c4a3ea8edc5d1190cd775
|
|
| BLAKE2b-256 |
4f6488dd3095474c24a6b058c30b84d07fac944b9775e5654c8ed834adf74c8c
|