Glossary
Hardware terms used in this guide, explained in terms software engineers already know.
A
Absolute Maximum Rating — The highest voltage, current, or temperature a component can survive without permanent damage. Like the maximum heap size a process can allocate — exceed it and things break permanently, not gracefully.
Active piezo buzzer — A buzzer with a built-in oscillator; applying DC power produces a fixed tone automatically. Contrast with a passive piezo buzzer, which requires a PWM signal at the resonant frequency. Used in the backup alarm circuit — ATtiny drives it HIGH to sound the alarm without any frequency generation.
ATtiny85 — An 8-bit Atmel AVR microcontroller in DIP-8 package. Runs at 1.8–5.5 V; deep sleep current ~0.1 µA. Used in this project as the backup alarm MCU: watches the DS3231 SQW pin via INT0, drives the piezo buzzer via a PN2222 transistor, and handles SNOOZE/DISMISS button input when the ESP32 is off.
B
BCD (Binary-Coded Decimal) — A number encoding where each decimal digit is stored
separately as a 4-bit nibble. 0x59 in BCD means 59 (not 89 decimal). The DS3231 uses
BCD for all time registers. Use a library to avoid decoding it manually.
Boost converter — A switching power supply that produces an output voltage higher than its input. Not used in this project (system runs directly from USB 5 V), but a general electronics concept. Would be needed if running from a Li-ion cell (3.7 V nominal) and needing a 5 V output. Operates at ~85% efficiency.
BCLK (Bit Clock) — The I2S bit clock signal. One pulse per audio bit. Like a CPU clock signal, it controls the rate at which data is sampled on the DIN line.
Breakout board — A small PCB that makes a surface-mount chip accessible on a breadboard by routing its tiny pads to standard 2.54 mm through-hole headers. Analogous to a library wrapper: someone else handled the hard wiring and exposed a clean interface.
Brownout — A condition where supply voltage drops below a threshold, causing the microcontroller to reset. Like an OOM kill, but caused by insufficient power rather than memory. The ESP32's brownout detector fires at ~2.7 V.
C
CC/CV (Constant Current / Constant Voltage) — The two-phase charging profile used for Li-ion cells. Not used in this project (no Li-ion battery), but relevant general electronics vocabulary. In the CC phase the charger supplies a fixed current until the cell reaches 4.2 V; in the CV phase it holds the voltage at 4.2 V and lets current taper.
CS (Chip Select) — An SPI signal that selects a specific device on a shared bus. Active LOW — pull it LOW to address the device. Analogous to specifying which socket to connect to when multiple servers share the same IP.
Coin cell — A flat, round battery used to power low-current devices like RTC chips during main power outages. The CR2032 (non-rechargeable) and LIR2032 (rechargeable) are the two common types used with the DS3231.
D
DC pin (Display) — On SPI e-ink displays, the Data/Command pin selects whether a byte being sent is a command (register write) or data. LOW = command, HIGH = data. Not to be confused with "DC" as in "direct current."
Decoupling capacitor — A capacitor (typically 100 nF) placed close to a chip's VCC pin to absorb brief voltage spikes. Analogous to a local request cache that absorbs traffic bursts before they reach a backend.
DMA (Direct Memory Access) — A hardware mechanism that transfers data between memory and a peripheral (like I2S or SPI) without CPU involvement. Analogous to an async I/O operation — the CPU kicks it off and gets an interrupt when done.
E
ESD (Electrostatic Discharge) — Static electricity from your body discharging into a chip. Can permanently destroy MOSFETs. Analogous to a surge that silently corrupts a storage device — you may not notice until the chip behaves erratically.
F
FAT32 — A filesystem format commonly used on microSD cards. Not used in this project — LittleFS is used instead for power-fail safety. FAT32 can corrupt on unexpected power loss.
FPC connector — Flexible Printed Circuit connector. The thin ribbon cable interface used by the GDEY042T81-FL02 display. Fragile — do not bend sharply or repeatedly.
FreeRTOS — The real-time operating system embedded in ESP-IDF. Provides tasks (like threads), queues (like channels), timers, and semaphores. The ESP32-S3 runs FreeRTOS on both cores simultaneously.
Full refresh — An e-ink display mode that writes the entire screen: clears to white, then renders the new image. Takes ~2 seconds but produces a clean result with no ghosting.
G
GPIO (General Purpose Input/Output) — A microcontroller pin that can be configured as a digital input or output. Analogous to a file descriptor — open it, set its mode, read or write it.
Ghosting — Faint remnants of a previous image visible after an e-ink partial refresh. Cleared by a full refresh. Analogous to a dirty cache that shows stale data.
I
I2C (Inter-Integrated Circuit) — A two-wire serial protocol (SDA + SCL) where multiple devices share the same bus and are addressed by a 7-bit address. Analogous to an internal HTTP API where each device has a URL (address).
I2S (Inter-IC Sound) — A three-wire serial protocol for streaming digital audio (BCLK, LRCLK, DIN/DOUT). Like a DMA ring buffer continuously draining PCM samples to a DAC.
ISR (Interrupt Service Routine) — A callback function that fires when a GPIO changes state. Like an event listener, but runs in a privileged context — no malloc, no blocking calls.
L
LEDC — ESP32's LED Control peripheral, used for PWM output. Used to drive the e-ink display's front light with variable brightness.
LittleFS — A power-fail-safe filesystem designed for embedded flash storage. Uses copy-on-write semantics so the filesystem is never left in an inconsistent state after an unexpected reset. Used in this project to store alarm WAV files in ESP32 flash. Analogous to a journalled filesystem (like ext4) compared to FAT32's unjournalled writes.
Light sleep — An ESP32 low-power mode where the CPU is paused and most peripherals are suspended, but GPIO interrupts and internal timers remain active. Not used in this project (the ESP32 shuts down completely when USB power is removed; the ATtiny backup circuit handles the alarm), but a general ESP32 vocabulary term.
Level shifter — A circuit that converts signals between different voltage levels (e.g., 5 V ↔ 3.3 V). Analogous to a data format converter. The ESP32-FTS02 adapter includes level shifters for the display.
LRC / LRCLK (Left/Right Clock) — The I2S frame clock (also called WS, Word Select). Toggles at the audio sample rate to indicate whether the current sample is for the left or right channel.
M
MISO (Master In Slave Out) — The SPI data line from peripheral to controller.
MOSI (Master Out Slave In) — The SPI data line from controller to peripheral.
N
NTP (Network Time Protocol) — A protocol for synchronising clocks over a network.
pool.ntp.org is a public NTP server pool. The ESP32's SNTP library handles sync and
calls a callback when complete.
NVS (Non-Volatile Storage) — ESP-IDF's key-value store backed by flash memory.
Survives power cycles. Analogous to localStorage or a small embedded database. Used
to persist WiFi credentials, timezone, and alarm configurations.
O
Open-drain — An electrical output type that can only pull a line LOW — it cannot drive it HIGH. The line goes HIGH passively through a pull-up resistor. I2C uses open-drain outputs so multiple devices can share SDA and SCL without conflict.
P
Partial refresh — An e-ink display mode that updates only a specified window of the screen. Faster (~0.3 s) but accumulates ghosting over multiple partial refreshes.
PCB (Printed Circuit Board) — A board with conductive traces that replace wires.
Power path — A circuit that selects between two power sources (e.g. USB and a battery) and presents a single, uninterrupted output. A power-path IC uses internal FETs to switch between sources with essentially zero transition time — no reset, no voltage dip. Not used in this project (system runs from USB only), but relevant general electronics vocabulary.
Perfboard — A generic PCB with a grid of holes (no pre-defined traces). You solder components to it and add connections with cut-to-length wire. Faster than a custom PCB but more manual than a breadboard. The final build of this project uses perfboard.
PCM (Pulse-Code Modulation) — The raw audio sample format: a sequence of amplitude values sampled at a fixed rate (e.g., 44100 Hz). WAV files store uncompressed PCM data.
Perfboard — A generic PCB with a grid of holes (no pre-defined traces). You solder components to it and add connections with cut-to-length wire. Faster than a custom PCB but more manual than a breadboard.
Pull-up resistor — A resistor connecting a signal line to VCC, causing it to read HIGH when nothing actively drives it LOW. Analogous to a default return value.
PWM (Pulse-Width Modulation) — A way to produce an analogue-equivalent output from a digital pin by rapidly switching it on and off. Duty cycle controls the average voltage. Used for front-light brightness control.
R
RST (Reset) — An active-LOW input that resets the SSD1683 display controller. Must
be pulsed LOW for ≥10 ms during init. Like Ctrl+C for the display chip.
RTC (Real-Time Clock) — A dedicated IC that tracks wall-clock time independently of the main CPU, with its own battery backup. The DS3231 is the RTC used in this project.
S
SCLK (Serial Clock) — The SPI clock line. Driven by the controller; every transition clocks one bit of data.
SDA (Serial Data) — The I2C bidirectional data line.
SCL (Serial Clock) — The I2C clock line. Driven by the controller.
SPI (Serial Peripheral Interface) — A four-wire synchronous serial protocol (MOSI, MISO, SCLK, CS). The controller drives the clock. Faster than I2C but requires a CS pin per device.
Strapping pin — A GPIO pin sampled at boot to determine chip configuration (e.g., boot mode, flash voltage). Do not connect buttons or other active circuits to strapping pins.
V
VCC — The positive power supply pin on a component. Convention: VCC typically means the logic supply voltage (3.3 V here).
VDD — Equivalent to VCC in many datasheets; the positive power rail.
VIH (Input High Voltage) — The minimum voltage a GPIO input pin recognises as HIGH. For the ESP32-S3, VIH ≈ 2.0 V.
VBUS — USB bus voltage, nominally 5 V. Exposed on the DevKitC-1 as the 5V pin.
VFS (Virtual Filesystem) — ESP-IDF's POSIX-like filesystem abstraction. After
mounting LittleFS with esp_vfs_littlefs_register, files are accessible as /lfs/…
using standard fopen, fread, opendir calls.
W
WAV — An audio file format that stores raw PCM samples with a 44-byte header. No decoding required — ideal for embedded playback.