shanemmattner / ESP32-C3_Rust_Tutorials

MIT License
65 stars 4 forks source link

ESP32-C3 Rust Tutorials

Various embedded Rust tutorials using the ESP32-C3. We'll work towards making a remote data logger by first implementing peripherals we will need to build the larger project.

Each tutorial below has a YouTube video link where I will start with a blank project and implement a peripherals using the latest esp-idf-hal version.

Repo organization

Part 0: Remote Data Logger MVP

Minimum viable product project where we'll implement all the peripherals and features we need for the data logger

Peripheral Tutorials

Application Tutorials

Part 1:

For the next part of the project we will add in features listed below:

Other features I'd like to add but don't have a clear example for yet:

Development environment setup 1. [Install Rust](https://esp-rs.github.io/book/installation/installation.html) and associated build tools 2. Start a project using the [esp-idf-template](https://github.com/esp-rs/esp-idf-template) from the private repo home `dir`. I chose all the default options ``` # STD Project cargo generate https://github.com/esp-rs/esp-idf-template cargo # NO-STD (Bare-metal) Project cargo generate https://github.com/esp-rs/esp-template ``` 3. Build the `Hello World` program by running `cargo build` in the new project dir. This will take a while to build the first time: ``` cd esp32-rust cargo build ... Finished dev [optimized + debuginfo] target(s) in 6m 40s ``` 4. Flash the ESP32 with the build artifact: ``` espflash /dev/ttyACM0 target/riscv32imc-esp-espidf/debug/project ``` 5. Connect to ESP32 and monitor ``` espmonitor /dev/ttyACM0 ```
Misc [Singletons in Embedded Rust](https://docs.rust-embedded.org/book/peripherals/singletons.html) Pull in code for submodules with: ``` git submodule update --init --recursive ```
Links - [150+ ESP32 project](https://microcontrollerslab.com/esp32-tutorials-projects/) - [Wokwi ESP32 Rust](https://wokwi.com/rust) - [ESP32 Tutorials](https://embeddedexplorer.com/esp32/) - [160+ ESP32 Projects, Tutorials, and Guides](https://randomnerdtutorials.com/projects-esp32/)