Change the BlueFlyVario_TTL_GPS_v12 GPS data rate

The XA1110 GPS module on the BlueFlyVario_TTL_GPS_v12 transmits nmea sentences to the processor on the Bluefly at a data rate of 115200 on the U1 port. The bluefly captures these sentences then sends them on to the connected device (kobo). In some circumstance this data rate might increase the chance of random errors. At this stage we only think this is an issue for LK8000.
It is possible to reduce the baud rate between the Bluefly and the GPS to reduce the chance of random errors. To do this we need to set the U1 rate on the Bluefly. Note that U1 set to 204 is 9600 baud, setting it to 16 is 115200 baud. However, we also need to change some settings on the GPS module.
To do this you should disconnect your Bluefly from the kobo and connect it to a USB to TTL Serial converter. Connect to it using the BFVDesktop application.
We can also adjust the baud rate setting on the GPS so that it matches this lower rate. To do that we need to send some special commands to the GPS (you can read about all of the ‘SDK Commands’ in section 3 of the software guide for the XA1110 available on the Sierra Wireless website). To do that follow these steps:
  • Connect to the Bluefly using the BFVDesktop application.
  • Set outputMode to 4 to stop the Bluefly sentences so we can more easily see what is going on.
  • Send  $PGCMD,380,7*51<CR><LF> in the RawTx field by copying an pasting that command and pressing enter. Note that <CR> and <LF> are replaced by the \r and \n characters by the BFVDesktop application. This command gets passed through to the GPS from the Bluefly and puts it in SDK Command mode, although note that you do not get a response from the GPS letting you know.
  • Send  $PGCMD,232,1*5F<CR><LF>. This command sets the baud rate on the GPS to 9600.
  • Cold start the vario by removing the power and reconnecting.
  • To see the sentences from the GPS at the new baud rate change U1 to 204. Note that the Bluefly will suck up the NMEA sentence from U1 at 9600 baud, then re-transmit them out of U2 at 115200.
Note that if you want to send other SDK commands (such as to change to GPS instead of GPS+GLONASS) then you will need to work out the checksum value for the command using a tool such as this: