Intercom using two old dial telephones

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.

system.jpg

box.jpg

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

intercomBasic1.JPG

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.

system.jpg

box.jpg

intercomBasic1.JPG

tel_Intercom_v0_08P.ino (11.4 KB)

Telephone_Intercom_v0.03.pdf (85.5 KB)

Telephone_Intercom_v0.04.pdf (86 KB)

3 Likes

Love it! now i wish i had two old phones to test it out...

sobNorway:
Love it! now i wish i had two old phones to test it out...

I've just now built a device for myself as I had 6 PCBs made, the minimum order quantity. The original device is now with the customer. The local online auctions here sometimes have nice old phones for sale and eBay has also. Here is an example I am looking at now:

I have one of those, and been waiting for a while to get another for similar project. One day...

Cheers,
Kari

Very nice project!
Thank you for sharing!

Wow I finally found it! I've been searching a project like your for awhile. Thanks for your efforts and publishing it. I have a request, will post the schematic, BOM and board files? That would save me much time trying to recreate everything from the PDF schematic. Thanks.

I'm pleased you like it. In principle, I can make the PCB design files available in some form. It is not completely straightforward so I don't want to publish them here in their present form.
Just send me a PM with an email address for details.

The phone connect to the screw terminals, right? What are the voice path headers for?

The voice path headers can be permanently bridged. I included these because I intended to use the line interfaces in another project (telephone exchange). The 2uF capacitor between the the 2 voice paths must of course stay connected. In the schematic v0_04, I included another header J10 as a jumper to isolate the load switch or to operate it independently of the mcu, for testing all the switched side of the circuit. It is also not strictly necessary. If you use a dip version of the ATtiny84, you can remove that for such tests instead.

I can't find 2uF capacitors. Would 2.2uF work?
What does the button do attached to pin5 on the ATtiny84?
I'm modifying design of the power to use just use 24v power adapter with a 5v buck converter. So, I don't need the load switch on pin6. Do you think it will work without modifying the Arduino sketch?

bakegoodz:
I can't find 2uF capacitors. Would 2.2uF work?
What does the button do attached to pin5 on the ATtiny84?
I'm modifying design of the power to use just use 24v power adapter with a 5v buck converter. So, I don't need the load switch on pin6. Do you think it will work without modifying the Arduino sketch?

2.2uF is OK.

The button on ATTiny84 pin5 has been removed in the latest schematic (V0_04) and the matching PCB layout. It was intended to refresh a countdown timer which would, on expiry, force the device into a power off state to preserve the battery life if, say, a phone was left off hook with the device still switched on. It was a relic which was never implemented.

If you dispense with the load switch and connect the boost converter etc. directly to the 5 volts supply, the sketch can run unaltered (I think). Obviously this is not then suitable for battery operation (the power consumption, even quiescent - would be around 100mA). If you are not using batteries, you can also simplify the sketch by stripping out all the sleep mode code.

I'm trying to understand the Line Interface Circuit. How is the Voice line powered both by 24v and 5v? What conditions would cause the voltage to be different from the base and emitter on PNP transistors? Why on both 24v and 5v?

bakegoodz:
I'm trying to understand the Line Interface Circuit. How is the Voice line powered both by 24v and 5v? What conditions would cause the voltage to be different from the base and emitter on PNP transistors? Why on both 24v and 5v?

It requires a 5v side to handle the situation when the ATtiny48 MCU is sleeping and has shut down the boost converter so there is no 24v power supply available. In that case, when a phone goes off hook, the 5v side (always on) is used to wake the MCU. The MCU then switches on the 24v supply and the phones can function. Once the conversation ends, it is the 24v side of the line interface circuit which detects the on-hook and the shutdown begins. The 24v and 5v side have to be separated.

I can't compile the sketch on Arduino IDE I'm getting error: "Serial' was not declared in this scope"
I'm using Attiny support from damellis. Does need specific Library installed? I see only sleep declared I think that is built into Arduino.
I have the hardware all built, the phone intercom is working now with the unprogrammed microcontroller. Excited to have the ring function work.

I'm pleased that you have made progress with this project and I hope this gets you further.

I use this Arduino ATtiny core:

It supports many more ATtiny chips that the damellis core (which appears not to have been updated for 4 years) and the author of this "SpenceKonde" core is an active forum member (screen name DrAzzy) and is very responsive to any issues.

One difference is that the "SpenceKonde" core already defines a softwareSerial instance called Serial and assigns pins to it. 1 for tx, 2 for rx (Arduino pin numbers not package pin numbers, clockwork digital pin numbering system).

My first recommendation is to change to this ATtiny core.

If, however, you want to continue with the damellis core, you could try including the softwareSerial library, create an instance which you call Serial, making the above pin assignments.

You could also comment out all the statements in the code which attempt to print out debug information, but I don't recommend this because you'd be lost if it comes to trouble shooting.

Thanks for directing me to the right board support, now it compiles. Talk works fine, but I can't get ring to work. I rechecked schematics, traces, soldering. I could have missed something, but I hear the relays switch like they are supposed to. It may be that your design is not compatible with phones from the United States that used 90v 60Hz AC to make them ring.

bakegoodz:
Thanks for directing me to the right board support, now it compiles. Talk works fine, but I can't get ring to work. I rechecked schematics, traces, soldering. I could have missed something, but I hear the relays switch like they are supposed to. It may be that your design is not compatible with phones from the United States that used 90v 60Hz AC to make them ring.

I've tested this only with European phones. These old phones were usually designed to work under very sub-optimal conditions so, anyway, I'd have expected some tolerance and also that you would have heard at least some attempt to ring. The design of this circuit is restricted to an absolute max of 36 volts because of the specification of the L293 H bridge.

Anyway, that you are hearing the relays clicking is a good sign, especially if the clicking follows the pulse sequence described below.
Assuming you have built the circuit exactly according to the design, it should perform as follows. If you have made any changes to the design, describe these briefly for now and later you may have to post a schematic.

Phone A and B are initially on hook

  • A goes off hook
  • Led D1 switches on momentarily to indicate the MCU has woken up-
  • Led (either D12 or D13 lights) to indicate the respective phone is now off hook
  • Phone B starts ringing. Here, the relay will click on and off during the ringing to enable the standard UK ring signal ( 700mS on, 300mS off, 700ms on, 3300mS off, all repeated)
  • Phone B goes off hook (is answered). Led D13 lights.
  • At the end of the conversation, both phones go back on hook. Leds D12 and D13 go out and, a few seconds later, Led D1 blinks to show the MCU is entering sleep mode.

If you hear the relay clicking as described above, the problem is likely to be with the L293 or its connections.

With any testing, you have to be careful that nothing you connect across the phone terminals looks like an off hook which will then stop the ringing.

Test 1 is to disconnect phone B and connect 2 leds back to back (that is one reversed against the other) and put a 0.1uF (100nF) capacitor in series with the pair. Put this small circuit in place of phone B. If these leds both flicker during a ring attempt when phone A is off hook, then AC is getting to the phone terminal on the circuit board. The value of the capacitor is too not critical but with higher values, a series resistor (say 1k) would be good. The purpose of the capacitor is to block DC and must be non polarised.

If nothing is getting through, then check on the L293 during a ring attempt:

  1. That 5 volts is applied to pin 16
  2. That 24 volts is applied to pin 8
  3. That pin 1 (enable) is brought high during the active period of the ring burst
  4. That pins 2 and 7 are alternating in opposite phases High / Low, again during only the active phase of the ring burst. This may be difficult to measure, but with a digital multimeter, I guess you'll see 2.5 volts to ground because the duty cycle is 50%. With the meter on AC, you may even see 5 volts between the two pins.

I hope that gets you further but, anyway, describe what you see.

Ok. You may well have done a better job of the PCB than I did. It looks quite compact. Since you are not switching the 24 volt supply, there may be some further scope for optimizing the sense circuit.
You’ve changed at least the ATtiny84 pin which controls the EN1 pin of the H-bridge. Have you also updated the sketch to reflect this change?
If you’ve also updated the sketch, post that here also.

Yes, I had changed the sketch to reflect my change. It's now attached it to the last post. I changed to a 24v trigger on the relay to simplify the PCB wiring. I studied the data sheet of the 2N3904 transistor and I couldn't find a problem with changing the collector and emitter voltage to 24v. I looked to maybe change the voltage on the sense circuit too, but I'm unsure in selecting the right resistors to divide the voltage correctly to the microprocessor. When I get some time, I'll monitor the serial and try to find the problem in my design.

I just have rescued an old dial plate phone from being trashed!
My idea is not to connect two phones, but using a controller, which plays mp3´s to the speaker.

The phone might stay untouched and I want to create a "box" which contains all the necessary stuff.
A button to let it ring and the controller with an SD card to randomly play stuff, when the phone is picked up.

This thread is a really good startingpoint to get used to this topic! I´d possibly ask several questions in the future :slight_smile:

Just found this one:
Turn an old rotary phone into a MP3 player

1 Like