EmbeddedRelated.com

Painting with Light to Measure Time

Jason SachsJason Sachs December 26, 2020

When Jason Sachs needed to verify a first-order sigma-delta LED dimming implementation but had no oscilloscope, he turned to long-exposure "light painting" to turn time into space on a photograph. By sweeping the camera across blinking LEDs he captured pulse trains, read the bit patterns from the light trail, and confirmed the result with a tiny Python accumulator model. The post shares practical tips on timing accuracy, exposure, and avoiding ambient-light artifacts.


The DSP Online Conference - Right Around the Corner!

Stephane BoucherStephane Boucher September 20, 2020

Three months after a forum post, Stephane Boucher and Jacob Beningo pulled together the DSP Online Conference, a two-day virtual event featuring 14 talks from leading DSP experts. Most sessions are 30 to 60 minutes with a 30-minute Zoom Q&A, while extended deep dives from speakers like fred harris are included. Registered attendees get one-year on-demand access, and free or reduced passes are available.


Review: Hands-On RTOS with Microcontrollers

Steve BranamSteve Branam September 20, 20202 comments

Brian Amos's Hands-On RTOS with Microcontrollers delivers a practical path from bare-metal to full RTOS applications using FreeRTOS on an STM32 Nucleo-F767ZI board. The book combines clear explanations of concurrency, interrupts, and DMA with step-by-step toolchain setup and runnable examples that show building, debugging, monitoring, and scaling embedded systems for real projects and coursework.


Review: Project Management for the Unofficial Project Manager

Steve BranamSteve Branam July 26, 2020

You don't need a PMP to manage effective engineering projects. Project Management for the Unofficial Project Manager, by Kory Kogon, Suzette Blakemore, and James Wood, distills PMBOK concepts into readable, lightweight procedures for people who end up coordinating work without formal training. The book emphasizes people-first behaviors, simple process groups, and concise documentation so engineers can manage risk, scope, and change without heavy bureaucracy.


Scorchers, Part 3: Bare-Metal Concurrency With Double-Buffering and the Revolving Fireplace

Jason SachsJason Sachs July 25, 20201 comment

Jason Sachs presents a practical, low-overhead concurrency pattern for tiny bare-metal systems where an ISR (Speedy) must safely exchange data with a nonreal-time main loop (Poky). He describes the "revolving fireplace", a double-buffering variant that swaps ownership of two shared memory regions, and walks through C examples, atomic/volatile considerations, and testing strategies so you can implement it on RAM-constrained MCUs.


Absolute Beginner's Guide To Getting Started With Raspberry Pi

Steve BranamSteve Branam July 12, 2020

Getting started with Raspberry Pi can feel overwhelming. This guide strips the noise and shows the simplest path from unboxing to a working desktop. It recommends buying a preloaded NOOBS microSD to avoid imaging hassles, lists exact parts and suppliers, and walks through booting, recovery, and making a backup. If you want embedded electronics it also lists starter parts and ESD safety tips.


Make Hardware Great Again

Jeff BrowerJeff Brower June 29, 20204 comments

US weakness in 5G and the coming AI race stems from a deeper problem, hardware decline and lack of CPU innovation. Jeff Brower argues that the software-only narrative has hollowed out semiconductor leadership, leaving only a few chipmakers and blocking vital R&D. He calls for targeted government action, funding for neural-net chips, and an industrial Hardhattan Project to rebuild CPU and hardware capabilities.


Tolerance Analysis

Jason SachsJason Sachs May 31, 2020

Jason Sachs walks through practical tolerance analysis by designing a 24V overvoltage detector from the ground up, combining resistor tolerances, temperature coefficients, reference and comparator errors, hysteresis, and dynamic RC behavior. He demonstrates worst-case stacking with real datasheet numbers, shows how solder and mechanical stress affect resistor choice, and sizes filtering so the comparator meets a microsecond-range trip requirement. The article is a hands-on guide full of worked examples and trade-offs for embedded hardware engineers.


The Self-Directed Virtual Internship

Steve BranamSteve Branam May 3, 2020

Summer internships may be gone, but your career momentum does not have to be. This post shows how to design a self-directed, unpaid virtual internship in embedded systems, with concrete options: project-based builds, tutorials, reports, or open-source contributions. Follow the one-page plan approach, treat it like a real remote job, and produce demonstrable deliverables to show employers.


Simple Automated Log Processing

Steve BranamSteve Branam April 25, 2020

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.


Margin Call: Fermi Problems, Highway Horrors, Black Swans, and Why You Should Worry About When You Should Worry

Jason SachsJason Sachs December 6, 20152 comments

Jason Sachs walks through practical strategies for choosing engineering margin, from split-second Fermi estimates to industry-grade safety factors. He blends highway and boiler anecdotes with a MOSFET thermal example to show why probabilistic thinking, experiments, and documentation matter when you must decide fast or later justify your choices. Read this to learn how to balance conservatism, cost, and risk in real projects.


Linear Feedback Shift Registers for the Uninitiated, Part XIII: System Identification

Jason SachsJason Sachs March 12, 20181 comment

Jason Sachs shows how the output of a linear feedback shift register can be used for active system identification, not just spread-spectrum testing. The article compares traditional sine-wave probing with LFSR-based PRBS methods, demonstrates a worked Ra-Rb-C example, and unpacks practical issues such as reflected pseudonoise, ADC quantization, sample counts, and noise-shaping tricks to improve estimates.


Going back to Germany!

Stephane BoucherStephane Boucher June 13, 20176 comments

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.


Project Directory Organization

Stephen FriederichsStephen Friederichs August 20, 20142 comments

A tidy project tree can make a bigger difference than you might think. Stephen Friederichs lays out a practical directory scheme for small software projects, using familiar folders like src, obj, bin, test, reports, docs, and conf to keep builds, tests, and documentation from turning into a mess. He also explains why the root directory should welcome contributors, not confuse them.


Wye Delta Tee Pi: Observations on Three-Terminal Networks

Jason SachsJason Sachs December 23, 2018

Three-terminal passive networks, wye, delta, tee, and pi, are more interchangeable than many engineers expect. Jason Sachs walks through Kennelly's wye-delta formulas, Z and Y matrix representations for tee and pi two-port networks, and worked examples ranging from balanced to highly skewed impedances. The post highlights practical payoffs, including using topology transforms to substitute hard-to-source capacitors with simpler, precision-friendly parts.


Coding Step 3 - High-Level Requirements

Stephen FriederichsStephen Friederichs August 17, 20152 comments

Stephen Friederichs turns the series toward embedded code by showing how to write a single high-level requirement for an embedded Hello World. He explains when requirements pay off, how they support testing and scope control, and why you should not write them for every small script. He then lays out five practical rules and applies them to a concrete EHW-001 serial transmission requirement.


Crowdfunding Articles?

Stephane BoucherStephane Boucher April 12, 201828 comments

Technical writers in the embedded world often have the expertise, but not always the time or incentive to turn it into a post. Stephane Boucher explores a crowdfunding model for technical articles, where readers would pledge small amounts to back promising abstracts before the writing begins. It is an interesting attempt to create more high quality EE content by paying authors upfront.


Complexity in Consumer Electronics Considered Harmful

Jason SachsJason Sachs October 1, 20111 comment

Jason Sachs watched his grandmother struggle with a Vizio TV remote, and it highlights a recurring usability failure in consumer electronics. He argues that small type, unclear icons, and modal controls make everyday tasks needlessly hard. The takeaway for embedded engineers is to prioritize common actions, separate advanced features, and design for low-vision and limited-memory users to avoid frustration and returns.


Live Streaming from Embedded World!

Stephane BoucherStephane Boucher February 12, 2019

Stephane Boucher will bring Embedded World to engineers who cannot attend, streaming high-quality HD video from the show floor. He plans to use a professional camera and a device that bonds three internet links to keep the stream stable, and he is coordinating live sessions with vendors and select talks. Read on to learn how to vote for the presentations you want streamed.


C to C++: 3 Proven Techniques for Embedded Systems Transformation

Jacob BeningoJacob Beningo February 7, 20235 comments

Jacob Beningo lays out a pragmatic, low-risk path for embedded teams to start using C++ without adding bloat or runtime cost. He recommends beginning by treating C++ as a cleaner C with namespaces, constexpr, and smart pointers, then adopting object-oriented design with composition, and finally introducing templates for static polymorphism where it makes sense. The post focuses on practical guardrails for resource-constrained firmware.