Shop OBEX P1 Docs P2 Docs Learn Events
Telit GSM/GPRS breakout for Propeller proto board - Page 3 — Parallax Forums

Telit GSM/GPRS breakout for Propeller proto board

13»

Comments

  • nthna8nthna8 Posts: 7
    edited 2011-12-07 21:07
    Hello John

    you are correct you should use the Boolean == verses the assignment :=
  • JMLStamp2pJMLStamp2p Posts: 259
    edited 2011-12-08 16:41
    The only problem is that it doesn't work ... :>( I must be doing something else wrong. If anyone knows how to do this please respond with a complete "small" example that I can Dump into my Propeller and give it a Spin. Please give an example based on receiving either "Go" or "Stop" ...
    If I receive "Go" turn on LED-0, if I receive "stop" turn on LED-7.

    Thanks,
    John
  • kuronekokuroneko Posts: 3,623
    edited 2011-12-08 17:06
    JMLStamp2p wrote: »
    If anyone knows how to do this please respond with a complete "small" example that I can Dump into my Propeller and give it a Spin. Please give an example based on receiving either "Go" or "Stop" ... If I receive "Go" turn on LED-0, if I receive "stop" turn on LED-7.
    Quick and dirty, I used LED_16 and LED_17 instead and every time a command is received their state is toggled:
    CON
      _clkmode = XTAL1|PLL16X
      _xinfreq = 5_000_000
    
    OBJ
      serial: "Parallax Serial Terminal"
    
    VAR
      byte  command[32]
      
    PUB null
    
      serial.start(115200)
      waitcnt(clkfreq*3 + cnt)
    
      dira[[COLOR="orange"]16..17[/COLOR]]~~
    
      repeat
        serial.StrInMax(@command{0}, 31)                    ' read command
    
        if strcomp(@command{0}, string("go"))
          LED([COLOR="orange"]16[/COLOR])
          next
        if strcomp(@command{0}, string("stop"))
          LED([COLOR="orange"]17[/COLOR])
          next
    
    PRI LED(pin)
    
      !outa[pin]
      
    DAT
    
    Is this what you're after?
  • JMLStamp2pJMLStamp2p Posts: 259
    edited 2011-12-08 18:44
    kuroneko, First of all Let me say Thank you for taking the time to pass the Code along to me. I am not using the Serial Terminal, I am getting an error on the "StrInMax" command. Not familiar enough with: serial.StrInMax(@command{0}, 31)
    I am using Extended_FDSerial, Texting the commands from my Cell Phone to the TeLit 865cf Cellular chip which is passing them along to my Professional Development Board. Can this code be changed to work in this manner? I am already making a call to serial.start(26,25,%0000,115200)
    earlier in my code.

    Thank you very much for your help,
    John.
  • kuronekokuroneko Posts: 3,623
    edited 2011-12-08 19:00
    JMLStamp2p wrote: »
    Can this code be changed to work in this manner? I am already making a call to serial.start(26,25,%0000,115200) earlier in my code.
    Sure, just be aware that you can receive at most 15 characters this way (i.e. pick short command names).
    CON
      _clkmode = XTAL1|PLL16X
      _xinfreq = 5_000_000
    
    OBJ
      serial: "Extended_FDSerial"
    
    VAR
      byte  command[16]
      
    PUB null
    
      serial.start(31, 30, %0000, 115200)
      waitcnt(clkfreq*3 + cnt)
    
      dira[16..17]~~
    
      repeat
        serial.RxStr(@command{0})                           ' read command
    
        if strcomp(@command{0}, string("go"))
          LED(16)
          next
        if strcomp(@command{0}, string("stop"))
          LED(17)
          next
    
    PRI LED(pin)
    
      !outa[pin]
      
    DAT
    
    Also note that comma is the default delimiter (CR is always treated as delimiter). Which means you can't have it as part of your commands unless you change the default.
  • JMLStamp2pJMLStamp2p Posts: 259
    edited 2011-12-08 19:15
    Thanks so much, I'll give it a try right now ...
    John.
  • JMLStamp2pJMLStamp2p Posts: 259
    edited 2011-12-08 19:38
    For some reason it did not work, I might have made a mistake so I posted the whole code here ....
    Do you see where I am going wrong?
    John.
    '

    CON
    _clkmode = xtal1 + pll16x
    _clkfreq = 80_000_000

    OBJ
    serial: "Extended_FDSerial"


    VAR

    long Stack[400], rxStr_stack[20],rxStr_array[20]
    Byte Byte_Array[15],datain[16]
    byte command[32]

    PUB INITIATE |x

    dira[0..7]~~

    serial.stop
    serial.RxFlush
    serial.start(26,25,%0000,115200)


    serial.str(String("AT+CMGD=1,4",13))
    waitcnt(clkfreq+cnt)

    serial.str(String("AT+CMGF=1",13))
    waitcnt(clkfreq+cnt)

    serial.str(String("AT#SMSMODE=0",13))
    waitcnt(clkfreq+cnt)

    serial.str(String("AT+CPMS=ME",13))
    waitcnt(clkfreq+cnt)

    serial.str(String("AT+CNMI=1,1,0,0,0",13))
    waitcnt(clkfreq+cnt)

    serial.str(String("AT+CMGS=",34,"+1205******* ",34,13)) 'Install your number
    waitcnt(clkfreq+cnt)

    serial.str(String("System Is Initiated"))
    waitcnt(clkfreq+cnt)

    serial.tx(26) 'Send the message via CTL+ Z
    waitcnt(clkfreq+cnt)


    '
    ' Receive Code
    '

    waitcnt(clkfreq*3 + cnt)

    repeat
    serial.RxStr(@command{0}) ' read command

    if strcomp(@command{0}, string("go"))
    LED(6)
    next
    if strcomp(@command{0}, string("stop"))
    LED(7)
    next


    PRI LED(pin)

    !outa[pin]

    DAT
  • kuronekokuroneko Posts: 3,623
    edited 2011-12-08 19:48
    JMLStamp2p wrote: »
    For some reason it did not work, I might have made a mistake so I posted the whole code here ....
    You should wrap your code in [noparse]
    
    [/noparse] tags (it's easier to read). Anyway, can you verify that you actually reach the receive part of your program (i.e. by lighting LED 4)? Then I'd suggest you start a debug serial driver (connected to the PC) and dump the raw data received (if any), e.g. instead of the current RxStr loop use this:
    
    debug.start(31, 30, %0000, 115200)
      repeat
        debug.hex(serial.rx, 2)
        debug.tx(32)
    
    Also, are you sure your device can take 115k2 baud?
  • JMLStamp2pJMLStamp2p Posts: 259
    edited 2011-12-08 19:54
    Thanks kuroneko, I usually do that :<) "I've had Too much to think tonight" !
    Getting a little tired and fixing to hit the sack, I'll stay in touch and let you know how it goes ...
    Again, Thanks ...
    John.
  • JMLStamp2pJMLStamp2p Posts: 259
    edited 2011-12-08 19:57
    For easier Reading :>)
    CON
    _clkmode = xtal1 + pll16x
    _clkfreq = 80_000_000
    
    OBJ
    serial: "Extended_FDSerial"
    
    
    VAR
    
    long Stack[400]
    byte datain[16]
    byte command[32]
    
    PUB INITIATE |x
    
    dira[0..7]~~ 
    
    serial.stop
    serial.RxFlush
    serial.start(26,25,%0000,115200)
    
    
    serial.str(String("AT+CMGD=1,4",13))
    waitcnt(clkfreq+cnt)
    
    serial.str(String("AT+CMGF=1",13))
    waitcnt(clkfreq+cnt)
    
    serial.str(String("AT#SMSMODE=0",13))
    waitcnt(clkfreq+cnt)
    
    serial.str(String("AT+CPMS=ME",13))
    waitcnt(clkfreq+cnt)
    
    serial.str(String("AT+CNMI=1,1,0,0,0",13))
    waitcnt(clkfreq+cnt)
    
    serial.str(String("AT+CMGS=",34,"+1205******* ",34,13)) 'Install your number
    waitcnt(clkfreq+cnt)
    
    serial.str(String("System Is Initiated"))
    waitcnt(clkfreq+cnt)
    
    serial.tx(26) 'Send the message via CTL+ Z
    waitcnt(clkfreq+cnt)
    
    
    '---------------------------------------------------------------------
    ' Receive Code
    '---------------------------------------------------------------------
    
    waitcnt(clkfreq*3 + cnt)
    
    repeat
    serial.RxStr(@command{0}) ' read command
    
    if strcomp(@command{0}, string("go"))
    LED(6)
    next
    if strcomp(@command{0}, string("stop"))
    LED(7)
    next
    
    
    PRI LED(pin)
    
    !outa[pin]
    
    DAT
    
  • 3dotter3dotter Posts: 3
    edited 2012-02-22 11:54
    Tubular wrote: »
    Hi 3dotter,

    The GE865 has "solder bumps" (half balls) underneath it, on a 2.4mm pitch 8x8 grid. There bumps are about 1mm diameter. My pcb has plated through holes that are slightly larger to accommodate the bumps. So to assemble, the GE865 is placed on table with bumps facing upwards, and the thin pcb is placed over the top. Then you just go over each "plated through well" (which has a GE865 solder bump at its bottom) and melt the solder ball so it solders to the wall of the "well". The PCB is very thin, about 0.7mm, and this permits a fine tip iron to easily make contact with the solder ball itself.

    The antenna is just another bump that is soldered the same way, and it connectors to a MMCX connector a minimal distance away.

    The arduino version is getting proto'd now, it'll be a little while until I have production boards in that format. I have matching prop boards available now

    The easiest way to deal with the level shifting is run the Prop or other mcu from 2.9~3.0 volts DC. Sure it involves another adjustable regulator but thats simpler than level shifting. The arduino version has a couple of quad level shifters on board so it can have a 5v rail happily.

    Just PM me if you want to purchase, $10 per board plus something very miniscule for postage

    Hi,

    Is the Arduino version there already? I am very curious about that!

    Best wishes,
    3dotter
  • Ze_ricoZe_rico Posts: 3
    edited 2013-03-19 09:52
    Tubular wrote: »
    I have worked with the GC864 but decided to cut straight to the GE865 and avoid that fine pitch 80 way molex connector.
    Hi Tubular,
    your thin PCB for BGA is really brilliant !
    I still have some CG864 in my drawer and I was just wondering if you still have some PCBs for GC864 that i can buy to you or any schematic I can use to redesign a new one ?
    (gerber could be also ok, as it's mainly to do some evalution with this module)
    An arduino shield form factor would have been ideal but I'm maybe asking too much ;-)
    cheers
    Eric
Sign In or Register to comment.