Type-Safe Rust Wrappers for various ESP-IDF services (WiFi, Network, Httpd, Logging, etc.)
APACHE-2.0 License
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: