https://github.com/sch3fr/talk-a-box
rp2040 based talking toy
https://github.com/sch3fr/talk-a-box
because-im-time-constrained-dont-judge-me circuitpython vibe-coding
Last synced: 2 months ago
JSON representation
rp2040 based talking toy
- Host: GitHub
- URL: https://github.com/sch3fr/talk-a-box
- Owner: sch3fr
- Created: 2025-07-22T17:57:25.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2025-07-22T18:04:24.000Z (2 months ago)
- Last Synced: 2025-07-22T19:31:06.317Z (2 months ago)
- Topics: because-im-time-constrained-dont-judge-me, circuitpython, vibe-coding
- Language: Python
- Homepage:
- Size: 1.95 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# talk-a-box
rp2040 based talking toy[UNFORTUNATELY VIBECODED]
## How does this thing work
This project runs on a rp2040 Pi Pico clone with 16MB of flash memory. There are 41 audio files in wav format (that I can't distribute) saved to the flash storage of the device. After a press of a pushbutton, the device randomly takes one of the files and plays it on the speaker, then goes to sleep, until the button is pressed again. There is a playlist functionality built in with shuffle applied, so it's not truly random.
## What do you need to build this
- Rpi2040 pi pico clone with larger flash (I used 16MB one)
- 8 ohm speaker
- LiPo battery and charging module
- push button and power switch
- MAX98357A amplifier### Notes on audio files
- if you use your own audio files, change the count of the files on line 24.
- the file naming scheme should be as follows: 0001.wav, 0002.wav, 0003.wav etc.
- the files should be stored in /audio/ folder## Wiring
- LiPo module to VBUS
- PI GP0 to amp BCLK
- PI GP1 to amp LRCLK
- PI GP2 to amp DIN
- Pi GP6 to amp SD
- pushbutton to PI GP3
- make sure to properly ground everything (charging module, the other button lead, speaker and the AMP)