Help, My Serial Data Has Been Framed: How To Handle Packets When All You Have Are Streams
Framing byte streams is easier to get wrong than you think, and a bad scheme can leave your embedded device acting on the wrong packet. Jason Sachs walks through common plaintext and binary framing approaches, explains why CRCs alone can still permit false resynchronization, and demonstrates COBS as a simple, low-overhead byte-stuffing method that prevents delimiter collisions and guarantees resynchronization.
10 Circuit Components You Should Know
Jason Sachs pulls together ten underrated but highly practical circuit components that every embedded engineer should know. From multifunction logic gates that act like a Swiss Army knife for glue logic to TL431 shunt regulators and tiny charge-pump inverters, each item is presented with real-world use cases and caveats. Read this to expand your parts toolbox and simplify future designs.
Analog-to-Digital Confusion: Pitfalls of Driving an ADC
Wayne's thermistor board showed one ADC channel changing when another was heated, a classic case of ADC input cross-coupling. The post walks through how multiplexed ADCs, the small sample-and-hold capacitor, source impedance, sampling time, repeated sampling rates, and added charge reservoirs interact to create errors. Learn practical fixes including increasing sample time, sizing external caps, adding op-amp buffers, and using an RC dampener with PCB layout tips.
Modulation Alternatives for the Software Engineer
Jason starts with a hardware curiosity, the 7497 synchronous rate multiplier, and turns it into a practical lesson for firmware engineers. He contrasts conventional PWM with a simple accumulator-based method called "synthetic division," showing how it implements first-order delta-sigma behavior in software. The post explains when to pick PWM or delta-sigma and why the accumulator trick can give higher effective resolution at low update rates.
Complexity in Consumer Electronics Considered Harmful
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.
Which MOSFET topology?
Jason Sachs breaks down the four basic MOSFET topologies for switching a two-wire load, showing why low-side N-channel is usually the simplest and cheapest option. He explains why grounding or chassis return can force a high-side switch, how P-channel devices trade performance for simpler gate drive, and why high-side N-channel options need extra driver circuitry. He also stresses adding freewheeling diodes for inductive loads.
Thermistor signal conditioning: Dos and Don'ts, Tips and Tricks
Jason Sachs shows how to keep thermistor conditioning simple and accurate for embedded systems. He warns against analog linearization and excessive analog stages, and explains why ratiometric dividers, proper ADC buffering, and using the same reference voltage give better results. The post also covers thermal pitfalls like self-heating and lead conduction, plus practical tips for ADC autocalibration and polynomial temperature conversion.
Real-time clocks: Does anybody really know what time it is?
Most RTC chips still expose calendar fields rather than seconds-since-epoch, forcing embedded engineers to write ugly conversion code. Jason Sachs makes the case for offset encoding, subseconds, and an explicit snapshot feature to simplify interval math, raise precision, and avoid rare timing bugs. Read this practical take on RTC trade-offs and a short wishlist for chip makers.
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.
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.
Complexity in Consumer Electronics Considered Harmful
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.
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.
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.
Organizational Reliability
Here is a compact playbook for making your engineering team reliable, pulled from a handout Jason Sachs saved from Doug Field. It highlights disciplined commitment habits, clear absence and missed-commitment notifications, explicit handoffs and read-back practices, and resisting "manytasking" through ruthless prioritization. These are simple, immediately actionable behaviors that can lift a team's delivery and reduce chaos heading into the new year.
Thoughts on Starting a New Career
Changing jobs can be a reset button for your engineering momentum. Jason Sachs reflects on leaving a 16-year role to join Microchip as an applications engineer in motor drives, and he distills practical advice on early-career choices, mentorship, networking, interview tactics, and keeping skills marketable. The post also highlights workplace factors and small perks that affect productivity, giving embedded engineers actionable steps to plan a career transition.
Scorchers, Part 1: Tools and Burn Rate
Small purchases often pay for themselves faster than you expect, and Jason Sachs walks through the math to prove it. He shows how to compute a fully burdened labor rate, including taxes, benefits, overhead, holidays, and productive hours, then compares that rate to the price of common tools. The practical conclusion is simple: if a sub-$100 utility saves about an hour of productive work, just buy it.
Painting with Light to Measure Time
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.
Baking in Process Improvements
Jason Sachs uses a backyard cookie-baking session with his niece to illustrate practical process improvements engineers can apply. He documents batch-by-batch tweaks — temperature, dough placement, and a pipelined scooping step — that raised throughput and improved quality, then connects the lesson to pilot projects and small automations like a Python script for JIRA. The piece makes the case for quick experiments and a culture that rewards refinement.
Oh Robot My Robot
Jason Sachs turns a familiar poem into a robot sendoff, and the result is equal parts funny and oddly technical. The piece riffs on broken hardware, vanishing memory, and a machine that has clearly seen better days, all while keeping the rhythm of a classic elegy. If you enjoy engineering humor with a literary twist, this is a quick, memorable read.
Stuck with Jira — and Stuckons
Jason Sachs vents about Jira’s quirks and why it still feels stuck despite years of fixes. He walks through concrete pain points: nonstandard markup, relentless notification noise, poor meta-task support, and limited analytics that make day-to-day engineering work harder. To explain why schedules blow up, he introduces a simple kepton model of planons, workons, and stuckons that highlights unexpected work.
Painting with Light to Measure Time
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.
Definite Article: Notes on Traceability
Traceability sounds bureaucratic until you need to identify a mystery part, a board revision, or the exact firmware that was shipped years ago. Jason Sachs shows how it applies across hardware, software, testing, and documentation, from Digi-Key’s cut-tape part tracing to device IDs, build metadata, and precise test records. The message is simple: if you cannot prove what something is and where it came from, you are flying blind.
Sheep Bridge: In Praise of Generalists and System Engineers
Jason Sachs makes the case for hiring generalists and valuing system engineers, because they do more than take a high-level view. He explains how multi-scale thinking, arbitration among subsystems, and clear visualization prevent integration failures, using concrete examples from battery-voltage tradeoffs, Sheep Bridge map lessons, and encoder signal checks. Read this for practical rules that keep embedded projects coherent.
Scorchers, Part 4: Burned by the Happy Path (Simon Says)
Designs that only work along the happy path break in real use, causing frustration and sometimes safety risks. Jason M. Sachs uses everyday examples from microwaves to car Auto Park logic to show how mutable software and physical state create brittle behavior. He outlines practical firmware fixes such as clear state machines, sensor or user-driven resynchronization, soft-start delays, and a ‘‘Drunken Happy Path’’ fuzzing approach to find real-world failure modes.
Supply Chain Games: A Warning on Tariffs
Jason Sachs warns that the 2025 tariff surge could amplify an existing semiconductor inventory glut and destabilize automotive and industrial supply chains. He lays out why steep, rapid tariff changes cannot be absorbed by years-long fab lead times, sticky proprietary ICs, or quick part substitutions. Read this to understand practical risks, likely timing, and what engineers and buyers should watch over the next two to three years.
Ten Little Algorithms, Part 8: Miller-Rabin Primality Test (and Living with Uncertainty)
Part 8 of the Ten Little Algorithms series: A look at the Miller-Rabin primality test, along with Pollard's rho algorithm for factoring, and some perspectives on very low levels of uncertainty.
Monte Carlo Integration
Monte Carlo integration looks deceptively simple, estimate an area by throwing random points at it and counting hits. Jason Sachs uses that idea to approximate pi, compare error scaling, and then show why the same approach becomes far more useful in higher dimensions. He also demonstrates a stratified sampling trick that improves accuracy by spending samples where they matter most.
Baking in Process Improvements
Jason Sachs uses a backyard cookie-baking session with his niece to illustrate practical process improvements engineers can apply. He documents batch-by-batch tweaks — temperature, dough placement, and a pipelined scooping step — that raised throughput and improved quality, then connects the lesson to pilot projects and small automations like a Python script for JIRA. The piece makes the case for quick experiments and a culture that rewards refinement.
C Is for Complacency: Friendship Is Not Transitive, but What About Module Dependencies?
In the C programming language, if module A depends on module B, and module B depends on module C, does this mean module A depends on module C? Well, it depends....







