Introduction

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 the 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.

Translations

This book has been translated by generous volunteers. If you would like your translation listed here, please open a PR to add it.

The Board

A Rust ESP Board is mandatory1 for working with this book - emulators like QEMU aren't supported.

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

If you are subscribed to one of the trainings, a board will be provided to you directly by Espressif.

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 doesn't need to be fully understood.
  • The Rust on ESP Book isn't required, but it is highly recommended, as it can help you understand the Rust on ESP ecosystem and many of the concepts that will be discussed during the training.
1

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