Pamk is a small desk assistant I built in my bedroom: a 3D-printed cube with a 1.69" screen as its face, an INMP441 mic, a MAX98357A amp and a small speaker, all on a custom PCB (KiCad, made by JLCPCB). You say "Hey Pamk", give it a task or an event, and it answers with its own voice. It also runs Pomodoro sessions.
Why the ESP32-S3 (WM-1-N16R8: 16 MB flash, 8 MB octal PSRAM)
- PSRAM: a voice command is recorded as a 16 kHz WAV (up to 15 s), base64-encoded and wrapped in a JSON request to Gemini. That payload is several hundred KB, so it's built in PSRAM.
- Flash: two 3 MB OTA app slots plus a 9.9 MB FAT partition that holds Pamk's 174 pre-recorded voice clips.
- Native USB for flashing and the serial monitor, no USB-UART chip on the board.
Libraries, and why
- Edge Impulse for the wake word: I could train "Hey Pamk" from my own recordings and export it as an Arduino library.…