Networking

Electronics Concepts
Quick Reference

A practical, opinionated reference for engineering co-op students getting started with microcontrollers, embedded hardware, and bench electronics. 134+ terms covering the concepts you will actually meet on a real project: voltage, current, I²C, PWM, MOSFET, decoupling, and the rest of the vocabulary your colleagues use without explaining. Companion to the Hardware Quick Reference — same search engine, same look, cross-linked.

/
134
Glossary terms
23
Letter sections
5
Learning path
6
Quick tables

1. How to use this document

You will not read this end-to-end. Use it like a dictionary with a learning path on top.

  1. Day 1 of your co-op: skim sections 2–4 (Prerequisites, Suggested Path, the Practical 20 list at the end of section 5). That alone puts you ahead of most interns.
  2. When you hit an unfamiliar term in code or a meeting: Cmd-F the term in section 5. Each entry is self-contained.
  3. When you want depth on a topic: follow the 📚 links at the bottom of the section. Those are the canonical, freely available resources — not random blog posts.
  4. When you're about to wire a part on your bench: jump to the sister Hardware Quick Reference (link in the navbar) and look up the exact part — it cross-links back to the concepts here.

2. Prerequisites

You don't need an EE degree, but the following mental model is assumed throughout this document. If you don't have it, the Practical 20 in section 4 will catch you up over a week.

Math (intuition, not proofs):

  • Algebra: solve for an unknown. Why: every circuit calculation is solving V = IR for one of the three.
  • Trig: sine, cosine, frequency, phase. Why: AC analysis, audio, filters, control loops.
  • Logarithms. Why: decibels, RC time constants, RC filter cutoff math.

Programming (one of these is enough):

  • Python — the default for MicroPython on the Pico and ESP32-S3. You should be comfortable with classes, decorators, async, and type hints.
  • C / C++ — for ESP-IDF, Arduino, or any low-level work. Pointers, structs, volatile, static, bit manipulation.
  • Shellcd, ls, grep, |, >, python -m venv, esptool.py.

Tools to install (do this on day 1):

# Thonny (the friendliest MicroPython IDE — recommended for first month)
sudo apt install thonny   # or download from thonny.org

# mpremote — the official MicroPython command-line tool
pip install mpremote

# esptool — for flashing ESP32 / ESP32-S3 boards over USB
pip install esptool

# Arduino IDE 2.x — for Arduino C/C++ projects
# Download from arduino.cc

3. Suggested learning path (5 steps)

Do these in order. Each step is a few evenings of work, not a course.

Step 1 — Build a “Hello World” on every board you own

Blink an LED on the Raspberry Pi Pico W in MicroPython, then on the ESP32-S3-DevKitC-1 in Arduino. The goal isn’t the LED — it’s that you can edit a file, save it, and see the result on hardware twice. The two toolchains are different enough that doing both first will save you hours later. 📚 Pico MicroPython: docs.micropython.org

Step 2 — Read a sensor, print a value

Wire the KY-018 LDR to an ADC pin (a voltage divider with a 10 kΩ resistor). Print the value to the REPL. Then the KY-013 thermistor. Then the MPU-6050 IMU over I²C. The goal: build the mental loop electrons → ADC/I²C bytes → Python number → print. This is the same loop for every sensor you’ll ever use.

Step 3 — Drive an output that isn’t an LED

Drive a SG90 servo with PWM (need a 5 V supply, not the 3.3 V rail). Then a TB6612FNG + N20 gearmotor with PWM + direction. Then an SSD1306 OLED over I²C. The goal: the inverse of step 2 — Python number → PWM/I²C bytes → motion/pixels. By the end of this step you have a complete input → process → output robot on a breadboard.

Step 4 — Talk to a computer

Add UART serial debugging to every project (every ESP32-S3 has USB-serial built in). Then Wi-Fi on the ESP32-S3 — connect to your router, serve a web page that displays the sensor reading. Then MQTT to publish to a broker. The goal: your project is no longer a black box; you can see it from your laptop or phone.

Step 5 — Build a real thing and put it in a box

Take any project from steps 1–4 and make it survive a week on a shelf: OTA updates (so you don’t have to unplug it to reflash), deep sleep (so a battery lasts), 3D-printed enclosure, screw terminals instead of Dupont. The goal: learn the difference between a prototype and a product. This is the difference between a co-op and a junior engineer.

Optional but recommended: the FastLED / NeoPixel guide for the WS2812B strip; the Modern Robotics course if you go into motion. Both linked in section 7.

4. The Practical 20 — read these first

Letter

A

7 terms

ADC (Analog-to-Digital Converter)

#
A peripheral that samples a continuous analog voltage and produces a discrete digital number. ESP32-S3 has two 12-bit SAR ADCs (ADC1, ADC2) with ~3.3 V full scale; the Raspberry Pi Pico W has a 12-bit ADC. Practical: 12-bit means 0–4095 counts, so a 3.3 V rail gives ~0.8 mV per count — fine for potentiometers and thermistors, not fine for shunt resistors. Watch for: ADC2 is unusable while Wi-Fi is active on the ESP32 (the radio borrows its pins). Use ADC1 (GPIO1–GPIO10) when Wi-Fi is up. See also: ADC (Analog-to-Digital Converter), Voltage Divider, I²C (Inter-Integrated Circuit).

Address (I²C / SPI)

#
A numeric identifier for a device on a shared bus. I²C uses 7-bit addresses (0x00–0x7F) wired by the manufacturer (with 2–3 address pins on most chips to allow variants). SPI uses a separate Chip Select (CS) line per device — no address collision possible, but you trade a GPIO per device. Practical: Run i2c.scan() in MicroPython on every new bus; you'll discover 50% of the time a module's address is 0x76 not 0x77, or 0x3C not 0x3D. Don't trust the listing photo — read the chip on the actual board.

Ampere (A) / Current (I)

#
The rate of flow of electric charge. 1 A = 1 C/s. The thing that actually does work in a circuit (and the thing that kills components when it goes wrong). Practical: Three current limits you meet every week: (1) GPIO source/sink — ESP32 ~40 mA max per pin, Pico ~20 mA; (2) rail current — a 3.3 V LDO might only supply 500 mA total; (3) battery — a 18650 is 2.5–10 A depending on chemistry. When in doubt, measure with a multimeter in series. See also: Ohm's Law, Fuse / PTC Resettable, USB (Universal Serial Bus).

Amplifier (Op-Amp / Class-D)

#
A circuit that increases the power of a signal. Op-amps (LM358, MCP6002) take a small analog signal and produce a larger one — used for sensor conditioning, active filters, and current sensing. Class-D amplifiers (MAX98357A, TPA2016) take a digital I²S audio stream and drive a speaker. Practical: If you need sound out of an ESP32-S3, do not use an op-amp on the DAC — the DAC is too weak and noisy. Use a Class-D amp that takes I²S directly (the MAX98357A in your kit). The op-amp is for sensors; the Class-D is for speakers.

Anode / Cathode

#
The two terminals of a diode or polarized component. Anode = positive side (current flows in on a forward-biased diode). Cathode = negative side (marked by a stripe on the package). Practical: For a through-hole LED, the anode is the longer lead and the cathode is the shorter lead (and the flat side of the epoxy flange). For an electrolytic capacitor, the cathode stripe is marked with a . Reverse either and at best it doesn't work; at worst it pops, vents, or bursts. Always check the stripe before applying power.

Arduino

#
A family of microcontroller boards (Uno, Nano, Mega, etc.) and the IDE/framework that popularized them. The framework is C++ with two functions: setup() runs once, loop() runs forever. Practical: In 2026 you have three serious choices for an MCU project: Arduino (best library ecosystem, easiest for beginners), ESP-IDF (Espressif's official, more powerful, steeper curve), MicroPython (fastest iteration, weakest on hard real-time). Pick the one that matches the deadline. Don't learn all three at once.

Asynchronous vs Synchronous

#
Synchronous = both sides share a clock signal (SPI, I²C, UART with hardware flow). Asynchronous = no shared clock; both sides agree on a baud rate in advance (UART without flow control, USB serial). Practical: SPI is faster (~10–80 MHz) because of the shared clock. UART is simpler (just TX/RX, two wires) and is the default for debug serial, GPS modules, the DFPlayer in your kit. If timing matters (high-speed sensors, displays), use synchronous. If you just need to log strings, UART is fine.
Letter

B

14 terms

Battery (18650 / Li-ion / LiPo)

#
Rechargeable chemistries you'll see in microcontroller projects. 18650 = cylindrical Li-ion, 3.0–4.2 V, 2500–3500 mAh, 2.5–10 A continuous. LiPo = pouch, similar voltage, more flexible shape, more fragile (puncture = fire). Practical: Three rules: (1) never charge below 0 °C or above 45 °C; (2) never discharge below 3.0 V (use a protection circuit — every 18650 holder in your kit should have one); (3) never short the terminals. The MT3608 boost modules in your kit expect a single 18650 input; pair with a TP4056 charge board for a complete battery system. See also: Boost Converter, Buck Converter.

Baud Rate

#
Symbols per second on a serial line. For UART with 8N1 (8 data bits, no parity, 1 stop bit), baud ≈ bits per second. Common values: 9600 (DFPlayer default), 115200 (default debug serial on most MCUs), 921600 (ESP32 max stable). Practical: Both sides must match. If you see mojibake (garbled text) in the serial monitor, baud is wrong. Rule: start at 115200 for debug logs, drop to 9600 only for slow peripherals.

Bias Resistor (Transistor Base / Gate)

#
A resistor that sets the current/voltage on the control pin of a transistor. For a BJT, the base resistor limits base current. For a MOSFET, the gate resistor limits inrush and damps ringing (often paired with a 100 kΩ pull-down to keep the gate low at boot). Practical: If you drive a logic-level MOSFET directly from an MCU GPIO at 3.3 V and it works for you but not your friend, the threshold voltage (Vgs(th)) is borderline. Use a logic-level MOSFET (Vgs(th) < 2 V) — the IRLZ44N, not the IRF540N.

Bit / Byte / Nibble

#
A bit is one binary digit (0 or 1). A nibble is 4 bits. A byte is 8 bits. Practical: Three numbers worth memorizing: 1024 bytes = 1 KB (or 1 KiB in IEC), 1 Mbit = 125 KB (don't confuse megabit with megabyte when reading flash sizes), 8 bits = 1 byte. When someone says the Pico W has 264 KB SRAM, that's bytes; when they say Wi-Fi is 150 Mbit, that's bits — divide by 8 to get ~19 MB/s.

Bleed Resistor

#
A high-value resistor (typically 10 kΩ–1 MΩ) placed across a capacitor to discharge it when the circuit is powered off. Practical: You see these on the high-voltage side of almost every boost converter, including the MT3608 in your kit. Without it, the output cap stays charged for minutes after you pull the plug — enough to give you a tingle (12 V is fine, but 24 V is not) or to confuse the next power-up sequence. Also called a discharge resistor.

Bluetooth (BLE / Classic)

#
A 2.4 GHz short-range radio. BLE (Bluetooth Low Energy, 4.0+) is the modern one: low power (~mA), small data rates, perfect for sensors and beacons. Classic Bluetooth (the one that did A2DP audio) is older, higher power, and rarely used in new designs. The ESP32-S3 supports both. Practical: For your projects, almost always BLE. The killer pattern: a phone app (nRF Connect, LightBlue) reads a sensor over BLE — no firmware app needed.

BNC / SMA / USB-C / Barrel Jack

#
Connector types you'll see on hardware. USB-C is the modern default for power + data on dev boards. Barrel jack (2.1 × 5.5 mm) is the default for wall-wart power supplies. JST-PH 2.0 mm is the default for LiPo batteries. JST-XH 2.5 mm is the default for balance leads. Practical: Buy the connectors in kits (you have a 230-piece JST-PH kit). Don't try to crimp one-off connectors with a vise — get the proper crimper ($25) and you'll save an hour per cable.

Bode Plot

#
A graph of a system's gain and phase vs. frequency. The single most useful plot for understanding any analog filter, control loop, or amplifier. Practical: For a low-pass RC filter with R = 10 kΩ and C = 100 nF, the −3 dB point is at f = 1/(2π·RC) = 159 Hz. That's your cutoff. See also: Low-Pass Filter (LPF), Cutoff Frequency (fc).

Boot Mode / Boot Button

#
A physical button on most dev boards that puts the MCU into download/flash mode. On the ESP32-S3-DevKitC-1: hold BOOT, press RESET, release BOOT — the board is now in ROM bootloader mode and esptool.py can flash it even if the previous firmware is broken. Practical: This is the #1 thing you'll do when a flash fails. Most boards flash automatically without it, but a bricked board needs the manual sequence. See also: esptool.py, Flash Memory.

Boost Converter

#
A switching power supply that produces an output voltage higher than the input. The MT3608 in your kit is a boost: 2–24 V in, up to 28 V out at 2 A. Practical: Boosts are noisier than linears (switching ripple at ~1.2 MHz for the MT3608) and need a healthy input cap to avoid instability. They are 80–95% efficient vs. ~50% for a linear regulator at large step-ups. Use when: you need 12 V from a 3.7 V LiPo, or 5 V from a 1.5 V AA pair. See also: Buck Converter, Buck-Boost Converter, MT3608 Step-Up Boost Module.

Brownout

#
A reset (or undefined behavior) triggered when the supply voltage drops below the MCU's brownout threshold. The ESP32-S3 brownout detector defaults to ~3.0 V; the Pico W to ~1.8 V. Practical: Symptom: your board reboots when a motor starts, or when Wi-Fi TX spikes current. Fix: bigger bulk cap on 3.3 V rail (≥ 100 µF), or a separate regulator for the noisy load. See also: Capacitor (Decoupling / Bypass), Voltage Regulator.

Buck Converter

#
A switching power supply that produces an output voltage lower than the input. The Mini360 in your kit is a buck: 4.75–23 V in, down to 1–17 V at ~1.8 A. Practical: Same noise caveats as boost (the Mini360 is 340 kHz). For an ESP32 from a 12 V supply, the buck beats the linear because of efficiency (~90% vs. ~50%), but a linear (AMS1117-3.3) is fine if you don't care about the heat and want cleaner output. See also: Boost Converter, LDO (Low-Dropout Regulator), Mini360 DC-DC Buck Module (MP2307).

Buck-Boost Converter

#
A switching supply that can step up or down. The XL6009 in your kit: 3.8–30 V in, 1.25–35 V out at 4 A. Practical: Use when your input voltage range straddles the output. Classic case: a 3.7 V LiPo powering a 5 V load — when the battery is full it's 4.2 V (needs buck); when it's half-discharged it's 3.5 V (needs boost). The XL6009 handles both seamlessly. Cost: more expensive, slightly noisier, larger.

Bus

#
A shared set of wires that multiple devices connect to. I²C = 2-wire bus (SDA, SCL). SPI = 4+ wire bus (MOSI, MISO, SCK, CS per device). CAN = 2-wire differential bus (used in cars). USB = 4-wire bus (VBUS, D+, D−, GND). Practical: On a bus, only one device talks at a time. The protocol (I²C, SPI, USB) handles arbitration. If two devices try to drive the same line at the same time, you get garbled data or damage — this is the #1 wiring bug on beginner projects. See also: I²C (Inter-Integrated Circuit), SPI (Serial Peripheral Interface), UART (Universal Asynchronous Receiver/Transmitter).
Letter

C

12 terms

Capacitor (Decoupling / Bypass)

#
A small (100 nF typical) ceramic capacitor placed between an IC's VCC and GND pins, as close to the IC as physically possible. Practical: Every VCC pin on every IC needs one. Not optional. The IC's internal logic creates current spikes on every clock edge; the cap is a local reservoir to absorb them. Without it, the rail droops and you get glitches. Add a 10 µF bulk cap too for low-frequency load steps. See also: Brownout, Capacitor (Ceramic).

Capacitor (Electrolytic)

#
A polarized capacitor with high capacitance (1 µF–10 000 µF) for bulk energy storage. The kits you own include 10/16/25/35/50/400/450 V assortments. Practical: The stripe is the negative lead. The longer lead is the positive. Reverse them and the cap vents (usually with a pop and a smell, rarely fire). Match the voltage rating to the rail with margin: a 10 V cap on a 5 V rail is fine; a 10 V cap on a 12 V rail will fail. See also: Capacitor (Ceramic), Capacitor (Decoupling / Bypass).

Capacitor (Ceramic)

#
A non-polarized capacitor with low capacitance (1 pF–10 µF typical) for high-frequency bypass and filtering. Practical: Two traps: (1) Class-2 ceramics (X7R, Y5V) lose 50–80% of their nominal capacitance at their rated DC bias — a 10 µF X7R 6.3 V is really ~3 µF at 5 V. Use X5R or X7R with double the voltage you need. (2) For values < 1 nF, NP0/C0G dielectric is more stable. See also: Capacitor (Decoupling / Bypass), Capacitor (Electrolytic).

Chip Select (CS) / Slave Select (SS)

#
The SPI line that tells a specific device “you are being talked to now.” Active low by convention (often labeled CS̅ or SS̅). Practical: Each SPI device gets its own GPIO for CS. The MAX31855 thermocouple board, the ST7789 TFT, and the SD card on your future breakout each need a unique CS. Tie unused CS lines high (3.3 V) so they ignore bus traffic. See also: SPI (Serial Peripheral Interface), Bus.

Clock Stretching

#
An I²C feature where a slow slave device holds SCL low to pause the master while it prepares data. Practical: The ESP-IDF and most Arduino cores support it; some older libraries don't, which causes weird timeouts with sensors like the BME280. If your I²C read returns 0 or hangs, check that clock stretching is enabled (usually default-on).

CMOS vs TTL Logic Levels

#
Two families of digital logic. TTL (5 V, 74-series): HIGH = 2.0 V min, LOW = 0.8 V max. CMOS (3.3 V, 74HC/74HCT): HIGH = 2.4 V min (HC) or 2.0 V (HCT), LOW = 0.4 V (HC) or 0.8 V (HCT). Practical: The 74HCT125 in your planned BOM is the chip you use to translate 3.3 V to 5 V safely (HCT inputs are TTL-compatible with 3.3 V drivers; outputs are 5 V CMOS). Use it for the WS2812B DIN line if you find the 3.3 V signal marginal.

Common-Mode Voltage

#
The average voltage of two signal lines relative to ground. On a differential pair (RS-485, CAN, USB), the signal is the difference; the common-mode is the offset. Practical: Op-amps and ADCs have a common-mode input range. If your signal is 0–5 V and your op-amp is on 3.3 V, you need a rail-to-rail input op-amp, or you need to bias the signal up. Check the datasheet's Vcm spec.

Controller Area Network (CAN)

#
A 2-wire differential bus designed for noisy automotive environments. Used in cars (every ECU since ~2008), e-bikes, drones (some), and industrial robots. Practical: Out of scope for the boards in your current kit, but if you go into robotics, you'll meet CAN. The ESP32-S3 has no native CAN; you need an external MCP2515 + TJA1050 transceiver pair. Most modern cars have a CAN bus accessible on the OBD-II port.

Coulomb (C) / Charge (Q)

#
The SI unit of electric charge. 1 C = the charge of ~6.24 × 10¹⁸ electrons. 1 A·h = 3600 C. Practical: Battery capacity is in mAh: 2500 mAh = 2.5 A for 1 hour, or 250 mA for 10 hours. Useful rule: a 2500 mAh 18650 at 250 mA load lasts 10 h; the same battery at 2.5 A load lasts ~45 min (less, because Peukert). See also: Ampere (A) / Current (I), Battery (18650 / Li-ion / LiPo).

Crystal / Oscillator

#
A precise timing reference. Most MCUs have an internal oscillator (±1% accuracy, fine for UART) but use an external crystal (±20 ppm, required for USB, CAN, Ethernet) for protocols that need tight timing. The ESP32-S3 has a 40 MHz crystal; the Pico W has a 12 MHz crystal that the PLL multiplies to 133 MHz. Practical: Don't replace the crystal on a dev board. If your board has no crystal, the MCU is running on its internal RC and may drift.

Current Sink vs Source

#
A pin can source current (drive out) or sink current (absorb to ground). For an LED on a GPIO, sinking is usually safer — connect the LED's anode to 3.3 V through a resistor, and drive the cathode from the GPIO. When the GPIO is LOW, current flows. Practical: The ESP32 GPIO can source ~40 mA but only sink ~28 mA in practice. Sinking (active-low) is the convention for LEDs and relay modules in the 37-in-1 kit.

Cutoff Frequency (fc)

#
The frequency at which a filter's gain is −3 dB (about 70.7% of the passband gain). For a first-order RC low-pass, fc = 1 / (2π·R·C). Practical: Want to filter PWM into a smooth analog voltage? Set fc ~10× lower than the PWM frequency. Want to filter 50 Hz mains hum? Use fc ≈ 10 Hz (RC: 10 kΩ + 1.5 µF). See also: Bode Plot, Low-Pass Filter (LPF), PWM (Pulse-Width Modulation).
Letter

D

11 terms

Darlington Pair

#
Two BJTs wired so the emitter of one drives the base of the other. Multiplies the current gain (β). Practical: The TIP120 and ULN2003 in the 37-in-1 sensor world are Darlington-based. They let a 3.3 V GPIO switch a 500 mA load (relay coil, small motor) without needing a discrete driver. The trade-off: Vce(sat) is ~1.4 V, so you lose some voltage across the switch.

Datasheet

#
The PDF that tells you everything about a chip: pinout, electrical limits, timing diagrams, recommended circuits. The single most important document in hardware. Practical: Three numbers you always look up: (1) absolute maximum VCC (don't exceed — usually 3.6 V or 5.5 V); (2) recommended operating conditions (what you should design to); (3) pinout diagram (because the silk-screen on the board lies more often than the datasheet). Bookmark the Alldatasheet / LCSC / manufacturer PDFs for every chip in your kit.

DC vs AC

#
DC = direct current, constant direction and (usually) constant magnitude. AC = alternating current, periodic reversal. Mains is AC (50/60 Hz). PWM is technically neither; it's a DC square wave at variable duty cycle. Practical: For DC measurements, the multimeter is in DC mode (V DC, A DC). For mains, AC mode. For PWM as a control signal, treat it as a digital signal — measure with a scope, not a multimeter (the multimeter will average it and lie). See also: PWM (Pulse-Width Modulation), RMS (Root Mean Square).

Dead Band / Dead Zone

#
A range of input values around a setpoint where the controller produces no output. Almost always present in physical systems: a servo won't move until the PWM pulse is > ~1 ms; a heater won't heat below a certain duty cycle. Practical: When you tune a PID and the actuator jitters at the setpoint, add a dead band. Software-side: if abs(error) < 5: output = 0. Mechanical-side: use a spring-preloaded linkage to take up the slack.

Debouncing

#
Cleaning up the noisy signal from a mechanical switch or button. A pushbutton doesn't transition cleanly from HIGH to LOW; it bounces for 1–10 ms. Practical: Three ways, in order of effort: (1) software debounce in code (read, wait 20 ms, read again) — 95% of cases; (2) RC + Schmitt trigger (10 kΩ + 100 nF + 74HC14) — hardware; (3) flip-flop debouncer (74LS74) — when you have a billion buttons. The KY-004 button in your kit will need software debounce for sure.

Decibel (dB)

#
A logarithmic ratio. 3 dB ≈ 2× power, 10 dB ≈ 10× power, 20 dB ≈ 10× voltage. Practical: Three dB's you'll meet: dBm (power relative to 1 mW) for RF link budgets; dBV (voltage relative to 1 V) for audio; dB SPL (sound pressure relative to 20 µPa) for microphones. The INMP441 I²S mic in your kit outputs 24-bit PCM samples — those are dB FS (full scale). 0 dB FS is clipping; −6 dB FS is “loud but not clipping”.

Decoupling Capacitor

#
A small (typically 100 nF) ceramic cap placed right at each IC's VCC pin. See Capacitor (Decoupling). Practical: The single most common layout mistake on perfboard is forgetting these. If your circuit does weird things at certain temperatures or when you touch it, you forgot a decoupling cap. See also: Capacitor (Decoupling / Bypass), Capacitor (Ceramic).

Diode

#
A component that conducts current in one direction only. The classic 1N4148 (signal) and 1N5819 (Schottky) are workhorses. Practical: Four uses: (1) flyback across a relay coil or motor — without it, the inductive spike kills your driver; (2) reverse polarity protection — a Schottky from GND to VIN protects the rest of the circuit if you wire it backwards; (3) rectifier in AC-DC supplies; (4) logic-level shifting with diode-and-resistor trick. The stripe is the cathode.

Differential Signaling

#
Sending a signal as the difference between two wires, not relative to ground. Examples: RS-485, CAN, USB, Ethernet, HDMI, LVDS. Practical: The point: common-mode noise (interference that adds to both wires equally) is rejected by the receiver. Why USB works at 480 Mbit/s over 5 m and a single-ended UART falls over at 115 kbit/s over 2 m. Not something you'll design at the board level until you graduate to industrial / automotive, but you need to know the term.

DMA (Direct Memory Access)

#
A peripheral that copies data between memory and a hardware block (UART, SPI, I²S, ADC) without CPU involvement. Practical: For audio (I²S mic → buffer → process), DMA is the difference between “works” and “skips every other sample.” On the ESP32-S3, the I²S driver uses DMA by default; just don't allocate the buffer on the stack. On the Pico W, set up a DMA channel explicitly when streaming audio.

Duty Cycle

#
The fraction of time a PWM signal is HIGH, expressed as a percentage. 50% duty = half-power to a motor (approximately). Practical: For an LED, perceived brightness is roughly logarithmic in duty cycle — going from 0% to 10% looks like a big jump; 90% to 100% looks like nothing. Use gamma correction in code: brightness = pow(duty, 2.2). See also: PWM (Pulse-Width Modulation), Frequency (Hz), RC Filter.
Letter

E

7 terms

EEPROM

#
Non-volatile byte-addressable memory on the MCU (or external chip). The ESP32-S3 has no internal EEPROM but emulates it with a 4 KB NVS partition in flash. The AT24C256 is a 32 KB external I²C EEPROM. Practical: Used for: storing settings that survive reboot, calibration constants, last-known-state. Don't use for anything that changes often — flash has ~10 k–100 k write cycles, EEPROM has ~1 M. The ESP-IDF NVS layer handles wear-leveling for you; bare flash writes do not.

EMI (Electromagnetic Interference)

#
Unwanted electrical noise radiated or conducted by your circuit. Switching regulators are the worst offenders (the MT3608's 1.2 MHz edge has harmonics into the AM radio band). Practical: Three fixes: (1) keep loops small in the switching path; (2) add a ferrite bead on the input/output of the switcher; (3) shield with a ground plane. If your project is misbehaving near a motor or relay, EMI is a likely cause. See also: Capacitor (Decoupling / Bypass), Ferrite Bead.

ESD (Electrostatic Discharge)

#
A sudden high-voltage spike (thousands of volts) caused by static electricity. Zaps chips through GPIO pins. Practical: Use an ESD strap when handling bare ICs. Touch a grounded metal object before picking up an ESP32. The dev boards have some ESD protection on the USB pins (TVS diodes) but not on every GPIO. See also: Zener Diode, Ground Loop.

ESP-IDF (Espressif IoT Development Framework)

#
Espressif's official C/C++ framework for the ESP32 family. More powerful than Arduino, more painful to set up. Practical: Use it when you need: multi-core work, low-level peripheral control (PIO, RMT, I²S DMA), production OTA + secure boot, or latest features (BLE Mesh, Thread, Matter). Don't use it for: blinking an LED — Arduino is fine. The ESP32-S3's PIO peripheral (the part that drives WS2812B precisely) is much easier in IDF than in Arduino.

ESP32 / ESP32-S3 / ESP32-C3

#
Espressif's family of dual-core 32-bit microcontrollers with built-in Wi-Fi and Bluetooth. The ESP32-S3 (your dev board) adds: a vector instruction set for AI/ML, USB OTG, a camera interface (DVP), 8 MB PSRAM on N16R8 variants, and the PIO peripheral. The ESP32-C3 is a smaller, single-core RISC-V variant. Practical: For new projects in 2026, default to the S3 unless cost or power matters more than peripherals.

esptool.py

#
The Python command-line tool that flashes ESP32 firmware over the USB-serial bridge. Used by both Arduino and ESP-IDF. Practical: Three commands you'll type: esptool.py chip_id (does the USB connection work?), esptool.py erase_flash (clean slate), esptool.py write_flash 0x0 firmware.bin (flash). When flashing fails, the first thing to check is whether the board is in download mode (BOOT held during reset).

Ethernet

#
A wired networking standard. 10/100 Mbit (Fast Ethernet) is built into some MCUs (the Pico doesn't have it; the ESP32-S3 doesn't either; you need an external W5500 SPI Ethernet chip). Practical: Use Ethernet instead of Wi-Fi when: you need deterministic latency (industrial control, audio), you have EMI problems (factory floor), or you need reliable long-term connectivity (security systems). The W5500 adds ~$5 to a BOM and gives you a TCP/IP stack with no MCU overhead.
Letter

F

7 terms

Farad (F) / Capacitance (C)

#
The unit of capacitance. 1 F is huge; you work in µF (10⁻⁶), nF (10⁻⁹), and pF (10⁻¹²). Practical: Quick reference: 100 nF = decoupling cap for an IC. 10 µF = bulk cap for a rail. 100 µF = reservoir for a motor. 1000 µF = main filter cap on a power supply. The cap size tells you the story: small = high-frequency noise, big = low-frequency energy storage.

Ferrite Bead

#
A small passive component that passes DC but attenuates high-frequency noise. Looks like a tiny cylinder or chip. Practical: Put one on the power input of a noise-sensitive analog circuit (e.g. an ADC reference), in series with the supply. Common values: 100 Ω @ 100 MHz, 600 Ω @ 100 MHz. See also: Capacitor (Decoupling / Bypass), EMI (Electromagnetic Interference).

Flash Memory

#
Non-volatile storage on the MCU. The ESP32-S3 has 16 MB (N16R8); the Pico W has 2 MB. Practical: Used for: firmware storage, filesystem (LittleFS / SPIFFS), OTA update staging. Don't use for high-write-rate data logging — use an SD card. Wear-leveling: the default NVS layer does it; bare flash writes do not, and you'll brick the chip in a week of constant logging.

Flip-Flop

#
A 1-bit memory element. D flip-flop (74LS74): on a clock edge, capture the D input to Q. JK flip-flop (74LS76): same plus toggle. Practical: Two uses you'll meet: (1) button debouncer — a D flip-flop with the input as the data and a debounced clock; (2) frequency divider — chain D flip-flops, each divides by 2, so 4 in a row divide by 16. Almost always inside a bigger IC; rarely a discrete part on a modern board.

FPGA

#
Field-Programmable Gate Array. A chip you can configure as any digital circuit, at the hardware level (not sequential CPU instructions). Practical: Out of scope for an MCU co-op, but if you keep going you'll meet them. The Lattice ECP5 and Xilinx Artix-7 are the hobbyist-friendly families. FPGAs are how you build a 100 MHz signal generator or a 1 Gbit Ethernet MAC without an ASIC.

Frequency (Hz)

#
Cycles per second. kHz = 10³, MHz = 10⁶, GHz = 10⁹. Practical: Three numbers worth memorizing: mains = 50/60 Hz; PWM for a motor = 20–25 kHz (above human hearing, so no whine); CPU clock = 240 MHz (ESP32-S3) or 133 MHz (Pico W). The frequency of a clock signal determines timing precision: a 1 Hz drift in a 240 MHz oscillator is 4.2 ppm — about the same as a watch crystal.

Fuse / PTC Resettable

#
A component that breaks the circuit when current exceeds a threshold. One-shot fuses (glass, blade) need replacement after they blow. PTC resettable (polyfuse) increases resistance when hot and self-resets when cool. Practical: Always have a fuse on the input of any powered circuit. A 500 mA polyfuse ($0.10) on the 5 V input of your project will save the MCU the first time you wire it wrong.
Letter

G

3 terms

GND (Ground) / 0 V

#
The reference voltage of your circuit. Every signal is measured relative to it. Practical: “Ground” is not a single point in a real circuit — there are multiple grounds: analog ground (AGND), digital ground (DGND), power ground (PGND), chassis ground, earth ground. For a single-PCB beginner project, tie them all together at one point (star ground). For an audio + motor project, separate the analog and digital grounds until they meet at the power supply. See also: Star Ground, Ground Loop.

GPIO (General-Purpose Input/Output)

#
A pin on the MCU that software can read (input) or drive HIGH/LOW (output). The ESP32-S3 has ~40 GPIO. The Pico W has 26. Practical: Three traps: (1) boot straps — GPIO0, GPIO3, GPIO45, GPIO46 on the S3 are used at boot; don't connect sensors to them; (2) input-only pins — GPIO26–GPIO46 on the S3 are input-only; (3) 5 V tolerance — none of the S3's GPIO are 5 V tolerant; use a level shifter if you must interface with 5 V.

Ground Loop

#
A situation where two devices share a ground connection at two different points, and the wire between them picks up noise that gets injected into your signal. Practical: Symptom: hum in audio, jitter in ADC readings, sensor readings that change when the motor turns on. Fix: single-point ground, or use differential signaling between the two devices. See also: GND (Ground) / 0 V, Star Ground.
Letter

H

3 terms

Hall Sensor

#
A magnetic-field detector. Outputs a digital pulse (or analog voltage proportional to field strength) when a magnet is near. The A3144 in your planned BOM is a digital omnipolar Hall switch. Practical: Use for: rotation counting (mount a magnet on a wheel, count pulses), door open/close (magnet on the door, sensor on the frame), BLDC motor commutation (in sensored BLDC drivers). The 3144 needs a pull-up on its open-drain output.

Hardware Abstraction Layer (HAL)

#
A library that hides the chip-specific details of a peripheral. ESP-IDF's driver/ is a HAL. STM32CubeMX generates one. Practical: The HAL is the right level for most code: high enough to be portable, low enough to be efficient. Going below the HAL (direct register writes) is occasionally necessary (PIO for WS2812B) but should be your last resort.

Hexadecimal (Hex / 0x)

#
Base-16. One hex digit = 4 bits. 0xFF = 255 = 1111 1111. Practical: Three reasons hex is everywhere in hardware: (1) datasheets list register values in hex; (2) I²C addresses are usually given in hex (0x68, 0x76); (3) one hex digit = one nibble, so 0xA5F2 is much easier to read than 1010010111110010. Memorize: 0x0–0xF, 0x10 = 16, 0x80 = 128, 0xFF = 255.
Letter

I

5 terms

I²C (Inter-Integrated Circuit)

#
A 2-wire synchronous bus invented by Philips in 1982 for connecting ICs on the same board. Wires: SDA (data) and SCL (clock). Speeds: 100 kHz (standard), 400 kHz (fast), 1 MHz (fast-plus), 3.4 MHz (high-speed). Practical: Pull-up resistors (typically 4.7 kΩ) on both lines to 3.3 V are required — most breakout boards include them, some don't. Multiple devices share the bus; each has a 7-bit address. See also: Address (I²C / SPI), I²S (Inter-IC Sound), SPI (Serial Peripheral Interface).

I²S (Inter-IC Sound)

#
A 3-wire synchronous bus for digital audio. Wires: BCLK (bit clock), WS (word select, left/right), DATA. The INMP441 mic and MAX98357A amp in your kit both use I²S. Practical: I²S is to audio what SPI is to memory. You can hook multiple mics to one ESP32 by sharing BCLK + WS and using different DATA GPIOs. The MAX98357A is the easier path: it takes I²S, drives a speaker, no I²C config needed. See also: I²C (Inter-Integrated Circuit), DMA (Direct Memory Access).

Impedance

#
The AC version of resistance. Includes the resistive and reactive (capacitive + inductive) components. Measured in ohms, but it's frequency-dependent. Practical: Speaker impedance (4 Ω, 8 Ω) determines how much current your amp will draw at a given volume. A 4 Ω speaker at 5 W is 0.8 A; an 8 Ω at 5 W is 0.4 A. The MAX98357A in your kit accepts 4–8 Ω. Mic input impedance is high (the INMP441's is ~10 kΩ); line input is ~10–50 kΩ. Mismatched impedance = lost signal.

Inductor

#
A coil of wire that resists changes in current. The energy-storage element in a switching power supply. Practical: Three uses: (1) switching regulator — the L in the LC filter; (2) filter — LC low-pass for high-current DC rails; (3) ferrite bead on a supply line. Inductors store energy in a magnetic field, so they can be dangerous (the field collapses when current stops, generating a high-voltage spike — hence flyback diodes). See also: Boost Converter, Buck Converter, Diode.

Interrupt (IRQ)

#
A hardware signal that pauses the CPU, runs an interrupt service routine (ISR), then resumes. The way MCUs respond to time-critical events without polling. Practical: Three rules: (1) ISRs must be short — set a flag, copy a byte, return; do the heavy work in the main loop. (2) don't print from an ISR — it can take milliseconds and starve other interrupts. (3) watch for shared variables — declare them volatile in C, or use atomic primitives. On the ESP32, the IRAM_ATTR macro places the ISR in IRAM for fast access.
Letter

J

2 terms

JTAG

#
A 4-wire debug interface (TCK, TMS, TDI, TDO + TRST) defined by the IEEE 1149.1 standard. Lets you halt the CPU, set breakpoints, read registers, step instructions. Practical: The ESP32-S3 has a built-in USB-JTAG bridge — connect USB, run openocd or use the Arduino IDE's debug feature, and you can step through C/C++ code on the chip. Invaluable when a bug is “the SPI read returns 0 and I don't know why.” SWD is the ARM equivalent (2 wires, faster). See also: Reset / RESET Pin, Datasheet.

Jumper Wire

#
A pre-crimped wire with a Dupont pin on each end, used on breadboards. Your 65-piece kit has M-M, M-F, and F-F variants. Practical: Color-code by function: red = power, black = ground, yellow = signal. Keep them short (< 15 cm) for clean signals at high speed. For production, use real wires (solid 22 AWG) — Dupont connectors have ~0.1 Ω contact resistance and will fail eventually.
Letter

L

8 terms

LDO (Low-Dropout Regulator)

#
A linear voltage regulator that works with a very small difference between input and output voltage. The AMS1117-3.3 (very common) drops 5 V to 3.3 V at up to 1 A with a 1.1 V dropout. Practical: LDOs are clean (no switching noise) and simple (3 pins: IN, OUT, GND) but inefficient. The wasted power = (Vin − Vout) × I. A 5 V → 3.3 V LDO at 200 mA burns 0.34 W as heat. Use when: you need low noise (analog reference, ADC). See also: Buck Converter.

LED (Light-Emitting Diode)

#
A diode that emits light when forward-biased. Through-hole 5 mm LEDs in your kit: Vf ≈ 2.0–2.2 V (red, green, yellow) or 3.0–3.4 V (blue, white), max current 20 mA typical. Practical: ALWAYS use a current-limiting resistor. For a 3.3 V GPIO driving a red LED: R = (3.3 − 2.0) / 0.015 = 87 Ω — use 100 Ω. For a 5 V Arduino driving the same LED: 150 Ω. See also: RGB LED / WS2812B / NeoPixel, Anode / Cathode, PWM (Pulse-Width Modulation).

Level Shifter

#
A circuit that translates a logic signal from one voltage to another. The 74HCT125 in your planned BOM is a 4-channel 3.3 V → 5 V shifter. Practical: Use when: (1) 5 V sensor output to 3.3 V MCU input (most 5 V signals break 3.3 V GPIO); (2) 3.3 V MCU output to 5 V WS2812B (marginal, but works in practice for short runs). The TXS0108E and TXB0108 are bidirectional 8-channel shifters. A resistor divider (1 kΩ + 2 kΩ) is the cheap one-direction trick. See also: CMOS vs TTL Logic Levels, Pull-up / Pull-down Resistor.

LiPo (Lithium Polymer)

#
A pouch-format lithium battery. Higher energy density than 18650, more flexible shape, more fragile. Practical: Same voltage range as 18650 (3.0–4.2 V). Always use a TP4056 charge board with protection (DW01 chip) — the protection circuit disconnects the battery if it goes below 3.0 V (over-discharge) or above 4.25 V (over-charge). Both conditions = fire. See also: Battery (18650 / Li-ion / LiPo), TP4056.

Load Cell / Strain Gauge

#
A sensor that measures force or weight. A 1 kg load cell + HX711 in your planned BOM. Practical: The HX711 is a 24-bit ADC designed for load cells. The cell is a Wheatstone bridge of strain gauges; the HX711 provides the excitation voltage and amplifies the millivolt-level output. Wiring: red (E+), black (E−), white (A+), green (A−) — the exact colors vary by manufacturer; check the datasheet. Software: hx711.read_average(20) for a stable reading.

Logic Analyzer

#
A multi-channel digital scope that records the state of many GPIO at once. Practical: The $10 Saleae clone with sigrok/PulseView is a co-op essential. Use it when: SPI doesn't respond, I²C reads garbage, UART prints nonsense. Eight channels at 24 MHz is enough for any MCU bus. Set a trigger on the CS line falling edge, sample 100 ms, decode as SPI — you'll see exactly what bytes flew. See also: Oscilloscope, Datasheet.

Low-Pass Filter (LPF)

#
A circuit that passes low frequencies and attenuates high frequencies. First-order: an R in series, a C to ground. Practical: Two uses in your projects: (1) PWM to analog — a 1 kΩ + 1 µF RC gives fc = 159 Hz, smoothing a 25 kHz PWM into a DC level; (2) audio output — smoothing a 1-bit audio stream into a speaker. For sharper roll-off, use a second-order (RLC or Sallen-Key op-amp) filter. See also: Bode Plot, Cutoff Frequency (fc).

LTSpice / SPICE

#
An analog circuit simulator. Free from Analog Devices. Practical: Before you build an analog circuit, simulate it. RC filter? Simulate. Op-amp gain stage? Simulate. Boost converter stability? Simulate (with the chip vendor's SPICE model). Saves hours of breadboarding. The learning curve is one weekend; the payoff is forever.
Letter

M

4 terms

Microcontroller (MCU)

#
A single chip containing a CPU, RAM, ROM/Flash, and peripherals (UART, SPI, I²C, ADC, PWM, GPIO). The ESP32-S3 and Pico W are microcontrollers. Practical: Distinguish from a microprocessor (CPU only — needs external RAM and flash, like a Raspberry Pi 4). MCUs run bare-metal or a small RTOS (FreeRTOS on the S3, often). Microprocessors run Linux. Rule of thumb: if it has a battery, it's an MCU project; if it has a wall wart, maybe a microprocessor.

MicroPython

#
A lean implementation of Python 3 that runs on microcontrollers. The Pico W and ESP32-S3 both support it. Practical: Three patterns: (1) REPL — connect over USB serial, type Python line by line; (2) main.py — Python file on the board's flash, runs at boot; (3) mpremote — a CLI to copy files, run scripts, access the REPL. Use it for: prototypes, learning, anything where iteration speed matters more than performance. Don't use it for: high-rate DSP, hard real-time control. See also: Arduino, Raspberry Pi Pico W (RP2040).

MOSFET

#
A voltage-controlled switch. Three pins: gate (G), drain (D), source (S). Apply Vgs above the threshold (typically 1–4 V) and the channel conducts. Practical: For 3.3 V GPIO, use a logic-level MOSFET: IRLZ44N, IRL540N, AO3400 (SMD). Avoid the IRF540N — its Vgs(th) is 4 V, so 3.3 V isn't enough. The IRLZ44N can switch 30 V at 30 A continuously with a 3.3 V gate drive. See also: NPN / PNP (Bipolar Junction Transistor), MOSFET, Bias Resistor (Transistor Base / Gate).

Multimeter

#
A handheld instrument that measures voltage, current, and resistance. The $20 ANENG AN8009 is enough for a co-op; the Fluke 87V is the gold standard. Practical: Three habits: (1) measure twice, cut once — verify the rail is 3.3 V before connecting the MCU; (2) use the right mode — V DC, V AC, A DC, continuity (beep); (3) measure current in series, not in parallel (you'll blow the fuse). See also: Oscilloscope, Logic Analyzer.
Letter

N

2 terms

Noise (Electrical)

#
Unwanted random fluctuations on a signal. Comes from thermal agitation (Johnson noise), shot noise, flicker noise (1/f), and the switching edges of digital circuits. Practical: For a 12-bit ADC reading a 0–3.3 V signal, noise floor is typically ±3 counts (~±2.5 mV) on a clean board. To get more bits, you need more averaging (oversample + decimate — the ESP32's ADC supports this) or a better reference. The HC-SR04 ultrasonic sensor is famously noisy; oversample 16× and take the median.

NPN / PNP (Bipolar Junction Transistor)

#
A current-controlled amplifier/switch. Three pins: base (B), collector (C), emitter (E). Apply ~0.7 V between B and E (and a base current) and current flows from C to E. Practical: NPN: most common, switches to ground (active-low). PNP: switches to supply (active-high). The 2N2222 (TO-92) is the workhorse — 600 mA, 40 V, good for small relays and LEDs. For larger loads, use a Darlington (TIP120) or MOSFET. The KY-019 relay module in your 37-in-1 kit is a 5 V coil driven by a small BJT on the board.
Letter

O

6 terms

Ohm (Ω) / Resistance (R)

#
The opposition to current flow. 1 Ω = 1 V/A. Resistors are color-coded: 4-band (2 digits + multiplier + tolerance) or 5-band (3 digits + multiplier + tolerance). Practical: The E12 series (10, 12, 15, 18, 22, 27, 33, 39, 47, 56, 68, 82) is the most common assortment. For a current-limiting resistor on an LED, pick the closest higher value from E12. See also: Ohm's Law, Pull-up / Pull-down Resistor, Voltage Divider.

Ohm's Law

#
V = I × R. The single most important equation in electronics. Practical: Three calculations you'll do every day: (1) LED resistor: R = (V_supply − Vf) / If. (2) pull-up size: R = (V_supply − V_IL) / I_leak. (3) power dissipation: P = I² × R, so a 100 Ω resistor with 100 mA through it dissipates 1 W — get a 2 W resistor. See also: Ampere (A) / Current (I), Voltage (V), Resistor Color Code.

Op-Amp (Operational Amplifier)

#
An 8-pin IC with two inputs (V+, V−), one output, and gain in the millions. With external resistors, you can build: amplifier, filter, comparator, integrator, summer. Practical: For sensor signal conditioning, the op-amp is to analog what the GPIO is to digital. The MCP6002 (dual, rail-to-rail, 3.3 V) is a beginner favorite. The LM358 (dual, 5 V, not rail-to-rail) is even more common but worse. See also: Op-Amp (Operational Amplifier), Amplifier (Op-Amp / Class-D), Rail-to-Rail.

Open-Drain / Open-Collector

#
An output that can only pull the line LOW, not drive it HIGH. Needs an external pull-up resistor to go HIGH. Used for: I²C SDA/SCL, the A3144 Hall sensor output, many sensor interrupt lines. Practical: If you connect an open-drain output to an MCU GPIO and the line sits LOW when you expected HIGH, the pull-up is missing or too weak. See also: Pull-up / Pull-down Resistor, I²C (Inter-Integrated Circuit), Hall Sensor.

Oscilloscope

#
An instrument that plots voltage vs. time. The #1 debug tool after the multimeter. Practical: A used Rigol DS1054Z ($300) or a PicoScope 2204 ($150) covers all co-op needs: 4 channels, 50–100 MHz, USB to laptop. Use it for: checking signal integrity, measuring PWM duty cycle, finding a glitch that makes the MCU reboot. The single trick that 80% of users miss: trigger on the falling edge of CS to catch a one-time SPI glitch.

OTA (Over-the-Air Update)

#
Firmware update delivered over Wi-Fi instead of USB. The ESP32-S3 supports OTA via the Arduino ArduinoOTA library or ESP-IDF's app_update. Practical: For any project that goes in a box on a wall, OTA is the difference between “easy to maintain” and “truck roll.” Always have a fallback in the bootloader: if the new firmware doesn't boot in 10 s, roll back to the previous one. The ESP32's A/B partition scheme handles this. See also: Boot Mode / Boot Button, Flash Memory.
Letter

P

5 terms

PCB (Printed Circuit Board)

#
A fiberglass board with copper traces that connect components. Your protoboard kit is single-sided universal PCB (9×15 cm, 2.54 mm hole pitch). Practical: For a one-off, hand-solder on the universal PCB. For ≥ 3 units, design a real PCB in KiCad (free) and order from JLCPCB ($2 for 5 boards, 1-week turnaround). The learning curve for KiCad is one weekend; the payoff is a project that doesn't fall apart when you move it.

PID Controller

#
A feedback controller with three terms: Proportional (error × Kp), Integral (sum of error × Ki), Derivative (rate of error × Kd). The standard way to control motor position, heater temperature, drone altitude. Practical: Tuning: start with Kp only, increase until it oscillates, then back off to 50%. Add Kd to damp the oscillation. Add Ki last to remove steady-state error. Ziegler-Nichols is a method; manual is faster once you've done it ten times. See also: Dead Band / Dead Zone, PID Controller.

PIO (Programmable I/O)

#
A peripheral on the RP2040 (and ESP32-S3) that lets you implement arbitrary digital protocols in hardware, on a state machine. Practical: The killer use case is WS2812B LEDs: the timing (800 kHz, ±150 ns) is too tight for bit-banging but trivial for PIO. MicroPython has rp2.StateMachine for the Pico; ESP-IDF has pio_program for the S3. Once you've used PIO for one protocol, you'll find excuses to use it for everything.

Pull-up / Pull-down Resistor

#
A resistor that holds a line at a known state when nothing else is driving it. Pull-up: to VCC, default HIGH. Pull-down: to GND, default LOW. Practical: Two cases you'll hit: (1) open-drain outputs (I²C, Hall sensors) need a pull-up; (2) button to GPIO needs a pull-up or pull-down to prevent the pin from floating when the button is open (floating = random reads = bad). The ESP32-S3 has internal pull-ups/downs (typically 45 kΩ) you can enable in software. External 10 kΩ is stronger and more reliable.

PWM (Pulse-Width Modulation)

#
A square wave at a fixed frequency with a variable duty cycle. The MCU's way of producing an analog-like output. Practical: Three uses: (1) motor speed (TB6612FNG PWM input, 20 kHz); (2) LED brightness (KY-009 RGB LED, 5 kHz is fine); (3) servo position (SG90, 50 Hz with 1–2 ms pulse). The ESP32-S3 has 8 PWM channels via the LEDC peripheral; the Pico W has 16 via the PIO + PWM. Resolution matters: 8-bit (256 steps) is fine for LEDs, 12-bit+ for smooth motor control.
Letter

Q

1 term

Quartz Crystal

#
See Crystal / Oscillator. Same thing, different name.
Letter

R

9 terms

Rail-to-Rail

#
An op-amp or ADC that can accept input voltages (or produce output voltages) all the way to its supply rails. Practical: The MCP6002 and ADS1115 are rail-to-rail. The LM358 and old ATmega ADCs are not. If your signal goes 0–3.3 V and your op-amp runs on 3.3 V, you need rail-to-rail input and output. Otherwise, the last 200 mV of range is dead. See also: Op-Amp (Operational Amplifier), Common-Mode Voltage.

RC Filter

#
A resistor and capacitor in series (low-pass) or parallel (high-pass). The simplest analog filter. Practical: Three uses: (1) debouncing — 10 kΩ + 100 nF + Schmitt trigger (74HC14); (2) PWM smoothing — 1 kΩ + 1 µF gives a 159 Hz LPF for 25 kHz PWM; (3) supply decoupling — 10 Ω + 100 nF on each IC's VCC. See also: Bode Plot, Cutoff Frequency (fc).

Relay Module

#
An electrically-controlled switch. The KY-019 in your 37-in-1 kit is a 5 V relay with a transistor driver. Practical: The coil needs ~70 mA at 5 V — way more than a GPIO can source, hence the driver. The contacts can switch mains (250 V AC, 10 A) or low-voltage DC. The flyback diode on the board absorbs the inductive kick when the coil turns off. Watch for: the click is loud; in a quiet project, use a MOSFET or solid-state relay instead.

Reset / RESET Pin

#
A pin on the MCU that, when pulled LOW, restarts the chip. Most dev boards have a RESET button that pulls the pin to GND through a cap (auto-releases) or button (manual). Practical: If your board won't respond over USB but the power LED is on, press RESET. If it still doesn't respond, the firmware is corrupt — re-flash with esptool. Some boards have a separate EN (enable) pin that needs to be held HIGH for the chip to run; this is a power-domain reset, not a software reset.

Resistor Color Code

#
4-band: digit, digit, multiplier, tolerance. 5-band: digit, digit, digit, multiplier, tolerance. Practical: Memorize: black 0, brown 1, red 2, orange 3, yellow 4, green 5, blue 6, violet 7, gray 8, white 9. The two mnemonic sentences: Better Be Right Or Your Great Big Venture Goes West. For tolerance: gold = ±5%, silver = ±10%. Your resistor kit has 30 values × 20 pieces; the most-used are 220 Ω, 1 kΩ, 10 kΩ. See also: Ohm (Ω) / Resistance (R), Resistor Color Code.

RGB LED / WS2812B / NeoPixel

#
An LED with a built-in controller chip that takes a single data line and produces 24-bit color (R, G, B). The WS2812B in your planned BOM: 5 V, 60 mA per LED, 800 kHz protocol. Practical: Chain them: data-out of LED #1 → data-in of LED #2 → ... → 5 V and GND daisy-chained. A 1 m strip of 30 LEDs can draw 1.8 A at full white — use a 5 V/2 A supply, not a 3.3 V GPIO. The data line is 5 V logic; from a 3.3 V MCU, use a level shifter if runs are long. See also: Level Shifter, PIO (Programmable I/O).

RMS (Root Mean Square)

#
The “effective” value of an AC signal. A 5 V RMS sine has the same heating effect as a 5 V DC signal. Practical: When a multimeter measures AC voltage, it shows RMS (true RMS meters are accurate for any waveform; average-responding meters are calibrated for a sine and lie for everything else). Mains is 120 V or 240 V RMS — the peak is √2 × higher (~170 V or ~340 V). See also: DC vs AC, Multimeter.

RS-232 / RS-485 / UART

#
UART = the protocol (asynchronous, no clock, just TX/RX). RS-232 = the old ±12 V voltage standard for UART (DB-9 connectors on PCs). RS-485 = a differential version of UART for industrial (up to 1.2 km, 32 devices on one bus). Practical: On modern MCUs, you use UART at 3.3 V CMOS logic. To connect to a real RS-232 device, you need a MAX3232 level translator. To connect to RS-485, a MAX485. See also: UART (Universal Asynchronous Receiver/Transmitter), Differential Signaling.

RTC (Real-Time Clock)

#
A chip or peripheral that keeps track of wall-clock time even when the main system is off. The DS3231 is a popular external I²C RTC (very accurate, ±2 ppm). The ESP32-S3 has an internal RTC that can run in deep sleep with an external 32 kHz crystal. Practical: Use an RTC when: you need timestamps for data logging, you wake the MCU periodically to take a measurement, or you need a watch-dog to reset the system at a specific time. See also: Sleep / Deep Sleep / Light Sleep, I²C (Inter-Integrated Circuit).
Letter

S

14 terms

Schmitt Trigger

#
An input with hysteresis: HIGH-to-LOW switches at a different voltage than LOW-to-HIGH. The 74HC14 in your kit (or built into most MCU GPIO). Practical: Use when reading a slow or noisy signal: a button with a long wire, a sensor with ringing, a square wave that turns into a sine before it reaches the MCU. Without Schmitt trigger, the input can oscillate for a few µs at the threshold. See also: Debouncing, RC Filter.

Sensor (Analog / Digital / I²C / SPI)

#
A device that converts a physical quantity to an electrical signal. Types by output: Analog (KY-018 LDR, KY-013 thermistor) — output a voltage; needs an ADC. Digital GPIO (KY-032 IR, KY-020 tilt) — output HIGH/LOW. I²C (MPU-6050, AHT20, BMP280, SSD1306 OLED) — register read/write. SPI (ST7789 TFT) — high-speed register read/write. Practical: Pick the interface that matches your data rate and pin budget. I²C is the default for sensor boards; SPI is for displays and high-speed ADCs.

Serial (UART)

#
A 2-wire asynchronous protocol (TX, RX) with no shared clock. Both sides agree on baud rate, parity, and stop bits (e.g. 115200 8N1). Practical: The default for debug output, GPS modules, the DFPlayer in your kit, XBee radio modules. TX on MCU A goes to RX on MCU B, and vice versa — the most common wiring mistake. See also: Baud Rate, RS-232 / RS-485 / UART.

Servo Motor (SG90 / Standard)

#
A motor with a built-in position controller. PWM in, angle out. The SG90 in your planned BOM: 9 g, 1.8 kg·cm torque, 180° range, 50 Hz PWM with 1–2 ms pulse width. Practical: The pulse width determines angle: 1.0 ms = 0°, 1.5 ms = 90°, 2.0 ms = 180°. The servo has its own driver, so it draws current spikes from the supply — never power a servo from the MCU's 3.3 V rail. Use a separate 5 V/1 A supply (or a 18650 + boost).

Shield / Carrier / Breakout

#
A PCB that holds a chip and exposes it on a 0.1″ header for easy use. Practical: Buy breakouts for everything you can. The DFPlayer Mini, MAX98357A, MPU-6050 (GY-521), and ESP32-CAM in your kit are all breakouts. Surface-mount ICs are essentially impossible to hand-solder for a beginner; the breakout turns the 8-pin QFN into 8 pins on 0.1″ centers. See also: PCB (Printed Circuit Board), Shield / Carrier / Breakout.

Signal Integrity

#
The quality of a digital signal at the receiver. A perfect square wave stays a square wave; a degraded one has ringing, overshoot, undershoot, or smeared edges. Practical: Three causes of bad signal integrity: (1) long traces (> 1/10 of the rise time × speed of light, in practice a few cm for fast signals); (2) impedance mismatch (reflections at cable ends or unterminated connectors); (3) crosstalk (one trace couples into a neighbor). At 25 kHz PWM you don't care. At 100 MHz SPI, you care a lot.

Sleep / Deep Sleep / Light Sleep

#
Low-power modes for battery-powered projects. Levels on the ESP32-S3: Active = ~50 mA. Modem sleep (Wi-Fi off) = ~30 mA. Light sleep (CPU paused, RAM retained) = ~2 mA. Deep sleep (everything off except RTC) = ~10 µA. Practical: A weather station that wakes every 5 minutes to take a reading can run a year on a 18650 if it spends 99% of its time in deep sleep. Use the RTC GPIO or the ULP coprocessor to wake it.

SMD (Surface-Mount Device)

#
Components soldered directly to pads on the PCB surface, not through holes. Sizes: 0402 (1 mm × 0.5 mm), 0603 (1.5 mm × 0.75 mm), 0805, 1206 — bigger is easier to hand-solder. Practical: You can hand-solder 0805 and larger with a fine tip, flux, and tweezers. 0402 is possible but painful. Your 37-in-1 kit modules are all SMD parts pre-assembled on through-hole breakouts — the only SMD work you'll do is replacing a resistor on a module if needed.

Snubber

#
An RC network across a switch (relay contact, MOSFET) to absorb the inductive kick and prevent arcing. Practical: A 100 Ω + 100 nF across a relay contact extends its life 10×. See also: Diode, Relay Module.

Solenoid

#
An inductor with a movable plunger. Energize the coil, the plunger moves. Use for: valves (pneumatic, hydraulic), door latches, knitting-machine yarn fingers (the SG90 in your planned BOM will do this for 2b-i). Practical: Same as a relay: needs a driver (MOSFET or Darlington) and a flyback diode. The 37-in-1 kit doesn't include one, but you'll meet them in any mechatronics project.

SPI (Serial Peripheral Interface)

#
A 4-wire synchronous bus: MOSI (master out, slave in), MISO (master in, slave out), SCK (clock), CS (chip select, one per device). Speeds: 1–80 MHz typical. Practical: Faster than I²C, full-duplex (send and receive in the same clock), but uses more pins. Use for: SD cards, TFT displays (ST7789 in your kit), high-speed ADCs, any time I²C's 400 kHz isn't enough.

Star Ground

#
A grounding scheme where all subsystems connect to a single ground point. Prevents ground loops. Practical: Tie analog ground, digital ground, and power ground at one point — usually the ground pin of the power supply. For a single-board beginner project, this is the same as “every GND is connected” — just be careful when the project grows to multiple boards connected by wires. See also: GND (Ground) / 0 V, Ground Loop.

Stepper Motor (NEMA 11 / NEMA 17)

#
A motor that moves in discrete steps (typically 1.8° = 200 steps/rev) without feedback. The NEMA 11 in your planned BOM: 28 mm body, 0.6 A/phase, 4-wire bipolar. Practical: Needs a driver (A4988 or TMC2209), not just a GPIO. Driver takes STEP and DIR signals from the MCU. Watch for: steppers draw current even when not moving (holding torque) — the 12 V/2 A supply in your BOM is sized for this. See also: A4988 Stepper Driver, TMC2209 v1.3 Silent Stepper Driver, Stepper Motor (NEMA 11 / NEMA 17).

Switch (SPST / SPDT / DPDT / Slide / Tactile)

#
A mechanical contact that opens/closes a circuit. Types: SPST = on/off (2 pins). SPDT = on/on, picks one of two paths (3 pins, like your mini slide switch). DPDT = two SPDT in one package (6 pins). Practical: The KY-004 tactile button in your kit is SPST-NO (single pole, single throw, normally open). Press = closed. Add a pull-up or pull-down to read it cleanly. See also: Debouncing, Pull-up / Pull-down Resistor.
Letter

T

4 terms

Tantalum Capacitor

#
A polarized capacitor with high capacitance per volume, low ESR. Common values: 1–100 µF at 4–25 V. Practical: Better than electrolytic for high-frequency decoupling, worse than ceramic. Watch for: tantalum caps can fail as a dead short (catch fire if the supply is fat). Use a voltage rating ≥ 2× the rail. Most modern designs use ceramics instead.

Thermistor (NTC / 10 kΩ)

#
A resistor whose value changes with temperature. The KY-013 in your 37-in-1 kit is a 10 kΩ NTC (resistance decreases as temperature increases). Practical: Read with a voltage divider: 10 kΩ fixed resistor + 10 kΩ NTC in series, MCU ADC on the middle. Convert ADC value to resistance, then to temperature with the Steinhart-Hart equation or the simpler B-parameter equation. The DS18B20 (in your kit) is a digital alternative — no calibration needed, ±0.5 °C, talks OneWire. See also: ADC (Analog-to-Digital Converter), Voltage Divider, Thermistor (NTC / 10 kΩ).

TP4056

#
A single-chip Li-ion / LiPo charge controller. Charges from 5 V USB to 4.2 V at up to 1 A (set by a resistor). Practical: The standard building block for a battery-powered project. Pair with a DW01 protection IC (over-discharge, over-charge, short-circuit) and a 18650 holder — that's a complete safe battery system for $1 in parts. The TP4056 module in the typical “TP4056 + DW01” combo board is what you want.

Transistor (BJT / MOSFET)

#
A solid-state switch. See BJT and MOSFET. Practical: Default decision: 3.3 V GPIO + DC load < 500 mA = logic-level MOSFET (IRLZ44N, AO3400). 5 V Arduino + DC load < 1 A = BJT (2N2222) or Darlington (TIP120). AC load (mains) = relay module with the driver built in. See also: NPN / PNP (Bipolar Junction Transistor), MOSFET, Darlington Pair, Relay Module.
Letter

U

3 terms

UART (Universal Asynchronous Receiver/Transmitter)

#
A peripheral that converts bytes to a serial bit stream and back. Every MCU has at least one. Practical: Three roles: (1) debug consoleSerial.println() in Arduino, print() in MicroPython; (2) module comms — GPS, Bluetooth modules, the DFPlayer in your kit, XBee; (3) MCU-to-MCU — wire two boards' UARTs together (TX→RX, RX→TX, GND→GND). See also: Baud Rate, RS-232 / RS-485 / UART, Serial (UART).

USB (Universal Serial Bus)

#
The standard for PC-connected peripherals. USB 1.1 (12 Mbit), USB 2.0 (480 Mbit), USB 3.0 (5 Gbit). Modern MCUs have USB 2.0 OTG on-board (the ESP32-S3, the Pico W). Practical: The #1 mistake is using a charge-only cable — see USB Cable Trap below. USB-C is the new standard but check pinout; there are two valid pinouts (flipped cable) and many invalid ones (resistor networks for power negotiation). See also: USB Cable Trap (Charge-Only vs Data), esptool.py.

USB Cable Trap (Charge-Only vs Data)

#
A USB cable that connects power (VBUS, GND) but leaves the data lines (D+, D−) unconnected. Looks identical to a real cable. Practical: This is the #1 reason “I plugged it in and nothing happened.” Buy cables with data from a known source (Anker, Amazon Basics, Adafruit) and you'll be fine. A $7 USB tester with D+/D− LEDs is the fastest way to find a bad cable.
Letter

V

3 terms

Voltage (V)

#
The electrical potential difference between two points. Measured in volts. Practical: Three voltages you see every day: 5 V (USB, Arduino Uno), 3.3 V (ESP32, Pico, most modern MCUs), 1.8 V (low-power MCUs, some sensors). The mapping: V = I × R, P = V × I. See also: Ohm's Law, Rail-to-Rail, Brownout.

Voltage Divider

#
Two resistors in series; the voltage at the middle is a fraction of the input. Practical: Three uses: (1) level shifting — 1 kΩ + 2 kΩ converts 5 V to 3.3 V for an MCU input; (2) sensor reading — a thermistor or LDR in a divider with a fixed resistor, ADC reads the middle; (3) battery voltage measurement — divide a 12 V battery down to 3.3 V to read with an ADC. Watch for: the divider draws current continuously (10 kΩ + 10 kΩ on 5 V = 0.25 mA, fine; 100 Ω + 200 Ω on 12 V = 40 mA, wasteful). See also: Pull-up / Pull-down Resistor, ADC (Analog-to-Digital Converter).

Voltage Regulator

#
A component that takes a varying input and produces a stable output. Linear (LDO, like AMS1117-3.3): simple, clean, inefficient. Switching (buck/boost/buck-boost): complex, noisy, efficient. Practical: Default decision: ≤ 500 mA load and Vin/Vout < 2× → LDO. > 500 mA or Vin/Vout > 2× → switching. The 3.3 V rail on every dev board is an LDO from the USB 5 V. See also: LDO (Low-Dropout Regulator), Buck Converter, Boost Converter, Buck-Boost Converter.
Letter

W

3 terms

Watchdog Timer (WDT)

#
A hardware timer that resets the MCU if not “kicked” (reset by software) within a window. The ESP32-S3 has 4 WDTs (one per task, plus the main loop). Practical: If your code hangs in a loop or gets stuck waiting for an I²C response, the WDT will fire and reset. Don't disable it. esp_task_wdt_reset() (in the right task) is the kick. See also: Reset / RESET Pin, OTA (Over-the-Air Update).

Wheatstone Bridge

#
Four resistors in a diamond, with the excitation voltage across one diagonal and the measurement across the other. The classic sensor interface (load cells, strain gauges, RTDs). Practical: When all four resistors are equal, the output is 0 V. When one changes, the output is a small voltage proportional to the change. The HX711 in your planned BOM is purpose-built to read a Wheatstone bridge at 24-bit resolution.

Wi-Fi (802.11)

#
The 2.4 GHz (and 5 GHz) wireless networking standard. The ESP32-S3 supports 802.11 b/g/n on 2.4 GHz. Practical: For an MCU project, you have three roles: (1) station (STA) — connect to your home router, talk to the internet; (2) access point (AP) — the MCU is the Wi-Fi network, phone connects to it (good for provisioning); (3) STA + AP — both at once. Power: Wi-Fi TX draws 200–300 mA on the S3. See also: OTA (Over-the-Air Update), OTA (Over-the-Air Update), Wi-Fi (802.11).
Letter

Z

1 term

Zener Diode

#
A diode that conducts backward at a specific voltage. Used for voltage reference, over-voltage protection, simple level shifting. Practical: A 3.3 V Zener from a signal line to GND clamps the signal to 3.3 V — a one-channel unidirectional level shifter. The 1N4728 (3.3 V, 1 W) is the workhorse. Forward-biased, it behaves like a regular diode (Vf ~0.7 V). See also: Diode, Level Shifter.

No matches

Try a different term, or press Esc to clear the search.

6. Quick reference tables

6.1 Bus comparison

BusWiresSpeedDevicesBest for
UART2 (TX, RX)up to ~1 Mbaudpoint-to-pointdebug, GPS, BT modules, DFPlayer
I²C2 (SDA, SCL)100 kHz / 400 kHz / 1 MHz / 3.4 MHzup to 127 (7-bit addr)sensors, OLEDs, RTCs, port expanders
SPI4+ (MOSI, MISO, SCK, CS per device)1–80 MHzlimited by GPIOdisplays, SD cards, high-speed ADCs
I²S3 (BCLK, WS, DATA)audio rates (44.1 / 48 kHz typical)point-to-point (or 2-mic share)digital mics, Class-D amps
CAN2 (CANH, CANL, differential)125 kbps – 1 Mbpsmany, message-addressedautomotive, industrial, drones
USB4 (VBUS, D+, D−, GND)12 / 480 / 5000 Mbps127 (with hub)PC peripherals, charging

6.2 Power budget for a typical ESP32-S3 project

SubsystemCurrent (active)Current (sleep)Notes
ESP32-S3 (CPU only)~50 mA~10 µA (deep sleep)240 MHz dual-core
ESP32-S3 (Wi-Fi TX)~250 mA~5 mA (modem sleep)peaks during TX bursts
SSD1306 OLED~20 mA~10 µA (off)all pixels on = worst case
MPU-6050 IMU~3.6 mA~5 µA (sleep)gyro on at full rate
INMP441 mic~1.4 mAn/a (always on)doesn't have a sleep mode
N20 motor (TB6612FNG)~200 mA / motor stall~5 mA idleadd 100 µF bulk cap on motor supply
WS2812B LED (per LED)~60 mA (white)~1 mAfull white is worst case

6.3 ESP32-S3 pin allocation (the ones you MUST know)

Pin(s)FunctionDon't use for
GPIO0BOOT strap (must be HIGH at boot)anything that pulls LOW at boot
GPIO3BOOT strap (must be FLOAT/HIGH at boot)outputs that drive LOW at boot
GPIO19, GPIO20USB CDC (D−, D+)wired peripherals on most boards
GPIO26–GPIO32PSRAM data lines (N16R8 only)anything if you have PSRAM enabled
GPIO33–GPIO37PSRAM control lines (N16R8 only)anything if you have PSRAM enabled
GPIO43, GPIO44default UART0 (debug serial TX/RX)anything you want to read on USB
GPIO45, GPIO46BOOT strap (V_SPI_STRAP)anything at boot
GPIO48on-board RGB LED (most DevKitC-1 boards)

Rule of thumb: for a sensor on the breadboard, default to GPIO1, GPIO2, GPIO4–GPIO10, GPIO15–GPIO18, GPIO21, GPIO38–GPIO42, GPIO47, GPIO48 — all conflict-free, all 3.3 V tolerant, all bidirectional, all capable of ADC / PWM / I²C / SPI as needed.

6.4 Protocol cheat sheet (one example per bus)

BusExampleCode pattern
UARTDFPlayer Miniuart.write(b'\x7E\x03\x00\x01\xEF') to play track 1
I²CMPU-6050i2c.writeto_mem(0x68, 0x6B, b'\x00') to wake, then i2c.readfrom_mem(0x68, 0x3B, 14) for accel+gyro
SPIST7789 TFTspi.write(b'\x2A\x00\x00\x00\xEF') to set column range
I²SINMP441 mici2s.readinto(buf) into a 32-bit DMA buffer, mask off 24 bits
PWMSG90 servopwm.duty_u16(int(angle/180*4000+2000)) (50 Hz, 1–2 ms pulse)
ADCKY-018 LDRadc.read_u16() returns 0–65535, scale to lux as needed
OneWireDS18B20 tempds.convert_temp(); value = ds.read_temp_async() — every 750 ms

6.5 Units cheat sheet

QuantitySI unitCommon in MCUsConversion
VoltageV (volt)mV, V3.3 V = 3 300 mV
CurrentA (ampere)µA, mA, A1 A = 1 000 mA = 1 000 000 µA
ResistanceΩ (ohm)Ω, kΩ, MΩ1 MΩ = 1 000 000 Ω
CapacitanceF (farad)pF, nF, µF1 µF = 1 000 nF = 1 000 000 pF
FrequencyHz (hertz)Hz, kHz, MHz, GHz240 MHz = 240 000 000 Hz
Times (second)µs, ms, s1 ms = 1 000 µs
PowerW (watt)mW, WP = V × I; P = I² × R; P = V² / R
ChargeC (coulomb)mAh (battery)1 mAh = 3.6 C
TemperatureK (kelvin)°C, °F0 °C = 273.15 K; °F = °C × 9/5 + 32
Databit, byteKB, MB, GB1 byte = 8 bits; 1 KB = 1 024 bytes

6.6 Debugging checklist (the first 5 things to try)

  1. Measure the rail. Put the multimeter on 3.3 V and GND at the IC's pins. Is it actually 3.3 V? Brownout is the #1 cause of weirdness.
  2. Run i2c.scan(). The device is at 0x76, not 0x77. Always.
  3. Swap the cable. Charge-only USB cables exist. They look identical.
  4. Print the actual bytes, not what you think they should be. print(repr(buf)) shows escape sequences. Mojibake is almost always baud rate, not the device.
  5. Reduce to minimum. Comment out half the code. Does the bug still happen? If not, you added the bug. If yes, it's in the part you didn't touch.

If those don't fix it, reach for the logic analyzer (set a trigger on CS falling edge, decode as SPI/I²C) and the oscilloscope (set a trigger on the reset line, single-shot capture).

7. Further reading

Start here (free, high quality):

  • 🔥 MicroPython docsdocs.micropython.org
  • 🔥 ESP-IDF programming guidedocs.espressif.com
  • 🔥 Arduino referencedocs.arduino.cc
  • 🔥 Raspberry Pi Pico SDK / Pico W docsraspberrypi.com
  • 📚 Practical Electronics for Inventors (Scherz & Monk) — the best all-around intro text
  • 📚 The Art of Electronics (Horowitz & Hill) — the canonical reference, get it used

Hands-on tutorials:

  • 📚 FastLED library (WS2812B on any platform) — fastled.io
  • 📚 Adafruit Learn (hundreds of sensor + project guides) — learn.adafruit.com
  • 📚 SparkFun tutorials (I²C, SPI, LiPo, etc.) — learn.sparkfun.com
  • 📚 Phil's Lab (YouTube, altium + STM32 + motors) — the best embedded YouTube channel
  • 📚 Big Clive (YouTube, teardowns + reverse engineering)
  • 📚 EEVblog (Dave Jones, YouTube, general EE + reviews)

Datasheets (keep open in a tab):

Stay current:


Last updated: July 2026. Maintained as a living document — if a term on your co-op isn't here, add it.