The Curious Engineer

All blogs / Embedded / microcontrollers

Interrupt

interrupt.memfault.com

A community and blog for embedded software makers

Embedded / microcontrollersLinux / UnixDev tools / editors / IDEs

Posts
223 from 25 Apr 2019 to 13 Aug 2026
Posting
monthly (10 in the last year)
Kind
company blog
Feed
https://interrupt.memfault.com/feed.xml

2026 7

  1. A Practical Guide to Embedded Linux Logging
  2. What we've been reading this Spring/Early Summer (2026)
  3. Zephyr West tips and tricks
  4. The Hidden Cost of Misalignment
  5. Connecting Matter-over-Thread Devices to the Internet
  6. What we've been reading in February (2026)
  7. What we've been reading in January (2026)

2025 27

  1. What we've been reading in November & December (2025)
  2. What we've been reading in September & October (2025)
  3. Page2
  4. What we've been reading in August (2025)
  5. What we've been reading in July (2025)
  6. Embedded Systems Roadmap: Bridging the Gap
  7. Smart Ring Development (Part 2) - Hardware Design
  8. What we've been reading in June (2025)
  9. Linux Coredumps (Part 3) - On Device Unwinding
  10. Smart Ring Development (Part 1) - Research and Prototype
  11. What we've been reading in May (2025)
  12. Page3
  13. Gophyr: Building a Gopher Client for Zephyr with Claude
  14. What we've been reading in April (2025)
  15. Linux Coredumps (Part 2) - Shrinking the Core
  16. Beyond Error Codes - Debugging Ill-Defined Problems
  17. What we've been reading in March (2025)
  18. Robust OTA Updates For Linux Devices, the Easy Way
  19. What we've been reading in February (2025)
  20. The Android Developer's Journey into Hardware Observability
  21. Page4
  22. Why std::this_thread::sleep_for() is broken on ESP32
  23. Linux Coredumps (Part 1) - Introduction
  24. What we've been reading in January (2025)
  25. Monitoring a Low-Power Wireless Network Based on Smart Mesh IP
  26. Introducing Interrupt Live - Meet the Minds Behind Interrupt
  27. What we've been reading in December (2024)

2024 39

  1. WSL2 for Firmware Development
  2. How to Transition from nRF5 SDK to Zephyr NCS - Lessons from Ultrahuman’s Journey
  3. What we've been reading in November (2024)
  4. Sequential-storage - Efficiently Store Data in Flash
  5. What we've been reading in October (2024)
  6. Publishing the Memfault SDK as an ESP-IDF Component
  7. Embedded World North America 2024 Recap
  8. Comparing Firmware Development Environments — Linux, Windows, WSL2, and VMWare
  9. What we've been reading in September (2024)
  10. What we've been reading in August (2024)
  11. How Memory Usage Patterns Can Derail Real-time Performance
  12. Diving into JTAG — Security (Part 6)
  13. What we've been reading in July (2024)
  14. GitHub Actions for STM32CubeIDE
  15. Considerations when Building Embedded Databases
  16. A Schematic Review Checklist for Firmware Engineers
  17. What we've been reading in June (2024)
  18. Updating NVIDIA Jetson devices with Memfault OTA
  19. Diving into JTAG — Usage Scenarios (Part 5)
  20. What we've been reading in May (2024)
  21. Practical Zephyr - West workspaces (Part 6)
  22. Embedded Open Source Summit 2024 Recap
  23. What we've been reading in April (2024)
  24. Standout Exhibits at Embedded World 2024
  25. Practical Zephyr - Devicetree practice (Part 5)
  26. What we've been reading in March (2024)
  27. Diving into JTAG — BSDL (Part 4)
  28. Diving into JTAG — Boundary Scan (Part 3)
  29. Differences Between ELF-32 and ELF-64
  30. What we've been reading in February (2024)
  31. Diving into JTAG — Debugging (Part 2)
  32. Best Practices for Monitoring Device Connectivity
  33. Practical Zephyr - Devicetree semantics (Part 4)
  34. What we've been reading in January (2024)
  35. Practical Zephyr - Devicetree basics (Part 3)
  36. Practical Zephyr - Kconfig (Part 2)
  37. Building Nordic nRF-Connect SDK Projects with GitHub Actions
  38. Practical Zephyr - Zephyr Basics (Part 1)
  39. What we've been reading in December (2023)

2023 36

  1. Logging on Embedded Devices
  2. LTE and IoT - How We Got Here
  3. What we've been reading in November (2023)
  4. Diving into JTAG - Overview (Part 1)
  5. Visualizing Real-time Data With STMViewer
  6. Counting Crashes to Improve Device Reliability
  7. What we've been reading in October (2023)
  8. Rust on Yocto: A Seamless Integration
  9. MCU Peripheral Forwarding
  10. What we've been reading in September (2023)
  11. Exploring printf on Cortex-M
  12. A Simple Scheduler via an Interrupt-driven Actor Model
  13. What we've been reading in August (2023)
  14. Integrating Memfault With AWS IoT Core and ExpressLink
  15. Securing Firmware Updates With AES Encryption
  16. Debugging Android Devices
  17. A Modern C Development Environment
  18. What we've been reading in July
  19. Understanding Battery Performance of IoT Devices
  20. Asynchronous Rust on Cortex-M Microcontrollers
  21. Matter, Thread, and Memfault
  22. What we've been reading in June
  23. Emulating a Raspberry Pi in QEMU
  24. Measuring Stack Usage the Hard Way
  25. What we've been reading in May
  26. Bazel Build System for Embedded Projects
  27. Zephyr Deep Dive: Ring Buffers
  28. C++17’s Useful Features for Embedded Systems
  29. OTA for Embedded Linux Devices: A practical introduction
  30. What we've been reading in April
  31. Pocket article: Debug vs. Release Builds Considered Harmful
  32. What we've been reading in February & March
  33. A Guide to Using ARM Stack Limit Registers
  34. What we've been reading in January
  35. Integrating Memfault into an Embedded Linux Project
  36. What we've been reading in November & December (2022)

2022 21

  1. Using SWIG to generate bindings between C and Lua
  2. What we've been reading in October (2022)
  3. What we've been reading in September (2022)
  4. Pocket article: Debugging ccache misses
  5. What we've been reading in August (2022)
  6. Integrating Memfault with Blecon Bluetooth Devices
  7. What we've been reading in July (2022)
  8. Saving bandwidth with delta firmware updates
  9. Tools we use: installing GDB for ARM
  10. What we've been reading in May & June (2022)
  11. Building an On-Device Embedded Testing Library
  12. Selecting Your Next Project's MCU
  13. What we've been reading in April (2022)
  14. What we've been reading in March (+ Announcements) (2022)
  15. Dealing with Large Symbol Files
  16. What we've been reading in February (2022)
  17. C Structure Padding Initialization
  18. What we've been reading in January (2022)
  19. Nash's Four Favorite Firmware Debug Tools
  20. Tracing & Logging with the `TRICE` Library (Interrupts too!)
  21. What we've been reading in December (2021)

2021 23

  1. What we've been reading in November (2021)
  2. Pocket article: How to implement and use `.noinit` RAM
  3. New Events and Jobs Pages on Interrupt
  4. What we've been reading in October (2021)
  5. Automatically format and lint code with pre-commit
  6. What we've been reading in September (2021)
  7. Peeking inside CMSIS-Packs
  8. Profiling newlib-nano's memcpy
  9. What we've been reading in July and August (2021)
  10. What we've been reading in June (2021)
  11. Pocket article: Undefined Behavior Sanitizer Trap on Error
  12. What we've been reading in May (2021)
  13. Firmware Static Analysis with CodeChecker
  14. Practical Design Patterns: Opaque Pointers and Objects in C
  15. What we've been reading in April (2021)
  16. Share Your Debugging Scripts
  17. What we've been reading in March (2021)
  18. Balancing Test Coverage vs. Overhead
  19. What we've been reading in February (2021)
  20. Introduction to ARM Semihosting
  21. What we've been reading in January (2020)
  22. Proper Release Versioning Goes a Long Way
  23. What we've been reading in December (2020)

2020 42

  1. ARM Cortex-M33 Instruction Tracing Without a Debugger
  2. Defensive Programming - Friend or Foe?
  3. Seamless firmware development with PlatformIO
  4. What we've been reading in November (2020)
  5. The Best and Worst MCU SDKs
  6. MCUboot Walkthrough and Porting Guide
  7. What we've been reading in October (2020)
  8. Advanced GDB Usage
  9. Separating Unique Parameters from Firmware Binaries
  10. What we've been reading in September (2020)
  11. Faster Debugging with Watchpoints
  12. Secure firmware updates with code signing
  13. Monitoring Fleet Health with Heartbeat Metrics
  14. Parsing Logs Messages for Instant Crash Analysis
  15. What we've been reading in July (2020)
  16. Step-through debugging with no debugger on Cortex-M
  17. How to Build Drivers for Zephyr
  18. Firmware Testing with Renode and GitHub Actions
  19. What we've been reading in June (2020)
  20. Device Firmware Update Cookbook
  21. How do breakpoints even work?
  22. Building a Tiny CLI Shell for Tiny Firmware
  23. Profiling Firmware on Cortex-M
  24. What we've been reading in May (2020)
  25. Better Firmware with LLVM/Clang
  26. Embedded C/C++ Unit Testing with Mocks
  27. What we've been reading in April (2020)
  28. Hunting Bugs with Git Bisect
  29. gdbundle - GDB and LLDB's Missing Plugin Manager
  30. GNU Binutils: the ELF Swiss Army Knife
  31. What we've been reading in March (2020)
  32. Cortex-M MCU Emulation with Renode
  33. Tracking Firmware Code Size
  34. A Shallow Dive into GNU Make
  35. What we've been reading in February (2020)
  36. A Guide to Watchdog Timers for Embedded Systems
  37. Improving Compilation Time of C/C++ Projects
  38. Beyond Firmware in the 2020s
  39. Rust for Low Power Digital Signal Processing
  40. I2C in a Nutshell
  41. What we've been reading in January
  42. Managing Developer Environments with Conda

2019 28

  1. From Zero to main(): Bare metal Rust
  2. Reproducible Firmware Builds
  3. What we've been reading in November (2019)
  4. How to debug a HardFault on an ARM Cortex-M MCU
  5. From Zero to main(): Bootstrapping libc with Newlib
  6. Using Asserts in Embedded Systems
  7. ARM Cortex-M RTOS Context Switching
  8. The Best and Worst GCC Compiler Flags For Embedded
  9. Embedded C/C++ Unit Testing Basics
  10. A Practical Guide to BLE Throughput
  11. Building Better Firmware with Continuous Integration
  12. A Practical guide to ARM Cortex-M Exception Handling
  13. Building a CLI for Firmware Projects using Invoke
  14. Code Size Optimization: GCC Compiler Flags
  15. From Zero to main(): How to Write a Bootloader from Scratch
  16. A Deep Dive into ARM Cortex-M Debug Interfaces
  17. Bluetooth Low Energy: A Primer
  18. Using Python PyPi Packages within GDB/LLDB
  19. Fix Bugs and Secure Firmware with the MPU
  20. Get the most out of the linker map file
  21. Automate Debugging with GDB Python API
  22. From Zero to main(): Demystifying Firmware Linker Scripts
  23. Tools for Firmware Code Size Optimization
  24. GNU Build IDs for Firmware
  25. Debugging Firmware with GDB
  26. Page28
  27. From Zero to main(): Bare metal C
  28. Programming the ATSAMD21 with IBDAP