Wiring up old phone ringer to arduino

Look at page 2 and 3 of the schematic .pdf from this page. Sparkfun have done it using an H-bridge and voltage booster circuit. Quite nifty really.


Phone lines normally run on -48v DC (referenced to ground) when the line is idle.

During the ringing cycle (in the US, 2 seconds on, 4 seconds off), a ringing voltage of 75-90v AC (typically 20 Hz in the US) is superimposed on top of the -48v DC.

When you take your phone off-hook, the line card at the central office (CO) senses the current and disconnects the ringing voltage. Meanwhile the voltage at the phone drops down to -12v or so, mostly due to the voltage drop across the line from the CO to your house.

So you cannot ring an older style phone with a voltage lower than 75v AC or so. Also, do not use 60 Hz AC from your house outlet -- that won't work either.

You need some sort of circuit that will create a 20 Hz sine wave (square wave would probably also work), that is amplified to 90v. There is a circuit on this page, under "Telephone Ringer". (Note: I haven't built it, but it looks like it could work.)

You would need a relay connected to the Arduino to turn it on and off.


You could take a small one of those 120V to 6.3V step-down transformers (like RS sells), and 'use it backwards' to step up a low voltage signal from some drive transistors to nearly the right voltage for the phone ringer mechanism.

If you run 5V AC into the 6.3V secondary, you should get about 5 * (120/6.3) = 95.2V out on the primary side, which is a little high, but not terribly so. You could probably get away with using a single switching transistor to drive the secondary from your 5VDC supply, but be sure to put a fly-back diode across the coil to keep the transistor from getting killed. Then it's just a matter of turning the drive transistor on/off at about 20Hz for the desired length of time.