What we've been reading this Spring/Early Summer (2026)
Here are the articles, videos, tools, and announcements we’ve been excited about in March through June 2026.
@interrupt-blog
Publisher
218
Posts
Here are the articles, videos, tools, and announcements we’ve been excited about in March through June 2026.
Some useful west tricks for managing Zephyr workspaces more effectively.
Most embedded developers use #pragma pack(1) to create portable binary record formats. But pack(1) forces the compiler to byte-decompose every field access – even perfectly aligned fields – resulting in 7x more operations on RISC-V, ARM, and Xtensa. This post shows the problem, the fix (packed +...
Matter devices typically communicate within the local network, but sometimes you need to reach the internet, whether for telemetry, cloud services, or custom functionality. This post explains how to send UDP traffic from a Matter-over-Thread device through a Thread Border Router using NAT64, with...
Here are the articles, videos, and tools we’ve been excited about in February 2026.
Here are the articles, videos, and tools we’ve been excited about in January 2026.
Here are the articles, videos, and announcements we’ve been excited about to close out 2025.
Here are the articles, videos, and tools we’ve been excited about in September and October 2025.
Here are the articles, videos, and tools we’ve been excited about in August 2025.
Here are the articles, videos, and tools we’ve been excited about in July 2025.
Discover the story behind this embedded systems roadmap—a structured learning path for hardware and software engineers. It guides you in selecting resources, boosting career growth, and staying current with industry trends.
Diving into the hardware design of an Open Smart Ring project
Here are the articles, videos, and tools we’ve been excited about in June 2025.
Unwinding coredumps on-device using .eh_frame and addr2line.
Introducing Open Smart Ring project with a series of articles
Here are the articles, videos, and tools we’ve been excited about in May 2025.
AI-skeptical engineer builds Gopher client for Zephyr using AI
Here are the articles, videos, and tools we’ve been excited about in April 2025.
Limiting the size of Linux coredumps by collecting stacks and metadata for gdb
Steps to debug embedded systems, including several case studies involving stack clobbering, undefined functions, and memory faults
Here are the articles, videos, and tools we’ve been excited about in March 2025.
Learn how to build a custom Debian-based OS ready for OTA updates via Memfault.
Here are the articles, videos, and tools we’ve been excited about in February 2025.
An introduction to the technical decisions Android developers will have to make when designing AOSP observability tools for the first time.
A deep dive into how std::this_thread::sleep_for() is implemented on ESP32, and why it is broken in IDF v5.
The basics of Linux coredumps, how they’re used at Memfault, and how they’re captured.
Here are the articles, videos, and tools we’ve been excited about in January 2025.
Tutorial of Application Performance Monitoring (APM) using Zephyr, nRF52, an Analog LTC5800, and Memfault
Announcement for a Interrupt Live, a live interview of Interrupt authors
Here are the articles, videos, and tools we’ve been excited about in December 2024.
Ultrahuman’s account of doing a complex migration from nRF5 SDK to Zephyr NCS on a nRF52 project
Here are the articles, videos, and tools we’ve been excited about in November 2024.
A discussion of a sequential storage crate which can be used in Rust projects for efficiently storing data in NOR flash.
Here are the articles, videos, and tools we’ve been excited about in October 2024.
A recap of Embedded World 2024
A comparison of WSL2 to traditional firmware development environments.
Here are the articles, videos, and tools we’ve been excited about in September 2024.
Here are the articles, videos, and tools we’ve been excited about in August 2024.
A story about memory usage causing real-time performance issues in an audio system.
Here are the articles, videos, and tools we’ve been excited about in July 2024, including how to reverse engineer a smartwatch, Rust support in Zephyr, and an in-depth look at the basic building blocks of CPUs. Plus, news of “motor doping” at the Olympics.
Diving into the challenges of persisting device state to flash memory.
A checklist with supporting stories for firmware engineers to review when doing a schematic review.
Here are the articles, videos, and tools we’ve been excited about in June 2024, including a video tutorial on how to set up Matter and a reverse engineering hack of the tiny chip in Montreal’s subway tickets.
How to use Memfault to update NVIDIA Jetson devices over-the-air (OTA).
Here are the articles, videos, and tools we’ve been excited about in May 2024, including a new Raspberry Pi-based hacking tool and a fun concert wristband hack for Swifties.
Article series “Practical Zephyr” the sixth part about West workspaces.
A discussion of our favorite talks from EOSS 2024, including those in the Embedded Linux Conference and the Zephyr Developer Summit
Here are the articles, videos, and tools that we’ve been excited about in April 2024, including interesting video game projects, a new report on the state of IoT software, and a tech talk on the new hardware model from Zephyr.
A recap of the noteworthy exhibits from Embedded World 2024, including Hightec, Bluewind, RISC-V, TinyML, Zephyr, Emproof, and Embedd
Article series “Practical Zephyr”, the fifth part about Devicetree practice.
Here are the articles, videos, and tools that we’ve been excited about this March.
This article dives into JTAG Boundary Scan, a method for testing interconnects on PCBs and internal IC sub-blocks.
A quick reference post for the differences between ELF-32 and ELF-64 object file formats.
Here are the articles, videos, and tools that we’ve been excited about this February.
This article explores debugging microcontrollers using JTAG, with a special focus on the ARM Cortex-M architecture and the STM32F407VG microcontroller.
Measure and monitor device connectivity using techniques such as logging, protocol captures, and metrics like connection uptime and sync success.
Article series “Practical Zephyr”, the fourth part about Devicetree bindings.
Here are the articles, videos, and tools that we’ve been excited about this January.
Article series “Practical Zephyr”, the third part covering Devicetree basics.
Article series “Practical Zephyr”, the second part covering the kernel configuration system Kconfig.
Strategies for building nRF-Connect SDK projects using GitHub Actions
Article series “Practical Zephyr”, the first part about West, CMake, and Zephyr application types.
🎉 Happy New Year! 🎉 Here’s to making 2024 the best year yet. 2023 was an exciting year for Interrupt, with 36 new articles, 13 new external contributors, 12 community Meetups, and a partridge in a pear tree. Thanks for being a part of it. Here are the articles, videos, and tools that we’ve been...
Trade-offs and considerations for logging on embedded hardware
A look at LTE technology for IoT
Here are the articles, videos, and tools that we’ve been excited about this November.
A brief introduction to STMViewer software use cases in debugging embedded targets
Understand IoT device reliability using metrics such as mean time between failure, crash-free hours, crash-free devices, and crash-free sessions. These all surface insights about device stability.
Here are the articles, videos, and tools that we’ve been excited about this October.
Mapping MCU’s peripheral registers to the address space of PC programs
Here are the articles, videos, and tools that we’ve been excited about this September.
Diving into the various ways to get printf on Cortex-M microcontrollers
Description of how interrupt controllers may function as simple schedulers
Here are the articles, videos, and tools that we’ve been excited about this August.
In the dynamic realm of embedded systems, the right combination of hardware and software components can transform the development process and empower engineers to build robust and efficient solutions. This article explores a streamlined device-to-cloud embedded design utilizing the STM32G0 Nucleo...
Firmware encryption is an option to increase security in over the air (OTA) updates. In this post, we will see how to implement firmware encryption and decryption.
Exploring the tools and data available to embedded Android developers to fix issues with their AOSP based devices.
Spinning up a C development environment using CMake, Docker, Unity, and GitHub Actions.
Here are the articles, videos, and tools that we’ve been excited about this July.
Monitoring & predicting the battery life of millions of embedded devices in production is made possible through the use of state of charge delta metrics and aggregations.
An overview of how async Rust works, and how it can be used on embedded systems. Additionally, we’ll take a look at the Rust Embassy project, and work through some examples of how to use it.
Matter and Thread are changing the smart home landscape with IPv6-based connectivity. This post shows how to use Memfault in a Matter/Thread environment - the changes required to the Memfault SDK, the required set-up and ideas for future integration of Memfault with Thread.
Here are the articles, videos, and tools that we’ve been excited about this June.
Emulating a Raspberry Pi computer on your desktop in Docker using QEMU - an open source emulator
Various techniques for measuring stack usage for embedded systems.
Here are the articles, videos, and tools that we’ve been excited about this May.
Selecting a build system is an essential decision when creating a project. Changing is always painful, especially in a mature repository. Therefore the choice should be made carefully. With this article, I will try to describe a few advantages of what Bazel can provide in the context of an embedd...
Overview of Zephyr ring buffers covering how they work and when to use them in your design
In this article, you will find some features of C++17 that can also be helpful in the embedded world.
A core belief of Memfault is that we can ship faster when we have good infrastructure in place. An essential piece of this infrastructure is tools to send firmware updates over the air. It enables the team to ship more often and spend more time building features. In this article, we look specific...
Here are the articles, videos, and tools that we’ve been excited about this April.
Why having separate Debug/Release builds should be avoided
Here are the articles, videos, and tools that we’ve been excited about this February & March. We’re a little late with the February issue but we’ll catch up!
A step-by-step guide on configuring and leveraging the ARMv8 MSP and PSP limit registers to protect against stack overflows on the Renesas DA1469x.
Here are the articles, videos, and tools that we’ve been excited about this January.
An introduction to a Memfault embedded Linux integration for device deployment and management, over-the-air (OTA) software updates, and remote monitoring and debugging
Here are the articles, videos, and tools that we’ve been excited about this November & December. It’s a long list…happy new year!
Trying out SWIG to automate generation of binding layer between Lua and C worlds
Here are the articles, videos, and tools that we’ve been excited about this October
Here are the articles, videos, and tools that we’ve been excited about this September
Here are the articles, videos, and tools that we’ve been excited about this August
In this post, I’ll go through how we evaluated Memfault at Blecon and talk through what we liked and why we decided to use it, how we integrated it into the nRF5 platform and carried the Memfault data over to the Memfault cloud via Bluetooth.
Here are the articles, videos, and tools that we’ve been excited about this July
An introduction to delta device firmware update (Delta DFU) with JanPatch and Jojodiff. This post explains what delta DFU is and walks through an example implementation.
I apologize readers of Interrupt! I haven’t published a roundup post in a while, but fear not! We’re back after a couple of very busy months, both professionally and personally. Here are the articles, videos, and tools that we’ve been excited about this May & June
Documents the design, architecture, implementation, and pros and cons of an on-device embedded MCU testing library written in C++ and compatible with Google Test.
Choosing the best microcontroller is an important decision given the chip shortage and engineering effort involved.
Here are the articles, videos, and tools that we’ve been excited about this April
Here are the articles, videos, and tools that we’ve been excited about this March, and we have a few announcements, the first being about Interrupt’s first Quarterly Panel co-hosted with Phillip from Embedded Artistry, and a blurb about this year’s Embedded Online Conference
Here are the articles, videos, and tools that we’ve been excited about this February.
Details on initialization of padding bits in C language structures
Here are the articles, videos, and tools that we’ve been excited about this January.
Find firmware flaws faster with these top notch tools
Best practices on embedded logging and tracing and an introduction to the open-source library Trice
🎉 Happy 2022 everyone! 🎉 Here are the articles, videos, and tools that we’ve been excited about this December.
Here are the articles, videos, and tools that we’ve been excited about this November.
Explanation of a non-initialized memory section for an embedded program, how it impacts application and bootloader, and some sample implementations.
Events and jobs pages on Interrupt to post embedded firmware engineering positions and events such as conferences, webinars, and meetups.
Here are the articles, videos, and tools that we’ve been excited about this October.
How to use pre-commit for automated linting, formatting, and styling firmware code by using Python, clang-format, clang-tidy, and prettier
Here are the articles, videos, and tools that we’ve been excited about this September.
Quick look at performance of the memcpy implementation in newlib-nano
You may have noticed there was no July roundup. We’ve been busy improving Memfault, building out our partnerships with Nordic Semiconductor and Laird, and enjoying the summer months. Thanks for understanding. Here are the articles, videos, and tools that we’ve been excited about this July and Aug...
Here are the articles, videos, and tools that we’ve been excited about this June.
Using Undefined Behavior Sanitizer on small embedded programs without libubsan
Here are the articles, videos, and tools that we’ve been excited about this May.
A step-by-step guide on how to use CodeChecker to run static analysis on your firmware
An overview of the opaque pointer pattern in C. How to create objects in C.
Here are the articles, videos, and tools that we’ve been excited about this April.
How to share and load GDB gdbinit files automatically in firmware projects.
Here are the articles, videos, and tools that we’ve been excited about this March.
In a perfect world, all software and firmware are given precisely the time and budget it needs to be successful, code is uniformly well-written to industry best practices, and the code is complemented with a complete test suite instrumenting all aspects of the software. In practice, this rarely,...
Here are the articles, videos, and tools that we’ve been excited about this February.
An introduction to ARM semihosting, followed by an example with OpenOCD and arm-none-eabi toolchain
Here are the articles, videos, and tools that we’ve been excited about this January.
Include standardized versions and other build metadata such as Git revisions and GNU Build ID’s into firmware binaries and debug symbols.
Happy New Year! Here’s to a wonderful 2021. Here are the articles, videos, and tools that we’ve been excited about this December.
A step by step guide on how to configure and leverage the Cortex M33 Micro Trace Buffer (MTB) for instruction tracing using Dialog Semiconductor’s DA14695 MCU
Embedded systems can benefit from defensive and offensive programming with the use of asserts, timeouts, and watchdogs.
An overview of PlatformIO, as well as a getting started example on STM32.
Here are the articles, videos, and tools that we’ve been excited about this November.
A detailed comparison of ARM Cortex-M Microcontroller SDKs and BSPs, from best to worst.
A guided tour of the MCUboot feature set and how to port it to a Cortex-M application
Here are the articles, videos, and tools that we’ve been excited about this October.
A collection of advanced GDB tips, extensions, and .gdbinit macros to speed up your debugging experience with the GNU debugger.
Post covering how to provision unique parameters, such as serial numbers or public and private encryption keys, onto firmware-based devices.
Here are the articles, videos, and tools that we’ve been excited about this August and September.
A step by step guide on how to use watchpoints for faster debugging and a deep dive into how watchpoints are implemented in ARM Cortex-M MCUs
Firmware update signing is the cornerstone of a modern firmware update system. In this article we explain why it matters, and how firmware signing can be implemented.
Monitoring and tracking embedded devices using heartbeat metrics, an alternative to log processing, helps hardware and IoT companies derisk firmware updates and alerts them to issues quickly.
Here are the articles, videos, and tools that we’ve been excited about this July.
A stack trace for embedded software. Get all the information you need to debug firmware crashes right into your logs, in a few easy steps.
An exploration of how to debug running devices by taking advantage of debug monitor mode on ARM Cortex-M MCUs
A guide on how to build custom drivers for hardware on the Zephyr RTOS using the Device Driver Model.
Automated embedded firmware testing with Renode, Robot Framework, and the GitHub Actions CI system.
Here are the articles, videos, and tools that we’ve been excited about this June.
A guide on how to build OTA DFU for your projects, as well as some common design pattern that are useful for implementing firmware update.
A walk through of how hardware and software breakpoints work, how they are configured using GDB Remote Serial Protocol, and how to configure hardware breakpoints using the ARM Cortex-M Flash Patch and Breakpoint Unit
A command-line shell is a powerful way to interface with embedded devices, giving the developer the ability to automate tasks, inspections, and testing.
An exploration of profiling techniques on Cortex-M microcontrollers, ranging from sampling profilers, ITM, and function timing via the cycle counter.
Here are the articles, videos, and tools that we’ve been excited about this May.
An overview of how to compile an ARM Cortex-M based project with LLVM/Clang and an exploration of the neat features available in the toolchain such as static analysis to identify memory leaks and deadlocks
An overview of unit test mocking and integration tests for embedded software and firmware, using popular frameworks such as CppUTest, CppUMock, fff, and CMock.
Here are the articles, videos, and tools that we’ve been excited about this April.
An introduction to using git bisect against a set of changes as a bug-hunting tool, followed by some deeper techniques to speed up the process of tracking down when unintended behavior is introduced
Introducing gdbundle, a minimalist plugin manager for GDB and LLDB, which enables developers to easily GDB and LLDB extensions, packages, and Python scripts from PyPi
A guide of how to make the most of GNU Binutils and other tools to examine ELFs
Here are the articles, videos, and tools that we’ve been excited about this past month.
An overview of how Renode can be used to emulate Cortex-M series MCUs, speed up iteration time, and automate firmware testing.
Tracking code size for embedded software projects can prevent surprises, maintain productivity, and give insight to developers looking to retroactively reduce a firmware binary size.
A brief overview of GNU Make and its features, Makefile syntax, and how to use Make to build C/C++ software and firmware
Here are the articles, videos, and tools we’ve been excited about this past month.
A step by step guide covering how to integrate watchdog timers (both hardware and software) on embedded systems, best practices, and how to debug and root cause the errors which lead to watchdog resets.
In the next decade the capabilities of software for embedded systems will catch up to those of hardware, ‘firmware’ will become increasingly difficult to distinguish from ‘software’, and a new discipline altogether will begin to take shape.
Strategies for improving up C/C++ compile times for embedded software projects using ccache, preprocessor optimizations, parallel execution, and other techniques.
A step by step guide on how to use Rust for Digital Signal Processing (DSP) in a firmware project
An in-depth explanation of the I2C protocol, followed by common bugs and how to fix them.
Happy New Year! Here are the articles, videos, and tools we’ve been excited about this past month.
How to use Conda for managing build, test, and debug environments and dependencies for local development and continuous integration in the context of embedded software projects