Keyboard shortcuts

Press ← or β†’ to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Improved Developer Experience

ODP reduces developer friction and increases confidence, thus shortening the time to value for the development effort.

"Firmware development shouldn’t feel like archaeology."

Developers can build and test components in isolation (e.g., battery, GPIO, boot timer), aided by QEMU emulation, mocks, and test harnesses.

Then and Now

ODP can improve developer engagement and productivity by:

  • πŸš€ Reducing developer friction
  • πŸ› οΈ Supporting tooling that’s approachable and efficient
  • πŸ§ͺ Enabling fast iteration and confident change
  • πŸ’¬ Reinforcing that firmware development is not arcane magic, just solid coding.

The Rust ecosystem brings built-in unit testing, logging, dependency control (Cargo), and static analysis.

timeline
  title Developer Workflow Evolution
  2000 : Edit ASM/C, guess BIOS behavior
  2010 : Use UEFI drivers, painful debug cycle
  2023 : Rust-based firmware prototypes emerge
  2024 : ODP introduces modular build + Stuart tools
  2025 : Fully testable DXE + EC code in Rust with shared tooling
flowchart LR
  Idea["πŸ’‘ Idea"] --> Dev["🧩 Create Service Component"]
  Dev --> Test["πŸ§ͺ Unit & Desktop Test"]
  Test --> Build["πŸ”§ Cross-target Build<br/>(host & EC)"]
flowchart LR
  Build --> Sim["πŸ–₯️ Simulate with Mock Devices"]
  Sim --> Flash["πŸš€ Build & Flash"]
  Flash --> Log["πŸ“„ Review Logs / Debug"]
  Log --> Iterate["πŸ” Iterate with Confidence"]