Signal Processing Contest in Python (PREVIEW): The Worst Encoder in the World
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 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
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 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 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
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 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!
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 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
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.
How to Succeed in Motor Control: Olaus Magnus, Donald Rumsfeld, and YouTube
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.
10 Software Tools You Should Know
Embedded work gets a lot easier when you have the right software stack, and Jason Sachs lays out the tools he leans on every day. From revision control and file comparison to build systems, scripting, analysis, documentation, QA, and command-line utilities, he focuses on practical picks that save time and reduce mistakes. The list is opinionated, but it is full of the kind of workflow advice that helps engineers stay productive.
10 More (Obscure) Circuit Components You Should Know
Jason Sachs follows up his earlier primer with ten more underused but practical parts that can simplify embedded hardware designs. From MOSFET-based ideal diode controllers that eliminate diode drops to TAOS light-to-frequency sensors that expand dynamic range, the post explains what each component does, when to choose it, and real-world tradeoffs learned from field use. Ideal for engineers looking to broaden their parts toolbox.
Margin Call: Fermi Problems, Highway Horrors, Black Swans, and Why You Should Worry About When You Should Worry
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.
Garden Rakes Revisited: The Hall of Shame
Jason Sachs opens a Hall of Shame to catalog the everyday software "garden rakes" that steal time and focus. He walks through concrete examples from PowerPoint point editing and Office window behavior to Outlook undo bugs and TurboTax's opaque errors, showing how poor UI and hidden behaviors force you to work around the tool instead of with it. This is a short, cranky checklist for avoiding wasted effort.
Stairway to Thévenin
Jason Sachs strips away classroom mystique to show how Thevenin and Norton equivalents are practical tools for real embedded work. Using a simple two-terminal black-box example he shows how two measurements give Vth and Rth, then applies that model to voltage-divider references, potentiometer RC filters, and combining multiple sources with Millman's theorem. Read it for fast, practical ways to predict output impedance, droop, and filter time constants.
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.
Python Code from My Articles Now Online in IPython Notebooks
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.
Ten Little Algorithms, Part 4: Topological Sort
Jason Sachs detours from signal processing to make topological sort feel practical and even a little funny, using a Martian Stew recipe to illustrate dependencies and cycles. He walks through two canonical algorithms, Kahn’s method and the depth-first-search variant, compares adjacency-list and matrix graph representations, and provides complete Python implementations so you can run and inspect cycle detection and ordering yourself.
Lazy Properties in Python Using Descriptors
Python descriptors let you outsource attribute lookup, and Jason Sachs walks through a practical use: lazy, cached properties. He presents a LazyProperty descriptor that defaults to a WeakKeyDictionary cache so computed results are stored on first access and automatically purged when objects are garbage collected. The post shows how to share caches by value using attrkey or swap cache classes for different use cases.
Linear Feedback Shift Registers for the Uninitiated, Part IX: Decimation, Trace Parity, and Cyclotomic Cosets
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
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
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
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
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 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
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 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 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
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.







