Arduino based DIY Talking Pet Buttons (Cats, Dogs,...) - easy custom voice samples!

March 27, 2025
Description
Description
Ever wanted to know what your pet wants to tell you?
This won't solve it! But still can spark some joy and fun!
An Arduino-based DIY version of Talking Pet buttons!
It's easy to build and add customized sound samples to use your custom commands in your language and voice!
Update 27.03.2025
- Custom PCB tested and info added
Functions
Buttons are designed to be used by your pet, which does not mean they only work for them ;)
Plays 3 different sound samples out of the box
- I want to go for a walk
- I want to play
- I am hungry
Available in English and German, it is super easy to add your custom samples! By adding them to the SDCard (see details below!).
Hardware and Software
Bill of material
Amount | Item | Link to Amazon | AliExpress | Info |
---|---|---|---|---|
1 | Arduino Nano | Amazon | ||
1 | Speaker | Amazon | ||
1 | DFRobot DFPlayer_Mini | Amazon | Info | |
1 | 1k Resistor | Amazon | ||
1 | SDCard | Amazon | ||
3 | Buttons | Amazon | ||
3 | Springs (3/8"x3/4" or 9.5mm x 19mm | Amazon | ||
12 | M3x5x4 heat-inserts or super glue | Amazon | ||
12 | M3x8 screws or super glue | Amazon | ||
multiple | Wires / maybe some heat shrink |
Equipment
- Soldering Iron
- Crimping Tools (PCB version)
- 3D Printer ;)
Software / Firmware
Arduino IDE, Fusion 360, EasyEda and Fritzing
Upload sound samples to an SD card
You need to prepare an SD card formatted with FAT32 and copy the content of the “samples.zip” file to it.
The content of the card should look like this:
\01\001.mp3
\01\002.mp3
\01\003.mp3
\02\001.mp3
\02\002.mp3
\02\003.mp3
The software supports up to 9 buttons, but only 3 are currently used here. So, if you want to add your custom sounds, you would only need to replace the 3 files in the “01” folder with mp3s of your choice; they need to keep the name, though: “001.mp3,. ..”
Attention Mac users! You might add more files than you think, so clean the “._” files on the card!
if you want to use German commands, copy the content from folder 002 to 001, and the talking buttons speak German!
Upload the Sketch with Arduino IDE
Open the sketch “sketch_my_pet_talks.ino”
Select the correct board and processor:
Board: Arduino Nano
Processor: ATmega328P (Old Bootloader), depends on the board version you get!
My board used: (Old Bootloader)
Use the “Library Manager” to install the following Dependencies
Connect your Arduino Nano and select the correct port.
You can change the volume and folder to load the sound samples.
See details above.
Hit “Upload” now.
That's it. The firmware has now been uploaded!
You can check the logs with the Serial Monitor, which should output something like this if a SD card is inserted and files can be found:
If not, check your SDCard!
Wiring Diagram
Printing Instructions
Print all files in 0.20 mm and PLA,
TalkingPetDIY_ButtonBottom - print 3 times
TalkingPetDIY_ButtonTop - print 3 times - different colors recommended! For better "petablitiy"
TalkingPetDIY_ButtonRing - print 3 times
TalkingPetDIY_SpeakerTop - print with supports. See the example image below.
For all other files, print them one time.
Assembly Instructions
Add heat inserts to the following printed parts
TalkingPetDIY_SpeakerTop - 4 heat inserts for the speaker
TalkingPetDIY_3ButtonsBottom - 8 heat inserts, 6 for the top, 2 for the speaker case
TalkingPetDIY_SpeakerBottom - 4 heat inserts (only needed for PCB version!)
Prepare Buttons
1st, we prepare the 3 buttons and only solder some wires to the two pins shown; I am using one shorter wire for the ground, as I will combine this into one wire.
For each button, we will need 3 printed files and one spring and assemble them like this:
Repeat this step 2 more times. We want 3 Buttons!
Place the Buttons on their Button holder (wires through holes), do not put the Ring on at this point; we will screw down the buttons later!
I combined the ground into one wire for all the buttons.
Close the Button holder and use 6 M3x8 screws to mount the buttons!
Make sure you remember which wire is BTN A, B, C, and GND
(Option B) Using super glue, you can glue the buttons to the button holder.
Prepare Electronics
Connect the Arduino Nano to the df player mini and the speaker.
I used soldering only with wires and heat shrink here. A small breadboard or prototype board might also fit into the case.
Insert the SD Card into the DF Player Mini and put the speaker and electronics into the Speaker Case (everything through the speaker hole). Screw the speaker into the case (M3x8)
Join the Speaker Case and 3-button holder
Screw the speaker case to the three-button holder.
Connect Buttons to Arduino Nano
Now we can connect the 3 buttons; one connection of each button goes from D4 to D6, and the other connects to Ground. I recommend “combining the ground” before connecting to the Arduino.
I recommend using some hot glue to “mount” the
Arduino and the DF Player mini in the case.
Finally, add a USB cable and close the speaker case.
Final Steps
Add the button top parts and rings now. It's done!
Demo and Usage Instructions
Just plug the USB into a USB Power Adapter and start hitting the Buttons for fun! Or better teach your pets how to use them ;)
See demo video at top!
Custom PCB
Custom PCB is tested!
It supports up to 9 buttons, but otherwise is the same as the breadboard / soldering-only solution above.
Prepare PCB
Prepare buttons like above, but add the JST plug
Bill of material
In addition to the Bill of Material above, for the custom PCB version, we need:
- 1-3 x JST XH 2.5 4 PIN (male and female) (buttons, one pair for 3 buttons)
- 1 x JST XH 2.5 2 PIN (male and female) or JST PH 2.0 2 PIN (speaker)
- Custom PCB
- 4 heat inserts M3x4x4 + 4 x M3x5/6 screws
The PCB connects the Arduino to the DF Player mini and the speaker and buttons via JST connectors.
So this step in the assembly guide changes + using a Crimping Tool to add the connectors and adding four heat inserts and screws to mount the PCB into the bottom of the Speaker Case.
Breadboard version