EmbeddedRelated.com
The 2026 Embedded Online Conference

Open-Source Licenses Made Easy with Buildroot and Yocto for Embedded Linux

George EmadGeorge Emad October 2, 2023

In this article I will try to explain what are the copyrights/copyleft, what are the popular opensource software licenses, and how to make sure that your Embedded Linux system complies with them using popular build systems ; Buildroot or YOCTO projec


C to C++: 3 Reasons to Migrate

Jacob BeningoJacob Beningo October 31, 202224 comments

Embedded C still powers most devices, but rising system complexity is revealing its limits. In this post Jacob Beningo kicks off a series on moving from C to C++, offering three practical reasons to start the migration now. He argues for an incremental approach that keeps low-level, hardware-dependent code in C while adopting C++ for higher-level, object-oriented application logic so teams can keep shipping during the transition.


Six Software Design Tools

Steve BranamSteve Branam November 5, 20211 comment

Software design need not be mysterious, these six practical tools give a disciplined way to shape readable, testable, and maintainable code. The post walks through naming (DAMP), duplication control (DRY), complexity metrics (MCC), SOLID principles, API layering, and test-driven development, showing how each idea applies across languages and embedded systems. Use them as checklists for code reviews and design thinking.


Review: Prototype to Product

Steve BranamSteve Branam October 16, 2021

Alan Cohen's Prototype to Product is a practical systems engineering playbook for anyone taking an embedded idea to market. The review emphasizes uncovering surprises early, disciplined planning, and cross-discipline collaboration across electrical, mechanical, software, and manufacturing domains. It highlights concrete topics such as prototyping, DFM/DFA, staged testing, and regulatory considerations that help avoid costly late-stage rework.


Definite Article: Notes on Traceability

Jason SachsJason Sachs September 6, 2021

Traceability sounds bureaucratic until you need to identify a mystery part, a board revision, or the exact firmware that was shipped years ago. Jason Sachs shows how it applies across hardware, software, testing, and documentation, from Digi-Key’s cut-tape part tracing to device IDs, build metadata, and precise test records. The message is simple: if you cannot prove what something is and where it came from, you are flying blind.


UML Statechart tip: Handling errors when entering a state

Matthew EshlemanMatthew Eshleman March 8, 20204 comments

Handling synchronous failures during state entry is trickier than the UML spec implies, because UML forbids transitions inside entry actions. This post compares three practical firmware patterns: explicit guarded transitions, self-posting a failure event to a LIFO queue, and converting the operation into an asynchronous service. It lays out benefits, downsides, and when each approach is appropriate for small teams, mid-sized projects, or larger firmware efforts.


Racing to Sleep

Jason SachsJason Sachs December 30, 2019

Jason Sachs walks through a realistic field sensor case study, the BigBrotherBear 2000, to show how a careful power budget exposes surprising energy costs. He demonstrates that radios and data transmission often dwarf quiescent MCU current, explains the race-to-sleep principle for computation-bound tasks, and outlines practical wake-up and measurement trade-offs so engineers can extend battery lifetime in real deployments.


Shibboleths: The Perils of Voiceless Sibilant Fricatives, Idiot Lights, and Other Binary-Outcome Tests

Jason SachsJason Sachs September 29, 2019

Binary tests look simple until you try to pick a threshold, because false positives, false negatives, and base rate all collide. Jason Sachs uses a deliberately absurd detective story, then walks through the math of expected value, medical screening tradeoffs, idiot lights, and even a triage-style three-way decision. The payoff is a practical way to think about when a pass/fail signal helps, and when raw data or a second test is worth the extra complexity.


Embedded Programming Video Course Shows How OOP Works Under the Hood

Miro SamekMiro Samek September 29, 2019

Want to see how OOP actually maps to machine level code? This free video course walks through encapsulation, inheritance, and polymorphism with hands-on comparisons between C and C++. You will inspect C implementations, compiler-generated code, and debug traces, and learn how encapsulation relates to RTOS concurrency. The polymorphism lesson reverses the usual order to expose runtime costs and previews implementing polymorphism in C.


Round-robin or RTOS for my embedded system

Manuel HerreraManuel Herrera June 9, 20197 comments

Manuel Herrera walks through the practical tradeoffs between bare-metal round-robin loops and adopting an RTOS for embedded projects. He outlines two round-robin styles, explains how an RTOS gives independent threads and synchronization primitives, and highlights added code, licensing, interrupt latency, and the learning curve. Read this to sharpen decision criteria around timing guarantees, reuse, and whether an RTOS truly adds value to your firmware.


Racing to Sleep

Jason SachsJason Sachs December 30, 2019

Jason Sachs walks through a realistic field sensor case study, the BigBrotherBear 2000, to show how a careful power budget exposes surprising energy costs. He demonstrates that radios and data transmission often dwarf quiescent MCU current, explains the race-to-sleep principle for computation-bound tasks, and outlines practical wake-up and measurement trade-offs so engineers can extend battery lifetime in real deployments.


Efficiency Through the Looking-Glass

Jason SachsJason Sachs December 8, 20134 comments

Efficiency numbers can be misleading, Jason Sachs argues, because they hide the real cost engineers pay in wasted watts. This post flips the focus from percent efficiency to absolute power loss, shows how losses often stay nearly constant across loads, and walks through a practical thermal method to measure those losses more reliably than subtracting input and output power. Read it to rethink how you budget heat and energy in designs.


Implementation Complexity, Part II: Catastrophe, Dear Liza, and the M Word

Jason SachsJason Sachs June 16, 2013

Complex systems hide risks that often surface long after the developers move on, and maintenance usually becomes the true costliest burden. Jason Sachs walks through catastrophic engineering failures, cyclic dependencies, proprietary lock-in, supply-chain fragility, redundancy pitfalls, and software traps like state-machine bugs. The post closes with practical, engineer-focused advice on designing simpler, more maintainable embedded systems and planning for lifecycle safety and repair.


Shibboleths: The Perils of Voiceless Sibilant Fricatives, Idiot Lights, and Other Binary-Outcome Tests

Jason SachsJason Sachs September 29, 2019

Binary tests look simple until you try to pick a threshold, because false positives, false negatives, and base rate all collide. Jason Sachs uses a deliberately absurd detective story, then walks through the math of expected value, medical screening tradeoffs, idiot lights, and even a triage-style three-way decision. The payoff is a practical way to think about when a pass/fail signal helps, and when raw data or a second test is worth the extra complexity.


Six Software Design Tools

Steve BranamSteve Branam November 5, 20211 comment

Software design need not be mysterious, these six practical tools give a disciplined way to shape readable, testable, and maintainable code. The post walks through naming (DAMP), duplication control (DRY), complexity metrics (MCC), SOLID principles, API layering, and test-driven development, showing how each idea applies across languages and embedded systems. Use them as checklists for code reviews and design thinking.


Coding Step 4 - Design

Stephen FriederichsStephen Friederichs November 24, 2015

Good embedded software design is about more than making code work, it is about making it readable, reusable, testable, debuggable, robust, and efficient. In this installment of the Coding Step series, Stephen Friederichs uses an AVR-based “Hello World” example to show how those goals shape naming, file structure, UART buffering, watchdog use, and heartbeat LEDs. The result is a practical design walkthrough that turns style and architecture choices into engineering advantages.


Why Containers Are the Cheat Code for Embedded DevOps

Jacob BeningoJacob Beningo September 29, 2025

Embedded software teams have long accepted toolchain setup as “part of the job,” but it’s a hidden productivity killer. Manual installs waste days, slow onboarding, and derail CI pipelines with “works on my machine” issues. While enterprise software solved this years ago with containerization, many embedded teams are still stuck replicating fragile environments. Containers offer a proven fix: a portable, reproducible build environment that works identically on laptops and CI servers. No brittle scripts, mismatched versions, or wasted time—just code that builds. IAR has gone further by delivering pre-built, performance-tuned Docker images for Arm, RISC-V, and Renesas architectures, ready for GitHub Actions and CI/CD pipelines. For regulated industries, containers simplify audits and compliance by enabling validation once and reuse everywhere. The result: faster onboarding, consistent builds, and stronger safety assurance. Containers aren’t a luxury—they’re the cheat code embedded teams need to modernize DevOps and compete effectively.


Metal detection: building the detector

Fabien Le MentecFabien Le Mentec February 6, 20164 comments

Fabien Le Mentec turns a bench-validated BFO stage into a field-ready metal detector using scavenged parts and straightforward fabrication. He moves the circuit from breadboard to a through-hole prototyping PCB, swaps the Arduino Nano for a lower-power Mini, and builds an ABS control box with buttons and a buzzer. The build uses a 2S LiPo pack with a 5V LDO and a nonmagnetic coil mount, with practical notes on tradeoffs and safety.


Vintage multi-core and “so long”

Colin WallsColin Walls April 3, 202514 comments

A personal and historical perspective on multi-core system design.


Open-Source Licenses Made Easy with Buildroot and Yocto for Embedded Linux

George EmadGeorge Emad October 2, 2023

In this article I will try to explain what are the copyrights/copyleft, what are the popular opensource software licenses, and how to make sure that your Embedded Linux system complies with them using popular build systems ; Buildroot or YOCTO projec


The 2026 Embedded Online Conference