Preparations
This chapter contains information about the course material, the required hardware and an installation guide.
Icons and Formatting We Use
We use Icons to mark different kinds of information in the book:
- ✅ Call for action.
- ⚠️ Warnings, and details that require special attention.
- 🔎 Knowledge that dives deeper into a subject but which you aren't required to understand, proceeding.
- 💡 Hints that might help you during the exercises
Example note: Notes like this one contain helpful information
Code Annotations
In some Rust files, you can find some anchor comments:
// ANCHOR: test
let foo = 1;
...
// ANCHOR_END: test
Anchor comments can be ignored, they are only used to introduce those parts of code in this book. See mdBook
documentation
Required Hardware
- Rust ESP Board: available on Mouser, Aliexpress. Full list of vendors.
- USB-C cable suitable to connect the board to your development computer.
- Wi-Fi access point connected to the Internet.
No additional debugger/probe hardware is required.
Simulating Projects
Certain projects can be simulated, or at least partially simulated, with Wokwi. Here is the list of projects that support Wokwi simulation:
intro/hello-world
intro/http-client
advanced/i2c-sensor-reading
advanced/i2c-driver
advanced/button-interrupt
Before jumping into any simulation project, you need to setup the extension. To simulate one project:
- Press F1, select
Wokwi: Select Config File
, and choose thewokwi.toml
of the project you want to simulate.- Edit the corresponding
wokwi.toml
file to simulate the exercise or the solution project.
- Edit the corresponding
- Build your project in
debug
mode. - Press F1 again and select
Wokwi: Start Simulator
.
You can also debug the project.
Ensuring a Working Setup
⚠️ If you are participating in a training led by Ferrous Systems, we urge you to do prepare for the workshop by following the instructions in this chapter, at least, one business day in advance to verify you're ready to go by the time it starts. Please, contact us should you encounter any issues or require any kind of support.
⚠️ If you are using a ESP32-C3-DevKitC-02 a few pins and slave addresses are different, since the board is similar but not the same. This is relevant for the solutions in advanced/i2c-sensor-reading/ and advanced/i2c-driver/, where the pins and slave addresses for the ESP32-C3-DevKitC-02 are commented out.