Skip to content

Repository files navigation

TRMRS

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.

device showing image of ferris

Toolchain

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 target

Building and Running

Build the project:

cd device
cargo build

Flash to the device:

espflash flash ../target/riscv32imc-esp-espidf/debug/trmrs-device

View serial output:

espflash monitor

Run CLI

cargo run -p cli

Run Tests

cargo test -p trmrs_core

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages