I bought the original Ardupilot and I got the EM406 GPS with it when I bought it. I have been able to set it up as shown in the manual and I have been doing all the tests according to the manual but I am having trouble getting the GPS to work. I have been running the GPS test for the past few days on and off and i am still getting the same message “no GPS, last 20s”. As there is no setting for EM406 GPS i have had it in NMEA for these tests. Any help on this would be great

Thanks everyone

Views: 2170

Reply to This

Replies to This Discussion

Test 1 thing at a time. Is the GPS light OFF (completely!), very dim, ON, or blinking?

OFF = power problem

Dim = Binary mode. Since you are using NMEA it should not do this.

ON = trying to get a fix.

blinking = position fix


Do not move on until you know where to put the GPS so that you can get a position fix.


Step 2. The NMEA parser has been well neglected. It may or may not even be working. Don't try to use it unless you have to. Use the EM-406A's binary protocol instead. 


In AP_Config.h, about line 45, you want GPS_PROTOCOL to be SiRF:


#define GPS_PROTOCOL 1

  // 0 = NMEA

  // 1 = SIRF, 

  // 2 = uBlox

  // 3 = ArduIMU

  // 4 = MediaTek, 

  // 5 = Simulated GPS mode (Debug), 

// -1 = no GPS


Compile, upload, run. Report your results. 

Note:The GPS fix LED may "stick" on, off, or may be dim at this time. After a power cycle the GPS will remain in binary mode and the LED should be dim any time power is applied. (When commanded into binary, it doesn't always set the LED right until after a power cycle.)


The EM-406A will remain in binary mode until its internal battery dies, 4-6 days without power. You will not see NMEA streams coming out of it in a serial monitor.


Thank you for your reply.

I had a chance to try what you said tonight, but with no luck. The GPS starts off with a solid light and then after about 2-3 mins it starts to flash. in the serial monitor i keep getting the same message "no GPS last 20s". I have checked and double checked the board to make sure its all assembled correctly and it seem fine. The first 3 tests were all fine its just the gps thats playing up.

Any ideas where to go from this point?


Thanks again for the help

You should not have in in NMEA mode. The EM406 should be in SIRF mode (1):

It's all described in the configuration file.

After Ken said to change it to SIRF I change it and uploaded the code again but still getting the same message. It goes from a solid light to a blinking one so I guess it is getting a GPS lock but it keeps saying "no GPS last 20s" it registers its a SIRF at the beginning and says how much memory it has.

it looks like this now:


#define GPS_PROTOCOL 1

  // 0 = NMEA

  // 1 = SIRF, 

  // 2 = uBlox

  // 3 = ArduIMU

  // 4 = MediaTek, 

  // 5 = Simulated GPS mode (Debug), 

// -1 = no GPS


I just can't see where i'm going rong.


You might have a bad cable. Check it.

If the GPS light is blinking, not dim, then it wasn't commanded into binary. As Chris said, check the cable. Specifically, check the TX out of the Ardu / RX into the GPS.  


You know that the power and ground wires are OK, else the GPS wouldn't come on and get a fix. The Ardu won't hear the GPS until it is in binary, at the right baud rate, and since yours didn't switch start there (Ardu tx --> GPS rx).


How is your Arduino  programming? You can write a little sketch to open the serial port (default 4800 bps), read bytes from the GPS and echo them back out the serial. Upload and open the Arduino serial monitor (4800 bps). You should see NMEA sentences.


If is possible your GPS didn't get commanded into binary, but the data rate was changed. Try opening the serial monitor at different data rates until you see NMEA sentences. Using that data rate, you will need to send the command to go the data rate you want, and binary.





i bought a new cable to see if that was the problem but im still getting the same message. the gps is still blinking to. i guess i'll just have to buy a new one?


The baud rate is 57600 in the serial monitor.


if there is anything i can post, that might help just say.

i was hoping to be able to take it out for a test flight tomorrow but its not looking good


thanks again for all the input


The EM406 is pretty reliable--it's hard to break it. Other things to check:

--Which GPS input are you plugging into: the ArduPilot board or the shield? Does it work if you use the other one?

--Check the pins in your connector. They can get bent if the GPS cable is inserted crooked

--Did you change anything else in the config file? Are the baud rates all at the default?

--It's been a long time since I used that GPS, but I think it's supposed to be in binary mode (dim LED). When you select SIRF as the GPS style, ArduPilot sends a configuration code to the module to switch it into binary mode. If yours is still blinking with a bright LED, that suggests that this isn't working. That suggests a connection issue to me.

--When you select RAW GPS has the debug mode, what data do you see? You should be getting lots of hex data coming in. If you don't, that means that you're not getting any data from the module, which will help us debug.

We already know that the AP software is not talking to the GPS. There is no need to post screen shots of that. What you need to determine is what data rate you have gotten the EM-406 into. 


Do you have an FTDI to GPS adapter cable? Can you make one? If no to both, you need to write a tiny sketch to upload to the Ardu which will attempt talking at different rates. NOT the AP software. Your goal is to try to listen to the serial port at different data rates until you see the NMEA strings. When you see them, you know the data rate that the GPS is on. Now you can talk to the unit and command it to the data rate you *want*.


If you do not understand what I am asking you to try, then you need to put the EM-406 away in a drawer some place where it will not tempt you. Leave it unpowered for AT LEAST 6 days. Do not become impatient and try it sooner. After 6 days without power, the GPS will revert to factory defaults. It should them be ready to listen to the AP initialization command to put it in binary.


*Slim, very slim chance, but possible:* Have you tried powering up the Ardu with it not connected to the FTDI? Your FTDI cable may be loading the serial line, keeping the GPS from hearing the command into binary from the Ardu. Connect the FTDI after the Ardu and GPS have had a few seconds to talk to each other.

Maybe I can help. I've been through all these problems. transcribe USGLOBALSAT email response. Follow instructions on how to reset the GPS without having to wait for the downloading of the internal battery, and set to NMEA and SIRF. You can also test the GPS connected to a computer doing an adjustment on the cable FTDI: conect GPS (to FTDI  connector): Ground (pin 1 Ground) - VCC (pin 3 VCC) - RX (pin 4 TX) - TX (pin 5 RX). Pin 2 and 6 of FTDI unrelated. Turn the soft GPSINFO and configure the correct port for the FTDI cable and 9600bps. You should see the data on the monitor (NMEA).

------------------------  -----------

.thanks for the help. worked properly. I would like to help me set it up to the rate of 57600, NMEA protocol. which the command and returning to this default setting (NMEA 4800)? grateful =============================================================

Em 15/02/2011 19:33, Jesse Cruz < jcruz@usglobalsat.com > escreveu:
Hello Manoel,
Thank you for contacting USGlobalSat Customer Care. You can use the SiRF Demo Software to restore the EM-406A back to NMEA protocol.
1. Download and install this software: http://www.usglobalsat.com/downloads/setupSiRFDemoV387.zip.

2. Run the Sirf Demo software.

3. Connect your device, choose the correct COM port, and select the 4800 baud rate.

4. Go to Action > Open Data Source.

5. Next, go to Action > Switch to SiRF Protocol.

6. Then, go to Action > Switch to NMEA Protocol.

7. In the pop-up window, select the 4800 baud rate under the Baud Rate and click Send.

8. Consequently, your red LED should turn on. Close the Sirf Demo software.

Now, try your GPS Receiver with the GPSInfo Utility (http://www.usglobalsat.com/downloads/GPSInfo.zip) to see if the problem persists.

Note: Be sure and not to click on anything else in this software, as you can render your device unusable.
Let me know if you have any further questions. Thanks.
Best regards,
Jesse Cruz
Technical Support

14740 Yorba Court
Chino, CA 91710

(O) 888.323.8720 x107
(O) 909.597.8525 x107

(F) 909.597.8532

Skype: usglobalsat_jcx
This message is intended solely for the person to whom it is addressed and may contain confidential or
privileged information for the sole use of the intended recipient. Any review, reliance or distribution by
others, or forwarding without express permission is strictly prohibited. If you are not the intended recipient,
please contact the sender and delete all copies. Prices quoted are good for 30-days and subject to change
thereafter without notice. Product specifications provided are also subject to change without notice.

----------------------- Original Message -----------------------
Name=manoel mascarenhas
Phone=+55 2186 9941 9340
Subject=reset EM406a
S1 =using the soft GPSINFO Vista 32b sent the command $ PSRF100, 0,9600,8,1,0 * 0C causing the switch to SiRF binary protocol. I must get back to NMEA protocol using A0A20018810000000000010100000101000000000000000000002580012AB0B3 but the command does not work. I need help: What is the command to return to the NMEA protocol ? Is there a command to reset the original factory settings? grateful PS: Please acknowledge receipt of this email

Reply to Discussion



Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service