async mode for each service (async support where feasible)esp-idf-hal and esp-idf-sys as esp_idf_svc::hal and esp_idf_svc::sys. You only need to depend on esp_idf_svc to get everything you needYou might want to also check out the ESP IDF Drivers wrappers, and the raw bindings to ESP IDF in the esp-idf-sys crate!
Follow the Prerequisites section in the esp-idf-template crate.
The examples could be built and flashed conveniently with cargo-espflash. To run e.g. wifi on an e.g. ESP32-C3:
(Swap the Rust target and example name with the target corresponding for your ESP32 MCU and with the example you would like to build)
with cargo-espflash:
$ MCU=esp32c3 cargo espflash flash --target riscv32imc-esp-espidf --example wifi --monitor
| MCU | "--target" |
|---|---|
| esp32c2 | riscv32imc-esp-espidf |
| esp32c3 | riscv32imc-esp-espidf |
| esp32c6 | riscv32imac-esp-espidf |
| esp32h2 | riscv32imac-esp-espidf |
| esp32p4 | riscv32imafc-esp-espidf |
| esp32 | xtensa-esp32-espidf |
| esp32s2 | xtensa-esp32s2-espidf |
| esp32s3 | xtensa-esp32s3-espidf |
Use the esp-idf-template project. Everything would be arranged and built for you automatically - no need to manually clone the ESP IDF repository.
For more information, check out: * The Rust on ESP Book * The ESP Embedded Training * The esp-idf-template project * The embedded-svc project * The esp-idf-hal project * The embedded-hal project * The esp-idf-sys project * The Rust for Xtensa toolchain * The Rust-with-STD demo project
$ claude mcp add esp-idf-svc \
-- python -m otcore.mcp_server <graph>