Engineering Notes

From the Bench

Real problems, root causes, and working solutions — from the AGNIDYNE engineering team.

Debugging the STM32 I²C Stuck-BUSY Errata

A sensor stops responding mid-operation. HAL_I2C_Master_Transmit returns HAL_BUSY on every retry. A peripheral reset doesn't fix it. Here is what is actually happening — and the nine-clock recovery sequence that reliably clears it.

Read article →
PyTorch to TensorRT on Jetson: The Pitfalls Nobody Warns You About

The standard deployment pipeline looks straightforward on paper. In practice, dynamic axes, unsupported ONNX ops, and FP16 precision loss each bite in different ways depending on your model and target Jetson platform. A practical walkthrough of what to check before your deployment meeting.

Read article →
MQTT QoS for Industrial IoT: What the Spec Does Not Tell You

QoS 0, 1, and 2 are well-documented. What is less discussed: how Last Will & Testament, persistent sessions, and TLS overhead interact on constrained LTE-M and LoRaWAN gateways. A decision framework for industrial deployments.

Read article →
How We Scope an Embedded PoC: A Framework That Actually Works

Most embedded projects that go wrong do so before the first line of code is written. Wrong assumptions about scope, success criteria defined too loosely, or no agreement on what a PoC is actually supposed to prove. Here is the framework we use to prevent that.

Read article →