ITI-500 old rotary dialling phone to gsm conversion

Thread Starter

arunpradh

Joined Dec 11, 2013
55
I wish to use my old 500 type dialler set modified to work using gsm. i have basic knowledge of interfacing gsm modem with micro controllers. I need a hand to make the conversion possible.
 

Sensacell

Joined Jun 19, 2012
3,432
You want to decode dial pulses and use this to dial a GSM phone?

A micro-controller and a simple program could be used to decode the pulses.
It's just a matter of some timing and counting.

Connect a phone dial to an oscilloscope and study the wave forms to start your thought process going.
 

Thread Starter

arunpradh

Joined Dec 11, 2013
55
i think the antique nature must be maintained..
ie. start from the 20 hz 48vac for ringing.
the dial have five wires. can i get the wave form by took the phone from cradle ,power it up .
 

Thread Starter

arunpradh

Joined Dec 11, 2013
55
ok. that will i check with dso. which gsm module is best and cheapest?
it must be efficient, because i wish continuous working.
 

Art

Joined Sep 10, 2007
806
It doesn't matter. By now they are largely inaccurate. It won't always do to time from first to last pulse, but rather you'd still have to count them.
 

absf

Joined Dec 29, 2010
1,968
Problem is after using hand-phones for so long, I can't even remember my friends' phone numbers now. If I go back to the rotary dial phone I'll need to get a small note book to write down their phone numbers before I can use it....

The smart phones are actually making us stupid and lazy...:p

Besides where can you get those rotary phones cheaply?

Allen
 

Art

Joined Sep 10, 2007
806
For counting pulses, to avoid using contact denounce hardware, I simply looked in software for a number of samples consecutive reading contact closed or open.
Here's a dial timer where the middle LED would indicate correct timing,
but this 70's example was a little off:
In fact, most were off.
Then the same counting method above to complete a dial interpreter:
Of course, the LCD only needed for testing.
There is also code probably available that was frequently used to make
rotary dial phones compatible with DTMF exchanges.
 

marcf

Joined Dec 29, 2014
288
20 hz 48vac for ringing.
OK probably not important to get the make break ratio just right, but I would guess any old rotary dial phone would be closer to 60/40 than 50/50. The ring voltage in the US for POTS is approx 100VRMS at 20 Hz. The line voltage is -48V and the ring voltage "rides" on it.
 

Thread Starter

arunpradh

Joined Dec 11, 2013
55
no sound file needed, i just rewind the solenoid which works on 12v a bifiller type so that two mosfets can ring them like in its golden age.

the phone is older than me. i have one in home .

Actually the ratio is 33% make to 66% break.

Sorry I got that backwards it it 60% make 40% break.
i got the exact number from dialler and i also added speed dial facility which include my friends and family.

Problem is after using hand-phones for so long, I can't even remember my friends' phone numbers now. If I go back to the rotary dial phone I'll need to get a small note book to write down their phone numbers before I can use it....

The smart phones are actually making us stupid and lazy...:p

Besides where can you get those rotary phones cheaply?

Allen
are they costly
 
Last edited by a moderator:

absf

Joined Dec 29, 2010
1,968
are they costly
I was working in telephone Exchanges, from GEC Strowger [step by step] to ARF Cross-bar to AXE Electronic SPC. These phones were very common in the 70s and 80s. I could get them free of charge from our telephone workshop. When push button DTMF phones were introduced. The rotary type phones were slowly disappearing and by the 90s, they were almost becoming obsolete. The last version that we used were NEC models.

I should have grabbed a few for my collection but my wife thought they occupied too much space and I had to give them away to my friends. Now we can only get push button phones that send out pulses. May be the antique shops still have them at higher prices.

Allen
 
Last edited:

Thread Starter

arunpradh

Joined Dec 11, 2013
55
YES
SIR, where is your location?.
i saw pawn stars in history tv , they are a large antique collectors.but low rate.

i want to present my phone to my father it was he who kept this for such a long time to regain it's life.
 
Last edited:

Thread Starter

arunpradh

Joined Dec 11, 2013
55
Hello everyone can someone help me with a c code to read an sms from a GSM module with pic16f877 i am using ccs compiler.
thanks!
the format of reading sms/call will be provided in the data sheet,and are using AT-commands.
which modem are you using?i have the codes of frago mastro modem i think a little difference in code. i may send one for reference
[code in c]
#include<pic18f4550.h>
#define water PORTBbits.RB7
#define motor PORTBbits.RB6
#define status PORTBbits.RB0
unsigned char pass[7] = "12345";
unsigned char memory;
unsigned char mem1, mem2, mem3, mem4, mem5, time = 10, count = 0, chk = 0;
void chk_isr(void);
void rx_isr(void);
#pragma code My_HiPrio_int=0x08
#pragma interrupt chk_isr

void chk_isr(void) {
if (INTCONbits.TMR0IF == 1) {
count++;
TMR0H = 0x00;
TMR0L = 0x00;
if (count == time) {
count = 0;
motor = 0;
T0CONbits.TMR0ON = 0;
}
INTCONbits.TMR0IF = 0;
}

if (PIR1bits.RCIF == 1) {
TRISDbits.TRISD0 = 0;
TRISDbits.TRISD1 = 0;
PORTDbits.RD0 = 0;
PORTDbits.RD1 = 0;
if (uart_rx() == '+') {
if (uart_rx() == 'C') {
if (uart_rx() == 'M') {
if (uart_rx() == 'T') {
if (uart_rx() == 'I') {
while (uart_rx() != ',');
memory = uart_rx();
delay(100);
uart_txs("AT+CMGR=");
uart_tx(memory);
uart_tx(13);
while (uart_rx() != '*');
if (uart_rx() == '1') {
if (uart_rx() == '2') {
if (uart_rx() == '3') {
if (uart_rx() == '4') {
if (uart_rx() == '5') {
while (uart_rx() != '*');
mem1 = uart_rx();
mem2 = uart_rx();
mem3 = uart_rx();
mem4 = uart_rx();
mem5 = uart_rx();
RCSTAbits.CREN = 0;
if (mem1 == 'O') {
if (mem2 == 'N') {
{
if (mem3 == '#') {
status = 0;
motor = 1;
uart_txs("AT+CMGD=1\r");
delay(10000);
status = 1;
} else {
motor = 1;
mem3=mem3-48;
mem4=mem4-48;
mem3=mem3*10;
time = mem3+mem4;
time = (time * 5000);
T0CONbits.TMR0ON = 1;
uart_txs("AT+CMGD=1\r");
delay(3000);
}
}
} else if (mem2 == 'F') {
motor = 0;
status = 0;
uart_txs("AT+CMGD=1\r");
delay(10000);
status = 1;
}
}
}
}
}
}
}
}
}
}
}
}
RCSTAbits.CREN = 1;
}

}
#pragma code

void My_HiPrio_int(void) {
_asm
goto chk_isr
_endasm
}

void main() {
TRISBbits.TRISB7 = 1;
TRISBbits.TRISB6 = 0;
TRISBbits.TRISB0 = 0;
status = 0;
motor = 0;
uart_init();
uart_txs("ATE0\r");
delay(100);
uart_txs("AT+CMGF=1\r");
delay(1000);
status = 1;
RCSTAbits.CREN = 1;
T0CON = 0x88;
TMR0H = 0x00;
TMR0L = 0x00;
INTCONbits.PEIE = 1;
INTCONbits.TMR0IE = 1;
INTCON2bits.TMR0IP = 1;
T0CONbits.TMR0ON = 0;
IPR1bits.RCIP = 1; //ENABLE EUSART HIGH PRIORITY INTERRUPT
PIE1bits.RCIE = 1; //RECEIVE INT ENABLED
INTCONbits.GIE = 1; //GLOBAL INT ENABLED
while (1) {
/*-----------------------------------------------------------------*/
if (water == 0) {
motor = 0;
uart_txs("AT+CMGS=""9693409440""\r");
delay(1000);
uart_txs("Motor turned off to prevent dry run\r");
delay(1000);
uart_tx(0x1a);
while (1);
}
/*-----------------------------------------------------------------*/
}
}
[/code]
 
Top