Wrap-Up & Next Steps

What You Learned Today

The Mental Model

Instantiate → Configure → Control - it works for every peripheral, every HAL, every driver crate.

StepWhat You DoWhere in the Docs
InstantiateCreate a driver instanceStruct page → new() or builder
ConfigureSet behavior optionsConfig structs, enums
ControlRead/write/interactTrait implementations, methods

The Ecosystem Layers

BSP → Driver Crates → embedded-hal → HAL → PAC → Hardware

You know what each layer does and how to read its documentation.

The Skills

  • Navigate crate documentation to find peripheral modules, examples, driver structs, and methods
  • Apply the mental model across different HALs — you compared esp-hal, rp2040-hal, and stm32f4xx-hal
  • Use the BSP layer to simplify the pattern to Instantiate → Control

The Workflow

Find a basic example → Apply the mental model → Map to documentation → Modify

The example shows ONE way. The docs show ALL ways. Your job is to explore.

Where to Go From Here

Keep Learning with uFerris

Your uFerris board has more peripherals to explore:

  • SPI - faster serial communication (displays, SD cards)
  • ADC - read analog values (potentiometers, light sensors)
  • PWM - control LED brightness, servo motors
  • ESP-NOW - wireless communication between ESP32 devices

Same pattern: find the module in esp-hal docs, Instantiate → Configure → Control.

Dig Deeper

For a more comprehensive guide, check out the Simplified Embedded Rust: ESP Core Library Edition book.

Level Up with Async

Embassy is an async runtime for embedded Rust. Instead of interrupt handlers with mutexes, you write async/await code:

#![allow(unused)]
fn main() {
// Instead of interrupt handler + AtomicBool flag:
let level = button.wait_for_falling_edge().await;
led.toggle();
}

Check out embassy.dev and the embassy-executor crate.

Stay Connected

Keep Your uFerris Board

The board is yours. Experiment, break things, build projects. The best way to learn is to have a problem you actually want to solve.


Thank you for attending. Now go build something.