Sagem/Hilo GPRS (Libelium) TCP Connection issues

I’ve been trying to use Arduino + Libelium GPRS to create a TCP connection and transfer some data to a remote server.

I SEEM to be establishing a connection, but when I try to sniff (Ethernet Sniffer) at the “remote” server (my own machine), I see no TCP SYN or any other frames coming from the Arduino.

The commands I send (from GPRS boot) are:
AT+CGPADDR (I get an IP address which seems legitimate similar to IP that my iPhone gets for example from same cellular network)
AT+KTCPCFG=0,0,“x.x.x.x”,80 (x.x.x.x being my IP address)
AT+KTCPCNX=1 (a short pause is observed, and then I get “OK”)
AT+KTCPSND=1,10 (I get a “CONNECT” prompt, then I enter my data and terminate the string)
I then get a “+KTCP_NOTIF: 1,8” notification (which seems to indicate data WAS sent).
I then close the connection with “AT+KTCPCLOSE=1,0”, followed by “A+KTCPDEL=1”.

Can this be an issue with settings? (like APN/user/pass)?
Can someone please post FULL sequence of establishing a TCP connection? (I tried using samples from the latest PDF of Sagem AT Commands Edition 5.0 from Jan15, but no luck).

No luck = Nothing is observed in my sniffer.
I did verify that I am NOT behind a firewall or any other issue as I am able to browse to the “remote” server from my iPhone.
I also tried the same GPRS settings as in my iPhone( “uinternet”,“orange”,“orange” - for Orange Israel, btw).

I will be VERY glad if someone could give my ANY kind of pointers.
I am out of ideas at the moment.

I am using “SAGEM HiC,A.004.06” (ATI3)


UPDATE: Sorry guys I was an ass. I had Norton AntiVirus on my computer, that’s why I didn’t see the GPRS connection.
Now I get the SYN frame, but no data afterwards.

I tried using a simple TCP server listening application, but I can’t figure out HOW EXACTLY to send the data.

  • Do I need parenthesis ("") surrounding my text?
  • The manual suggests using Hardware flow control, but the Arduino only has TX/RX legs (no CTS/RTS). How is hardware flow control possible then?
  • If I start sending “AT” (after I see the “CONNECT” message), then data is flowing and I see all the data I send, but If I don’t start with “AT”, I get nothing?!?

Please help!

OK I have now recognized that I'm experiencing the same issue as another user has (having to write the 'A' character before any TCP DATA transmission).

I'm now facing a difficulty with upgrading the firmware. The upgrading manual states that the user MUST set the DTR line to GNS (low). However, I'm not aware that the Libelium Shield has a DTR line exposed?

How did anyone manage to upgrade the module? When I run the tool, although I use the right COM port and speed (did AT+IPR=115200, tried also messing with AT&D and AT&K to trick the PC software). Nothing worked. I'm affraid to use the "Force Download' optino since it cannot really communicate with my board. I have a4.006 revision.


I am working on the same thing but havent bought the module yet, let me know if you can send data to the server and read data back, because I was thinking of getting the HWkitchen gsm module, but if you have sample code I could learn from then would probably buy the hilo which is also slightly cheaper. -Claudio


Basically sending and reading data works fine, besides the small bugging issue of having to start each data stream with a captial ‘A’. (strange bug!).
I do not have any Arduino code at the moment, all I’m doing is operating the module via a Terminal application and typing the commands myself (or an automated script).

In addition, keep in mind that each GSM module has its own “version” of AT commands when it comes to TCP/UDP connection-handling/traffic-management. This makes changing vendors a pain.

I will keep you posted on how it goes :slight_smile:

Have you tried the Libelium's "Upgrading Hilo firmware tutorial": ?