Glossary
Alphabetical reference of terms used in ES101. Use Ctrl+F to search.
A
ADC (Analog-to-Digital Converter) Hardware that converts continuous analog voltages to discrete digital values. The Pico 2 W has 12-bit ADC (0-4095 values) but MicroPython reads as 16-bit (0-65535). See: Lab 3, Reference/03-sensors/adc-basics.md
Actuator A device that converts electrical signals into physical action. Examples: motors, servos, solenoids, speakers. See: Lab 5
B
Bare-metal Programming directly on hardware without an operating system. Your code is the only thing running. Requires managing timing, memory, and hardware directly. See: Theory 1
Blocking
Code that waits and prevents other operations from executing. In single-loop systems, blocking stops everything. time.sleep() is blocking.
See: Theory 1, Lab 6
Bounce (Switch Bounce) Rapid on-off transitions when a mechanical switch is pressed, caused by contact vibration. Typically lasts 1-50ms. Must be filtered in software (debouncing). See: Lab 1, Reference/02-digital-io/gpio-basics.md
C
Calibration The process of adjusting measurements to match known reference values. Corrects for systematic errors in sensors. See: Lab 3, Lab 4
Closed-loop Control Control system that uses feedback (measurements) to adjust output. Compares desired state to actual state and corrects the difference. See: Lab 5, Theory 5
CSV (Comma-Separated Values) Simple text format for tabular data. Each line is a row, columns separated by commas. Easy to import into spreadsheets or Python. See: Lab 1
D
Datasheet Technical document from manufacturer describing a component's specifications, pinout, electrical characteristics, and usage. See: Throughout course
Dead Zone Range of input values where output doesn't change. For motors: minimum PWM required to overcome friction and start moving. See: Lab 5
Deadline Maximum allowed time for an operation to complete. Missing deadlines in real-time systems can cause failures. See: Theory 1, Theory 6
Debouncing Technique to filter out switch bounce, ensuring only one event per physical press. Can be done in hardware (RC filter) or software (timing). See: Lab 1, Reference/02-digital-io/gpio-basics.md
Duty Cycle Percentage of time a PWM signal is HIGH in one period. 50% duty = ON half the time. Controls average power delivered. See: Lab 2, Reference/02-digital-io/pwm.md
E
Edge (Rising/Falling) Transition of a digital signal. Rising edge: LOW→HIGH. Falling edge: HIGH→LOW. Interrupts often trigger on edges. See: Lab 6, Reference/06-software/interrupts.md
Event-driven Programming model where code executes in response to events (button press, timer, sensor reading) rather than continuously polling. See: Theory 6, Lab 6
F
Firmware Software stored in non-volatile memory (flash) on embedded devices. The MicroPython interpreter is firmware on your Pico. See: Reference/extras/pico/firmware-update.md
FSM (Finite State Machine) Software design pattern with explicit states and transitions. System is always in exactly one state. Events trigger transitions between states. See: Lab 6, Theory 6, Reference/06-software/state-machine.md
G
GND (Ground) Reference voltage (0V) for the circuit. All voltages are measured relative to ground. Always connect grounds between devices. See: Throughout course
GPIO (General Purpose Input/Output) Microcontroller pins that can be configured as digital inputs or outputs. Can read HIGH/LOW or drive HIGH/LOW. See: Lab 1, Lab 2, Reference/02-digital-io/gpio-basics.md
H
H-Bridge Circuit that allows a DC motor to be driven in both directions. Uses 4 switches (transistors) arranged in an H pattern. See: Lab 5, Reference/05-motors/motor-basics.md
HAL (Hardware Abstraction Layer)
Software layer that hides hardware details behind a standard interface. MicroPython's Pin class is a HAL for GPIO.
See: Theory 1
I
I2C (Inter-Integrated Circuit) Two-wire serial communication protocol. Uses SDA (data) and SCL (clock). Supports multiple devices on same bus with addresses. See: Lab 4, Reference/04-display/oled-display.md
Interrupt Hardware mechanism that pauses normal execution to handle an urgent event. After handling, execution resumes where it left off. See: Lab 6, Theory 6, Reference/06-software/interrupts.md
ISR (Interrupt Service Routine) Function that executes when an interrupt occurs. Must be short and fast. Should not do I/O, blocking, or complex operations. See: Lab 6, Theory 6
J
Jitter Variation in timing between events that should be regular. High jitter indicates unstable timing. Measured as ± deviation. See: Theory 1, Lab 1
K
Kp (Proportional Gain) The 'P' in PID control. Multiplier for error that determines correction strength. Too low = slow response, too high = oscillation. See: Lab 5, Theory 5
L
Latency Time delay between an event and its response. Lower is usually better. Measured in ms or µs. See: Theory 1, Lab 6
Logic Level Voltage that represents HIGH or LOW. The Pico uses 3.3V logic (HIGH ≈ 3.3V, LOW ≈ 0V). 5V devices need level shifters. See: Reference/02-digital-io/gpio-basics.md
M
MCU (Microcontroller Unit) Integrated circuit containing processor, memory, and peripherals. The Pico 2 W uses RP2350 MCU. See: Theory 1
MicroPython Python implementation optimized for microcontrollers. Interpreted (not compiled). Easier to use than C but less deterministic timing. See: Reference/01-getting-started/
Mutex (Mutual Exclusion) RTOS mechanism to prevent multiple tasks from accessing shared resource simultaneously. Prevents race conditions. See: Theory 1 (RTOS concepts)
N
Non-blocking Code that returns immediately without waiting. Uses timers or state to track progress. Allows other code to run. See: Lab 6, Theory 6
Noise Unwanted random variations in signals. Causes measurement uncertainty. Reduced by averaging, filtering, or shielding. See: Lab 3, Theory 3
O
OLED (Organic Light-Emitting Diode) Display technology that emits light directly (no backlight). SSD1306 is common 128x64 OLED used via I2C. See: Lab 4, Reference/04-display/oled-display.md
Open-loop Control Control without feedback. Output is set directly without measuring result. Simple but can't correct for disturbances. See: Lab 5, Theory 5
P
Period Time for one complete cycle. For PWM: time for one HIGH+LOW sequence. Inverse of frequency (Period = 1/Frequency). See: Lab 2, Theory 1
PID (Proportional-Integral-Derivative) Control algorithm using three terms: P (current error), I (accumulated error), D (rate of change). ES101 covers P only. See: Lab 5, Theory 5
Polling Repeatedly checking a condition in a loop. Simple but wastes CPU and can miss fast events. See: Theory 6, Lab 6
Pull-up / Pull-down Resistor Resistor that sets default state of input pin. Pull-up: connects to VCC (default HIGH). Pull-down: connects to GND (default LOW). See: Lab 1, Reference/02-digital-io/gpio-basics.md
PWM (Pulse Width Modulation) Digital technique to simulate analog output by rapidly switching between HIGH and LOW. Duty cycle controls average power. See: Lab 2, Reference/02-digital-io/pwm.md
Q
Quantization Converting continuous values to discrete steps. ADC quantizes voltage into digital levels. Causes quantization error. See: Lab 3, Theory 3
R
Race Condition Bug where behavior depends on timing of events. Common when interrupts and main code access same variables. See: Lab 6, Theory 6
Real-time System with timing constraints. Hard real-time: missing deadline = failure. Soft real-time: missing deadline = degraded performance. See: Theory 1, Theory 6
REPL (Read-Eval-Print Loop) Interactive prompt where you type commands and see results immediately. MicroPython provides REPL over USB serial. See: Reference/01-getting-started/
Round-robin (Superloop) Simplest embedded architecture. Main loop runs tasks sequentially, repeating forever. No priorities or preemption. See: Theory 6
RTOS (Real-Time Operating System) OS designed for timing guarantees. Manages tasks, priorities, and scheduling. Examples: FreeRTOS, Zephyr. See: Theory 1, Theory 6
S
Sampling Rate How often a signal is measured. Must be at least 2× the highest frequency in signal (Nyquist theorem). See: Lab 3, Theory 3
Scheduler RTOS component that decides which task runs next based on priorities and timing. See: Theory 1 (RTOS concepts)
Semaphore RTOS synchronization primitive. Used for signaling between tasks or limiting access to resources. See: Theory 1 (RTOS concepts)
SPI (Serial Peripheral Interface) High-speed serial protocol using 4 wires: MOSI, MISO, SCK, CS. Faster than I2C but uses more pins. See: ES102 (not covered in ES101)
State Machine See FSM.
Superloop See Round-robin.
Systematic Error Consistent, repeatable error in measurements. Can be corrected by calibration. Example: sensor always reads 2cm high. See: Lab 3, Theory 3
T
Task In RTOS: independent unit of execution with own stack and priority. "Thinks" it owns the CPU. See: Theory 1 (RTOS concepts)
Throughput Rate of processing events or data. Measured in events/second, bytes/second, etc. See: Theory 1
Timer Hardware peripheral that counts clock cycles. Used for PWM, measuring time, triggering events. See: Lab 2, Theory 2
U
UART (Universal Asynchronous Receiver-Transmitter) Serial communication protocol using TX and RX lines. Common for debugging and device communication. See: ES102 (briefly in ES101 for USB serial)
Uncertainty Range of possible values for a measurement. Expressed as ± value or confidence interval. Different from error. See: Lab 3, Theory 3
V
Validation Confirming that a system meets its requirements through systematic testing. Different from "it works once." See: Lab 7, Theory 7
VCC Positive supply voltage. The Pico runs on 3.3V internally (5V USB input is regulated down). See: Throughout course
Volatile (In C) Keyword indicating variable may change unexpectedly (e.g., by interrupt). Prevents compiler optimization. MicroPython handles this automatically. See: Reference/06-software/interrupts.md
W
Watchdog Hardware timer that resets system if not periodically "fed" by software. Recovers from software hangs. See: ES102 (mentioned in Theory 1)
Numbers & Symbols
3.3V Logic Digital signals where HIGH ≈ 3.3V and LOW ≈ 0V. Used by Pico and most modern MCUs. Not compatible with 5V logic without level shifting.
12-bit ADC ADC with 4096 discrete levels (2^12). The Pico 2 W has 12-bit ADC but MicroPython exposes as 16-bit (0-65535).
Quick Reference by Lab
| Lab | Key Terms |
|---|---|
| Lab 1 | GPIO, bounce, debouncing, timing, jitter, blocking |
| Lab 2 | PWM, duty cycle, period, frequency, ADC |
| Lab 3 | Calibration, uncertainty, systematic error, noise, sampling |
| Lab 4 | I2C, OLED, sensor fusion, optocoupler |
| Lab 5 | H-bridge, dead zone, Kp, closed-loop, open-loop |
| Lab 6 | FSM, interrupt, ISR, polling, non-blocking, race condition |
| Lab 7 | Validation, integration, timing budget |
See Also
- [[Reference/extras/embedded-thinking-cheatsheet|Embedded Thinking Cheatsheet]]
- [[Reference/extras/mental-models-map|Mental Models Map]]