A friend of mine is a recording engineer at Tiny Telephone, and when they were expanding to Oakland he came to me with a project: A backer had gifted them a huge Soviet boat anchor of a phone; could I make it do something cool?
We talked about it and agreed that being able to dial a number and get back a song pertaining to that number would be pretty neat.
Rotary phones are fun input devices, and well-suited to microcontrollers because they are easy to read, built to survive nuclear war, and can be read with just two input pins. For this project I wanted the experience to be as phone-like as possible to make it that much weirder. :) To that end I had to leave the shell of the phone intact and avoid adding more buttons. Ultimately the junction box attached under the phone houses all the additional electronics and battery—both for aesthetics, and because this box is easier to open to change the battery.
UX: When the handset is off the hook, a looping dial tone is played until a number 1-99999999 is dialed. If the number corresponds to a song (e.x. 8675309 = Jenny, 4 = 4) the song is played until it ends and returns to the dial tone loop.
If you dial an unmapped number, the error signal is a russian/english wrong number recording. It fits with the provenance of the phone, and is good for getting a surprised laugh out of people.
I rigged up the phone with an arduino and got it onto the wall in time for a pre-opening party where it was a great hit. Thanks to Jacob for bringing me this project and Steve for finding most of the songs!
Here's my recipe for a dial-a-song phone (local use only, can't dial out). This works, and well, but there are probably more elegant solutions...let me know if you come up with any!
One rotary phone
Adafruit Music Maker
Misc wire - I'm partial to salvaging old CAT5 cables.
9V battery, holder, barrel jack
The Boarduino has a few functions: reading the dial and hook inputs, controlling the Music Maker, and providing a 5V power source to the same. The Music Maker just makes music, it is a MP3 decoder and takes its commands over SPI.
Hookup between the phone and Arduino is easy - connect the hook switch and dial switch to their own I/O pins and ground, connect the speaker in the handset to the MusicMaker—that's it! Add a dash of code and you're there. I'm not going to include the code here, since it's mostly just a big table of songs (and I'm not a programer, so it's not the prettiest code).
Hope this inspires you to do something neat with a rotary phone!