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.

Assembly

Follow the assembly instructions for the BlueFlyVario_Bluetooth_USB_v12.

Configuration

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: https://play.google.com/store/apps/details?id=com.manichord.uartbridge. 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.

Friday, 17 February 2017

Pressure Sensor Anatomy

At the core of over five thousand BlueFly devices is the MS5611 pressure sensor. One of the first blog posts about the BlueFly, almost six years ago, described the theoretical performance of this sensor, then about a year after that I posted about the success in testing. Back in 2011 there was not too much information about the MS5611 on the internet; only the manufacturer data sheet. Now the MS5611 is used in most of the varios which are similar to the BlueFly, and is widely used in hobby RC flying.

In this post I get technical about how the sensor works, and some of the things worth knowing about as you take care of your vario. This comes from having personally tested thousands of BlueFlys. I try to demystify how these sensors work in an accessible way, although I know it will still be pretty technical for many pilots. I focus on light sensitivity and some failure modes.

The MS5611

The image below shows the MS5611[01BA03] pressure sensor assembled on a BlueFly device. The sensor is 3 x 6 mm and is constructed of a small metal cap on top of a green circuit board. Solder pads underneath the sensor are used to connect it to the underlying BlueFly PCB, and provide power and the data interface. The BlueFly devices connect to the sensor using its SPI interface (instead of I2C) as it provides the best performance. To further improve performance the BlueFly provides power via a PI filter.

The image below shows the inside of the sensor with the metal cap removed. Inside the sensor there are two main components: a pizeoresistive absolute pressure sensing element, and a high resolution Analog to Digital Converter (ADC). It is reasonably easy to relate the functional block diagram from the datasheet to the physical layout inside.



The pizeoresistive element on the left is the MS7101. There is not too much information about it online, but you can see a few specs in this brochure. It is 1.25 x 1.25 mm, and to the naked eye looks like a grain of black sand. Infinitesimally small movements in the top of this sensor is part of where the magic happens for us. The top of the sensor is a very thin membrane of silicon with resistors etched on the surface in a particular pattern. This is like the skin of a drum on top of a hollow cavity. The silicon membrane is pushed in when you drop 10cm in altitude and about 20 trillion more molecules rush inside the metal cap of the sensor; this causes the surface resistors to change slightly. The resistors are part of a circuit which alters a voltage by a tiny bit, and the job of measuring pressure is half done. What is important for us is that it is super sensitive and repeatable as the silicon membrane flexes in and out. However, there are other things which can affect the resistance etched into the silicon other than flexing caused by pressure changes.

You can read more about piezoresistive sensing elements at the following links:
http://folk.uio.no/livfur/FYS4230/piezolecture.pdf
https://www.comsol.com/paper/download/182789/meenatchisundaram_presentation.pdf
http://pdfserv.maximintegrated.com/en/an/AN871.pdf

On the right is the ADC. Its main job is to turn the voltage from the pizeoresistive element to a digital signal. The component is more than just a standard super sensitive ADC, it also includes temperature compensation, some memory to store calibration coefficients, a digital filter, and sufficient digital circuity to allow communication the micro controller of the BlueFly. The temperature compensation removes most of the temperature induced inconstancy from the etched surface resistors in the sensing element, while the calibration coefficients allow for manufacturing inconsistency to be removed. Together these can present a super accurate digital signal. The magic of the MS5611 is that the ADC is very accurate and is designed to work at high clock speeds. This allows the BlueFly to get pressure measurements 50 times per second at 10 cm resolution, and with further processing in the BlueFly this means we can detect altitude changes very quickly.

Physical Vulnerability

The image below is taken from a slightly different angle. Here you can more easily see the vulnerability of the sensor. The holes in the cap, although tiny, are large enough for dust, grit, water, solvents, and even brush bristles, to get in. The most obvious vulnerability are the fine gold wire bonding connections. If any one of these wire connections is damaged then the sensor will not function correctly, even though it may still report a digital signal.

In addition, each of the sensor sub-components is coated in a clear sticky gel like substance; I guess for corrosion protection and perhaps some other stabilizing effect. This gel does not dissolve in water, acetone, or isopropyl alcohol, but it does seem to attract bits of dust and grit, which I think can affect either component in some circumstances.


Light Sensitivity

I spent a bit of time trying to understand the causes of light sensitivity. The video below shows the light sensitivity effect up close based on illumination from the LED's on my microscope. I think that at this range they provide the same order of magnitude light intensity as sunlight. The video pretty clearly shows that light sensitivity is due to the piezoresistive element. With a little internet research I found some theoretical descriptions of why this is the case. However, for our purposes the key is to know that protecting the sensor from light is vital to ensuring it works properly.


Sensor Protection

You need to protect your pressure sensor if you want your vario to perform well, but it also needs to be exposed to the air. The three strategies for protection are:
  • Put the whole vario in a case, although note that the translucent sky blue case used for the BlueFly does not block the light enough. 
  • Use the neoprene. I have spent some time testing different types of foam to find one which is effective at blocking the light, but permeable enough to air. The soft squishy side should be on the sensor, not the sticky side, which would block the holes. Every vario I send out has neoprene attached to the PCB in the right place, or in the kit if you are going to assemble it yourself.
  • Use a folded piece of black electrical tape, making sure that the sticky part of the tape is folded over on top of the sensor. This is a quick hack that can be done if you have lost your neoprene.
See the image below for a few examples.







Sunday, 15 January 2017

BlueFlyVario_Bluetooth_USB_v12 released

The first batch of the new BlueFlyVario_Bluetooth_USB_v12 model has been produced and all pre-orders have been shipped. I announced in the last blog post the new features of the v12 compared to the v11. In this post I will provide a more detailed description of the new design and describe the assembly procedure.

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. 
  • 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. 


Assembly

Assembly is pretty simple and will take most people less than 10 minutes. I still recommend the procedure described in this previous blog post, but I have refined a few of the steps as described below:

Install Step 1 - Prepare the case 

[Optional] The first part of this step is only needed if you want to put a small lanyard on the vario. Drill a couple of holes into the case at the opposite end from the USB cutout. Use a slow speed drill and only the force needed. Make sure the holes are not too close together or the small plastic in between might break if you use too much force on the lanyard. Size the holes according to whatever cord you will use. Note that on the v12 the mainboard is slightly longer than the v11 so you will need to drill the holes so that the lanyard is under where the circuit board is going to be close to the end of the case.


Next you will probably want to slightly enlarge the inside of the USB hole. I use a sharp pointed knife and just remove a small chamfer from all of the inside edges of the USB hole as shown below. This helps the micro-USB connector fit in nicely.


Install Step 2 - Screws and standoffs

Screw the hex standoffs and screws into the BlueFlyVario_Bluetooth_USB_v12 module as shown below, but be careful not over-tighten the screws; finger tight is normally enough. The hex standoffs keeps the module properly spaced from the base of the case.  You can shorten the standoffs by about 0.5mm with a sharp knife to improve the fit into the case.


Install Step 3 - Place it into the case


This is the only tricky part. Use only the force needed to place the module correctly in the case. It is possible to break either the button or the usb connector if you use too much force. Place the module in the base of the case so the button protrudes from the hole. You may find the USB connector will need a little pressure from above to push it into the hole. The edge of the PCB should be close up to the cutout end of the case and the USB connector shroud will move into the cutout (as shown below). Also see the photo from step 3 in this previous post for more information about where to gently press on the main board.  


Install Step 4 - Packing material

Put something at the other end of the PCB to keep it pressed against the USB cutout end of the case. The gap on the v12 model is about 1-2mm and I use a small piece of paper folded and placed as shown in the image below. Note the small lanyard threaded below the board.


Install Step 5 - Battery

In the v12 there is no longer any need to use double sided tape to secure the battery to the board as the lid holds it in place. Note the wires need to be neatly folded and placed as shown.


Install Step 6 - Close the case

Place the top on the case (which is now the bottom in the image shown below). I now normally run clear tape around the case to ensure the lid is held in place; this is shown as brown kapton tape below so it stands out in the image. On the v12 the battery fits snugly, and if you do not slightly shorten the standoffs in step 3 then the lid might pop off just when you don't want. 


Plug it in to recharge. The red light should come on. A single press on the button will switch it on, and a long press will turn it off. See the Hardware Settings Manual for more technical setup. 

Install Step 7 (optional)

Some pilots like to mount the vario on a flightdeck. You can use a 50 x 30mm piece of velcro (not included). To make velcro stick better heat it up with a hairdryer prior to sticking it on.


--- Technical Stuff ---

For most pilots, this is about as far as you need to read through this post. However, if you want to get technical and understand more about your BlueFly then read on. 

Firmware Changes

There are not too many firmware changes relevant for users between the last firmware from the v11 (see here for 11.M13), and the first firmware for the v12 (12.M14). In summary:
  • The UART related code has been updated to change the way data is sent with the new analog switch. It works like this:
    • If Bluetooth is not connected data is only sent and received from the Bluefly via the USB-serial chip. 
    • If Bluetooth is connected then data is sent to both the Bluetooth and USB-serial connection, but only received from the device connected via the Bluetooth connection.
  • The default hardware settings have been changed, particularly some of those associated with audio thresholds. They now reflect my preferred settings. At some stage I will update the hardware settings manual. 
  • Changing the secondsBluetooothWait hardware setting now re-enables the bluetooth module if it has been disabled. 
Hardware Design

The layout of the key components on the mainboard is described in the image below:


Some key changes from the v11:
  • The addition of the FTDI 230X USB-Serial converter now enables a data connection in the miro-USB port (instead of just charging). This makes it much easier to adjust hardware settings on a Windows PC. 
  • The addition of an analog switch controls serial data sent as described above in the firmware section. 
  • Components are spaced better and aligned more neatly. This is not just for visual appeal, but is is a 'design for manufacture' feature which makes it easier for me to assemble. 
  • The board is now about 3 mm longer, and the holes have been moved a little closer to the corners. This maximizes the space available for components and the board fits better into the sky blue case. 
All of the exposed pins are now in one row along the top side as shown in the image of the bottom of the board below:


Some key points:
  • You will not use the programming pads for the PIC or the RN4677 unless you are a super hacker and writing your own firmware from scratch. 
  • The external speaker connector is for when you want to remove the micro speaker and use a separate 16 ohm speaker. You might be able to use a 8 ohm speaker but you will need to check the levels with your test equipment and you might need to change the resistor biasing the transistor. 
  • The USB PWR jumper should be closed ONLY if you want to power the BlueFly solely from the micro USB connection, and not use the battery. DO NOT CLOSE IT WHEN USING A BATTERY - because if you did then unregulated 5V power would be provided directly to the battery which might case it to fail. 
  • Along the right:
    • The U1 V+, Tx, Rx, Gnd connectors are for connecting an external GPS as described in previous blog posts. I am considering new shields for this model. 
    • The I2C V+, SCL, SDA and GND pins are used for connecting the airspeed sensor described in previous posts. In future versions of the firmware this might also be used for other external devices. 
    • RA7 is a general purpose digital IO which is currently used for enabling and disabling an external GPS connected to U1. 
    • RB10 is a general purpose digital IO which is currently used for the calibration button on the airspeed shield. 
    • RB11 is a general purpose digital IO which is used for an indicator LED on the airspeed shield. 
    • RB4 can be a general purpose digital IO or provide an analog input. The firmware does not currently read it, but in the future I am planning to add some code to read the analog input from something like a fuel level sensor. 
    • BTN is connected to one edge of the main button. A momentary connection to VBAT will power up the vario and enable the voltage regulator. Subsequent momentary connections will then simulate a button press. 
    • VBAT is connected to the positive supply for the LiPo Battery. 
Future work

You may be able to tell that am  hopelessly addicted to trying to make the BlueFly better. Expect more stuff in the future - let me know your ideas. 


Thursday, 29 December 2016

BlueFlyVario_Bluetooth_USB_v12 model almost ready

Early in the new year I will begin shipping the new BlueFlyVario Bluetooth_USB_v12 model. You can pre-order from today, but shipping will not commence until mid Jan 2017 when I have completed production of the first batch. In this short blog post I will describe what to expect from the new model. A more comprehensive post will accompany the first shipments which will describe assembly and configuration.


New Features

The v12 model is an evolution of the v11. The main change is the addition of a USB data connection on the same board as Bluetooth, but there are many other little changes:

  • The V12 adds a FT230x USB-serial chip to the board to allow the USB connector to be used for more than just charging. This will simplify adjusting settings using Windows, and allow for a wider range of compatibility. This feature included adding an analog switch to manage when UART data is sent via Bluetooth and USB. It works like this:
    • If Bluetooth is not connected data is only sent and received from the Bluefly via the USB-serial chip. 
    • If Bluetooth is connected then data is sent to both the Bluetooth and USB-serial connection, but only received from devices connected via the Bluetooth connection.
  • The V12 board was lengthened by a few mm to allow for the extra space needed for the new components. It now takes up almost the complete length of the case. 
  • Power consumption is reduced by about 30% when not connected via Bluetooth. This was achieved by changing the way the RN4677 Bluetooth Module is disabled after the bluetoothSecondsWait timeout. 
  • The battery will be upgraded from 600mAh to 750mAh, taking up all of the spare space in the case. This makes for a snug fit and reduces the need for packing. 
  • The LED's have all been moved near the USB connector. 
  • The speaker has been rotated by 90 degrees, which will allow a small hole to be drilled in the side of the case if you really want to maximize the volume. 
  • All spare pins from the micro-controller, the button, battery voltage, etc are now all exposed in one row of headers. This will simplify hacking and will allow for things like an analog voltage input to be sensed. 

What stays the same

  • The case and standoffs are the same as the v11, as is the micro-controller, pressure sensor, RN4677 Bluetooth module, and supporting components. 
  • All of the hardware settings options, although I will be changing the defaults to the most common settings
  • The price, almost... I had to add a few dollars to take into account the cost of the FT230x USB chip and new analog switch. 

Other Models

  • The BlueFlyVario_Bluetooth_USB_v12 will will replace the BlueFlyVario_Bluetooth_v11. The v11 model is now almost out of stock and I am no longer accepting orders for it.
  • The BlueFlyVario_TTL_GPS_v11 remains the current model for connecting to a Kobo via TTL. I am some months away from considering what updates I will do to that model. The main change in v12 - the addition of USB to the Bluetooth model, is not applicable to the TTL model. 
  • The BlueFlyVario_USB_v11 and BlueFlyVario_USB_GPS_v11 remain current if you do not need a Bluetooth connection. 
  • The v11 shields are still available, and are electrically compatible with the v12, but the pins do not exactly match the new headers.



Sunday, 30 October 2016

New Firmware with Audio Settings updates

This is a quick post to let you know about two new features in the latest firmware released today. You can download the latest version of the firmware from http://www.blueflyvario.com/firmware/.

Audio toggle

After you have turned the vario on with a short press on the button it starts making noise. The vario noises can be turned off by adjusting some of the audio hardware settings, however for many pilots they just want the vario to be quiet until they launch (but still send data to the phone or other device it is connected to). For some time you have been able short press on the button to toggle between silence and noise. A long press turned it off.

With the new feature added in firmware version 11.m13 a short press on the button toggles between 'Audio Off' >> 'Audio On' >> 'Audio Off'.

However, if you have useAudioBuzzer enabled then it toggles between 'Audio Off' >> 'Vario Audio On only' >> 'Vario Audio and Buzzer On' >> 'Audio Off'.

Auto toggle on

In conjunction with the updated audio toggle feature, there is a new feature which automatically toggles the audio back on when lift or sink is greater than the toggleThreshold. This new hardware setting (BTT) means that you can turn the vario on with a short press. Then toggle the audio off (with another short press), then when your flight begins, indicated by lift or sink being greater than toggleThreshold, then the audio will toggle back on.

Manual and BFVDesktop

In conjunction with these features I have updated the hardware settings manual, and the BFVDesktop application

Monday, 29 August 2016

Force Bluetooth SPP Mode

Yesterday I posted about a firmware update with a new hardware command for adjusting settings on the RN4677 bluetooth module. Today I will tell you how to use this new command to force the RN4677 to use Bluetooth SPP mode. This was motivated by getting the BlueFlyVario_Bluetooth_v11 to work with some Android devices (like the WayteQ x995). The procedures described here will also help with some apps (FlyMe and XCTrack).

Some background

The RN4677 bluetooth module from Microchip included on the BlueFlyVario_Bluetooth_v11 is a very capable device. You can find a comprehensive user guide here: http://www.microchip.com/wwwproducts/en/RN4677. This module allows the BlueFly to connect to iOS devices using Bluetooth Low Energy (otherwise known as BLE, or Bluetooth 4.0), while also being able to connect to a very wide variety of Android and Windows PC Bluetooth adapters using Bluetooth Simple Port Protocol (otherwise known as SPP, which is available on Bluetooth 2.0 or 2.1 devices).



A full description of how these protocols work is beyond the scope of this post. However, it is sufficient to say that if your Android device supports BLE (most new devices) and SPP (almost all devices), then it is possible that an Android app might try to connect to the BlueFly over BLE. If that happens then the connection will probably fail. So far, I do not think that there are any Android apps which have BLE working with the BlueFly. It is something which is on my todo list for the BlueFlyVario app.

Step 1: Connect to the BFVDesktop application

The first step is to get your BlueFly connected to the BFVDesktop application (download from here) via a PC with a Bluetooth adapter. If your Bluetooth adapter supports BLE and you can not seem to avoid it then you can force a non BLE connection by disabling part of the driver. A quick way to do this is to open Device Manager and disable 'Microsoft Bluetooth LE Enumerator' in the Bluetooth section. Make sure to remove the BlueFly device, then add it again and complete the pairing process. Use the paired virtual serial port in the BFVDesktop application. You should see the data streaming in.

Step 2: Make sure you can communicate with the BlueFly 

Send a few test commands using 'Raw Tx:' Try $BTN* to simulate button presses. You should hear beeps.

Step 3: Adjust settings on the RN4677

Send the command $RNC SG,2*

Note the space between RNC and SG. When you send this command the BlueFly does the following:
  • Puts the RN4677 module into command mode (by sending $$$ from the processor the the RN4677); this kills the connection. 
  • Sends the RN4677 the SG,2 command (see page 17 here: http://ww1.microchip.com/downloads/en/DeviceDoc/50002377A.pdf - You can use the RNC command to the Bluefly to progressively send any series of set commands the RN4677; but be careful unless you know what you are doing)
  • Sends the RN4611 the command R,1; which resets it and stores the setting
  • Restarts the BlueFly
Step 4: Restart everything

You will then need to restart the BFVDesktop app to connect again. Unfortunately, there is no easy way to check the settings on the RN4677 unless you have a TTL-Serial adapter and can solder it in between the processor and the RN4677.

After that, un-pair the BlueFly from your Android device, restart the device and the BlueFly, and then try paring and connecting again. XCTrack and FlyMe should now work!

Further Steps

If that does not work you might also want to try further configuring the RN4677 authentication modes. On some devices that affects how they connect after pairing:
  • $RNC SA,1* will change the RN4677 from 'SSP just works' mode to 'SSP pin code confirm mode.
  • $RNC SA,4* will change the RN4677 to legacy 4 digit pin mode. The default pin is 1234.
There are many other settings you can mess with (and mess up) on the RN4677. If you really screw it up please contact me. 

Saturday, 27 August 2016

Firmware update for v11 models

Last weekend I was able to release a new firmware for the v11 models of the BlueFly. The v11 models have a different processor (the PIC24F32KA302 instead of the PIC24F32KA301) which uses different pins for most of the hardware functions. As a consequence there is a slightly different bootloader on the vario, although you do use the same ds30loader program on the PC side.

Firmware updates for BlueFlyVario started with v10, and you can still download the latest firmware for the v10 models from the firmware page of the website. For the v10 models you should follow the instructions in this previous blog post.

Do I need to update the firmware?

If you are happy with the performance of the BlueFly, and you do not need any of the features of the new firmware, then I strongly urge you to leave it alone. Although it only takes me a minute or two, many pilots find it tricky. If you are going to do it then the first step is to check what firmware you currently have.

The firmware for the initial release of the Bluetooth, TTL_GPS and USB models was 11.M09, 11.M10, and 11.M11 respectively. Although I only released the 11.M12 firmware last weekend, I have actually been shipping it with new varios for some weeks. You can see what version of the firmware your device has by using the BFVDesktop app and connecting to your device. That will be tricky if your TTL_GPS model is soldered to the Kobo. For that model try starting up the vario while you are looking at the monitor in xcsoar and read the message from the BlueFly. The first line includes the firmware version.

Key changes in 11.M12

The primary reason for releasing a new verison of the firmware is to support some changes for the Bluetooth model, although there are some other changes as well. In summary the changes are:
  • A new command designed which enables you to change settings on the RN4677 blueotooth model. Read the hardware settings manual to understand how to send a command. The command is:
    • $RNC ABC*, where ABC is the command to send to the RN4677. 
    • When you send that command to the BlueFly it sends back some serial signals to the RN4677 in the following manner:
      • Turns on the BlueFly green LED.
      • Sends $$$ to the RN4677, which puts it into command mode. This stops the BlueFly sending data. 
      • Waits 1000 ms.
      • Sends ABC to the RN4677 followed by the \n character. In most cases ABC is an individual RN4677 command you choose from it's user guide to adjust a setting on the module 
      • Waits 500 ms. 
      • Sends R,1\n to the RN4677 to restart the RN4677 and store the setting.  
      • Waits 500 ms. 
      • Turns of the BlueFly green LED. 
      • Restarts the BlueFly. 
    • It is really possible to screw up the RN4677 by doing this if you are not sure what you are doing. I will be posting some examples in a separate blog post. 
  • The new firmware maintains the volume of start and shutdown beep, regardless of the volume settings.
  • The RSX command now also sends $PMTK104*37 to U1. On the TTL_GPS model that forces the GPS to ditch its ephemeris data (satellite data) and restart. This can be used to recover a GPS which may be stuck in some kind of bad data loop. 
Bootloader changes

There are minor changes to the bootloader procedure for the v11 models. The procedures described in this previous blog post for the v10 still apply, but with the following changes:
  • Step 1 - Get the software: No change, the same ds30loader software is used. 
  • Step 2 - Prepare the hardware: On the v11 you now short the pins below (GND and SDA) to enter the bootloader mode. The names of these pins are shown on the bottom of the board. 


  • Step 3 - Open the ds30laoder application: Use the following different settings for v11, all of the others are the same as v10
    • Model: 32KA302
    • Baud: 115200
  • Step 4 - Start up the Bluefly in bootloader mode: No change; other than the different pins as shown above in step 2. 
  • Step 5 - Program the device: No change
Hardware Settings Reset

After updating the firmware I recommend that you execute a full hardware settings reset. On the v11 models you do that by shorting GND and SCL then starting the vario while the short is in place. Once you hear the high pitched fast beeps you can release the short and all of the settings will be back to the defaults.

TTL_GPS model addendum for the Kobo

Tyson let me know he has been working on updating the firmware on the BlueFlyVario_TTL_GPS with it still connected to the Kobo. In his words:

"Thought you might be interested in this small program I wrote. Converts the hex files into a shell script that can be directly run on the kobo to do the flash upgrade.

https://github.com/twhitehead/blueflyvario-hex2sh

Just finished using it to upgrade to the latest firmware for my BlueFlyVario_TTL_GPS_v10 model. Seemed to go good."

I am still waiting to find time to try it out. Let me know how much success you have.