I'm using a SIM908 module on a custom board and am having trouble getting the GPS location from it. Everything else works on the module. I can send SMS, make calls and send and receive data from a webpage. But GPS doesn't seem to work. I am using the antenna pad directly on the chip with a passive antenna.

When I call AT+GPSSTATUS? I receive Location Unknown no matter what I do. I tested this outdoors with clear view to the sky. I expected it would at least give Location Not Fix but Location Unknown seems to indicate GPS is not on, even though I call AT+CGPSPWR=1 and AT+CGPSRST=0 and get "OK" back almost every time. A few times, it has returned ERROR GPS READY, which I can't find anywhere in the datasheets, but I assume is due to not having reset the SIM908 while testing new code.

I have posted my test code below. Am I missing something?

// DDDR initializations (not included)
// UART Initialization
// GSM Power on
PORTD |= (1<<PORTD3);
PORTD &= ~(1<<PORTD3);
// Returns: "AT" and "OK"
// So far all good
// GPS Power on
// Returns "OK"
UWriteString("AT+CGPSRST=0\r");  // Have tried with =1 with no luck
// Returns "OK"
// Returns: "Location Unknown"
// Returns: "2,160745,0.000000,N,0.000000,E,0,0,99.989998,187.000000,M,-187.000000,M,,0000
  • \$\begingroup\$ It seems you're doing everything OK. This AT commands I use on SIM908 module: AT+CGPSPWR=1 AT+CGPSRST=0 AT+CGPSSTATUS? AT+CGPSINF=0 and after approximately 5min. I get location 2D/3D fixed. \$\endgroup\$ – Bip Jun 13 '15 at 18:08
  • \$\begingroup\$ OK, but what does your CGPSSTATUS return when you call it in the beginning. Is it Location Unknown or Location Not Fix? \$\endgroup\$ – Johis Jun 13 '15 at 20:48
  • \$\begingroup\$ At first is Location Unknown, after couple of minutes Location Not Fix and at last Location 3D fixed. \$\endgroup\$ – Bip Jun 13 '15 at 22:58
  • \$\begingroup\$ Alright, I tried with an even longer delay. Even after 20 minutes, it still returns Location Unknown. \$\endgroup\$ – Johis Jun 14 '15 at 11:44
  • 1
    \$\begingroup\$ This is not GPS antenna! \$\endgroup\$ – Bip Jun 14 '15 at 19:03

To conclude, I see three possible options here:

1.) Your chip is damaged

2.) Trace between U.FL and chip is not 50 ohm controlled

3.) Your chip has been reset when trying to connect to network.

Take oscilloscope and how does the signal look on the power supply pins. You need to compensate 2A peak with bypass capacitors.


Is your GSM engine running, and not in sleep mode, check using these commands


Response of AT+CFUNC? must be +CFUNC:1, if its not gsm engine is not running then run it by AT+CFUNC=1

Response of AT+CSCLK? must be +CSCLK:0, if its not then gsm engine is in sleep(slow clock) mode to exit from sleep send command AT+CSCLK=0

Do a gps power cycle, then check for location.

  • \$\begingroup\$ This is quite an old question... I am sure it wasn't in sleep mode. I think I ultimately traced the problem to a bad (wrong choice of) antenna. But your comment might help others, thanks! \$\endgroup\$ – Johis Dec 28 '15 at 23:50

I recently struggle with that same problem, but finally had that solution by proceeding as follows

  1. reset to factory setting by type AT&F or ATZ
  2. type AT+CMGF=1
  3. type AT+CGPSPWR=1
  4. type AT+CGPSRST=0 delay at 5 minutes after typing this cmd.
  5. finally type AT+CGPSINF=0 then you get your locations.

note: the 5 minute delay is only when, the module is just being powered ON.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.