Email the Author
You can use this page to email Nguyen Hoan Hoang about Beyond Blinky.
About the Book
Think Analog. Design a Living Architecture.
This book is about how to think before you build—from board to firmware. Systems are treated as flows with capacity, latency, jitter, loss, and feedback, then expressed with disciplined C++ OOD.
Derived from real practice
The material codifies the design decisions that produced IOsonata (an open-source C++ HAL). IOsonata is presented as evidence, not a tutorial; the focus is on why those choices were made and how to reason in the same way on any stack.
Why this matters
Analog thinking—flows, budgets, margins—combined with policy ≠ mechanism keeps designs clear under change. A single timebase, explicit contracts, and reproducible validation complete the discipline.
What you’ll learn
- Practice analog thinking: design flows, not function lists
- Decide what becomes an object (and what stays a fact)
- Keep policy separate from mechanism; wire at a composition root
- Use a single timebase and timing contracts to control phase & jitter
- Validate with pulse-train (timing integrity) and PRBS (throughput/back-pressure)
- Keep C++ zero-overhead by design (no exceptions/RTTI; static where it counts)
You’ll master patterns to
- Analog first: interfaces as channels with capacity, latency, jitter, back-pressure
- What to objectify: land (facts), roots (contracts), trees (behavior), fruit (what the world sees)
- Policy ≠ mechanism: change UART/SPI/I²C/BLE without changing the idea
- Decide with constraints: one timebase, explicit budgets, measurable margins
- Prove it: pulse-train + PRBS with clear pass/fail criteria
This book is for
- Engineers who want to reason about firmware—meaning, relationships, and decisions that age well—before typing code
- Developers moving beyond Arduino toward professional C++ practices
- Makers taking prototypes into production with maintainable systems
Proof, not pitch
These measurements validate the design; they aren’t the reason for it.
(UART PRBS receiver on host; same method across stacks and boards.)
nRF54L15 DK
- IOsonata (C++ OOD): 102.2 KB/s
- Zephyr (C): 82.9 KB/s
- nrfx (C, Vendor HAL): 80.0 KB/s
nRF52832 DK @ 2 Mbaud
- IOsonata (C++ OOD): 203 KB/s
- Zephyr (C): Not supported
- nrfx (C, Vendor HAL): 183.7 KB/s
To blinky and beyond—let’s make your IO sing!
About the Author
Nguyen Hoan Hoang (B.Eng., Polytechnique Montréal) is a hardware–software engineer, founder of I-SYST Inc., and author of IOsonata. Beyond Blinky documents the architecture and reasoning that produced IOsonata—analog thinking applied to embedded OOD, with budgets, margins, composition-root wiring, and repeatable validation.
