EmbeddedRelated.com
The 2026 Embedded Online Conference

Breaking AES with an Oscilloscope

Nathan JonesNathan Jones October 1, 2025

AES is a powerful encryption algorithm that protects some our most important secrets. But did you know that many devices are inadvertently leaking the value of their private key through their power pins?! Join me in this special preview of my upcoming workshop at the Embedded Systems Summit (14-16 October 2025 in San Jose, CA) as we explore the world of hardware security and discover just how easy it could be to break AES encryption with only an oscilloscope and some math.


Here Comes The Noise!

GLENN KirilowGLENN Kirilow July 10, 20241 comment

Noise. That awful thing which nobody wants that most sadly never learn about. It's time to change that with this blog post.


Getting Started With CUDA C on an Nvidia Jetson: A Meaningful Algorithm

Mohammed BillooMohammed Billoo May 11, 2024

In this blog post, I demonstrate a use case and corresponding GPU implementation where meaningful performance gains are realized and observed. Specifically, I implement a "blurring" algorithm on a large 1000x1000 pixel image. I show that the GPU-based implementation is 1000x faster than the CPU-based implementation.


Unraveling the Enigma: Object Detection in the World of Pixels

Charu PandeCharu Pande February 8, 2024

Exploring the realm of embedded systems co-design for object recognition, this blog navigates the convergence of hardware and software in revolutionizing industries. Delving into real-time image analysis and environmental sensing, the discussion highlights advanced object detection and image segmentation techniques. With insights into Convolutional Neural Networks (CNNs) decoding pixel data and autonomously extracting features, the blog emphasizes their pivotal role in modern computer vision. Practical examples, including digit classification using TensorFlow and Keras on the MNIST dataset, underscore the power of CNNs. Through industry insights and visualization aids, the blog unveils a tapestry of innovation, charting a course towards seamless interaction between intelligent embedded systems and the world.


Return of the Delta-Sigma Modulators, Part 1: Modulation

Jason SachsJason Sachs May 28, 20232 comments

Jason Sachs returns to delta-sigma modulators with a hands-on, code-first treatment that focuses on the DAC side of things. Part 1 walks through first- and second-order kernels, linearized analysis, spectra, and practical coefficient choices while illustrating results with Python simulations. Expect clear rules of thumb for A, R, and B, a derivation of noise shaping behavior, and a useful error bound for RC filtering.


A Second Look at Slew Rate Limiters

Jason SachsJason Sachs January 14, 2022

Picking the right slew rate can cut overshoot dramatically while keeping delay reasonable, Jason shows. He numerically analyzes a feedforward slew-rate-limited step into a normalized second-order system and proposes a simple empirical rule R = Δx/(2π α τ) with α ≈ 1. The post includes Python/Scipy code and a 3→5 V example that demonstrates about a 3× overshoot reduction and a ≈5τ peak delay.


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.


Debugging DSP code.

Mark BrowneMark Browne May 1, 2019

Strange sinusoidal confidence scores from an HTM neural model revealed a familiar class of DSP bugs. Drawing from forum troubleshooting, the post maps common root causes: signed versus absolute value errors, wrong intermediate references, scaling mistakes, and sampling/stride problems in integer math. Embedded engineers will recognize the diagnostic clues and practical suspects to check first when DSP outputs vary with the input.


R1C1R2C2: The Two-Pole Passive RC Filter

Jason SachsJason Sachs July 28, 20181 comment

Jason Sachs walks through the math and simulation for the common two-pole passive RC filter, turning repetitive algebra into a compact reference you can reuse. He derives the closed-form transfer function, extracts the natural frequency and damping ratio, and explains why the topology cannot be underdamped without inductors or active stages. The post finishes with a state-space simulation recipe and practical component guidance.


Linear Regression with Evenly-Spaced Abscissae

Jason SachsJason Sachs May 1, 20181 comment

Jason Sachs cuts through the matrix algebra to show a tiny trick for linear regression when x values are evenly spaced. You can compute the intercept as the mean and the slope as a simple weighted sum with arithmetic weights, using q = 12/(m^3 - m). The post includes Python examples and a compact routine to get least-squares coefficients without matrix solvers.


Adventures in Signal Processing with Python

Jason SachsJason Sachs June 23, 201311 comments

Jason Sachs shows how PyLab (numpy, scipy, matplotlib) can handle many signal-processing and visualization tasks engineers usually reach for MATLAB to do. He walks through practical examples including PWM ripple, two pole RC filters, and symbolic math with SymPy, and shares real-world installation tips and trade-offs. The post closes with pointers to IPython and pandas to speed interactive analysis and data handling.


How to Estimate Encoder Velocity Without Making Stupid Mistakes: Part I

Jason SachsJason Sachs December 27, 201230 comments

Encoder velocity estimation is easy to get wrong, and Jason Sachs walks through the traps engineers fall into. He demolishes the common advice to time between encoder edges, shows how encoder quantization and state-width errors break that approach, and argues for fixed-rate sampling with sensible filtering for most control uses. Part II will cover more advanced estimators for higher performance needs.


Ten Little Algorithms, Part 2: The Single-Pole Low-Pass Filter

Jason SachsJason Sachs April 27, 201517 comments

Jason Sachs shows how a single-pole IIR low-pass filter, implementable in one line y += alpha * (x - y), tames noise in embedded signals without floating point. The post explains how to compute alpha from tau and delta-t, practical tradeoffs like phase lag and oversampling, and fixed-point pitfalls including how many extra state bits you need to avoid quantization. Short, practical, and code-ready.


Ten Little Algorithms, Part 3: Welford's Method (and Friends)

Jason SachsJason Sachs May 10, 20156 comments

Jason Sachs takes a practical look at Welford's method, a numerically stable online algorithm for computing mean and sample variance without storing large batches. He demonstrates Python implementations, shows why the naive sum and sum-of-squares approach suffers catastrophic cancellation, and why Welford is a better fit for memory- and CPU-constrained embedded systems. Jason then turns Welford into simple filters for tracking time-varying noise and discusses heuristic fixes and tradeoffs.


How to Estimate Encoder Velocity Without Making Stupid Mistakes: Part II (Tracking Loops and PLLs)

Jason SachsJason Sachs November 17, 201313 comments

Jason Sachs explains why simple differentiation of encoder counts often fails and how tracking loops and PLLs give more robust velocity estimates. Using a pendulum thought experiment and Python examples, he shows how a PI-based tracking loop reduces noise and eliminates steady-state ramp error, and why vector PLLs with quadrature mixing avoid cycle slips and atan2 unwrap pitfalls in noisy or analog sensing.


Round Round Get Around: Why Fixed-Point Right-Shifts Are Just Fine

Jason SachsJason Sachs November 22, 20163 comments

Jason Sachs explains why, in most embedded systems, simple bitwise right-shifts are an acceptable way to do fixed-point division rather than paying the runtime cost to round. He shows the cheap trick of adding 2^(N-1) to implement round-to-nearest, explains unbiased "round-to-even" issues, and compares arithmetic error to much larger ADC and sensor errors. The takeaway: save cycles unless your algorithm or inputs require extra precision.


R1C1R2C2: The Two-Pole Passive RC Filter

Jason SachsJason Sachs July 28, 20181 comment

Jason Sachs walks through the math and simulation for the common two-pole passive RC filter, turning repetitive algebra into a compact reference you can reuse. He derives the closed-form transfer function, extracts the natural frequency and damping ratio, and explains why the topology cannot be underdamped without inductors or active stages. The post finishes with a state-space simulation recipe and practical component guidance.


Lost Secrets of the H-Bridge, Part I: Ripple Current in Inductive Loads

Jason SachsJason Sachs July 8, 2013

Jason Sachs digs into what PWM switching actually does to current in an H-bridge with an inductive load, and why that ripple matters for motors and power converters. He derives closed-form ripple formulas, shows how to compute a reference current I_R0 = VDC·T/L, and uses Python and sympy to plot and verify results. Read it for practical rules to halve ripple and raise its frequency.


Lost Secrets of the H-Bridge, Part III: Practical Issues of Inductor and Capacitor Ripple Current

Jason SachsJason Sachs August 24, 20133 comments

Jason Sachs cuts through the math to show what ripple current actually does to H-bridge hardware. He explains why peak current is the limiting factor for inductors, why capacitor ESR usually dominates DC-link voltage ripple, and how center-aligned PWM and duty selection reduce harmonics and ripple. Read this if you want practical rules of thumb and calculation templates for real power-electronics designs.


Two Capacitors Are Better Than One

Jason SachsJason Sachs February 15, 20155 comments

Jason Sachs revisits a simple stacked RC trick that dramatically reduces DC error from capacitor insulation leakage in long time-constant filters. Splitting one RC into two stages forces most of the DC drop onto the lower capacitor, squaring the remaining error while changing the effective pole locations. The post walks through the math, practical component tradeoffs, and when to prefer a digital approach.


The 2026 Embedded Online Conference