Hardware guide & bill of materials¶
Recommended build¶
| Part | Recommended | Notes |
|---|---|---|
| Board | Raspberry Pi 5, 8 GB | Pi 4 (4 GB+) also works, a bit slower on the LLM |
| Storage | 32 GB+ microSD, or NVMe via HAT | models are ~1–3 GB total |
| Microphone | USB mic, or ReSpeaker 2-Mic HAT | far-field arrays improve wake-word later |
| Speaker | USB speaker, 3.5 mm, or I²S (MAX98357A) | I²S sounds best in a case |
| Power | Official 27 W USB-C PD (Pi 5) | undervoltage throttles inference |
| Cooling | Active cooler / fan | the LLM will use all cores |
| Case | 3D-printed (optional) | keep mic ports unobstructed |
Choosing models by board¶
| Board | whisper | LLM (Ollama) |
|---|---|---|
| Pi 5 (8 GB) | base.en / small.en |
llama3.2:3b or qwen2.5:3b |
| Pi 5 (4 GB) | base.en |
llama3.2:1b |
| Pi 4 (4 GB) | tiny.en / base.en |
llama3.2:1b |
Smaller models = faster replies. Start small, scale up if latency is acceptable.
Audio setup¶
- Plug in the mic and speaker.
- List devices:
arecord -landaplay -l. - Note the card/device (e.g. card 1 →
plughw:1,0) and setdevicein your config. - Test capture:
arecord -d 3 -f S16_LE -r 16000 -c 1 test.wav && aplay test.wav.
Case & assembly¶
- Any Pi 5/4 case with an active cooler and openings for the mic/speaker works.
- If you use an I²S DAC/mic HAT, pick a case with GPIO access.
- Keep the microphone away from the speaker to reduce echo (or add a small baffle).
Printable case STLs and a wiring diagram are a great community contribution — PRs welcome to add them under
hardware/.