Skip to content

Install and prerequisites#

If you only need to configure an EP01, use EP01 Setup first. The browser-based tool handles connection, firmware updates, appearance presets, WiFi pairing, and touch sensor data without installing SDKs.

This page collects the tools needed for the public docs, Rust SDK and CLI, Python bindings, JavaScript SDK, and EP01 host workflows.

Rust SDK and CLI#

The Rust crate is enody. It is the core SDK and provides the host-side CLI.

Install the CLI:

cargo install enody

Add the SDK to a Rust application:

[dependencies]
enody = "0.2.1"
tokio = { version = "1", features = ["full"] }

Default features are intended for host-side applications and include remote device access and CLI support. Disable default features when you only need message types and traits in a no_std context.

Python bindings#

The Python package is enody. It wraps the Rust core with PyO3 bindings and adds Python-oriented plotting, JSON, and tinygrad helpers.

pip install enody

The package declares Python >=3.8.

JavaScript SDK#

The JavaScript package is @enody/enody.

npm install @enody/enody

The package targets modern ESM applications. Browser builds use WebSerial, and Node.js scripts use the Node serial backend. Node-based tooling requires Node.js 18 or newer.

Documentation site#

The docs are built with Material for MkDocs.

python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
mkdocs serve

Build strictly before publishing:

mkdocs build --strict

USB dependency#

USB device access requires libusb on most platforms.

Platform Command
macOS brew install libusb
Debian / Ubuntu sudo apt install libusb-1.0-0
Fedora / RHEL sudo dnf install libusb1
Arch sudo pacman -S libusb
Alpine apk add libusb
Windows Bundled with the host tooling

Linux users should also install the udev rule in USB Setup.

EP01 compatibility#

Use the latest public Rust SDK and CLI version with the firmware versions offered by enody update. See Firmware Versions for the current public policy.