Seeking advice: how to connect sounds to buttons

Hi guys,

For a new project I’m looking for a way to create something that looks like an old school (house) phone with push buttons to enable listening to stories that are connected to the numbers. Does anyone have an idea what kind of technique I could look into? I hope so! Super curious.



Adafuit has varous soundboards that may work. The content is limited.

You can also combine a MP3 player and an Arduino which may provide more content. i.e. the stories are stored on an SD card. The Arduino can select a file that is on the player based on a button push.

Search on audio, arduino and MP3 and there are a lot of projects you can look at.

I would find a retro phone with PB’s and hack the keypad to be a matrix as I see @easytarget suggests.

As an Amazon Affiliate, I earn from qualifying purchases.


If you start with a small MCU like a ESP-32 that has I2S sound support and add a I2S module that plays back into the phones speaker (either by replacing it with a small speaker, or adapting to the existing phone circuit) you can handle the ‘play back a story’ part quite well.

Nice basic guide here: Sound with ESP32 - I2S Protocol | DroneBot Workshop

ESP-32’s (typically) have 4Mb or so of flash ram that can handle quite a lot of Audio content with good encoding. Or use a SD card module (some development boards build one in) so you can record stuff on your PC for playback.

For the keyboard part; you can either hack the internals of the phone and put a matrix keyboard in (lots of tutorials online about how to make/read these). But it is probably easier to keep the phone circuit and use DTMF decoding to read the keypad.

This looks promising: GitHub - Adrianotiger/phoneDTMF: Detect DTMF without external devices the ESP32 etc have good enough DAC/inputs to decode a DTMF signal.

There are also dedicated DTMF decoder chips:

DTMF? I hear people ask… Dual Tone Multiple Frequency, I’m old enough to remember when having a DTMF phone was considered ‘hi-tech’. Gulp…

This is fun: Online Tone Generator - A free and simple way to generate DTMF dial tones.

Add in a switch (or circuit) to detect when the receiver is lifted and start the sequence and this could work quite well!


Funny I just recently watched the DroneBot video on I2S. Looks quite interesting but have not tinkered with it yet.

I am old enough to remember…click click click bzzzzz [good old tip and ring]

This would be a fun way to do this…


Here is a very old phone (1924) I modded to convert it into a “fully working bluetooth phone”.
I also decoded the original keyboard to count the pulses and decode the numbers.
This being done you could use this number to index any mp3 player

Sorry the full description is in french but translation is easy nowadays !


I was going to say a small rPi Zero to do the DTMF decoding and MP3 playback and found this googling. You might find the conversation rings a bell with what you’re looking for:

Like the ESP32 option too.

1 Like