Friday 11 June 2021

BlueFlyVario_Bluetooth_GPS_IGC_v12.3 released

The BlueFlyVario_Bluetooth_GPS_IGC_v12.3 is ready for release. This model was developed following requests from many pilots who wanted to add a GPS and IGC tracklog recording to the Bluetooth_USB model.  

The motivation was to integrate the GPS on to the main board instead of using an add-on. The GPS add-on released a few years ago worked well, but it was a lot of messing around for those pilots that just wanted a vario with GPS. I took advantage of the opportunity to add a memory chip to add IGC tracklog recording. The new model utilizes many of the same components and code from the other v12 models, with a redesigned the PCB layout to fit in the translucent blue case. This was harder than expected and the design process has taken well over a year through many prototype iterations. The new vario is available now and is shipped fully assembled and ready for pilots to enjoy. I am pleased that the GPS antenna is flush with the top of the case. By using the same acrylic button recently released on the Bluetooth_USB_v12.3 model I was able to keep the profile pretty clean. 


The BlueFlyVario_Bluetooth_GPS_IGC_v12.3 has a combination of features that complement the other Bluefly models, including:

  • Reliable vario sensitivity and audio performance of the other v12 models - it beeps when you go up in the way that pilots love. 
  • The same Bluetooth and USB interface as the Bluetooth_USB model for data output and adjusting settings. You can adjust all of the same settings, plus a few new ones.   
  • The XA1110 GPS from the TTL_GPS model: 
    • Better time-to-first-fix than other models through improved PCB layout. 
    • Uses battery backup for super fast subsequent fixes on the same day in a similar location. 
    • Operates at 1 second intervals, although with some tinkering can be set to operate at higher intervals. 
  • Reliable serial flash memory for storing about 60 hours of flight time at 1 second intervals. 
    • If the vario is on and the GPS has a 3D fix then IGC recording will start. 
    • Recording continues until the vario is shut down.
  • LED's for indicating status: 
    • Orange: 1 second flashing = 3D fix
    • Blue: Single flash = bluetooth scanning; Double flash = connection. 
    • Red: Charging.
    • Green: Button press, Lift and other indications as described in the manual. 
  • Battery life of about eight hours.
What is in the box?

The BlueFlyVario_Bluetooth_GPS_IGC_v12.3 is shipped fully assembled and ready to use. A sticky velcro patch is included to allow mounting it to your flight deck. 

Typical Use

This model is designed for stand alone use, or for connecting to a smartphone. Follow these quickstart steps to begin:

Step 1 - Charging. To begin, find a MicroUSB cable and charge the vario. Any phone charger that provides 5V can be used, or even a computer USB port. The red LED should come on, then turn off when the vario is fully charged. A full charge will take about two or three hours. 

Step 2 - Turn it on. A short single press will turn on the vario. The button, beeps and lights are described in more detail here. Move the vario from your feet to above your head to simulate lift and hear the beeping as it rises.

Step 3 - Connect to a PC (optional). Download the BFVDesktop application from the software page of the website. Using a USB cable connect the vario to your PC and see the settings. Read the hardware settings manual for a more detailed description of this settings (although note that the manual is not yet updated with the IGC settings described below). 

Step 4 - Connect to an app. We will use XCTrack. This is a popular app among paraglider pilots and works well with the Bluefly. Do the following:
  • Install XCTrack on your android device by searching for it in Google play. 
  • Restart the vario (long press to shut it down, then short press to start it up). This ensures that the bluetooth module is ready to go. 
  • In your android device settings pair the Bluefly as a bluetooth device. The name will be 'Bluefly-ABCD'. 
  • Open XCTrack and drag down to see the menu. Click Preferences|'Connection & Sensors'|'External sensor' then select the Bluefly you paired with in the previous step. If you select the wrong one select "None", then try again. 
  • If you want, choose 'Use external GPS' to allow XCTrack to use the GPS information from the Bluefly instead of using the internal android GPS. This is useful on old devices with unreliable GPS, or on android e-readers that do not have a GPS. 
  • At the bottom of this menu click 'Calibrate' to see pressure data streaming in from the Bluefly. There is no need to adjust the default XCTrack calibration settings here. 
  • Go back to the main display and you should see the GPS and Bluetooth icon indicating a connection. To test, shut the Bluefly down, and see the disconnected message, then start it up again and see the reconnection messages. 
IGC Tracklogs

This is the first Bluefly model which incorporates a memory for recording IGC tracklogs from GPS fixes, and there are some new settings which control how it happens. When the vario is on and the GPS has a valid GPS fix then tracklog recording will start. This means you will always get a backup record without having to rely on your flight software trying to interpret when a flight started or stopped. 

IGC Format. The IGC files produced work well with online logging programs and visualization software, but at this stage the firmware does not add a signed G-record required in some high level competitions. In other respects, the IGC file structure follows the recommendations in the FAI sporting code for HPG instruments

Memory Structure. IGC files are stored on a NOR Flash memory chip soldered to the Bluefly circuit board with a SPI interface to the processor. This is a low profile component and provides 64Mbit of raw memory storage. I had initially envisaged that a standard file system structure would be used, with a mass storage device interface. However, this is not possible with the current Bluefly processer and is something to think about for future Bluefly models. So, for this model, the Bluefly firmware uses a custom memory structure for recording file information. A simplified description of the memory structure is:

  • The NOR Flash Memory chip is structured in 2048 sectors which are 4096 bytes in size. 
  • Each file starts in a fresh sector. When recording starts a file data header consisting of the file name, the start sector, and the file number is written to the first few bytes of the sector. The file name is based on the date and time received from the GPS (note that this is the UTC time). 
  • Next, the IGC header information is written (A record and H records). 
  • Next, B records are written as GPS information is recorded. 
  • When the end of the sector is reached, the same file data header is written to the following sector, then recording continues. This means that every sector with IGC data also has a file data header.
  • When the Bluefly is shut down the file is closed, and the location of the next sector is stored in the Bluefly memory. 
  • The next file is written in the same way. When all of the sectors are full (after about 60 hours of recording at 1 second intervals), the memory wraps around and the sector pointer sets to 0. In this way there is a continuous record of the last 60 hours of flight time, although the oldest file will be incomplete if the memory is full. 
User Interface. The BFVDesktop application (version 0.8) has been updated with the new settings and functionality to download IGC files. The screenshot below shows the new settings:
  • gpsLogInterval has been changed in this model to control how often track points are recorded. The GPS outputs $GNRMC messages once a second (by default), and if gpsLogInterval is set to 1 then each of these messages is formatted to a B record and saved to the IGC memory. If it is set to 2, then every second point is recorded, and so on. 
  • igcSectorNumber is the next memory sector that will be used. There is no need to change this for anything other than developmental reasons. 
  • igcFileNumber is the number stored in the data file header. Again, there is no need to change this. 
  • pilotName is the name stored in the IGC file H record. I am not sure who really cares about this, but it might be important if there is a G record in the future. 
When the vario is connected if you press on the IGC button in the Hardware Commands section of the interface it will pop up the BFV IGC File Downloader window shown below:
  • When the window opens a command is sent to the Bluefly to poll each sector for a file data headers the list of files is build. Press Refresh to poll the memory again. 
  • The file name incorporates the data and time that recording of that file commenced. The file number can be ignored for most purposes. The start sector is where the files starts in memory. And the number of sectors gives you an indication of the size of the file (each sector stores about 110 records at 1 second intervals). In the example below, 11 sectors is about 20 minutes of recording. 
  • Highlight the file you want and press Download to save it. You can change the save location by using Select Save Directory. 
  • You can Format the entire IGC memory, deleting everything, and setting the start sector back to 0. 

Future Development

I am always tinkering. It may be time to change to a new processor, add new features, try to drive down the price, and so on... However, time is always hard to find. Let me know your thoughts.