Skip to content

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]]