Skip to content

FMFigueroa/embedded-learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Embedded Learning

Personal repository documenting my journey learning embedded systems development with ESP32 microcontrollers.

Hardware

Board Architecture Language Framework
ESP32 (standard) Xtensa LX6 C ESP-IDF
ESP32-C3 Rust Board RISC-V 32-bit Rust esp-hal (no-std) / ESP-IDF (std)

Repository Structure

embedded-learning/
├── esp32-c/              # ESP32 Xtensa with C/ESP-IDF
│   ├── projects/         # C projects
│   └── docs/             # C/ESP-IDF notes
├── esp32-c3-rust/        # ESP32-C3 RISC-V with Rust
│   ├── no-std/           # Baremetal projects (esp-hal)
│   │   ├── blinky/       # LED blinking
│   │   ├── gpio/         # GPIO input/output
│   │   └── uart/         # Serial communication
│   └── std/              # ESP-IDF + FreeRTOS projects
└── docs/                 # General embedded notes

Learning Path

Phase 1: Rust no-std (Baremetal)

  • Blinky LED
  • GPIO input (buttons)
  • UART serial communication
  • Timers and interrupts
  • I2C sensors
  • SPI displays

Phase 2: Rust std (ESP-IDF)

  • FreeRTOS tasks
  • WiFi connectivity
  • HTTP client/server
  • MQTT
  • BLE

Phase 3: C with ESP-IDF

  • Document previous Linux projects
  • Port concepts from Rust to C

Toolchain Setup (macOS)

Rust ESP32-C3 (RISC-V)

# Install espup (ESP Rust toolchain manager)
cargo install espup
espup install

# Add RISC-V target
rustup target add riscv32imc-unknown-none-elf

# Install flash tools
cargo install espflash
cargo install cargo-espflash

# Optional: probe-rs for debugging
cargo install probe-rs-tools

C ESP-IDF (for later)

# Install ESP-IDF via Homebrew
brew install cmake ninja dfu-util
# Then follow ESP-IDF installation guide

Resources

Rust Embedded

C/ESP-IDF

Author

Felix Figueroa - Leonobitech

About

ESP32 embedded systems learning repository - Rust & C

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages