Embedded Toolbox: Windows GUI Prototyping Toolkit
You can prototype and debug complex embedded device user interfaces on Windows using the tiny, free QWin toolkit. It runs the same C code you compile for the target by implementing a Windows BSP, letting you develop UI code quickly with MinGW or Visual C++ and a visual resource editor. The result is far faster compile-run-debug cycles and a simpler path around flaky prototype hardware.
Linear Feedback Shift Registers for the Uninitiated, Part I: Ex-Pralite Monks and Finite Fields
Jason Sachs demystifies linear feedback shift registers with a practical, bitwise view and the algebra that explains why they work. Readable examples compare Fibonacci and Galois implementations, show a simple software implementation, and reveal the correspondence between N-bit Galois LFSRs and GF(2^N) so you can pick taps and reason about maximal-length pseudorandom sequences.
Tenderfoot: Recommended Reading
Twenty years on, these are the books that turned an electrical engineer into an embedded software pro. Matthew Eshleman walks through influential reads from Code Complete to Practical Statecharts and Test Driven Development, explaining how each shaped his design, estimation, and testing practices. This short list is a practical starting point for 'tenderfoots' launching an embedded firmware career.
Embedded Toolbox: Programmer's Calculator
A tiny but powerful cross-platform tool, QCalc evaluates full C-syntax expressions so you can paste results straight into firmware. It handles bitwise ops, mixed hex/decimal/binary constants, and scientific math, and it automatically shows integer results in formatted hex and binary. The post explains key features, variable handling, error messages, and how to run qcalc.tcl with the wish Tk interpreter.
VERY Fast Japanese Sumo Robots
Japanese sumo robots can be oddly mesmerizing, and this short post captures that perfectly. Stephane Boucher shares a quick reaction to a video and points out the parts embedded engineers would want to hear about, like the sensors, microcontroller, algorithms, and design challenges behind the machine. It is more of a teaser than a teardown, but it makes a strong case for a deeper technical writeup.
Ten Little Algorithms, Part 6: Green’s Theorem and Swept-Area Detection
Jason shows how Green's Theorem becomes a practical, low-cost method to detect real-time rotation from two orthogonal sensors by accumulating swept area. The post derives a compact discrete integrator S[n] = S[n-1] + (x[n]*(y[n]-y[n-1]) - y[n]*(x[n]-x[n-1]))/2, compares integer and floating implementations, and analyzes noise scaling and sampling rate tradeoffs. Includes Python demos and threshold guidance.
Going back to Germany!
A conference conversation turned into a return trip to Germany for Stephane Boucher, this time to visit SEGGER’s headquarters in Dusseldorf and produce videos. The post shares how a chance introduction at ESC Boston led to the invitation, and it teases coverage from SEGGER’s 25th anniversary celebration. He also invites local tips and customer questions before the trip.
ESC Boston's Videos are Now Up
Stephane Boucher shares the videos he produced from ESC Boston, including a short highlight montage, a booth video for DLOGIC, and full talk clips from the conference. He also reflects on what he learned shooting on the show floor, especially the challenge of getting engineers on camera. It’s a quick behind-the-scenes look at technical event videography, with a preview of his next stop in Germany.
How to Give Persistent Names To USB-Serial Devices on Ubuntu 14.04
When your dock reshuffles ttyUSB assignments, Tayyar shows how to bind USB-serial devices to persistent names on Ubuntu 14.04. The post walks through using dmesg and udevadm to locate unique attributes like KERNELS and ATTRS{serial}, creating /etc/udev/rules.d entries with NAME and SYMLINK, and applying rules with udevadm trigger. It includes common pitfalls and quick fixes to get minicom talking to the right port.
Tenderfoot: Introduction to Magic (Numbers that is...)
A source-code review revealed repeated numeric literals in C, exposing the classic problem of magic numbers in embedded software. This post explains what magic numbers are, why they are especially painful in firmware, and simple fixes using named constants and comments tied to specs. Read this if you want clearer, safer embedded C code and fewer surprises during maintenance.
Acceptance Tests vs. TDD
Writing the tests in a Jira ticket is not the same as doing TDD, this post explains why. It separates acceptance tests, which define business completeness and are written up-front by the customer, from TDD unit tests, which developers write incrementally as a design and feedback tool. Readable advice covers test speed, avoiding brittle tests, and how both test types fit into CI and maintainable embedded development.
STM32 B-CAMS-OMV Walkthrough
Want to prototype embedded vision quickly? This walkthrough shows how the STM32 B-CAMS-OMV camera module pairs with the STM32H747I-DISCO discovery kit and the FP-AI-VISION1 function pack to get you running in minutes. The video covers the camera connection interface, key software functions to control and process data, and the ISP features that let image processing run inside the camera. The STM32 H7 project with B-CAMS-OMV drivers is available on GitHub.
Call for Speakers: Inaugural Embedded Systems Summit
A new, practical in-person event for embedded engineers lands in Silicon Valley this October. Stephane Boucher and Jacob are inviting hands-on, engineer-to-engineer talks for the inaugural Embedded Systems Summit, October 14-16, 2025, with emphasis on RTOS, AI, bare-metal, IoT, edge computing, security, tooling, and firmware architecture. Submit session proposals focused on lessons learned, debugging war stories, and reproducible design patterns by August 8, 2025.
Ada 2012 for ARM M3/M4 Released for Download
AdaCore's initial Ada 2012 port for ARM Cortex M3/M4 is now downloadable, and Mike Silva walks it through a hands-on demo on an STM32F4 Discovery board. He shows an Ada-written LCD driver, LED multitasking, and how Ada language features like Ada.Realtime, array slices, and unchecked conversions make low-level GPIO and timing code clearer and safer. The post highlights atomic BSRR GPIO writes and Ravenscar runtime details.
You Will Make Mistakes
Mistakes are inevitable in engineering, and they grow worse when teams are distributed and communication has long round-trip delays. Jason Sachs lays out practical, low-friction tactics to keep small errors from becoming project stoppers, from applying FMEA thinking to using issue trackers, event logging, clear interface specs, and better meeting habits. The post focuses on habits you can start using today to raise team reliability.
Tenderfoot: Recommended Reading
Twenty years on, these are the books that turned an electrical engineer into an embedded software pro. Matthew Eshleman walks through influential reads from Code Complete to Practical Statecharts and Test Driven Development, explaining how each shaped his design, estimation, and testing practices. This short list is a practical starting point for 'tenderfoots' launching an embedded firmware career.
Tenderfoot: How to Write a Great Bug Report
A well-written bug report can save hours of debugging and prevent last-minute scrambles before demos. This post uses a contrived embedded RF product example to show what good and bad reports look like, the essential fields to include, and how clear reproduction steps helped find a simple bitmask bug before a trade show. Finish with a short template you can adapt to your team.
Simple Automated Log Processing
You don't need heavy tools to make sense of megabytes of embedded logs. This post shows a practical bash script that trims noisy serial and semihosting output, samples hourly heap-profile lines, and converts them into a CSV ready for graphing. It gives a simple, adaptable pattern you can reuse to spot memory leaks or triage recurring log signatures quickly.
The Embedded Systems Summit 2025 - Registration are now open!
Registration is open for the inaugural Embedded Systems Summit 2025, happening October 14–16 at the Sonesta Silicon Valley. Stephane Boucher and Jacob Beningo put together a small, in-person event focused on hands-on Zephyr training and compact conference sessions to boost embedded careers. Expect a full-day Zephyr Developer Bootcamp, two days of technical talks on RTOS, tooling, and testing, and only 70 seats with an early-bird discount.
The Most Annoying Sound
Independent consultants often face requests and requirements that go beyond the technicalities of software and hardware. Designing user interfaces is a common example, and even though most of us are not UI experts, we still have to get it right, otherwise the users may get annoyed, and the product will fail. However, what happens when we're asked explicitly to annoy users? Here's a true story about such a case.
Stability or insanity
Tim Wescott presents a hands-on exploration of oscillator stability using a custom electromechanical pendulum. He converts a hard‑drive head actuator into a pendulum resonator, winds a 220‑ft #40 coil, and mounts the assembly on low‑friction ball bearings before integrating it into an electronic oscillator. Iteration and careful modeling—treating the pendulum as a resonator and including coil inductance in the circuit—prove essential to obtain sustained oscillation. The resulting prototype functions as an intentionally inaccurate electro‑mechanical clock driven by a "tick‑toc" circuit that minimizes load to preserve a high loaded Q and requires manual start to demonstrate a hard limit cycle. The project highlights practical tradeoffs between stability, Q, and the realities of prototyping.
BusyBox; The Swiss Army Knife of Embedded Linux
In this article we cover the BusyBox, how it's designed to be optimized for embedded targets, and how to configure and build it in different ways, we also covered the license and limitation, which led to the development of ToyBox, I hope you enjoyed the article, please leave a comment for any correction or suggestions.
NULL pointer protection with ARM Cortex-M MPU
This post explains how you can set up the ARM Cortex-M MPU (Memory Protection Unit) to protect thy code from dragons, demons, core dumps, and numberless other foul creatures awaiting thee after thou dereference the NULL pointer.
FPGA Assemblers and Time Machines
Modern FPGA toolchains have turned tinkering into a slog, Victor Yurkovsky recalls the old joy of manual hardware hacking and wants it back. He proposes an assembler-style approach, exemplified by the proposed 'fpgasm', that preserves placement and routing, programs bitstreams in seconds, and makes live probing and rapid iteration practical again. Read this to see why low-level control could revive hands-on FPGA learning.
Mastering Modern FPGA Skills for Engineers
In the rapidly evolving tech industry, engineers must acquire proficiency in modern FPGA skills. These skills empower engineers to optimize designs, minimize resource usage, and efficiently address FPGA design challenges while ensuring functionality, security, and compliance.
Designing Embedded System with FPGA - 1
Getting an embedded system running on an FPGA is much simpler than it sounds when you use Xilinx EDK and a soft processor. Pragnesh Patel walks through a beginner-friendly approach using the MicroBlaze CPU, drag-and-drop IP cores, and a Spartan-3E starter kit so you can assemble peripherals without deep VHDL knowledge. The post focuses on the EDK base system builder and first setup steps to generate a working design.
Mathematics and Cryptography
Cryptographic math can look intimidating, but this roundup trims it to what FPGA engineers actually need. It groups concise articles on number theory and elliptic curves, focusing on polynomial math over Galois fields, FPGA-friendly inversion and one-clock-cycle techniques, and elliptic-curve key exchange and digital signatures. Read this to learn which subroutines to implement first and how to turn math into Verilog or VHDL.
FPGA skills for the modern world
FPGA demand is booming across industries from automotive to edge AI, and employers want engineers who can think in hardware. This post explains the mindset shift to RTL-level, concurrent design, waveform-based debugging with ILAs, and modern verification flows. It also highlights the practical skills that make you marketable, including HDLs, SoC/Linux integration, RISC-V know-how, and high-speed design techniques.
First Steps in OrCAD 16 [Capture]
A practical, beginner-friendly walkthrough of OrCAD 16 Capture that gets you from a blank project to a netlist ready for PCB layout. Maykel explains the OrCAD suite, project tree and design cache behavior, how to manage part libraries, and the Tools menu utilities you should run. The article ends with step-by-step instructions for creating the .mnl netlist and previews a follow-up on layout and footprint libraries.
Favorite Software AND Hardware Tools for Embedded Systems Development
Tool choice can make or break an embedded project, and Stephane Boucher gathered developers' favorite hardware and software picks from the Embedded Online Conference into one handy roundup. The post points to a companion video and lists concrete tools from oscilloscopes and logic analyzers to J-Link probes, Python, unit-test frameworks, and soldering irons. It is a quick, practical peek at what experienced embedded engineers actually use.
























