Sunday, 27 August 2017

BlueFlyVario_USB_V12 released

A busy work and family life means that I have only so much time for this hobby, and that time is almost entirely consumed by keeping up with orders for BlueFly varios; there has not been much time for development. However, today I can announce the release of the BlueFlyVario_USB_v12. This replaces the BlueFlyVario_USB_v11 and the BlueFlyVario_USB_GPS_v11.

The USB only model of the Bluefly is much less popular than the Bluetooth_USB model, (which is what you probably want if you are going to use it with a phone), or the TTL_GPS model (which is probably what you want if you are going to use it with a Kobo). Nonetheless, there are some reasons why the USB only model might be right for you:
  • If all you want are the great sounds of the BlueFly; then you can use it as a stand alone vario that beeps. 
  • If you are sure that you want to connect via USB to a PC, or to Android phone via USB OTG; then you can use it with xcsoar or another app. 
What is in the bag?

The BlueFlyVario_USB_v12 is essentially the same as the most recent revision of the BlueFlyVario_Bluetooth_USB_v12, but without the RN4678 Bluetooth module and some associated components. It has a slightly different firmware as the analog switch is no longer required to switch between the Bluetooth and USB output. See the image below for what is included:
  • The BlueFlyVario_USB_v12 mainboard. There is a small piece of neoprene covering the pressure sensor; glued at one end to hold it in place. 
  • The sky blue enclosed case. 
  • A 750 mAh singe cell Lithium Polymer battery. 
  • 4 x 5 mm M3 black nylon hex standoffs and 4 x 5 mm M3 black nylon screws.


Follow the assembly instructions for the BlueFlyVario_Bluetooth_USB_v12.


The BlueFly varios have many hardware settings to adjust the audio and lift/sink thresholds for beeping. See the hardware settings manual for a full description of all of the settings. Most people will just use the default settings. However, read on if you want to mess with them.

For most users the easiest way to connect will be to use the BFVDesktop application from a PC (available on the support page of the website). The v12 models of the BlueFly include a FTDI USB to serial computer. When you plug it in to your PC a virtual serial port will be installed. In the BFVDesktop application select the installed port, make sure the baud rate is 115200, then press connect. Test connection with the BlueFly by sending the $BTN* command, which simulates a button press on the actual BlueFly.

You could also configure the BlueFly from a suitable terminal application on the PC or Android by using the raw commands as described in the hardware settings manual.

Adding a GPS

I have discontinued the USB_GPS model at this stage. However, with a little basic soldering you can still add a GPS to the U1 headers. This can be done on the Bluetooth_USB model as well, but the GPS used in this example will not fit in the sky blue case with the bluetooth module and you would need to work out a way to suitably attach it to the outside.

The first step is to select a GPS which runs on 3.3v, has an included antenna, and has a TTL serial output. By default the U1 port on the BlueFly is configured to receive NMEA sentences at 9600 baud multiplex them with the normal BlueFly output, delivering the resultant data stream via the USB_Serial port at 115200. Any sentence arriving to the BlueFly at U1 which less than 82 characters long, beginning with $ and ending with *, will be gobbled up by the BlueFly and sent through.

A suitable GPS, and the one used in this example, is a widely available model used for RC flying. Search for "naze32 mini gps" on ebay, aliexpress, banggood, or where ever you get your electronic components. It is based on the ublox7 module, and I have found it to get a lock quickly and reliably. Also, it is just the right size to fit neatly in the sky blue case. Like most GPS', it defaults to a TTL output at 9600 baud which means it will work with the BlueFly without further configuration.

First, take the GPS out of its case and strip the wires. In the image below Red is 3.3v in, Black is GND, Orange is GPS-Tx (which will be connected to BlueFly-Rx), and Blue is GPS-Rx (which will be connected to BlueFly-Tx). Note that the wire colors might be different for you.

Next connect it to your BlueFly. Make sure your solder joints are clean and well made. Put a piece of tape on the BlueFly where the bluetooth module would have been to ensure there are no shorts between the underside of the GPS and the BlueFly board.

Finally, stick it to the top of the tape with more double sided tape and fold the wires away neatly. As the GPS module is just the right height you will not need the 5mm black stand offs at the GPS end of the board. It will fit neatly in the sky blue case, but make sure to be careful not to damage the button or USB connector as you put it in - do not force anything.

If you connect to the BFVDesktop app you should now see GPS sentences streaming in among the standard output from the BlueFly.

Note that it is possible for advanced users to further configure the GPS. The uBlox software to control a GPS is u-centre. It is possible to disconnect from the BFVDesktop app, and connect to u-centre. You will actually be connecting to the BlueFly at 115200 baud, even though the GPS is at 9600 baud. Some settings are available as the BlueFly sends any nmea sentence it receives from USB-Serial to the GPS as well. However, for any GPS setting feature which relies on binary communication, such as GPS firmware upgrades, then the multiplex magic of the BlueFly will not work.

Connecting to Android

Some users will want to connect the USB model of the BlueFly to their Android phone for use with xcsoar. If you have installed a GPS this might be what you could do with an Android device that does not have Bluetooth or a GPS. However, a disclaimer - I feel that that USB connectors are not designed for movement, and over time will be fragile if used on a paragliding flight deck, so I always recommend using the Bluetooth version if you have a choice. 

You will need a USB-OTG cable. The connection method is shown in the image below.

In the above image the BlueFly is connected to the UartBridge app. You can get it on Google Play here: This app was designed to be used with the FTDI converter used on the BlueFly. It is open source and you can find it on GitHub. Thanks to Maks for the great work.

The UartBridge app will take the data coming in via USB-Serial at 115200 baud, and create TCP server on the local host to send it out on port 4353. In xcsoar you configure a device as shown below:

The BlueFly data (and multiplexed GPS data) will stream into xcsoar.

What about the TTL_GPS model?

At this stage I am not planning on a TTL_GPS_v12 model. The v12 Bluetooth_USB and USB models were motivated by wanting to fit in the larger 750 mAh battery, and incorporating the FTDI USB converter, neither of which applies to the TTL_GPS model. I am sure there will be mode development in the future, but I do not have anything in planning to replace the TTL_GPS at this stage.