Content of this material

This is Ferrous Systems' Embedded Rust on Espressif training material. It is divided into two workshops: introductory and advanced. The introductory trail will introduce you to basics of embedded development and how to make the embedded board interact with the outside world - reacting to commands and sending sensor data.

The advanced course takes it from there to dive deeper into topics like interrupt handling, low-level peripheral access and writing your own drivers.

You can join the esp-rs community on Matrix for all technical questions and issues! The community is open to everyone.

The board

An Espressif Rust Board is mandatory1 for working with this book - emulators like QEMU are not supported.

The board design and images, pin layout and schematics can be also found in this repository.

If you subscribed to one of the trainings, a board will be provided to you directly by Espressif. Some exercises also require wireless internet access.

Our focus lies primarily on the ESP32-C3 platform, a RISC-V based microcontroller with strong IoT capabilities, facilitated by integrated Wi-Fi and Bluetooth 5 (LE) functionality as well as large RAM + flash size for sophisticated applications. A substantial amount of this course is also applicable for Xtensa the other architecture Espressif uses, in particular the ESP32-S3. For low-level access the general principles apply as well, but actual hardware access will differ in various ways - refer to the technical reference manuals (C3, S3) or other available technical documents as needed.

Rust knowledge

Basic Rust like The Rust Book Chapters 1 - 6, Chapter 4 Ownership does not need to be fully understood.


It is possible to follow the intro part with ESP32-C3-DevKitC-02 but we do not recommend it. It is inherently easier to follow the training when using the same hardware.