Utility · the project's library
Reference shelf
Everything here was verified when its week shipped, and each link earned its place by answering real bench questions. Organized the way you will reach for it: by the subsystem you are working on, with the week hub that teaches the layer beside the manual that defines it.
The governing documents
- The LIA brief, on Omnivox: deliverable contents, submission, deadlines, grading. It governs.
- The Fall 2026 course outline, on Omnivox: weights, policies, the calendar of record.
The shelf, by subsystem
| Subsystem | Reference | What it answers |
|---|---|---|
| Node · ESP32 & MicroPython | MicroPython ESP32 quick reference | Pins, ADC, PWM, Wi-Fi, one page; the first stop for any node question |
| machine.ADC · machine.PWM | Attenuation, reading, duty cycle: the sensing and acting primitives | |
| network.WLAN | The Wi-Fi join your connect_wifi wraps, and its status codes | |
| micropython-lib (umqtt) | The node's MQTT client: connect, publish, check_msg, last will | |
| Broker · MQTT | Eclipse Mosquitto | The broker, its configuration and the mosquitto_sub/_pub tools your stubs and probes are made of |
| mqtt.org | The protocol itself: versions, specifications, the vocabulary | |
| MQTT Essentials (HiveMQ) | Topics, QoS, retained, last will, explained longer than Week 9 could | |
| Pi programs | paho-mqtt | The Pi-side client: callbacks, loop_start, the 2.x API your monitor and bridge use |
| Python classes · venv | The objects your programs are built from, and the environments they run in | |
| Control · the rule | Control theory · Bang-bang control | The decide slot's theory, from threshold rules to feedback |
| Improving the beginner's PID | For projects holding a quantity: the practical PID series behind Week 10 | |
| Dashboard · Flask & the web | Flask · Jinja | Routes, templates, jsonify: the serving half of the showing slot |
| MDN: HTTP · HTML · Fetch API | The browser half: the protocol, the page, and the polling that animates it | |
| systemd.service · journalctl | The unit file keeping it all alive, and the log that reads its nights | |
| Hardware & wiring | pinout.xyz | Every Pi pin, both numbering systems; the settling authority |
| Raspberry Pi documentation | The board, the OS, remote access, configuration |
The layer behind each layer
Every subsystem above has a course hub that teaches it with this bench's exact conventions, usually the faster path than any manual: Week 8 for the node's sensing and acting, Week 9 for MQTT, topics and the firehose, Week 10 for the rule and tuning, Week 11 for Flask, the bridge and the dashboard, and Week 12 for integration, debugging and services. Earlier layers: Week 1 (Git), Week 3 (SSH, firewall), Week 4 (GPIO, venv). Each hub's own troubleshoot page is its layer's symptom table.
Method references
- Start your project with a walking skeleton: the scoping method behind D2, with Cockburn's definition; book sources are Cockburn, Crystal Clear (2004) and Freeman & Pryce, Growing Object-Oriented Software, Guided by Tests (2009).
- Integration testing (Wikipedia): big-bang versus incremental, named.
- Merge conflicts (Atlassian) and GitHub's Get started: the pair's Git rhythm, documented.
- User stories (Mountain Goat Software): the Week 5 requirements lineage, for pairs who want the industry form of "testable, unambiguous, atomic".
- Markdown Guide: every document in
docs/.