EmbeddedRelated.com
The 2026 Embedded Online Conference

Supply Chain Games: What Have We Learned From the Great Semiconductor Shortage of 2021? (Part 1)

Jason SachsJason Sachs December 31, 20215 comments

Jason Sachs argues the 2021 semiconductor shortage was not a single surprise but a set of structural imbalances exposed by COVID-19. He connects long lead times, constrained 200mm fabs and mature-node economics to why automotive features like heated seats became scarce, and shows how bullwhip dynamics and inventory practices amplified the problem. This first part uses concrete anecdotes and simple games to make the supply-chain lessons tangible.


Review: Modern Software Engineering

Steve BranamSteve Branam December 27, 20212 comments

Long-lived branches, manual releases, and slow feedback waste engineering time. This review of three Dave Farley books distills a practical playbook: continuous delivery pipelines, trunk-based development, and disciplined TDD to keep trunk always releasable. It shows how fast, automated feedback at every stage shrinks cycle time, reduces merge pain, and makes teams far more productive.


VolksEEG: Rust Development On Adafruit nRF52840 Feather Express

Steve BranamSteve Branam December 13, 2021

Setting up Rust embedded development on an Adafruit Feather nRF52840 Express inside a VS Code devcontainer can save time, but the toolchain has a few gotchas. This post walks through using the VolksEEG prototype echo-server to verify the USB serial path, configuring probe-rs with J-Link and OpenOCD for on-chip debugging, and diagnosing a container build error fixed by adding libudev-dev. Expect step-by-step commands and troubleshooting tips.


Working With ESP-C3-32S-Kit Dev Board

Steve BranamSteve Branam November 24, 20211 comment

This hands-on guide walks through setting up the ESP-C3-32S-Kit with ESP-IDF, from installing the toolchain to flashing and monitoring a hello-world example. It shows JTAG debugging with OpenOCD and GDB, how to use the NimBLE BLE stack for peripheral and central roles, and how to capture and filter BLE traffic with a Nordic sniffer and Wireshark so you can inspect pairing and connection behavior.


Learning Rust For Embedded Systems

Steve BranamSteve Branam November 12, 2021

Rust eliminates whole classes of memory and concurrency bugs, making it a compelling choice for embedded projects, and the author recommends it for the VolksEEG project after a rapid evaluation. The post connects Rust fundamentals such as ownership and borrowing, RAII, traits, and unsafe blocks to familiar embedded patterns. It also provides a curated on-ramp of videos, books, and tools like Cargo, RTIC, and probe-rs to get hands-on quickly.


The 2021 IoT Online Conference

Jacob BeningoJacob Beningo November 9, 2021

The 2021 IoT Online Conference is aimed squarely at embedded engineers who want practical skills, not marketing fluff. Jacob Beningo highlights the event’s focus on IoT embedded systems and edge computing, plus the on-demand talks, workshops, and expert access that make it attractive for teams that cannot justify a costly in-person trip. He also makes a strong case that even one useful idea can pay for the $90 registration many times over.


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.


VolksEEG Project: Initial Hardware Architecture

Steve BranamSteve Branam November 2, 20211 comment

The VolksEEG prototype pairs an Adafruit Feather nRF52840 Sense MCU with an ADS1299 analog front end, organized into non-isolated and isolated domains to protect patients. The post explains why isolation is required, which chips bridge the domains, and why simple, high-level power and signal diagrams help clarify the KiCad schematics for engineers and reviewers.


Introducing The VolksEEG Project

Steve BranamSteve Branam October 31, 2021

VolksEEG is an open-source effort to build an FDA-cleared clinical EEG and publish every design so others can manufacture it. The volunteer-driven project centers on the TI ADS1299 8-channel, 24-bit biopotential ADC and combines medical and electrical engineering expertise to confront regulatory, safety, and usability challenges. This blog series will document technical decisions, isolation and safety concerns, and ways engineers can contribute.


Video-Based STEM Embedded Systems Curriculum, Part 2

Steve BranamSteve Branam October 25, 2021

Part 2 delivers three ready-to-run lesson plans for a video-based STEM embedded course, starting with Arduino hands-on projects using an Elegoo UNO starter kit and Bryan Vines video walkthroughs that explain the code. It then teaches Fritzing for pictorial and schematic circuit drawings, followed by Collin Cunningham videos that cover resistors, capacitors, transistors, schematics, and other core components. The sequence stresses design, draw, build, test to keep students engaged.


7 Essential Steps for Reducing Power Consumption in Embedded Devices

Jacob BeningoJacob Beningo June 26, 20241 comment

Reducing the amount of power your embedded device is consuming is not trivial. With so many devices moving to battery operations today, maximizing battery life can be the difference between a happy, raving customer and an unhappy one that ruins your company's reputation. This post explores seven steps for optimizing your embedded systems' power consumption. You'll gain insights into the steps and techniques necessary along with receiving a few resources to help you on your journey.


Linear Feedback Shift Registers for the Uninitiated, Part XII: Spread-Spectrum Fundamentals

Jason SachsJason Sachs December 29, 20171 comment

Jason Sachs shows why LFSR-generated pseudonoise is a natural fit for direct-sequence spread spectrum, then walks through Fourier basics, spectral plots, and runnable Python examples. The article demonstrates how DSSS multiplies a UART bitstream with a chipping sequence to spread energy, how despreading concentrates the desired signal while scrambling narrowband interference, and how multiple transmitters can share bandwidth when using uncorrelated sequences.


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.


A wireless door monitor based on the BANO framework

Fabien Le MentecFabien Le Mentec June 10, 20145 comments

Fabien Le Mentec built a battery-powered wireless door monitor and a reusable node framework called BANO to monitor doors across seven floors without wired links. The post highlights BANO's 17-byte key,value protocol, the node runtime that enables wake-on-interrupt low-power operation, and practical RF choices like the NRF905 plus a 330 µF cap to handle coin-cell transmission peaks. It includes source, PCB, and base station notes.


Finally got a drone!

Stephane BoucherStephane Boucher August 28, 20172 comments

Stephane Boucher finally bought a DJI Phantom 4 and found it does more than boost his video production value, it’s also hugely fun to fly. He used the drone for an aerial shot at SEGGER’s anniversary and for a beach project where kids drew a turtle while a separate camera captured a side timelapse. The post highlights creative shot combinations and a reminder to fly where it is legal.


Designing Communication Protocols, Practical Aspects

Fotis ChatzinikolaouFotis Chatzinikolaou May 14, 20192 comments

When your MCU must talk to a PC or smartphone, a clear protocol saves time and headaches. This post gives practical guidance for fast bring-up: how to structure a compact header, keep payloads byte-aligned and debug-friendly, and reserve bits for future use. It also covers CRCs for integrity, timeout and retry strategies for resynchronisation, and the simple start code trick that makes debugging easier.


Arduino robotics #2 - chassis, locomotion and power

Lonnie HoneycuttLonnie Honeycutt October 16, 20131 comment

Lonnie Honeycutt walks through building Clusterbot's round differential-drive chassis, showing how a circular base and Tamiya gearbox simplify turning and torque tradeoffs. The post covers motor selection, wheel fit, balance issues, and a practical two-battery power arrangement with VMOT for the motors and a separate 9V for the Arduino. Expect hands-on tips and lessons learned from a first-time robot build.


Fit Sixteen (or more) Asynchronous Serial Receivers into the Area of a Standard UART Receiver

Michael MorrisMichael Morris March 29, 20155 comments

Michael Morris shows how to pack many asynchronous serial receivers into the area of a single UART by treating FPGA LUTs as writable storage and sharing logic. Using a 4-bit channel counter, microprogrammed state machine, and time-multiplexed baud/sample resources, he fits 16 receive channels (12 used for Caller ID) into a Spartan II XC2S30 and explains input synchronization, filtering, and the multi-channel FIFO approach.


Important Programming Concepts (Even on Embedded Systems) Part VI : Abstraction

Jason SachsJason Sachs June 16, 20153 comments

Abstraction is essential, but it is not free. Jason Sachs walks through the many faces of abstraction—pattern recognition, generalization, simplification, and indirection—and shows how each helps and hurts real projects. Using examples from math, API design, UI toolkits, schematics, and embedded C, he gives practical context so firmware engineers can apply abstractions without causing maintenance or debugging headaches.


Finite State Machines (FSM) in Embedded Systems (Part 4) - Let 'em talk

Massimiliano PaganiMassimiliano Pagani May 22, 20247 comments

No state machine is an island. State machines do not exist in a vacuum, they need to "talk" to their environment and each other to share information and provide synchronization to perform the system functions. In this conclusive article, you will find what kind of problems and which critical areas you need to pay attention to when designing a concurrent system. Although the focus is on state machines, the consideration applies to every system that involves more than one execution thread.


The 2026 Embedded Online Conference