Skip to content

USB setup#

USB is the most direct way to update, inspect, and configure EP01. It is also the starting point for the usual WiFi setup flow.

Verify USB discovery#

enody list

Expected output includes a device identifier and firmware version.

For a more complete view:

enody info

Linux permissions#

On Linux, create a udev rule so non-root users can access the USB device:

sudo tee /etc/udev/rules.d/99-enody-esp32.rules <<'EOF'
SUBSYSTEM=="usb", ATTR{idVendor}=="303a", ATTR{idProduct}=="1001", MODE="0660", GROUP="plugdev", TAG+="uaccess"
EOF

Add your user to plugdev if needed:

sudo usermod -aG plugdev "$USER"

Reload rules:

sudo udevadm control --reload-rules
sudo udevadm trigger

Log out and back in if group membership changed.

Monitor device logs#

enody monitor

This enables SDK log forwarding for attached runtimes. Press Ctrl+C to stop.

Rust discovery#

use enody::environment::Environment;
use enody::usb::UsbEnvironment;

#[tokio::main]
async fn main() -> Result<(), enody::Error> {
    let env = UsbEnvironment::new();

    for runtime in env.runtimes() {
        let host = runtime.host().await?;
        println!("{} {}", host.identifier(), host.version());
    }

    Ok(())
}