Introduction: TOWA Phone

About: come visit me!

Some days ago, when i was scrounging through the closet i've found an old rotary dialer telephone.

These kind of telephone cannot be used nowdays due to incompatibility between pulse and tone dialing.

Before trash it i ask to myself: how can i transform it ?

TOWA Phone
There Once Was A Telephone

My aim was to replay old feelings: classical ringing sound, rotating dialer and a heavy comfortable handset. Then i decided to relive that and so, in this instructables, i'll show how to transform a rotary dialer telephone to GSM telephone using Arduino and a SIM900 GSM shield.

From late 60's till 1985, the only Italian telephone company (SIP) furnished to each contract subscriber a basic rotary dialer telephone Siemens AUSO brand named "bigrigio", that translated means "double-grey". Expensive calls and slow number dialing didn't help to people communications like today.


Step 1: Features

Old and new technologies are melted together to re-create an ordinary GSM telephone.

Features:

  1. make phone calls to the number dialed
  2. receive calls
  3. sends singles DMTF tone
  4. favourite phone numbers fast call
  5. classic bell ringing
  6. status led

1) To make a phone call you have to pick up the handset and dial the number, that's all. Terminate call hanging up the handset.

2) When phone is ringing, pick up the handset to answer. Terminate it hanging up.

3) If you call to a support center or an office, usually you have to dial numbers to connect a specific department. You can do this because TOWA sends sigle DMTF tones.

4) Inside Arduino script you can add your favourite telephone numbers and combine it with a specific integer number. For example i've stored my favourites combined with numbers from 1 to 8. So when i pick up the handset and dial 1, starts a call to my wife , when i dial 2 or 3 starts a call to one of my sons, and so on.

5) A simple device recreate the classic bell ringing.

6) With a RGB led blink you can check GSM status: RED light = offline, GREEN light = online, BLUE light = incoming call

Step 2: Equipment

Prototype was made with Arduino UNO R3 but i needed more space, then i decided to adopt Arduino Pro Mini.

There is no need to add speakers and microphone to handset, after tested you can connect it directly to SIM900 shield to add a vintage sound to your voice through the phone.

Here what i've used:

vintage telephone

Arduino Pro Mini

SIM900 module

5V relay module

RGB Led

DVD player DC motor

Power supply

4 x 220 ohm resistors

Jumpers M-M / M-F / F-F

3x7 or 5x7 cm prototyping PCB

a pen spring

a screw that fit inside the spring

some plastic scraps and cable tie

some screws and bolts

Insulating tape

Solder

Drill

Mobile telephone SIM card

Step 3: Schematic, Hook Switch and PCB

Inside the telephone you'll probably find 4 hook switch contacts connected to PCB that tell to phone the handset position. Choose the one that, starting from normally open, has only two opposite couple copper strips .

Isolate PCB by telephone base with insulating tape.

I've tryed to reuse original PCB board, but i've wasted time. I've replaced with a brand new 3x7cm PCB where are soldered resistors. Then PCB has been soldered directly to hook switch contacts, since it fits correctly.

Connect RGB led anode to PCB ground though 220 ohm restistor. Catodes are connected directly to Arduino pins. At the end, drill telephone chassis to fit RGB led.

Consider that on schematic, BLUE contact must be connected to READY and WHITE to PULSE of the rotary dialer as showed in the next step.

Step 4: Rotary Dialer

First thing is to know READY and PULSE cables from the rotary dialer.

In my case READY cables are blue and brown, PULSE are red and white cables. There are a lot of tutorial on internet that explain. The easy way is to detect the couple of contacts that opens and closes repeteadly during dialer rotating to know that they are PULSES cables. The others will be READY cables.

One cable from READY (blu or brown, it's the same) and one from PULSE(white or red, it's the same) goes to the common ground. The others will be connected as showed on schematic

Step 5: Telephone Ring

To recreate vintage feelings, i have discard any buzzer sounds (it can be implemeted also). Then i've thought to remove one of two bells to make the space for a DVD player DC motor. Remove motor from a broken CD or DVD player with its little screws, then add on its rounding wheel a pen spring. After orizonthal spring positioning(you can add a metallic wire for more stability), put the screw at its end and test everything with the remaining bell. Find the correct position and fasten with a plastic scraps to telephone basement (you have to do several tests to find correct motor position). Find a place where fit the relay module then connect DC motor positive cable to COM relay and negative cable to PS ground. From relay connect a cable from relay module NO to power supply positive pole. Be careful, do not connect to ARDUINO VCC.

Isolate relay module from telephone basement with insulating tape.

Step 6: SIM900 GSM Shield

When i got the shield, due to my poor Arduino knowledge, i thought was not able to use it. After some internet searching i understood that it's easy. It's talk with Arduino with only two pins, another pin is for reset feature, finally VCC and GND pins. Before everything you need to set communication channel. My configuration provides for Arduino communication through pins D4 and D5, so i've changed GSM.cpp file inside the library as follow:

decommented:

//De-comment this two lines below if you have the
//first version of GSM GPRS Shield

#define _GSM_TXPIN_ 4
#define _GSM_RXPIN_ 5

commented:

//De-comment this two lines below if you have the
//second version og GSM GPRS Shield

//#define _GSM_TXPIN_ 2

//#define _GSM_RXPIN_ 3

Then exit and save. After that, include library inside Arduino IDE.

Now set shield jumpers as showed in photo.

There are two modality to connect the telephone handest to the shield. It can be connected with classics 3.5mm audio jack or can soldered directly on the shield using holes named N-S & P-S (negative/positive speaker) N-M & P-M (negative/positive microphone).

The antenna has been connected to the shield through an extension chord included in the package.

Remove any access code from your SIM card and insert into the shield.

It's now ready and can be connected to Arduino.

Step 7: How the Code Works

For first Download from Github rotary dialer and SIM900 libraries.

Softwareserial library is needed, too.

When Arduino is powered on, you should push GSM shield power on button.
To avoid this, at script starts, Arduino send a signal through D9 pin so the shield goes ON.

Upload script, wait about 20 seconds and when RGB LED geen light start blinking (check into serial monitor too):

-Hanging up telephone: system listen for incoming call and network status. A green led blinking means network status OK, a red led blinking means network or system problems, a blue led blinking means an incoming call.

-Telephone ringing and blue led blinking : picking up the handset let communication starts. It ends hanging up the handset

- Picking up the telephone (without incoming call): stops any led blinking and system listen inputs from rotary dialer. Each number dialed is stored inside a variable. If you don't select another number within 5 seconds, system starts a telephone call to the number dialed.

Favorite number function allow you to store, inside the scripts, your favorite telephone numbers giving them a single number for a fast call.

Inside function void favoriteNumbers() you can add your favourite numbers.

void favoriteNumbers(){
     
     if (stringOne=="1\0"){
	stringOne="911"; // emergency call
	a=10;
      }
      if (stringOne=="2\0"){
        stringOne="7034820623"; // CIA call
	a=10;
      }
      if (stringOne=="3\0"){
	stringone="PUT_YOUR_FAVORITE_NUMBER_HERE"; // favorite number call
        a=10;
      }
...... 
}  

In the case above mentiones (if you are in US): pick up the telephone, dial 1, wait 5 secons so starts a call to emergency number.

Dialing 2, starts a telephone call to Central Intelligence Agency headquarters.

etc.


DMTF tones

if there is a telephone call active, dialing a number mean sends a DMTF tone.

Hook switch position

If hook switch choosen (step 3) starting position is normally close, change variable status reading as follow:

void loop(){

	int alarmArmed=digitalRead(alarmArmedPin);
	if (alarmArmed==HIGH){ // Arduino read  PIN 10 status

......
} 	

Step 8: Final Result

I'm very happy of the final result.

I didn't expect for a daily use, but i've bought a new SIM card and TOWA phone is permenently on my desk now.

Finally with a power bank become portable too !

Trash to Treasure Challenge

Participated in the
Trash to Treasure Challenge

Automation Contest 2016

Participated in the
Automation Contest 2016