Most Bluetooth controllers have mature software stacks integrated which takes care of all the Bluetooth communications meaning that the application you are developing is relatively isolated from the data that actually gets transferred over the air and so you never need to worry about it.
But, if you are developing a Bluetooth Smart (aka Bluetooth Low Energy or BLE) device which is pushing the boundaries a little or doing something not ‘typical’ then you might experience problems.
We had just such a problem some months ago where we needed to transfer a larger than typical amount of data from a peripheral to a central and we needed to do it quickly. So, we wrote the firmware to do what we needed, and it seemed to work fine, at least when we used it with a development smartphone. But in testing we found that with some phones and tablets it started OK but failed part way through – very frustrating!!
The only way to discover what was actually happening was to monitor the data being transferred over the air; see where it stopped and why.
This is easier said than done; you can try any one of the various low cost sniffers on the market and some of the time they will help you track the problem down but often they simply don’t give you the detail you need.
Fortunately at Touché Technology we have invested in a Frontline (now Teledyne) protocol analyser, this remarkable device will monitor all the RF traffic, decode it and show you the results in a way that is very easy to read.
The BPA600 (http://www.fte.com/products/BPA600.aspx) saved the day.
Through the analysis we were able to see that some mobile devices were ‘renegotiating’ the link parameters during the connection and that his was causing the firmware an issue, we were able to make a change to the firmware and fix the problem.
We also had another occasion where a long connection was being terminated prematurely and again using the BPA600 we were able to find out that the Bluetooth controller was going into deep sleep while connected and that occasionally it failed to wake up in time to send PDUs, this caused the connection to be dropped and the data exchange to fail. Again, we could fix this by changing the sleep mode and so another project was completed successfully.
Having the BPA600 has been incredibly valuable in our work and having it available for our customers helps make their products better and available on the market sooner.