March 22, 2026 · 14 min read
MerakiMR18PythonJTAGOpenWrtUARTdeep-dive
Launching the kernel and catching failsafe on the way down
Lotta different problems, you would think they came with lessons — AVGUST, “Vanilla Latte”
Post 10 ended with a verified binary in clean DRAM. Post 5 gave the high-level failsafe saga. This post covers the actual code: the launch trampoline, the regression that taught me to stop touching the CPU, and two competing strategies for triggering failsafe mode.
Read more →
March 24, 2026 · 26 min read
MerakiMR18PythonUARTOpenWrtdeep-dive
Hex-encoding 7 million bytes because the PHY won’t cooperate
Post 6 described the hex-over-UART transfer protocol at a high level—hex-encode every byte, pipe it through an awk decoder on the MR18, pray nothing goes wrong for 20 minutes straight. This post rips open send_binary.py and uart_transfer.py and walks through the actual Python. Two scripts, two transfer sizes, same dumb protocol, very different engineering challenges.
Read more →