Cellular IoT Modem AT Command Debugging With Minicom and a USB-to-Serial Adapter
AT commands, URC parsing, and PPP dial-up in 2024 — cellular modems still speak Hayes command set. A debugging workflow that makes modem bring-up less painful.
Microcontroller programming, real-time systems, IoT development, and firmware engineering
MQTT's persistent connections suit devices with stable connectivity. CoAP's stateless request-response suits intermittent links. The CC2652 running Zephyr is a fair test bed.
AT commands, URC parsing, and PPP dial-up in 2024 — cellular modems still speak Hayes command set. A debugging workflow that makes modem bring-up less painful.
Cortex-M0 and M0+ have no MPU. Stack canaries and paint-based high-water mark detection give you meaningful stack overflow coverage without hardware support.
Raw magnetometer readings are corrupted by hard and soft iron distortion. A min-max calibration removes hard iron; a 3x3 correction matrix handles soft iron. The implementation and field test.
MCUboot is well-documented in theory. The devil is in image slot alignment, key provisioning, and what happens during a failed upgrade on constrained flash.
Ed25519 is fast on 32-bit MCUs and simple to implement correctly. RSA-2048 is not. A comparison of signature schemes with measured verification times on Cortex-M4.
A/B partition, signature check, rollback counter — every decision I got wrong the first time, and what I'd do differently today.
Factory calibration offsets drift. A six-position calibration routine implemented on the device itself corrects bias, scale factor error, and misalignment using only gravity.
A 100 ms advertising interval uses roughly ten times the power of a 1000 ms interval. The connection parameter negotiation that controls power after pairing and the iOS constraints that surprise developers.
A linker script is a program. Reading it as configuration leads to mistakes that are hard to diagnose without understanding the MEMORY, SECTIONS, and symbol resolution model.
CANopen builds a rich application layer on top of CAN. The object dictionary model, SDO expedited transfer, and PDO mapping are the three concepts you need to implement a basic node.
Pull-up too weak, clock stretch timeout, address collision — each failure leaves a distinct fingerprint on a 24 MHz capture. Here is what to look for.