Sunday 4 August 2019

GPS Logging on the Bluefly with the XA1110

This post is about using onboard logging capability of the XA1110 GPS on the Bluefly. It gets technical, and then I finish by suggesting for most pilots that you probably do not need it.

For many years the Bluefly varios have had the ability to stream a GPS signal to an app like xcsoar or XCTrack on Android (for the Bluetooth model), or to xcsoar on the Kobo (for the TTL_GPS model). Most pilots will use the logging capabilities of those apps to keep a record of their flights or to submit them for competition flying. However, the XA1110 has a small onboard memory and can record its own log. This post tells you how to use it if you feel like experimenting.

What models does this post relate to?

Any model of the bluefly which is connected to the XA1110 GPS. This includes:

The XA1110 GPS uses the MediaTek MT3333 chipset which has the 'Locus' function that the logging is based on. If you have another GPS using this chipset, or perhaps even some other MediaTek chipset, then you might find you can interact with its Locus memory in a similar way.

Why would you want to do this?

Upfront, I would say that in many cases you probably do not want to do mess with the logging capabilities of the XA1110. For most of our flying adventures keeping a GPS track log is nice to have but is not essential. If you keep your android or iphone battery charged then it is probably better to record a log on whatever app you are using.

However, if you want a backup to your backup, then switching on the Locus of your XA1110 might be for you. One day, if the competition director is pleasant, it might be your last resort to prove that you made goal. Although, it is important to note that the IGC that you might produce from GPS Babel is unsigned.

How the XA1110 Locus GPS Log works

The Locus log is pretty simple:
  • If the GPS has a fix, and logging is 'started', then logging will begin.
  • The logging interval can be changed from 1 second to 12 hours (in theory).
  • Each log point stores time, latitude, longitude, and GPS altitude (each point uses 16 bytes).
  • The memory size is 128k, which means it can store 8192 points. At 1s track intervals that is only 2.27 hours, but at 10s intervals it provides almost 24 hours of logging. I think that is reasonable for the kind of use case I am considering in this blog post (a backup to the backup).
  • Once the log reaches the end, the GPS just begins to overwrite points from the start of the log. 
The main drawback of the log is that it is painful to access. You need to send specific commands to the XA1110 to configure, start and restart logging (see the XA1110 Software User Guide for more information). I had hoped that if we start logging that it would continue it after the GPS had rebooted, but I found this only works if VBACKUP is connected and the GPS hot starts. The log needs to be manually started on each cold start.

Firmware update 

In order to simplify the commands, a few days ago I uploaded new firmware (BlueFlyVario_12.M25). This firmware includes one new hardware setting gpsLogInterval (code BGL).

Updating the firmware on the TTL_GPS model is a pain as you will need to remove your Bluefly from the Kobo, connect it to a USB_Serial converter, then updated it using the ds30loader application from a Windows PC. It is much easier for the Bluetooth_USB model. In either case, if you manage to update your firmware then it works like this:
  • If gpsLogInterval is set to 0, then it turns off the log. 
  • In all other cases, the Bluefly sends the following commands to the XA1110 on startup (or when gpsLogInterval is changed):
    • A test command (PMTK000)
    • The command to set the log interval (PMTK187,1,{BGL Value})
    • The command to start logging (PMTK185,0)
    • The command to query the locus (PMTK183)
  • This results in an output from the Bluefly like:

You can decipher this using the XA1110 Software User Guide if you feel you must, but the bottom line is that it shows that logging is happening at 10s intervals. 

BFVDesktop application update

I have also updated the BFVDesktop application. Version 0.61 includes the gpsLogInterval hardware setting. In addition, there are a few PMTK commands in the Hardware Commands drop-down to query the locus (PMTK185,0), erase the log (PMTK184,1), and download the log  (Query Locus Data - PMTK622,0). To download a log use these steps:
  • Make sure you can see GPS sentences. You might need to set uart1BRG to 16 to make sure that data rate of U1 (which the XA1110 is connected to) is set to 115200.
  • Note your outputMode setting, then adjust it to 4 (to disable the bluefly output). You should still see GPS sentences. 
  • Send PMTK622,0 to begin downloading the log. You should see sentences like:
  • Note the PMTKLOX sentences are from the XA1110 GPS in the funky 6 x 16 byte format. The other sentences are CSV separated interpretations from the BFV Desktop application.
  • It takes about 1 minute to download the log over a 115200 connection. 
  • You will find two files in your BFVDesktop folder. 
    • locus_record.csv is all valid track points that were decoded from the locus log. You might use this to view the points in excel
    • locus_record.mtk are the complete log PMTKLOX sentences. Use GPSBabel to convert that 'MediaTek Locus' file to any tracklog format you want (like FAI/IGC...). 
    • Note that the points are not ordered by date. You will probably need to do some manual editing to create a log that makes sense. 
    • Also note that the points are not split into flights. Again, some manual editing will be required to work out when your flight started and finished (remember, this is the backup to the backup...)
  • When you are done, set your outputMode back to whatever you started with. 
Notes for a Kobo

I have not tested this on a Kobo yet. However, if you have a TTL_GPS setup on a Kobo (with the updated firmware), and you want to get your locus record, then I would experiment with the following procedure:
  • Create a custom xci file to create some menu options send the appropriate commands to the Bluefly. 
  • Turn on NMEA logging to record the raw output from the Bluefly. 
  • Send the PMTK622,0 command to begin downloading the PMTKLOX. 
  • Copy the NMEA log, and edit it excel to copy all of the PMTKLOX sentences to a new file. 
  • Convert that file using GPS Babel. 
If updating the firmware is beyond you, then you might be able to create some other mechanism to send the appropriate commands to commence logging when xcsoar events occur. 

The bottom line

If you have read this far, then you probably have worked out that the XA1110 Locus thing with the Bluefly is probably to much hard work for not much benefit. I really just did this to prove to myself that I could. If you really want to do it then I suggest you experiment before relying on it as a backup. 

Saturday 29 June 2019

BlueFlyVario_Bluetooth_USB_v12.2 released

The BlueFlyVario_Bluetooth_USB_v12.2 is a minor update to the previous version released a few years ago. The classic model of the Bluefly has a fancy new translucent blue case and is easier to assemble. Please read this post in conjunction with the release post for the BlueFlyVario_Bluetooth_USB_v12 to understand the changes.

Translucent Blue Case

The new translucent blue case is an upgrade on the sky blue case that has been used for the last few years. The new case includes the following improvements:

  • It incorporates stand-offs in the design, which makes the connection between the mainboard and the case more secure. 
  • Cutouts are very slightly larger. 
  • The lid is secured with different clips, which are much more secure than the older case. 

What is in the bag?

The v12 model of the BlueFly is supplied with the following components:
  • The BlueFlyVario_Bluetooth_USB_v12 mainboard. There is a small piece of neoprene covering the pressure sensor; glued at one end to hold it in place (do not remove it!)
  • The translucent blue case with four small screws (P1 screwdriver needed).
  • A 750 mAh singe cell Lithium Polymer battery.


Assembly is pretty simple and will take most people less than 5 minutes. However, if you would prefer not to touch a screwdriver, or you want your vario configured to your custom settings, you can order the simple assembly service.

The simpler assembly method refines the steps outlined in the initial release:

Step 1 - Initial Test

Before you put the board in the case, plug in the battery, press the button, and make sure you can hear the vario beep. Also, plug in a microUSB charging cable and make sure the red LED comes on.

Step 2 - Screw the board into the case 

The small self tapping M2.5x5mm P1 screws secure the board into the case as shown below. You really only need two screws on a diagonal, but there is no harm if your use all four. Don't drive the screws home to tightly or you will strip the stand-offs in the case. Just use enough pressure to ensure that the board is secure. 

Step 3 - Ensure the button is aligned 

The button should be aligned with the center of the cutout hole. If it is off center and touching the edge of the hole then the case will interfere with the proper operation of the button. If you need to adjust it unscrew the screws by one turn or so, just enough so you can move the board around, then tighten them again. 

Step 4 - Battery and close

Plug in the battery. Place it in the case, making sure not to place it on the end of the screws. Then close the case. There is no longer any need to use tape to keep the case closed (the new lid clips are much more secure), nor any need to secure the battery (it fits snugly). 

Step 5 - Check charging works

Plug in a microUSB cable to charge the vario. The red light should come on. Cables with longer tongues work better.  

Step 6 - Velcro and/or lanyard (optional)

Many pilots will put a small piece of velcro on the back of the vario to attach it to their flight deck (this is what I do). Others will drill some small holes in the case and attach a lanyard (I do not do this anymore). 

Next Steps

After install you probably want to connect to the BFVDesktop application to adjust settings, or connect to and Android or iOS device to experiment with different apps. See the software page for more information. 

Bluefly_GPS_AddOn_v12 Released

I am pleased to be able to release the Bluefly_GPS_AddOn_v12 board today. Adding a GPS to the Bluefly has been possible for many years (see this post for an example This new board is designed especially for the Bluefly and uses the XA1110 module which offers a range of premium features.

Before reading on, why would you want to add a GPS to the Bluetooth model of the Bluefly? For many pilots the answer is you probably do not. If you are using the Bluefly in stand alone mode (just using it's audio), or if you are connecting to almost any Android or iOS device, then that device probably already has a GPS. However, there are a few Android devices that do not have GPS such as Android based eReaders that some pilots are now using with XCSoar. The Bluetooth model of the Bluefly with this new GPS board can provide the location input you need for XCSoar or other apps.


The image below shows the layout of the board.

Features of the board are:

  • The XA1110 Mulit-GNSS module from Sierra Wireless
  • It's own 3.0v Voltage Regulator and conditioning components for optimal performance. 
  • The blue LED flashes once per second when the GPS has a fix. 
  • The main connectors are:
    • The U1 connections to the Bluefly for Ground, Tx, Rx and 3.3v input. 
    • RA7 enables the voltage regulator (you need the most recent version of the firmware for the Bluetooth model of the Bluefly for this to work). 
    • VBAT connects to the GPS VBACKUP for fast time-to-first-fix (about 5 seconds) and maintains other configuration settings on the GPS. You need to close the solder jumper for this to work. 
  • There are pads for a U.Fl connector for those that want to experiment with an external antenna. 


Assembly is pretty easy if you have basic soldering skills. Before you begin read through all of these steps. If you are really uncomfortable doing this yourself then I am also able to offer an assembly service (but note that this makes the size of the package greater than can be shipped with free shipping).

Step 1 - Checking your Bluefly 

To complete your the assembly process your Bluefly will need to be removed from the case. Do this carefully by first removing the battery and any packing holding the vario in position. Next use a small flat screwdriver and gently twist between the end of the PCB and the end of the case with the USB hole. The aim is to release the end tabs of the USB connector from the hole, then press on the button to push the PCB free from the case. If you are gentle the PCB should come out easily, and you will not damage the button or the USB connector.

Next, plug the battery back in and connect to the BFVDesktop application on a windows PC. Send the 'BTN' command a few times just to make sure you have a good connection to the vario.  You need firmware version 12.423 or later for this to work.

Step 2 - Attaching the GPS_AddOn

Begin by soldering headers to U1, RA7 and VBAT as shown below (I will include a strip of 6 or more headers in the package with the AddOn board). Note that I have used right angled headers in this image, but you can also use straight headers. I strongly suggest that you trim the pin of the headers flush with the board before you solder it (not shown in this image). This will help prevent the LiPo battery from damage. Also note that the secret of all good soldering is lots of flux, a clean hot soldering iron with quality solder, and good cleaning with isopropyl alcohol after soldering.

Next, attach the AddOn board. Note that it sits flush on top of the bluetooth module shield, and slightly squishes the neoprene. Again, trim the headers before soldering. 

This final image shows the required pins soldered. Also, note that the VBAT solder jumper has been closed.

Step 3 - Configuration

At this point, before putting it in the case, it is a good idea to test to make sure it is working. Follow these steps:

  • Connect the vario to the BFVDesktop application and start it up. You should see the vario data streaming in. 
  • Adjust uart1BRG from the default of 207 to 16. That changes the U1 baud rate (the rate between the vario microcontroller and the GPS module) from 9600 to 115200. 
  • You should now see data from the GPS streaming in. Change the outputMode to 4 to disable the Bluefly sentences and you will be left with just the GPS information. 
  • Shut down and restart the Bluefly. After a few minutes, if the antenna is pointing to the sky, you should get your first fix (and the blue light on the under side of the GPS board will start to blink). 
  • Shut down and restart the Bluefly again. If you have VBAT connected correctly and the solder jumper has been closed then the time-to-first-fix should be no more than 5 to 10 seconds. 
  • Make sure to set the outputMode and outputFrequency back to whatever you want for connecting to your app.

Step 4 - Prepare the case

The Bluefly with GPS_AddOn fits in the Sky Blue or new Translucent Blue case provided you cut out a hole for the GPS.

Begin by downloading the pdf template to use to cut the hole in the right spot. The only really tricky part is to make sure you print the template at the right scale. The images below show the template and final cutout.

This final image shows the vario assembled into the older Sky Blue case.

Next Steps

Now you have a vario with working XA1110 you may want to experiment with the capabilities of that GPS module. There are many configuration options which you might find useful.

At some stage I will be blogging about configuring and using the onboard memory of the XA1110 GPS module. With a little effort the GPS can be made to continuously record the last 8186 track points (including height) in its 128k memory. This can provide a backup GPS track for the last 11 hours of GPS on time at 5 second intervals. It is not super awesome, and takes some effort to configure and download the memory, but as a backup track could make the difference for many pilots. 

Saturday 8 June 2019

Firmware, Manual, and BFVDesktop updates

Over the last few days I have found a little time to update and rationalize the firmware for all Bluefly models, update the Hardware Settings Manual, and update the BFVDesktop app used for adjusting the settings. I do not find so much time these days to blog about little updates and improvements, but they are always happening in the background.

Firmware Updates

The latest firmware is 12.M23. I have only provided a few firmware updates since releasing each of the v12 models, and only then on a model by model basis. This firmware update consolidates bug fixes and adds a few new features.
  • There is a a new hardware setting quietStart. When set to true then the startup and shutdown beeps do not sound. 
  • The setting startDelayMS described in this post has now been included in all models. 
  • I have added an experimental outputMode (outputMode=7) to simulate the OpenVario protocol
  • A little bug with the temperature output in outputMode=6 has been fixed. 
  • RA7 for GPS reset on the Bluetooth model has been restored. 
  • Some default settings have been changed. 
  • The settings range has been expanded for many settings. 
Bluefly models shipping from mid June 2019 will include this latest firmware. 

I do not recommend updating the firmware unless you need a feature or really need to fix a bug. However, if you feel you want to then see the firmware page on the website and read the Hardware Settings Manual for instructions. After the firmware update don't forget to do the hardware reset procedure by shorting GND and SCL on startup. If you do not do that then you will find that your vario will not start. 

Hardware Settings Manual

The manual has also been updated to include this, and many other changes I did not get around to documenting. Find it here

BFVDesktop application

The BFVDesktop application is used to adjust settings. It has been updated to include the settings described above. Find it here