Firmware Over-the-Air Update Security Model: Threat Modeling a Real Device
STRIDE threat modeling applied to an OTA firmware update system surfaces threats that neither the bootloader team nor the cloud team considered in isolation.
Microcontroller programming, real-time systems, IoT development, and firmware engineering
Running firmware CI without hardware-in-the-loop tests is incomplete. A QEMU + real-hardware hybrid pipeline that doesn't require a $10,000 test rack.
STRIDE threat modeling applied to an OTA firmware update system surfaces threats that neither the bootloader team nor the cloud team considered in isolation.
D-cache on the H7 will silently corrupt your DMA buffers unless you align and flush correctly. Here is exactly where I got burned.
A week of false leads ended in one NVIC priority inversion and a lesson about completion interrupts I won't forget.
The IDLE line interrupt on STM32 triggers when the UART line goes idle after receiving. Combined with DMA circular mode, it gives you efficient variable-length frame reception.
Nordic deprecated its legacy nRF5 SDK in favor of nRF Connect SDK. The migration is mostly mechanical but the Kconfig model and west manifests require new habits.
USB Power Delivery negotiation looks simple in the spec and feels impossible on real hardware. Three boards, two oscilloscopes, and one blown FUSB302.
You don't need to understand elliptic curve mathematics to use it correctly. You do need to understand nonce reuse, timing channels, and authenticated encryption. Those three things.
A HardFault that resets the device leaves no trace unless you log to flash before the reset. A minimal fault handler that captures PC, LR, and register state to a dedicated flash region.
ETM instruction tracing on Cortex-M7 provides a non-intrusive execution profile that sampling profilers miss for short functions. The setup with a J-Trace and Ozone's timeline view.
Gorilla compression from Facebook's time-series paper is simple to implement and achieves 1.5–3x compression on typical sensor data. An implementation guide for embedded use.
ESP32's modem sleep reduces current from 100 mA to under 20 mA during periods between transmissions. Light sleep adds CPU sleep to bring it below 1 mA. The configuration and DTIM period trade-offs.