Learn electronics by building your own SPICE with Python and Z3

pkoird1 pts0 comments

How Circuits Actually Work — for Programmers

Act 0 — Foundation

Introduction<br>Variables & Equations

Act 1 — Linear World

Voltage & Current<br>The First Resistor<br>Circuits by Hand<br>The Circuit Class<br>UNSAT as Information<br>Wheatstone Bridge Bonus

Act 2 — Non-Linearity

Logic & Decisions<br>The Diode<br>Driving an LED<br>BJT Transistors<br>Best Answers: Optimize Bonus<br>Optimization: Saturation<br>MOSFETs<br>Op-Amps

Act 3 — Dynamics

Capacitors & Time<br>The Charge Curve<br>Inductors<br>The Rectifier

Act 4 — The Real World

The CMOS Inverter<br>The MCU as a Constraint<br>Pull-ups & the Floating Input<br>The Button Bounces<br>Driving Real Loads<br>Power Integrity: The Decoupling Cap<br>Reading the Analog World: the ADC<br>Signal Conditioning: the Op-Amp Pre-Amp<br>Analog Out: PWM + RC Smoothing<br>Talking to Chips: UART, I2C, SPI

Act 5 — Integration

System Power Budget<br>I2C Address Collisions<br>The Pin Allocator<br>I2C Pull-up Sizing

Capstones

The Smart Night-Light<br>The All-Analog Alarm<br>Bonus: Make It Tick<br>The Debounced Thermostat<br>The Variable-Speed Fan<br>The Multi-Sensor Node

Exercise Sets

Act 0 Problems<br>Act 1 Problems<br>Act 2 Problems<br>Act 3 Problems<br>Act 4 Problems<br>Act 5 Problems

Epilogue

Where This Breaks

problems world bonus analog circuits driving

Related Articles