Bill of Materials
Everything needed to build one device. Prices are rough 2026 street prices; the whole build lands around 35 to 50 USD depending on suppliers.
This list is the module build: off-the-shelf breakout boards wired together, the most approachable path. There is also an integrated single board in progress that places all of these parts on one PCB with USB-C, on-board charging, and the amplifier; its design and manufacturing outputs are in the main board chapter.
Core electronics
| Component | Specification | Qty | Est. price | Notes |
|---|---|---|---|---|
| ESP32-S3-N16R8 | 16 MB flash, 8 MB octal PSRAM | 1 | $8-12 | DevKitC-1 form factor recommended |
| MAX98357A | I2S DAC and 3 W class D amplifier | 1 | $3-5 | Breakout board |
| TFT display | One of the two options below | 1 | $4-7 | Both use the same wiring |
| MicroSD breakout | SPI interface | 1 | $1-2 | With onboard level shifter |
| PN532 NFC module | I2C mode | 1 | $5-8 | The common red 40x43 mm board |
| DS3231 RTC module | I2C, with coin cell holder | 1 | $2-3 | Offline schedules and alarm wake; see the coin cell warning |
| EC11 rotary encoder | With push switch, 20 detents | 1 | $1-2 | Panel mount |
| Speaker | 4 ohm, 3 W, full range | 1 | $2-4 | 40 to 50 mm driver |
Display options
The firmware supports two panels, selected at build time (how and why). Both wire to the same pins.
| Panel | Size | Resolution | Notes |
|---|---|---|---|
| ST7735S | 1.8 inch | 128x160 | The default and the most-tested option; the common MSP1803 module has a microSD slot on the back you can use instead of a separate breakout |
| ST7789V3 | 1.47 inch | 172x320 | Sharper IPS glass at 2.2x the pixel density, physically smaller; no SD slot, so pair it with a separate microSD breakout. Build with CONFIG_SAFI_LCD_ST7789=y |
The firmware is sized for the N16R8: 16 MB flash and 8 MB PSRAM. The cheaper N8R2 and N8 variants will not fit the partition layout or the PSRAM working set. The marking is printed on the module can: ESP32-S3-WROOM-1-N16R8.
Power
| Component | Specification | Qty | Est. price | Notes |
|---|---|---|---|---|
| TP4056 charger module | USB-C, 1 A, with protection IC | 1 | $1-2 | Use the 6-pin version that exposes the CHRG status pin |
| LiPo battery | 3.7 V, 2000 mAh or larger | 1 | $5-10 | Size 103450 fits the reference enclosure |
| Slide switch | SPDT | 1 | $0.50 | Main power cut |
Passives
| Component | Value | Qty | Purpose |
|---|---|---|---|
| Resistor | 10 kΩ | 4 | SD card CS pull-up, I2C pull-ups, charge status pull-up |
| Resistor | 100 kΩ | 1 | Battery divider, high side |
| Resistor | 27 kΩ | 1 | Battery divider, low side |
| Capacitor | 100 nF ceramic | 5 | Decoupling at each module |
| Capacitor | 10 µF | 2 | Rail filtering |
The divider values matter: 100 kΩ over 27 kΩ scales a full 4.2 V battery to about 0.89 V at the ADC pin, safely inside the ADC range while drawing only 33 µA. The firmware calibration assumes this exact ratio; read wiring before substituting values.
Mechanical and connectors
| Item | Specification | Qty |
|---|---|---|
| JST-PH 2.0 mm connector | 2 pin, for the battery | 1 |
| Pin headers | 2.54 mm | 1 strip |
| Hookup wire or jumpers | assorted | 20+ |
| M2 screws, 6 mm | enclosure assembly | 8 |
| M2 standoffs, 5 mm | board mounting | 4 |
| Enclosure | 3D printed, see enclosure | 1 |
Optional
| Component | Purpose |
|---|---|
| Capacitive touch pad, TTP223 module, or bare copper foil | The touch play/pause control on GPIO4 |
| External 2.4 GHz antenna | Only for modules with a U.FL connector, extends WiFi range |
Buying advice
- AliExpress has the best prices with slow shipping; Amazon is faster and pricier; Mouser/DigiKey for guaranteed-genuine parts.
- For the displays, search
1.8 TFT ST7735 128x160 SPIor1.47 TFT ST7789 172x320 SPI. Panels with a different controller (such as ILI9163) mostly accept the same init sequence but are untested. - For the PN532, boards with mode selection DIP switches make I2C setup obvious: switch 1 ON, switch 2 OFF.
- Counterfeit TP4056 boards without the DW01 protection IC exist. Prefer the two-chip layout (charger plus protection) unless your battery pack carries its own protection circuit.
- Every component's datasheet is mirrored in the datasheet library.