Skip to content

Architecture

Pure Rust no_std firmware for xtensa-esp32s2-none-elf (edition 2024), built on esp-hal + embassy. The 128 KiB heap must live in .dram2_uninit (the main DRAM segment overflows otherwise).

  • Directorysrc/
    • main.rs — entry point
    • config.rs — config model
    • storage.rs — NVS storage
    • logging.rs — log ring -> USB-CDC
    • panic_report.rs — panic handler
    • Directoryboards/
      • mod.rs — re-exports
      • s2_mini.rs — pin definitions
    • Directoryhardware/
      • led.rs — status LED task
      • button.rs — button actions
      • efuse.rs — MAC + AP SSID
      • usb.rs — USB-CDC + auto-reset
      • mod.rs
    • Directorynet/
      • mod.rs — WiFi bring-up
      • dhcp.rs — DHCPv4 server
      • http.rs — HTTP server
      • ws.rs — WebSocket server