Blog
Engineering workflows, component deep-dives, and practical guides for hardware design.
Writing an SPI Driver for the ICM-42688-P: Five Traps Inside a 117-Page Datasheet
A complete walkthrough of writing a real SPI driver for the ICM-42688-P IMU on ESP32 — covering every initialization trap, from the sleep-mode default to the interrupt reset bit that ships broken from the factory.
I Picked a 3A MOSFET for a 2A Load and It Caught Fire
A P-channel MOSFET rated for 3A that overheated at 2A — because the Rds(on) spec was at Vgs=4.5V but the circuit only drove 3.3V. How reading the actual datasheet curves caught the mistake.
Selecting a Current Sense Amplifier for Battery Monitoring
Walk through the real engineering trade-offs when choosing between the INA219, INA226, and ZXCT1009 for a 2S lithium-ion battery pack — from spec comparison to design validation.
I Spent Three Days Debugging a Buck Converter Because I Didn't Read Page 14
A TPS54302-based 3.3V supply that worked perfectly on the bench but randomly reset the MCU during motor start-up. Three days of wrong turns before discovering an undersized inductor saturating on transient peaks.
The USB-C Power Delivery Rabbit Hole
From 'I just want 12V from USB-C' to understanding PD negotiation, CC resistors, and choosing between the HUSB238, STUSB4500, and FUSB302. A field guide to USB-C PD sink design.
STM32 vs ESP32: The Decision That Shouldn't Take Two Weeks
A pragmatic decision framework for choosing between STM32 and ESP32 — based on project constraints, not tribal loyalty or meaningless benchmark numbers.