Rotary dial phone to Arduino

Remember these old rotary phones. Well, these once universal now nostalgic toys are also awesome input devices that you can easily connect to an Arduino if you are into that sort of thing.

We recently used one, along with a few other marvels of ancient technology, in our newest installation piece called “Hipster Phone”. We will blog about that in more detail soon but for now you can check out CYNETART for more info or browse through photos the Hipster Phone tweeted at #hispterphone

IMG_3895

It was fun hacking a rotary phone and I hope you will find this DIY tutorial of how to hack one useful. Don’t worry if you are not that good with electronics, the circuit we built is minimal (you will need exactly four resistors), and the Arduino code is not that complicated either.

So here is how we actually hooked it to an Arduino and got some digital awesomeness out of it. What you do after that is totally up to you, for example, we used Processing to have this phone make internet calls but we won’t get into that here.

Ok, so let’s start with the most obvious part. The headset.

IMG_3902

Open the headset and see what kind of microphone and speaker you have there. If you are lucky, both will still be working fine, and all you will have to do is to connect them via a 3.5mm audio cable to your computer’s mic and headphone jacks. Most of these old pieces are sturdy enough to survive and function even better than today’s mics and speakers. We found that our speaker was still alive and sounded quite clear, but the mic didn’t work so much out of the box.

Use a standard computer headset to test if they work or not. Both the mic and the speaker usually connect with two wires which are impossible to miss in the old handsets. Simply weld in the part(s) that work and use new parts for the broken ones.

IMG_3903
Here are some close ups.

IMG_3904

IMG_3905

IMG_3901

After you tried your new computer headset in a Skype call, let’s move on to the fun part.

Open up the phone’s body. A screwdriver may make your life a lot easier here. Now let’s identity what we have inside the box and look for two specific things. First, the two wires that tells the phone whether the handset is up or down. This should be fairly simple.
Here is how this looks like on my phone. I simply connected two wires of this switch.

IMG_3910

The second and perhaps more difficult part is to eyeball the two wires that connect every time a number is dialed. Here is a closer look at the dial wheel from the back.

IMG_3913

The mechanism here is so simple. Everytime a number, say 5, is dialed, there is a little mechanical switch that connects two wires (the number dialed + 1) times, which in the case would be 6 times.

There are four wires in total coming out the back side of the dial, and the ones we are looking for are usually on one side of the dial.  But if you can’t point out which two wires are the switch we are looking for, you can simply try a couple of them with the help of a little Arduino sketch to read their outputs.

After you identify two wires for the handset and two more for the dial, read their outputs with an Arduino digitalRead sketch. If they are stable you are good to go. If not, you might to use this little circuit as a way to stabilize their signal.

rotaryphone

The idea behind this circuit is to connect the input wires let’s say of the handset to the 5 volts pin. If the two wires are not touching, the current flows through the 10 k resistor to the digital input pin (7 for the handset), and we get a signal which tells us “handset up”. If the two wires are touching, the current flows through the smaller 2 k resistor and through the handset wires then to ground (GND),  so we get nothing at pin 7 then we know that “handset down”. Same thing goes for dial input.

Here is how my circuit looked like after some hardwiring. (Notice that unlike the diagram above I was using Arduino pin 3 not 7 for the handset).

IMG_3908

Ok the final step is to connect the Arduino to your computer and write some code that reads the dial numbers and also tells us whether the handset is up or down. This is exactly what I wrote here (with comments explaining the steps). It’s a simple sketch that prints to serial “handset up” or “handset down”, and it also prints the numbers dialed. It should help you test your phone and to use it as input for any other setup that can read serial.

IMG_3896

That’s it.

Cover the phone once more, and have fun with to whatever your imagination may lead you with this little gadget.

Hint: We connected it to a screen and using Processing, it made one kickass Karaoke machine. Give us a ring if you use it for something awesome!

- Youssef Faltas



Comments are closed.