Pronounced Tremors 🪱
This is a small prototype Rust firmware for the TRMNL device. It's nowhere near the capability of the official firmware.
It's based on esp-rs/esp-idf-template.
For now you can press the button to alternate between displaying random noise and displaying an image, then it will go to sleep after a minute of inactivity.
The device target, riscv32imc-esp-espidf, is a Tier 3 Rust target. Tier 3 means
rustup ships no prebuilt std for it, so std has to be compiled from source via
-Z build-std (see device/.cargo/config.toml) — and that's a nightly-only feature. A
proposal to promote the RISC-V ESP-IDF targets to Tier 2 (compiler-team#864) was
closed as not planned, so nightly stays a requirement for now.
rust-toolchain.toml pins an exact nightly on purpose. Because std is rebuilt from
whatever the pinned nightly ships, changes to std itself can break this target with no
warning. To move the pin:
just get-latest-nightly-version
just set-nightly-version nightly-YYYY-MM-DD
cd device && cargo build # confirm std still compiles for the targetBuild the project:
cd device
cargo buildFlash to the device:
espflash flash ../target/riscv32imc-esp-espidf/debug/trmrs-deviceView serial output:
espflash monitorRun CLI
cargo run -p cliRun Tests
cargo test -p trmrs_core