elato/sidekick
Pocket-sized always-listening AI companion. Dual MEMS mics, class-D audio, ESP32-S3 and a two-hour print for the shell.
A palm-sized, always-listening AI companion. Two MEMS microphones for beamforming, a 3.2 W class-D amplifier, and an ESP32-S3 doing wake-word detection locally before anything leaves the device.
media/cover.png
Why this exists
Most "smart speaker" reference designs assume you have a reflow oven, a
.sch you cannot open, and a BOM that went obsolete in 2023. Sidekick is
built the other way round: everything is orderable today, the board is a
4-layer JLCPCB stackup that costs $2.10 in quantity 5, and the shell prints
on a stock Ender in about two hours.
What is in the box
| Subsystem | Part | Notes |
|---|---|---|
| Compute | ESP32-S3-WROOM-1-N8R2 | 8 MB flash, 2 MB PSRAM |
| Audio in | 2× INMP441 | I2S, 30 mm apart for beamforming |
| Audio out | MAX98357A | 3.2 W into 8 Ω |
| Power | TP4057 + ME6211C33 | USB-C charge, 500 mAh cell |
| Storage | W25Q128 (optional) | Offline voice assets |
Build it
- Order the PCB. Hit Order PCB above, or upload
electronics/gerbers/to any fab. The stackup is JLC04161H-7628; nothing exotic. - Order the parts. Buy components resolves every line of the BOM against LCSC, DigiKey and Mouser and shows you the cheapest complete cart.
- Print the shell.
mechanical/sidekick-shell-base.stland-lid.stl. PETG, 0.2 mm layers, 3 walls, 22 % gyroid. No supports. - Assemble. Reflow the top side first, hand-solder the USB-C shell, then the connectors. The bottom side has two parts and can be skipped entirely if you do not need offline assets.
- Flash.
git clone https://github.com/elato/sidekick
cd sidekick/firmware
idf.py set-target esp32s3
idf.py -p /dev/ttyACM0 flash monitor
Known errata
- rev 2.0 shipped without the 5.1 k CC pulldowns, so some hosts will not enumerate. Fixed in 2.1. If you have a 2.0 board, tack two 5.1 k resistors from CC1/CC2 to ground.
- The silkscreen for
SPKoverlaps padJ3.2. Cosmetic only. - U4 has no thermal relief on the pour. It solders fine with a hot plate but is annoying with an iron.
Forking this
The interesting variants so far are a solar-powered build, an nRF5340 port that gets ~9 days on the same cell, and an e-ink version that shows transcripts. All three are one click away under Forks.
License
Hardware is CERN-OHL-S-2.0. Firmware is Apache-2.0. Do what you like, publish your changes.