Electronic – GPRS data call using GSM/GPRS modem (Siemens TC35 and/or MC35)

communicationgsmmodemsiemens

I'm developing a data aquisition module, that amongst other things, it have to comunicate through GSM/GPRS module, since it will be a mobile application.

I can connect to the module and send sms's with not much effort. Since I have to comunicate frequently and with amounts of data "difficult" to manage through sms, what I'm trying to figure out is, can I establish a data call using gprs? In this case I got two modules interfaced to a microcontroller and I want to "call" to the other device, pass the data and hang up.

I'm not sure if this notion of data call between two gprs devices is meant to happen as I expect, but that's why I would grealty appreciate your help!

Thanks!

Best Answer

GPRS is essentially routed over the Internet using TCP/IP, so one thing you should check before proceeding is that you can find a local cell phone carrier that will provide the devices with an externally routable IP address that can accept incoming traffic. Most will sit behind a NAT system and not allow that to occur. Some carriers can provide that service but there may be additional costs and they may limit the service to corporate customers.

Are both your devices remote or are you using a pair of GPRS modems just because you'd previously used one to receive SMS messages? If that's the case it would certainly be easier to have a machine with a permanently on Internet connection with a static IP address to transer the data to/from.

The MC35 devices don't have an in-built TCP/IP stack so you'll need to use PPP to talk to them. Another answer gives some good ideas on how to proceed on that side of things. Once on a resource limited PIC I managed to take the code from Microchip AN724 and add UDP support although it was quite a bit of effort so an existing TCP/IP stack will certainly make it much easier if you have the RAM and FLASH available for it.

Another thing you could consider would be a GSM data call. It's been so long since I've used that I don't know if many / most carriers still support it but that just consists of using an ATD command followed by the other device's normal voice number to initiate the call. On the other depending on the settings you may seem something like RING to which you can type ATA to answer the call. Then the data should be transparently send between them so it's certainly as easy thing to try.