The second most significant feature of these vintage phones, after the rotary-dial, is the characteristic ringing bell. Here the thing gets a little more complicated: Old phones have a electromagnet driven bell inside which sounds wonderfully well, but also requires very specific signals to be driven.
In order to drive the bell we will require an at least 30V AC signal with 20-25 Hz frequency, which of course needs to be turned on and off appropriately (1 second ringing, 4 seconds pause, and repeating). In really old telephone exchanges this signal was produced by a electric little motor switching on and off contacts at the specified rate. These are the steps to obtain such a signal:
- A DC voltage of 30V needs to be obtained: This can be done either boosting up the 5V provided by our Raspberry Pi or down-converting and rectifying a higher voltage (such as the one from the AC sockets for instance).
- Once this is achieved the signal needs to be switched with a frequency of 20-25 Hz and the polarity needs to be inverted so that the electromagnet ringing the bell functions properly. This can be achieved by a PWM switched DC converter and an H-Bridge
On the other hand they are also commercially available ringing signal generators, which is the out of the shelf solution.
I choose to buy the Ringer module described above from E-Bay. Apparently they are used to generate ringing signals for backwards compatibility of older line-phones. It cost $25 and was shipped from Israel.
The module has 5 wires:
- V+ (12V)
- V- (GND)
- RNG1 and RNG2 : The bell is connected between these two
Unfortunately, the signal generator is continously active until the INHIBIT signal is pulled high, 12V in theory. Somehow I managed to make it work with the 5V digital output from the Raspberry Pi.
I also used a step-up 5V to 12V converter to feed the newly acquired ringer module.
The whole setup needed some high valued capacitors in order to account for power demand peaks.