DEVELOPBY UNEXPECTED MAKER

Develop

Languages, development tools and ready-made projects for your next build.

If this is your first time using an Unexpected Maker development board, please check out the Getting Started guide → first.

Languages / platforms

Choose your language and development tools. Runtime support varies by chip; follow the linked project’s hardware requirements and board setup.

Rust

Compile embedded Rust with esp-rs for the ESP32 family.

Choose your MCU

1

Install Rust

Install Rust with rustup. It also installs Cargo, Rust’s build tool and package manager, which the cargo commands in the following steps use.

2

Install the Xtensa toolchain

ESP32 uses an Xtensa CPU, which needs Espressif’s Rust toolchain. Install it with espup, then follow espup’s instructions to load its environment:

cargo install espup --locked
espup install
3

Install esp-generate and espflash

esp-generate creates a project for your chip; espflash flashes it.

cargo install esp-generate --locked
cargo install espflash --locked
4

Generate a project

Create a project for esp32, or run esp-generate on its own to choose options interactively:

esp-generate --headless -o esp32 my-project
cd my-project

Choose pins from your UM board’s pin reference; the chip support alone doesn’t know your board’s LED, regulator or battery connections.

5

Connect the board

Connect TinyPICO with a USB data cable and close any serial monitor. It enters download mode automatically through its USB-to-serial bridge; it has no BOOT button.

6

Build, flash and run

cargo run builds the project, flashes it with espflash and opens the serial monitor.

cargo run --release

Deployable projects

Ready-made firmware and connected applications for lighting, sensors and home automation. Follow each project’s supported hardware and configuration guide.