A self-directed, bench-driven electronics course — learn analog by seeing it on a scope. Every experiment ends with a measurement you make yourself and a number that matches (or surprises) the theory.
⚠️ This curriculum is AI-generated.It was written with an AI assistant and should be treated as a starting map, not an authority. Verify component values, procedures, and especially anything involving mains power or RF transmission against trusted references (ARRL Handbook, datasheets,The Art of Electronics) before you rely on it.
This course is tailored to people who:
- Come from a software-development background— comfortable with logic and code, and want to understand the- hardwareunderneath.
- Are amateur radio operators (hams)— already fluent in some RF ideas (frequency, resonance, antennas, transmission lines) and want to homebrew gear.
If that's you, the course plays to those strengths while targeting the usual gap: analog intuition — component feel, reading signals on a scope, and the connective tissue (filters, impedance, biasing) between "I can follow a schematic" and "I can design one."
Each experiment follows one loop:
Build → Observe → Explain → Log
Build the circuit, observe it on the scope, understand what you saw and why, then record your measurements in the experiment's Log section — your evidence that the theory is real.
syllabus.mdexperiments/projects/- keyboard from scratchand a- homebrew QMX+ transceiver.glossary.md
Start with syllabus.md, then experiments/00-bench-and-instrumentation.md.
To keep a physical copy on the bench, scripts/build_print.py combines the whole course into a single Word/LibreOffice document — a title page, a table of contents, and each file as a chapter with page breaks between them (syllabus → experiments → project briefs → glossary appendix).
python3 scripts/build_print.py # -> Homebrew-Lab.docx (default)
python3 scripts/build_print.py my-copy.odt # native LibreOffice .odt
(On Windows, use py scripts\build_print.py.) Re-run it any time the curriculum changes; the experiment files are auto-discovered in numeric order, so new experiments are included automatically. A .docx opens and prints from both Microsoft Word and LibreOffice, which is why it's the default. The generated documents are git-ignored — the markdown stays the single source of truth.
Dependencies:
- Python 3— required; runs the build and does the document post-processing (footer, page numbers, 10pt). Standard library only; no-
pip installneeded. - pandoc— required; does the markdown → document conversion. Called as a subprocess, so it just needs to be on your-
PATH. - LibreOffice(-
soffice) — only needed for-.odtoutput; not used for the default-.docx.
The script is pure Python, so it runs on Windows, macOS, and Linux. Installs: Debian/Ubuntu sudo apt install pandoc python3; macOS brew install pandoc (Python 3 is already present); Windows winget install JohnMacFarlane.Pandoc plus Python from python.org. Add LibreOffice only if you want .odt.
Body text is 10pt and pages are numbered in the footer. The table of contents fills in when you open the file — Word updates it automatically; in LibreOffice, if it looks blank, choose Tools ▸ Update ▸ Update All (or select all and press F9).
Some modules involve mains-adjacent power supplies and RF transmission. Transmit only into a dummy load during testing, radiate only on frequencies and at power levels your license authorizes, and observe ESD precautions around sensitive parts. When in doubt, check a trusted reference — see the AI-generated caveat above.