QNX Technical Articles
QNX® SDK for Bluetooth® Connectivity 1.0: Release Notes
Note: The Bluetooth® word mark is a registered trademark owned by Bluetooth SIG, Inc.
Date of this edition: May 19th, 2016
Target OS: This Bluetooth-supporting development platform produces software that's compatible with ARM and x86 targets that are running QNX® Neutrino® RTOS 6.6.
Host OS: You can install this package on one of the following development hosts:
- Microsoft Windows 8 Professional 64-bit, Windows 7 Professional 64-bit, or XP Professional SP3
- Linux Red Hat Enterprise Linux 6 64-bit or Ubuntu Workstation LTS 12.04 64-bit
For the most up-to-date version of these release notes, go to our website, www.qnx.com, log in to your myQNX account, and then go to the Download area. |
Contents
- What's in the QNX SDK for Bluetooth Connectivity?
- Supported platforms
- Known issues
- Getting started with the documentation
- Technical support
Throughout this document, you may see reference numbers associated with particular issues, changes, etc. When corresponding with our Technical Support staff about a given issue, please quote the relevant reference number. You might also find the reference numbers useful for tracking issues as they become fixed.
What's in the QNX SDK for Bluetooth Connectivity?
The QNX SDK for Bluetooth Connectivity (QSBC) contains the EtherMind Software IP technology from Mindtree Inc., which allows applications to exchange data over Bluetooth networks using classic and low-energy profiles. The Mindtree technology includes:
- the EtherMind Bluetooth 4.2 dual-mode host stack
- the SPP and PAN profiles, which let applications set up networks and exchange serial data over them
- several classic and low-energy profiles that support domain-specific use cases; for example, the Health Device Profile (HDP) lets applications transmit and receive medical device data
- the IEEE 11073 add-on stack, which reads health data and converts them to formats compliant with device specifications defined by the IEEE 11073 standard
The QSBC installer also contains sample applications and documentation from Mindtree that explains how to use their Bluetooth stack and provides API references.
Supported platforms
QSBC has been tested on the following ARM platforms and Bluetooth hardware:
- Texas Instruments (TI) OMAP5 uEVM with TI WiLink 8 Bluetooth module
- Freescale i.MX6Q SABRE Smart with TI WiLink 8 Bluetooth module
QSBC has also been tested on the following x86 platform and Bluetooth hardware:
- Intel NUC BayTrail with AzureWave module that uses Marvell chipset
Known issues
This product has known issues in the following areas:
Building an IFS
On a Windows host that includes the Marvell firmware, when building the x86-generic IFS, you must modify the makefile in the images/ subdirectory to prevent a build error. (Ref# J1512774)
In the qsbc10-x86-generic.build makefile, in the section that configures the Marvell Bluetooth driver, change:
pcie8897_uapsta.bin
to:
pcie8897_uapsta.bin=${QNX_TARGET}/${PROCESSOR}/lib/firmware/mrvl/pcie8897_uapsta.bin
This step is necessary when your target hardware setup involves an Intel NUC BayTrail board (which uses an IFS built from the x86-generic BSP) and the AzureWave Bluetooth module, which uses the Marvell firmware.
There's no issue when building with the x86-generic BSP if you're using the TI WiLink 8 firmware, or when building with this same BSP on a Linux host, even if you're using the Marvell firmware.
EtherMind applications
The PulseOx device sometimes disconnects from the target when it tries to continuously send measurement data over Bluetooth. (Ref# J1501914)
Normally, this medical device transmits only one "best" measurement to the target system that runs the health manager. However, for demo purposes, the device transmits data continuously. This operating mode causes problems because of the significant power drainage that makes the device terminate the Bluetooth connection when the battery state becomes a concern.
In general, you should remove the batteries from the PulseOx device when you're not using it to take health measurements; this action preserves the battery power. Workaround: Turn off the PulseOx device before reinserting your finger to get new measurements. If this doesn't work, open the battery cover and reinsert the batteries before trying to make another measurement.
When running the PulseOx application (ethermind_10404_manager.out), don't issue the Ctrl-C key sequence. This keyboard input causes problems if you try to reconnect to the PulseOx device. (Ref# J1501914)
Workaround: Type 'x' and press Enter as the input to the application. This takes care of terminating the connected Bluetooth link before closing the application.
The Bluetooth pairing file must be explicitly deleted on the target after using a PulseOx device to ensure that this device can be paired again with another target. (Ref# J1501914)
If you pair the PulseOx device with a target system that runs the Mindtree Bluetooth (i.e., EtherMind) stack, run the PulseOx application (and take the necessary measurements), then terminate this application, you must delete the btps.db file on the target. This file is found in the directory that stores the configuration file and is where you launch the application from.
If the pairing file isn't deleted, the PulseOx device is left in a bad state and can't be paired again with another target. Sometimes, though, deleting the btps.db file isn't enough. In this case, you can try pairing the PulseOx device with another Bluetooth device (e.g., an iPhone), then disconnecting from this other device. This action sequence seems to clean up the Bluetooth state on the PulseOx device and enable it to once again connect to the target system.
Sometimes, if a PulseOx device is still paired with another device, it's not discoverable to the target system that runs the EtherMind stack and hence, the PulseOx device can't be paired with the target. (Ref# J1501914)
Workaround: Pair the PulseOx device to another Bluetooth device (e.g., an iPhone), then delete the pairing and take the batteries out of the PulseOx. Then, you might find that it's discoverable to the target when running the PulseOx application (ethermind_10404_manager.out).
- The timestamps for some measurements shown by the Weight Scale application (ethermind_10415_manager.out) aren't always correct. For instance, some measurements have timestamps that are a few days in the future. (Ref# J1514683)
When running the Heart Rate Sensor application (ethermind_emd1.out), the heartrate value isn't updated after the heartrate belt is disconnected and reconnected. (Ref# J1508262)
This issue was seen with both the Wahoo TIKR and Wahoo BLUEHR versions of the belt, and applies to all target platforms.
Before launching this application, you must first specify the MAC address of the heartrate belt in the Device_Configuration.conf file in /var/mindtree/demo/emd1/. While the application is running, if you put both hands on the heartrate belt sensors, you'll initially see the measurements that are sent to the target (in the application output). But if you then remove your hands and wait until you see a measurement value of 0 and a disconnect event (either 0x13 or 0x08), then put both hands back on the sensors, the value shown remains 0. No further measurements are sent to the target system even though the application continues to run.
Workaround: Run ethermind_emd2.out instead (this application is a demo of the PulseOx device and the heartrate belt working together), or terminate the HRM application and restart it to see new measurements sent.
Discovery
IEEE devices may not be discoverable to EtherMind applications when they're run with menu options disabled. (Ref# J1516036)
If you run an EtherMind application with default settings, the menu options are disabled and the application follows an action sequence in which Bluetooth connectivity and pairing are automated. However, in this case, peer device discovery may be unreliable. If the IEEE device isn't discovered when you run this automated version of the application, you can try enabling the menu options, relaunching the application, then manually performing the connectivity and pairing steps.
To enable menu options, you must change the application's configuration before restarting it. In the directory from which you launch the application (which is under /var/mindtree/ on the target), edit Device_Configuration.conf to change:
APPL_MENU_OPS = 0
to:
APPL_MENU_OPS = 1
If you run the application with the menus enabled and the device is discovered successfully, you can rerun the automated version and the application should discover the device. If you want to keep running the manual version, you must select the correct sequence of menu options to set up the HCI transport and HDP connection. For example, if you run the PulseOx application, you need to choose these options:
- Option #2 - Register Device with 10404
- Option #5 - Bluetooth HDP operations
- Option #3 - Start Inquiry (this starts discovery)
- Option #4 - Connect HCI Transport (this does HCI connections)
- Option #7 - Create HDP connection (this establishes the HDP services so you can then insert your finger into the device to make it send a health reading to the target; then, after you remove your finger, the application shows a disconnect)
- Option #8 - Delete HDP connection (it's important to delete the connection)
- Option #6 - Disconnect HCI Transport (it's important to disconnect the transport)
- Option #0 - Exit
Getting started with the documentation
After you install QSBC, you'll find an extensive set of documentation from Mindtree that explains how to use their EtherMind Bluetooth technology. The Mindtree help content is stored at the following host path: base_directory/qnx6/target/usr/help/QSBC/1.0
The documentation includes user manuals, API references for the profiles and protocols included with the currently installed package, and instructions on building the EtherMind applications. These sample applications are also included in the installer and are found in subdirectories (i.e., bt, demo, and ieee) at the following location: base_directory/qnx6/target/architecture/bin
All of the Mindree documents are in PDF format.
You can find documentation about QSBC in the Download Center, in the same area where you downloaded the product installers from. The QSBC TechNote (available as a PDF document) explains:
- which Bluetooth profiles and protocols are supported by each installer package
- which target platforms and Bluetooth hardware are supported by QSBC
- how to set up your target board and wireless module to use Bluetooth
- how to build a filesystem image containing the QSBC content
- the target directories from which you must launch a sample application
Technical support
To obtain technical support for any QNX product, visit the Support area on our website (www.qnx.com). You'll find a wide range of support options, including community forums.