Increasing GPS device (EM 406a) baudrate

Default baudrate of EM406a GPS device is 4800 baud. Then this baud rate dictates entire communication of serial port on ArduPilot - also those for Serial OUT (telemetry).Here's simple way how to permanently increase baud rate of EM 406. Once done, the device will remember the baudrate, and you can increase serial speed in ArduPilot code.1) Temporarily connect your GPS directly to FTDI cable:

Pin connection:FDTI GPSblack <-> 5 (from right)red <-> 1orange <-> 3yellow <-> 4Note: I used original half-cut cable + connector left by this cable modification. No soldering, just careful wire plugging into FTDI connector.2) Connect FTDI cable, and check if GPS works in RealTerm using default baudrate 4800:

3) Switch to Send tab in RealTerm:

and1) type command $PSRF100,1,19200,8,1,0*38 in marked field2) check +CR +LF line-ending3) click "Send ASCIIThis will configure your GPS device for 19200 baud rate.I didn't test with higher baud rates, but if you change it, you'll need to recalculate command checksum (*38 at end), otherwise GPS won't accept the command.4) Now GPS start to send at 19200 baud, so you'll see some garbage in RealTerm. Go to Port tab, close link (untick Open button), change baudrate to 19200, and Open link again. If you see valid GPS data, then all is OK:

5) In ArduPilot code, search for line Serial.begin(4800);and change it to Serial.begin(19200);Done! You have now faster serial communication in your ArduPilot code. GPS device will remember the baud speed as it has internal battery and memory and keeps the setting.You're now prepared for more data to be sent by telemetry link.
E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • @Danish, just have your ArduPilot / Arduino configure it in setup. 2 lines of code.
    @Morli, "permanent" to an EM-406A is 4-6 days after power removed.
    @all who have a 406 stuck in sirf binary and don't want to wait, I previously posted code to get your 406 into NMEA
  • Admin
    @ dinesh, read from start of this thread , I think some one mentioned another way to do it and seems was permanent
  • i have installed sirfdemo nd wenever i change my baud rate to 19200 it works very fine for the moment but changes back to itz default 4800. tell me how can i permanentl change it to 19200 or change it to 19200 fora long time coz m tired of changing it again n again
  • Just in case people are having trouble making these types of changes, the way to send these commands with the SiRFDemo software is to go to the "Action" menu and select "Transmit Serial Message..." That brings up this dialog:

    Choose the NMEA radio button and type the serial command into the textbox. Don't type in the "$" or the asterisk or the checksum. It will add that stuff before it sends it to the EM-406a. I tested mine at baud rates up to 115,200 and it seemed to work fine. After you send the serial command and change the baud rate, you'll have to disconnect, change the baud rate in SiRFDemo, and reconnect.
  • 3D Robotics
    The baud rate depends on the GPS module. It's set automatically to 57600 for the EM406
  • On this page: A new rock-solid GPS parser for ArduPilot (or any Arduino)

    the baud rate is at 57600. It's correct ?

    Is the change made automaticly ?
  • Is the Baud rate sill at 4800 in the lastess ArduPilot code ?
  • Will have to, because my GPS forgot stored settings after some days.
  • So why dont insert on ardupilot a instruction to change the baudrate on startup?
    On startup you can use 4800bps, send setup string to GPS and change Ardupilot bps to new value.
    On next boot if GPS remember the fast bitrate the command run at 4800 bps will be ignored (I suppose!!) and all always work fast..

    Do you agree?
  • hi
    my first EM-406 worked for about 30 seconds and then locked up , i called global sat and the tech said " it switched itself to sirf mode , let it sit for a week and you will be able to use it again " , at this point it had sat for 4 days , without power , so i thought i'll try it , and it was still locked tight

    i had tried SirfDemo to reset it , and SD did not recognize it was plugged into anything , so now i have to wait another week

    but after sitting for a week the capacitor was down and it started back up like nothing ever happened , i have talked to people who say it will reset in 4 days , mine was 6 days , the guy at Global said it was a capacitor

    so it is my understanding that any setting you program into it will reset itself in 4 ~ 7 days if you leave the unit unpowered , probably best to use stock settings , HTH
This reply was deleted.