ITI-500 old rotary dialling phone to gsm conversion

Discussion in 'The Projects Forum' started by arunpradh, Apr 25, 2016.

  1. arunpradh

    Thread Starter Member

    Dec 11, 2013
    42
    3
    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.
     
  2. Sensacell

    Well-Known Member

    Jun 19, 2012
    1,128
    266
    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.
     
    arunpradh likes this.
  3. arunpradh

    Thread Starter Member

    Dec 11, 2013
    42
    3
    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 .
     
  4. Ramussons

    Active Member

    May 3, 2013
    557
    92
    The normal dial pulses at 10 pulses/sec. The make : break ratio is 1 : 2.
     
    arunpradh likes this.
  5. arunpradh

    Thread Starter Member

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

    Active Member

    May 3, 2013
    557
    92
    You can get GSM modules from about Rs. 900/- onwards. Try Amazon.
     
  7. arunpradh

    Thread Starter Member

    Dec 11, 2013
    42
    3
    OK

    can i post it in the complete project forum?
    after successful completion
     
    Last edited by a moderator: May 3, 2016
  8. marcf

    Member

    Dec 29, 2014
    136
    19
    Actually the ratio is 33% make to 66% break.

    Sorry I got that backwards it it 60% make 40% break.
     
    Last edited: Apr 30, 2016
  9. Art

    Distinguished Member

    Sep 10, 2007
    785
    61
    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.
     
  10. BR-549

    Well-Known Member

    Sep 22, 2013
    1,981
    388
    48 VAC at 20 Hz might pose a problem.

    Can you find a sound file that imitates that ring?

    A ring tone perhaps.
     
  11. absf

    Senior Member

    Dec 29, 2010
    1,492
    371
    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
     
    arunpradh likes this.
  12. Art

    Distinguished Member

    Sep 10, 2007
    785
    61
    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.
     
    arunpradh likes this.
  13. marcf

    Member

    Dec 29, 2014
    136
    19
    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.
     
    arunpradh likes this.
  14. arunpradh

    Thread Starter Member

    Dec 11, 2013
    42
    3
    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 .

    i got the exact number from dialler and i also added speed dial facility which include my friends and family.

    are they costly
     
    Last edited by a moderator: May 3, 2016
  15. absf

    Senior Member

    Dec 29, 2010
    1,492
    371
    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: May 3, 2016
  16. arunpradh

    Thread Starter Member

    Dec 11, 2013
    42
    3
    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: May 3, 2016
  17. sammygrace

    New Member

    May 3, 2016
    1
    0
    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!
     
  18. marcf

    Member

    Dec 29, 2014
    136
    19
    arunpradh likes this.
  19. arunpradh

    Thread Starter Member

    Dec 11, 2013
    42
    3
    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]
     
  20. arunpradh

    Thread Starter Member

    Dec 11, 2013
    42
    3
    i did the project for my friend . it is an sms based motor controller .
     
Loading...