Awesome
<!-- omit in toc -->Awesome ESP Rust
<!-- omit in toc -->A curated list of resouces for development in the Rust programming language for ESP32, ESP32-C2/C3/C6, ESP32-H2, and ESP32-S2/S3.
Table of Contents
- Community
- Books, Blogs, and Training Materials
- Video Courses and Talks
- Tools
- Templates
- Open Hardware
- Projects
- License
Community
You can usually find community members (including some employees of Espressif) in the #esp-rs:matrix.org
Matrix room.
Books, Blogs, and Training Materials
- [EN] The Rust on ESP Book - The goal of this book is to provide a comprehensive guide on using the Rust programming language with Espressif SoCs and modules.
- [EN] Embedded Rust (std) on Espressif - Training for Rust using
std
approach development on ESP32-C3 by Ferrous Systems. - [EN] Embedded Rust (no_std) on Espressif - Training for Rust using
no_std
approach development on ESP32-C3. - [EN] Scott Mabin - Rust on Espressif chips - Quarterly updates about Rust on Espressif chips.
- [EN] Bare-Metal Rust on ESP32: A brief overview - Overview of the
no_std
ecosystem on ESP32 chips. - [EN] Making a Dino Light with the ESP32 and WS2812
- [EN] ESP32 with Embedded Rust at the HAL - Blog series about learning Rust at the HAL level with the ESP32-C3.
- [EN] A getting started guide to ESP32 no-std Rust development
- [JP] 倒立振子ロボットを現代制御で動かしたい (I want to run an inverted pendulum robot with modern control)
- [JP] ESP32 で std な Rust 開発入門
- [EN] Programming ESP32 with Rust: OTA firmware update
- [VI] Lập trình ESP32 với Rust: cập nhật firmware OTA
Video Courses and Talks
- [EN] Rust on ESP32-C3
- [EN] Andrei Litvin / @embedded-rust
- [EN] Rust embedded at Espressif @ Copenhagen Rust Community
- [EN] Embedded Rust on ESP32 - Juraj Michálek - Rust Linz November 2022
- [EN] Rust on Espressif chips - Scott Mabin - DevCon22
- [EN] Rust Bare-metal and Async - Scott Mabin, Juraj Sadel - DevCon23
- [EN] Rust on ESP32 - Video series live coding esp32 examples in Rust
Tools
- espup - Tool for installing and maintaining the required toolchains for developing applications in Rust for Espressif SoC's.
- espflash - Serial flasher utility for Espressif SoCs and modules based on esptool.
- esp-web-flash-server - WebSocket server for flashing from Visual Studio Code Remote Containers using a web browser.
- wokwi-server - WebSocket server for running simulations in Wokwi from Visual Studio Code Remote Containers using a web browser.
- Wokwi Simulator - Web browser simulator that supports Rust language on ESP32 chips.
Templates
- esp-idf-template - A cargo-generate template for projects using the Rust
std
library (via ESP-IDF). - esp-generate - Template generation tool to create
no_std
applications targeting Espressif's chips.
Open Hardware
- esp-rust-board - A development board based on the ESP32-C3 and designed in KiCad EDA which is compatible with the Adafruit Feather specification.
Projects
std
- anemometer - Rust based anemometer incl. OTA and GPS based calibration process.
- bluedroid - Safe wrapper for the Bluedroid Bluetooth stack.
- Dark Sky Meter - Open Hardware low-cost night sky sensor that measures light levels as well as several ambient parameters.
- dephy-esp32c3-rust-boilerplate - A
std
ESP32-C3 application boilerplate on production withtokio
forasync
support and examples for IO, Wi-Fi provisioning, eFuse, GPIO, I2C, HTTP, BLE advertising, etc. - esp-clock - Clock with environment stats. Wokwi project
- esp32-idf-nmea-example - Example of integration ESP-IDF application with Rust code as component.
- esp32-s3-rust-axum-example - Example of running Tokio + Axum web server on the ESP32-S3.
- esp32c3-rust-std-temperature-logger - MQTT temperature logger running on ESP32-C3.
- esp32cam-rs - Examples of Rust on ESP32-CAM, including a fully-featured Telegram bot capable of taking pictures.
- gateway-rs - A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet(like frp but running on ESP32).
- mch2022-rust-app - Example that shows a nice rust screensaver in MCH2022 badge.
- M5Stack-Cardputer - Rust support for the Cardputer, including an interactive 3d graphics demo
- OFMon - Offline-first smart energy monitor using littlefs, Rust, ESP32, and Thingsboard. See details.
- OxidESPark - Rust library for the Rust ESP Board that uses the ESP-IDF framework and provides tools to easily build applications that interact with the physical world.
- rust-esp32-std-demo - A demo
std
binary crate for the ESP32[XX] and ESP-IDF, which connects to WiFi, Ethernet, drives a small HTTP server and draws on a LED screen. - rust4mch - Example to run Rust code on the MCH2022 badge.
- rustzx-esp32 - ZX Spectrum emulator based on RustZX project.
- self-balancing robot - Self-balancing robot using Atom Matrix and Atom Motion. See details.
- twatch-idf-rs - Experimental firmware for the Lilygo T-Watch
- wrover-experimental - Display line directions and departure times of public transport vehicles in Brno, CZ.
- esp-clock-rs - A weather clock project designed based on the Slint UI framework. This is a attempt for the low-coupling cross-platform project based on the message communication mechanism, which supports running on ESP32-C3, WebBrowser(WASM), Desktop, and Android.
no_std
- Beginner Rust ESP32 development - Snake - Snake game to run on an ESP32 development board with a connected OLED display and controlled with a joystick.
- esp32-rust-nostd-temperature-logger - MQTT temperature logger running on ESP32.
- esp32-conways-game-of-life-rs - Conway's Game of Life in Bare metal Rust for ESP32-BOX using GDMA.
- esp32-spooky-maze-game - Bare metal Rust implementation of simple game for ESP32.
- ps2keyboard-esp32c3 - PS/2 keyboard implementation for ESP32-C3.
- esp32c3-ota-experiment - ESP32-C3 Bare Metal OTA Experiment.
- SlimeVR-Rust/firmware - Async & no_std rust firmware for SlimeVR Full Body Tracking.
- esp32s3-box-examples - Various graphic examples for ESP32-S3 Box.
- nostd-wifi-lamp - A Wi-Fi Lamp built with an ESP32 and Neopixel Lights controllable via Wi-Fi
- plantineers-edge - Firmware for edge devices for an Open Source Plant Monitoring solution using esp-now
- esp32c3-no-std-async-mqtt-demo - ESP32-C3 application that measures temperature (using BMP180) and sends the results with MQTT via WiFi - everything is done asynchronously. Also available for ESP32 and ESP32-S3
- esp32-rust-lilygo-t5-epaper - ESP32 LilyGo T5 ePaper with WiFi
- esp32-buddy-rs - Bare metal Rust examples for ESP-Buddy board
- bradipograph - A sloth-like drawing robot.
- esp-examples - Some examples of esp-hal.
- touch-n-drink - Cashless payment device for cold drinks at a German aeroclub
License
This list is licensed under
- CC0 1.0 Universal License (LICENSE or https://creativecommons.org/publicdomain/zero/1.0/legalcode)