Saturday 3 February 2024

Minor firmware update M72 and M73

M72 and M73 Firmware Update (v22 and v23 models)

Update 2 Mar 2024: The M72 firmware update for Bluetooth GPS_IGC models had a bug which sometimes made the vairo hang when the bluetooth connection was lost. Please use the most recent M73 firmware update for these models:

This minor firmware update improves the reliability of vario shutdown and reduces the instance of the Bluefly becoming unresponsive. 

The firmware files are here:

Follow the firmware update procedures described in this earlier blog post. I recommend resetting default settings and formatting IGC memory after you have done a firmware update. 

Thursday 28 December 2023

IGC Validation and New Firmware

It has been while since my last update. A few things have been happening behind the scenes. This post announces IGC validation for the Bluefly and describes the latest firmware and software.  

IGC Validation

I am happy to announce that validation of Bluefly XBF signed files is now officially supported by the FAI-CIVL open validation server. Validation for IGC files is required for some competitions, and importantly for many of us is used by XCContest. 

A few years ago some models of the Bluefly got IGC tracklog recording. But until October this year the only way to validate to the file was to download it via GPS Dump as described in this post

For the technically minded, the IGC signing process is handled in the hardware. The IGC file data is stored in onboard NOR Flash memory using a proprietary file format as the $GPGGA and $GNGGA sentences are read from the onboad GPS and processed into B records. The IGC file is signed on the Bluefly using the XBF protocol when recording has stopped (when the Bluefly is shut down).

The Bluefly IGC file can be downloaded using the BFVDesktop application available from using the procedure describe in this post.  Users can connect the Bluefly to a PC and it appears as a serial port. The BFVDesktop application communicates with the Bluefly using commands over the serial port, including commands to list files and download them individually. Users can also format the NOR Flash memory.

The following models include IGC recording. These are all based on the same codebase and use the same IGC format and memory protocol, with the relevant updates to the IGC header to reflect hardware and firmware versions.

  • BlueFlyVario_Bluetooth_GPS_IGC_v23 (current model released May 2023)
  • BlueFlyVario_USB_TTL_GPS_IGC_v22 (current model released May 2022)
  • BlueFlyVario_Bluetooth_GPS_IGC_v22 (previous model released May 2022)
  • BlueFlyVario_Bluetooth_GPS_IGC_v12.3 (previous model released June 2021)
If you want to do validation separately from the open validation server you can download vali-xbf.exe.

M70 Firmware Update (v22 and v23 models)

I have also recently completed testing new firmware for the v22 and v23 models. I only recommend updating firmware if there is a new feature you want to try or if you are not happy with the performance of your vario. 

The key changes are:

  • Updated the $XCTOD sentence used to send voltage and temperature data from the Bluefly to XCTrack
    • Adds a checksum to make it more robust (see here for more explanation). 
    • Fixes a battery voltage error from some firmware versions.
  • Added a new beepDutyCycle hardware setting. You might want to use this to change the nature of the Bluefly beeps, or perhaps to prolong the battery life. 
    • By default when the Bluefly beeps in lift the ratio of beep to silence is 1:1. 
    • It beeps faster when you go up, but still the length of the beep and silence is the same. 
    • By adjusting the beep duty cycle you can shorten the beep to silence ratio. 
    • Start by experimenting with the setting at 0.5 or 0.25.
  • Rebuilt the IGC Flash memory writing code. 
    • For some combination of device and Bluefly there were intermittent errors associated with the periodic writing of track data to the onboard flash memory. 
    • Flash writing tasks now run in the background. 
The firmware files are here:

Follow the firmware update procedures described in this earlier blog post. I recommend resetting default settings and formatting IGC memory after you have done a firmware update. 

BFVDesktop application updated

You can also get the latest BFVDesktop application here: This includes:
  • The new beepDutyCycle setting.
  • An included script for running the application on Mac OS. You should read this knowledge base article for more information. 

Saturday 27 May 2023

BlueFlyVario v23 models released

Today we announce the release of two new Bluefly v23 models. These have actually been shipping for a few weeks now. The BlueFlyVario_Bluetooth_v23 is the latest version of the classic Bluefly. The BlueFlyVario_Bluetooth_GPS_IGC_v23 includes an onboard GPS and IGC tracklog recording. 

The new Bluefly v23 models look the same.

What is new?

These models are an evolution of the v22 models. The main processor is the same and the firmware is almost exactly the same as the v22. Firmware updates will continue to be made for both v22 and v23. 

The main changes are:

  • USB-C charging and serial port interface. The shift from micro-USB to USB-C reflects the standard most devices are adopting, and the physical port is more robust. 
  • The GPS version now uses the L96 GPS module instead of the XA1110. The latter is no longer available and the L96 has better performance, in my experience. 
    • The good news is that the GPS is now entirely inside the case - no more protruding antenna.
    • The downside to this GPS module is that the chip antenna is very sensitive to placement of other components. This was overcome in the v23 model by putting the GPS module on a small board and raising it just a few mm further away from the battery. The end result is a much cleaner layout, albeit that the manufacturing time per device is a bit longer. 
BlueFlyVario_Bleutooth_GPS_IGC_v23 internals, showing GPS module antenna slightly above the base board.
What is in the box?

Both models are shipped fully assembled and ready to use. Simply remove the tape and cover protecting the clear button, press the button and your vario should come to life. Some tips:

Monday 6 February 2023

Firmware Update x68

The latest firmware for all v22 models has been uploaded

Changes include:

  • Fixed a bug with button performance. The button was not as responsive to a press as it should be during lift or sink. 
  • Fixed a bug for GPS models that very occasionally interleaved the PRS and B Record sentence, which might have caused issues for XCTrack users who configured to use external GPS. 

Follow the firmware update procedures described in this earlier blog post

Saturday 8 October 2022

More firmware updates x66

The latest firmware for all v22 models has been uploaded

Changes include:

  • Fixed a significant bug with IGC file recording which was inadvertently introduced in x63 firmware for the models which include IGC memory. If you update to this new x66 firmware make sure to clear your IGC memory by formatting it through the BFVDesktop application.
  • The $XCTOD,Battery%,TempDegC* sentence was added some time ago to improve integration with XCTrack, but I think this is the first time I have documented it. 
    • The sentence is sent from the BlueFly once every ten seconds. 
    • This allows you to add widges in XCTrack for Bluefly battery percent and Bluefly Temperature in Degrees C (as measured by the pressure sensor).
    • See here for how to use this.
  • Minor bug fixes with output text processing. 
  • Little tweaks to improve shutdown performance. 

Follow the firmware update procedures described in this earlier blog post

Saturday 20 August 2022

Kobo Nia Install

This post outlines how to install the BlueFlyVario_USB_TTL_GPS_IGC_v22 on the Kobo Nia. This combination of the best TTL_GPS Bluefly and the cheapest current model Kobo will give you a fully featured xcsoar based flight instrument. 

Make sure you read to the end of the post before you begin. The Nia makes a good flight instrument, but there are some limitations.

There are many other models of Kobo and many ways to install a Bluefly. See BlueFlyVario_TTL_GPS_v11 Assembly with the Kobo Glo for an example and links to many other blog posts for other models. Also, see Nev’s page for much more information:


Order your Bluefly from the shop. This assembly shows the USB_TTL_GPS_IGC model, but you could also use the cheaper TTL_GPS model. The main advantage of the more expensive model is onboard IGC recording and easier Bluefly firmware upgrades. 

Get a Kobo Nia from your local retailer or the internet. 

Download a few things:

  • xcsoar. The latest releases are not compatible with the Nia and at the time of writing this post you need to use a 6.8 version. I used 6.8.17
  • The 3d printable files for the new v22 TTL_GPS case, lid and button. 
    • This is optional, but does make the install a bit neater. 
    • I printed these items in PLA on an old 3d printer and there was a little clean up with a knife required to make them fit, especially around the button. 
  • Get this Bluefly.xci file for the xcsoar menu
Make sure you have the latest firmware update for the Bluefly. See here

Prepare the Nia

Before anything, make sure you Nia is working normally as an ebook. Create a Kobo account, do the suggested firmware updates, then shut it down.

Take the back cover off the Nia. You should be able to pry it loose around the edge. It will look like this:

Backup the sdcard by creating a full disk image with of it with win32diskimager. See step 3 here.

Install xcsoar: replace the sdcard, start the kobo, connect a USB cable, in the kobo app press connect to show the drive on your computer, then copy KoboRoot.tgz as described in the Kobo xcsoar installation instructions

Install the Bluefly 

I like to remove the couple of screws near the edge of the boar and pry up the PCB to keep it clear of the underlying metal when soldering. 

Wires are soldered onto the TTL port. In this example I have used solid core 30AWG winding wire. Use a hot soldering iron but work quickly so you don't damage the PCB. Check carefully for jumped solder tracks. Note the small 3mm hole drilled through the bezel of the kobo that all of the wires go through. I could have made this smaller. 

Solder each of the wires to the Bluefly. Make sure that the connections are:
  • Kobo GND - Bluefly GND
  • Kobo RX - Bluefly Tx
  • Kobo TX - Bluefly Rx
  • Kobo V - Bluefly V
Put the neoprene on the pressure sensor of the Bluefly (black squishy side on the sensor - do not remove the sticky part or you will block the holes). Use the heatshrink to hold it in place (shrink with a hairdryer or hot air gun). 

The case is placed so it hangs over the edge of the kobo bezel (so the GPS antenna works). In this install I used quality black double sided tape to secure the case to the bezel. The final result is shown below. 

Configure XCSoar

In the devices menu of xcsoar  (Menu|Config|Devices) edit device A with the following settings:
  • Port: ttymxc0
  • Baud rate: 115200
  • Driver: Bluefly
Click Monitor to see the data flowing in from the Bluefly. It will take a few minutes of the vario sitting outside with a clear view of the sky and no interference to get a GPS fix. 

Quit xcsoar and at the boot menu press Nickel to boot to the Kobo erReader mode. Connect your the kobo to a computer and upload the Bluefly.xci file you downloaded earlier to the xcsoar directory. Disconnect the cable and reboot back to xcsoar. 

Back in xcsoar add the xci file to create the Bluefly menu (Menu|Config|System|Look|Language,Input|Events) (you will need to be using Expert mode). You will need to quit and restart xcsoar for it to take effect. 
  • The xci file adds a bunch of menu options which send commands and settings to the Bluefly. 
  • It also adds a special gce event which restarts the Bluefly when the xcsoar detects a landing. This forces the IGC file on the Bluefly to be saved. 
Now, Menu|Bluefly|Simulate Button to check it is working. This is the same as short pressing on the button of the Bluefly to toggle the sound on and off. 

Next, Menu|Bluefly|Bluefly Config then set outputMode to LX at 5Hz. 

Finally, Menu|Bluefly|Devices|Edit and change the driver to LXNAV. 

The reason for the last two steps is to send $LXWP0 messages from the Bluefly for alt and vario information (instead of the default Bluefly PRS output mode). It reduces the loads on the processor (I think). Also these sentences have a checksum so if the there is a transmission error you will not get funky altitude/vario information. 

Limitations of the Nia

I really like the screen on the Nia. If you do the installation as described in this post then it will work for you, but there are some technical limitations that you should be aware of if you decide to do things a little differently:
  • There is not a specific version of xcsoar that has been built for the Nia. xcsoar kobo versions try to work out what model of kobo it is running on during startup then selects particular linux drivers and a bunch of other kobo linux things. The 6.8 versions work, and I expect that a future 7.x version will work, but at the moment suggested fixes have not been included in a release. 
  • The underlying kobo linux operating system uses the ttl serial port we connect the Bluefly to during the device boot process. If it reads characters from the Bluefly at a critical point in the first few seconds then the boot will hang (this is why there is is nothing sent from the Bluefly until after startDelayMS). Additionally, there are around 2500 characters sent from the kobo to the Bluefly in the first 10 seconds. The most recent firmware on the Bluefly addresses both of these issues. 
  • The kobo linux serial processing driver only has so much capacity and it is possible that from time to time there will be buffer overflows on the kobo side. Practically, this results in characters not being received by xcsoar. By using sentences with a checksum bad sentences are just ignored and we can recover gracefully. 
Further Steps

While the Kobo is on, connect the Bluefly to the BFVDesktop application via USB-C cable. You should be able to see the data and configure many more settings on the Bluefly than are able to be set up from the xci file. The default startDelayMS is 2000, but for most users I recommend increasing this to 10000 to more fully avoid the start up process. You can also download igc files from the Bluefly using the BFVDesktop application or GPSDump. 

In addition, you should be able to download xcsoar's igc files from the Kobo eReader application when the kobo is connected to a computer.

There is a lot more information on configuring XCSoar on the web, and Nev's page has great tips

Friday 12 August 2022

v22 TTL_GPS firmware updates

This is just a quick post to announce new firmware has been release for the v22 TTL_GPS models:

The update involves a pretty comprehensive rewrite of the serial data processing code to improve performance and remove some bugs. This was needed to ensure compatibility with the Kobo Nia and restore some functions on other Kobo models. The updates include:
  • The Bluefly was overwhelmed with data from the Kobo during startup, which switched off further command processing capacity. This has been fixed and the Bluefly should be responsive. 
  • The Kobo startup code on some models was interfered with by the Bluefly. The startup procedure no sends not data from the Bluefly at all until after the startDelayMS time (default of 2 seconds after power on). 
  • Other minor bug fixes including LX mode output, outputFrequency restoration and shutdown reliability.   
See here for firmware update procedures.