I was asked recently by someone to build an intercom using 2 vintage telephones which I've just completed. This person intended it to use as a toy to entertain his grand child but it could surely have other uses as well.
Making an intercom out of 2 old telephones is nothing new and can be very simple. The very basic circuit is below. See, for example Use old telephones as an intercom
However, these basic circuits do not solve the problem of making the bell ring. A telephone bell needs to be driven by AC and anything up to about 90 volts.
Sometime ago, the GPO (English telecoms provider) also offered an intercom based on two standard 706 pattern telephones. However, they "cheated" with the design, stripping out the original bell and using a low voltage buzzer instead. There is a discussion about the product here. So I've bought a pair of red BT intercom phones... - UK Vintage Radio Repair and Restoration Discussion Forum
I wanted to do better and use the original bell and also make no internal modifications to the telephones, which are anyway now becoming collectors' items.
The specification is very simple. Lifting one receiver will cause the other phone to ring. When the other phone is picked up, or the first phone hangs up, the ringing stops and the voice channel is open. When both phones are back on hook, the system sleeps. There is an interlock to prevent unwanted ringing if, after a conversation, both phones are not replaced on hook simultaneously.
It is based on an boost converter and and a L293D H-bridge chip to power the bell. The MCU is an ATtiny 84 to control it all. Some discrete transistors are used to detect on/off hook. I have already published a bell ringer circuit and the development here is an extension of that design. Ringer circuit for vintage telephone bells. - Exhibition / Gallery - Arduino Forum
One challenge is getting a reasonable power consumption for battery operation. The boost converters are not particularly efficient when stepping up to the multiples of the supply voltage necessary to operate the bell. It is also so that 5 volts is not sufficient (actually depending on the phone) to keep the voice path open. This all means that the boost converter is running when phones are being used, not just when these are ringing. I was able compromise a bit by reducing the bell voltage to 24 volts and increasing the frequency to 50Hz to still provide an adequate ring, but you may have to experiment here. It consumes around 100mA in use and 300uA but now only about 1uA when sleeping so there is still some scope for optimisation. However, it also runs off a standard (two amp, not travel) cell phone charger.
The software uses a simple state machine model and sleeps when the phone is not in use. Since the wires between the phones can be quite long and possibly subject to interference, the part to detect on/off hook considers a reading valid only if it has been stable for 50mS or more.
The circuit diagram is included as a PDF. There is a note on it referring to the double use of some pins. Care is required if sharing the pins which are also used for programming the MCU. The design was OK with "known-source" L329D chips but not with others, which had to be temporarily removed during programming. I have left that in place until I have another opportunity to test all combinations on a breadboard but the advice in the meantime is to find another pin for the enable pin of the L329D if you want to program the MCU in circuit.
The PCB, incidentally, comes from allpc*b.com (remove *) and was my first attempt using Kicad. Everything worked perfectly (or better said, everything worked exactly as I had designed it!).
Maybe someone finds this useful.
Edit 1:
A new schematic and program have been attached which now solve the issues of sleep mode current consumption and in-circuit programming mentioned above. A 1k resistor solved the in-circuit programming problem and using internal pullup resistors on two input pins solved the sleep mode current consumption problem.
Edit 2 New schematic version (v0_04) added
I did some tests with a modern DECT telephone and this didn't perform well with the intercom due to the voltage drop in the on/off hook sense part. My previous tests were with dial phones and and a 1988 vintage electronic phone and these worked perfectly well. Anyway, I have now solved the problem by modifying the circuit and have updated the schematic (new is version v0.04). I also solved tidied up some other minor issues. A consequence is that the power source selection (battery or USB) is now by means of a jumper. That is, it doesn't switch automatically. I have left the earlier version of the schematic (v0_03) in case anyone prefers the automatic power switching. The software remains unchanged.
tel_Intercom_v0_08P.ino (11.4 KB)
Telephone_Intercom_v0.03.pdf (85.5 KB)
Telephone_Intercom_v0.04.pdf (86 KB)