Skip to main content

Blog

Engineering workflows, component deep-dives, and practical guides for hardware design.

17 min read

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.

firmwareimuspiesp32freertosdriver
6 min read

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.

debuggingmosfetpowercomponent-selection
6 min read

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.

component-selectionpowerbattery
9 min read

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.

debuggingpowerbuck-converter
10 min read

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.

usb-cpower-deliverycomponent-selection
9 min read

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.

microcontrollercomponent-selectionembedded
Blog | SheetsData