Tracing code and checking timings
When you cannot afford logs or to stop the CPU, GPIO toggles become a powerful real-time tracer. Richard shows how driving IO pins and watching them with an oscilloscope or logic analyzer reveals control flow, function timings, and ISR activity with very little overhead. He also explains using direct port writes and conditional compilation to keep measurements noninvasive and easy to enable or disable.
Byte and Switch (Part 2)
Running a thermistor front end from a single AA cell exposes problems you might not expect. Jason Sachs walks through a switchable-gain divider using a P-channel MOSFET and shows how MOSFET off-state leakage and low supply voltages can corrupt high-impedance temperature readings. The post compares bipolar transistors and analog switch ICs as fixes and gives practical component guidance for one-cell designs.
Byte and Switch (Part 1)
Driving a 24V electromagnet from a 3.3V microcontroller looks trivial, but Jason Sachs shows how that simple switch can fail spectacularly. He walks through the cause of MOSFET destruction when an inductive load is turned off, and explains the practical fixes you actually need: a flyback diode, a gate series resistor, and a gate pulldown to keep the transistor well behaved.
Size matters - System success depends on initial design
A seemingly small UI choice can reshape an entire embedded system. Gene Breniman uses a real product example to show how picking a graphic touchscreen instead of a character LCD can multiply CPU, memory, OS, and licensing needs. The post explains why capturing requirements early and planning for growth paths keeps complexity and cost under control, and how to size hardware to fit real needs.
Good old multiplexed keypad in an embedded system
Multiplexed keypads remain the most practical input for mid-budget embedded projects, especially where hard-wired keys survive harsh environments and rough usage. Jayaraman lays out a simple, reusable approach by splitting key handling into three tiny modules: a GlanceKey quick check, on-demand Decode, and a compact state machine. The pattern cuts CPU time, runs from a timer, and boosts portability across MCUs.
An overview of Linux Boot Process for Embedded Systems
Booting Linux on embedded hardware collapses PC boot stages into a single bootloader, and understanding the early steps helps troubleshoot low-level failures. Kunal Singh breaks down the sequence from the bootstrap firmware and primary/secondary bootloaders through zImage decompression, MMU and page table setup, start_kernel, and the initrd pivot to the root filesystem. Practical focus favors ARM examples.
iPhone aca Linux Station
CPUs are closing the gap between desktops and handhelds, and Kunal Singh points to a likely future where phones and laptops merge. The short note highlights how laptops already ate into desktop share and raises the provocative idea that an iPhone could become a Linux workstation. It’s a quick prompt to rethink device form factors and operating system roles as mobile hardware gets more capable.
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.
My first entry to embeddedrelated.com
Pragnesh Patel introduces his first EmbeddedRelated post with a hands-on look at embedded systems work on FPGA platforms. He describes using Xilinx Spartan-3E and EDK 9.1, and explains why FPGA logic can offload processor tasks in R&D and complex products. The post sets up a future series on implementing embedded systems with Xilinx devices.
VHDL tutorial
Gene Breniman presents a hands-on VHDL walkthrough for a programmable clock divider implemented on a Xilinx CoolRunner CPLD (XC2C32A). The example shows how to declare ports and internal signals, implement a clock-division process with reset and falling-edge detection, and create a simple addressable latch to select clock rates from a 40MHz master clock. It’s a compact, practical guide for embedded engineers learning VHDL and CPLD design.
My first entry to embeddedrelated.com
Pragnesh Patel introduces his first EmbeddedRelated post with a hands-on look at embedded systems work on FPGA platforms. He describes using Xilinx Spartan-3E and EDK 9.1, and explains why FPGA logic can offload processor tasks in R&D and complex products. The post sets up a future series on implementing embedded systems with Xilinx devices.
Tracing code and checking timings
When you cannot afford logs or to stop the CPU, GPIO toggles become a powerful real-time tracer. Richard shows how driving IO pins and watching them with an oscilloscope or logic analyzer reveals control flow, function timings, and ISR activity with very little overhead. He also explains using direct port writes and conditional compilation to keep measurements noninvasive and easy to enable or disable.
Good old multiplexed keypad in an embedded system
Multiplexed keypads remain the most practical input for mid-budget embedded projects, especially where hard-wired keys survive harsh environments and rough usage. Jayaraman lays out a simple, reusable approach by splitting key handling into three tiny modules: a GlanceKey quick check, on-demand Decode, and a compact state machine. The pattern cuts CPU time, runs from a timer, and boosts portability across MCUs.
Lightweight hardware abstraction
Hardware pin reassignments turned a small firmware tweak into a tangled mess of #ifdefs and scattered port references. Gene Breniman shows how a lightweight hardware abstraction, implemented with per-board include headers and meaningful macros like MODE_LED and LED_ON, cleans up the code and makes it easy to target multiple prototypes. The post emphasizes keeping changes local to configuration headers to reduce validation scope and maintenance.
iPhone aca Linux Station
CPUs are closing the gap between desktops and handhelds, and Kunal Singh points to a likely future where phones and laptops merge. The short note highlights how laptops already ate into desktop share and raises the provocative idea that an iPhone could become a Linux workstation. It’s a quick prompt to rethink device form factors and operating system roles as mobile hardware gets more capable.
Off the shelf availability of Custom IoT Gateway
Choosing the right gateway can make or break an IoT deployment, yet industrial gateways are often expensive and generic. This post walks through practical criteria for off-the-shelf and custom gateways, covering edge computing trade-offs, mainframe versus embedded Linux, SoC and ADC choices, interfacing and debugging needs, and when to design your own hardware for real-time or protocol demands.
Android Vs Embedded system
Android@Home and the ADK open a fast path to add rich UIs, multimedia, networking, and databases to embedded projects by leveraging phones, tablets, or dedicated Android boards. This post outlines the main benefits of using Android as a front end or as a full embedded OS, explains two integration approaches, and points to BeagleBoard as an affordable single-board option for one-platform designs.
C++ on microcontrollers 3 – a first shot at an hc595 class with 8 output pins
A simple HC595 wrapper turns into a nice C++ lesson in how to build reusable I/O abstractions for microcontrollers. Wouter van Ooijen shows how to expose all eight shift-register outputs as regular output pin objects, then generalizes the same pattern to MCU ports and even daisy-chained HC595 chips. Along the way, he runs into a classic class dependency problem and resolves it with forward declarations and out-of-class method definitions.
Kind of Buggy! The state machine fantastic//
Richard Dorfner shows a compact way to debug an intermittent homing failure in a Pan/Tilt camera by logging the last 30 state transitions in a circular buffer. He tags each entry with a function identifier and uses breakpoints to walk the recorded sequence backwards. That reveals a timing interaction between a 100 ms periodic flag and the homing code that stopped the motor state machine. The method is low-overhead and ideal for single-threaded embedded systems.
An Introduction to Embedded Development
Peter Johansson launches a beginner-friendly series that teaches embedded development from the ground up, using the TI MSP430 while keeping lessons portable to other microcontrollers. No prior embedded experience is assumed, though a solid grasp of C and basic electronics will help. The series covers tool selection, the MSP430 LaunchPad, recommended books and online resources, and a hands-on roadmap toward writing your first program.
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.
Flood Fill, or: The Joy of Resource Constraints
When transferred from the PC world to a microcontroller, a famous, tried-and-true graphics algorithm is no longer viable. The challenge of creating an alternative under severe resource constraints is an intriguing puzzle, the kind that keeps embedded development fun and interesting.
Embedded Systems Co-design for Object Recognition: A Synergistic Approach
Embedded systems co-design for object recognition is essential for real-time image analysis and environmental sensing across various sectors. This methodology harmonizes hardware and software to optimize efficiency and performance. It relies on hardware accelerators, customized neural network architectures, memory hierarchy optimization, and power management to achieve benefits like enhanced performance, lower latency, energy efficiency, real-time responsiveness, and resource optimization. While challenges exist, co-designed systems find applications in consumer electronics, smart cameras, industrial automation, healthcare, and autonomous vehicles, revolutionizing these industries. As technology advances, co-design will continue to shape the future of intelligent embedded systems, making the world safer and more efficient.
Size matters - System success depends on initial design
A seemingly small UI choice can reshape an entire embedded system. Gene Breniman uses a real product example to show how picking a graphic touchscreen instead of a character LCD can multiply CPU, memory, OS, and licensing needs. The post explains why capturing requirements early and planning for growth paths keeps complexity and cost under control, and how to size hardware to fit real needs.
Stand-by or boot-up
Many factors affect the usability of devices - a key one is how long it takes to start up.
Intro to Microcontrollers Part 2: AVR Microcontrollers
This follow-up explores getting an AVR Dragon working with an ATtiny24A, covering the necessary cables, BOM choices, and Atmel Studio setup. It walks through firmware updates, an ADC-based internal temperature sensor example using reduced-noise ADC and ISR handling, and practical debugging tips including debugWire versus ISP and high-voltage recovery. Expect candid hardware caveats like weak drive strength and 5V power quirks.
Project Log: Pixelblaze Christmas Lights
Festive fun and the hacker spirit combine in my janky attempt to adorn my house with addressable LEDs! In this post, I show you how I used a Pixelblaze and a cheap strip of WS2811 RGB LEDs (and not a little bit of hot glue and paper clips) to make a super cool set of Christmas lights.
Off the shelf availability of Custom IoT Gateway
Choosing the right gateway can make or break an IoT deployment, yet industrial gateways are often expensive and generic. This post walks through practical criteria for off-the-shelf and custom gateways, covering edge computing trade-offs, mainframe versus embedded Linux, SoC and ADC choices, interfacing and debugging needs, and when to design your own hardware for real-time or protocol demands.
iPhone aca Linux Station
CPUs are closing the gap between desktops and handhelds, and Kunal Singh points to a likely future where phones and laptops merge. The short note highlights how laptops already ate into desktop share and raises the provocative idea that an iPhone could become a Linux workstation. It’s a quick prompt to rethink device form factors and operating system roles as mobile hardware gets more capable.
Android Vs Embedded system
Android@Home and the ADK open a fast path to add rich UIs, multimedia, networking, and databases to embedded projects by leveraging phones, tablets, or dedicated Android boards. This post outlines the main benefits of using Android as a front end or as a full embedded OS, explains two integration approaches, and points to BeagleBoard as an affordable single-board option for one-platform designs.





















