EmbeddedRelated.com

Signal Processing Contest in Python (PREVIEW): The Worst Encoder in the World

Jason SachsJason Sachs September 7, 20136 comments

Jason Sachs previews a hands-on Python contest to find the best velocity estimator for a noisy, low-cost quadrature encoder. The post explains the Estimator API, submission constraints, and a 5 second, 10 kHz evaluation harness that uses a simulated "Lucky Wheel" encoder with realistic manufacturing timing errors. Jason also includes a simple baseline estimator and discusses the practical tradeoff between noise reduction and phase lag in velocity estimation.


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.


Lost Secrets of the H-Bridge, Part II: Ripple Current in the DC Link Capacitor

Jason SachsJason Sachs July 28, 2013

DC link capacitor ripple often determines capacitor life, yet the H-bridge waveform has a lot more structure than you might expect. Jason Sachs separates capacitor current into ramp and pulse components, derives closed-form peak and RMS expressions for edge and center PWM, and shows harmonic amplitudes. The post includes Python simulation so you can visualize the waveforms and apply the formulas to capacitor selection and EMI analysis.


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.


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.


Implementation Complexity, Part II: Catastrophe, Dear Liza, and the M Word

Jason SachsJason Sachs June 16, 2013

Complex systems hide risks that often surface long after the developers move on, and maintenance usually becomes the true costliest burden. Jason Sachs walks through catastrophic engineering failures, cyclic dependencies, proprietary lock-in, supply-chain fragility, redundancy pitfalls, and software traps like state-machine bugs. The post closes with practical, engineer-focused advice on designing simpler, more maintainable embedded systems and planning for lifecycle safety and repair.


Implementation Complexity, Part I: The Tower of Babel, Gremlins, and The Mythical Man-Month

Jason SachsJason Sachs June 9, 2013

Jason Sachs argues that implementation complexity often outpaces manpower and good intentions, using the Tower of Babel and Fred Brooks's The Mythical Man-Month as lenses. He walks through communication costs, Kolmogorov complexity, and interface pitfalls with concrete examples like the NEMA 5-15 outlet, then offers pragmatic approaches such as modular design, gray-box awareness, and documenting assumptions to spot the gremlins before they derail a project.


Isolated Sigma-Delta Modulators, Rah Rah Rah!

Jason SachsJason Sachs April 25, 2013

Analog isolation can blow up DAQ budgets, but isolated sigma-delta modulators let you send a single 1-bit stream and a clock across the barrier, keeping costs down. Jason walks through Avago, TI, and Analog Devices parts, explains sigma-delta noise shaping in plain terms, and calls out the real engineering work: converting a 10–20 MHz bitstream into usable samples with sinc/CIC decimators or FPGA filtering.


Oscilloscope review: Hameg HMO2024

Jason SachsJason Sachs March 28, 20133 comments

Jason Sachs tests the Hameg HMO2024, a 200MHz 4-channel mixed-signal oscilloscope that promises Agilent-like features at a lower price. He finds strong analog noise performance, useful hi-res and zoom modes, and inexpensive serial-decode options, but warns of clumsy digital-input handling, awkward data-transfer software, and missing per-channel thresholds and Ethernet waveform export. The review helps budget-conscious embedded engineers weigh the trade-offs.


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.


Linear Feedback Shift Registers for the Uninitiated, Part IX: Decimation, Trace Parity, and Cyclotomic Cosets

Jason SachsJason Sachs December 3, 2017

Taking every jth bit of a maximal-length LFSR uncovers a surprising algebraic structure. Jason Sachs walks through cyclotomic cosets, shows why decimation by powers of two preserves minimal polynomials, and connects LFSR output to trace parity and simple bitmask parity computations. The article uses hands-on Python with libgf2, Berlekamp-Massey, and state recovery so you can reproduce and automate these analyses.


Turn It On Again: Modeling Power MOSFET Turn-On Dependence on Source Inductance

Jason SachsJason Sachs April 29, 2024

This is a short article explaining how to analyze part of the behavior of a power MOSFET during turn-on, and how it is influenced by the parasitic inductance at the source terminal. The brief qualitative reason that source inductance is undesirable is that it uses up voltage when current starts increasing during turn-on (remember, V = L dI/dt), voltage that would otherwise be available to turn the transistor on faster. But I want to show a quantitative approximation to understand the impact of additional source inductance, and I want to compare it to the effects of extra inductance at the gate or drain.


Hot Fun in the Silicon: Thermal Testing with Power Semiconductors

Jason SachsJason Sachs April 20, 2012

Bringing hundreds of amps into the lab for low-Rds(on) MOSFET thermal tests is impractical. Jason Sachs demonstrates a clever workaround using a zener diode, a series resistor, and a constant-current lab supply to dump the same watts into the device at much lower current. He also explains how to use datasheet RθJC values and type T thermocouples to estimate junction temperature and size heatsinking or airflow.


Efficiency Through the Looking-Glass

Jason SachsJason Sachs December 8, 20134 comments

Efficiency numbers can be misleading, Jason Sachs argues, because they hide the real cost engineers pay in wasted watts. This post flips the focus from percent efficiency to absolute power loss, shows how losses often stay nearly constant across loads, and walks through a practical thermal method to measure those losses more reliably than subtracting input and output power. Read it to rethink how you budget heat and energy in designs.


Shibboleths: The Perils of Voiceless Sibilant Fricatives, Idiot Lights, and Other Binary-Outcome Tests

Jason SachsJason Sachs September 29, 2019

Binary tests look simple until you try to pick a threshold, because false positives, false negatives, and base rate all collide. Jason Sachs uses a deliberately absurd detective story, then walks through the math of expected value, medical screening tradeoffs, idiot lights, and even a triage-style three-way decision. The payoff is a practical way to think about when a pass/fail signal helps, and when raw data or a second test is worth the extra complexity.


How to Succeed in Motor Control: Olaus Magnus, Donald Rumsfeld, and YouTube

Jason SachsJason Sachs December 11, 2016

Jason Sachs turned frustration with algorithm-heavy motor-control app notes into a practical MASTERs class, now available on YouTube. He walks through building a fifteen-minute field-oriented control refresher, the hazards teams commonly miss, and the months of prep required to make a polished technical lecture. Read for a candid behind-the-scenes look at teaching motor control to engineers and tips you can apply to your next drive project.


Implementation Complexity, Part II: Catastrophe, Dear Liza, and the M Word

Jason SachsJason Sachs June 16, 2013

Complex systems hide risks that often surface long after the developers move on, and maintenance usually becomes the true costliest burden. Jason Sachs walks through catastrophic engineering failures, cyclic dependencies, proprietary lock-in, supply-chain fragility, redundancy pitfalls, and software traps like state-machine bugs. The post closes with practical, engineer-focused advice on designing simpler, more maintainable embedded systems and planning for lifecycle safety and repair.


A Wish for Things That Work

Jason SachsJason Sachs January 1, 20182 comments

Jason Sachs revisits his long-running gripe with poor user interfaces, cataloguing annoyances from his Toyota Prius dashboard to desktop apps and browsers. He mixes sharp, real-world examples with a short, practical wishlist for 2018 aimed at making embedded displays, update behavior, security cues, and developer tools noticeably less frustrating for engineers and end users alike.


Python Code from My Articles Now Online in IPython Notebooks

Jason SachsJason Sachs May 1, 20152 comments

Jason M. Sachs has published the Python code from his EmbeddedRelated articles as standalone IPython notebooks. He automated extraction of example code and pushed the notebooks to a public Bitbucket repository under the Apache license, and they are viewable via nbviewer. The post lists available notebooks and asks readers to link back to EmbeddedRelated and share feedback on how they used the code.


Reading and Understanding Profitability Metrics from Financial Statements

Jason SachsJason Sachs March 29, 2022

Reading a company’s financial statements does not have to feel like accounting homework. Jason Sachs shows how engineers can pull out the most useful profitability signals, especially gross margin and operating margin, from SEC filings and earnings releases. Using semiconductor companies as examples, he explains what those ratios mean, how they’re computed, and why they can hint at business strength or weakness.