Home
Developer Resources
Technical Articles

QNX Technical Articles

HCI USB Driver for x86: Release Notes

Date of this edition: May 19th, 2016

Target OS: This package is compatible with Intel NUC BayTrail targets that are running the QNX® Neutrino® RTOS 6.6.

Host OS: To apply this package, you must have installed the QNX® Software Development Platform (SDP) 6.6 and QNX® SDK for Bluetooth® Connectivity (QSBC) 1.0 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

Note: The Bluetooth® word mark is a registered trademark owned by Bluetooth SIG, Inc.


Note: For the most up-to-date version of these notes, go to our website (www.qnx.com), log in to your myQNX account, and then go to the Download Center.

Contents

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 this package?

This package provides the HCI USB driver that allows the Bluetooth stack to exchange HCI packets over USB with the Bluetooth radio, on x86 hardware. The driver is loaded by a resource manager (io-hci) that allows applications to read and write HCI packets and issue device commands using POSIX system calls. For details about the HCI framework and supported operations, see the TechNote for QSBC 1.0, which is found on the Download Center.

Files included in this package are installed in the target area of your QNX SDP 6.6 installation, $QNX_TARGET/.

Binaries

This package contains the following library files and utilities:

  • x86/lib/dll/hci-usb.so
  • x86/sbin/io-hci

Other installed files

The following header files are installed:

  • usr/include/hw/io-hci.h

Known issues

Building an IFS

  • Before building an IFS that includes io-hci, you must modify the device configuration files to specify the USB device path instead of the serial device path, which io-hci uses by default. (Ref# J1511554)

    In all Device_Configuration.conf files for EtherMind applications, change:

    BT_UART_DEVICE_NAME = /dev/serbt1

    to:

    BT_UART_DEVICE_NAME = /dev/hcibt

    This change affects the following files under $QNX_TARGET/:

    • x86/bin/demo/emd1/Device_Configuration.conf
    • x86/bin/demo/emd2/Device_Configuration.conf
    • x86/bin/ieee/Device_Configuration.conf

    You must also make a similar change to fix the port name used by the EtherMind Bluetooth stack, by changing:

    BT_UART_PORT = /dev/serbt1
    to:
    BT_UART_PORT = /dev/hcibt
    in x86/bin/bt/ethermind.conf.

    Note: You can make these configuration file changes at runtime on a target system. For example, if you wanted to quickly verify that HCI transport over USB is working for an application. However, these changes will be lost when you reboot. To permanently use the HCI device path and port name, you must update the configuration files on your host system, then rebuild and redeploy the IFS onto the target.

EtherMind applications

  • On the Intel NUC BayTrail platform with the AzureWave Bluetooth module, the reference application (ethermind_basic.out) doesn't work after you run the Heart Rate Sensor (HRS) application (ethermind_emd1.out) unless you slay and restart the HCI USB driver before running the reference application. (Ref# J1514467)

    This issue was observed after using either of the Wahoo TIKR and Wahoo BLUEHR versions of the heartrate belt while running the HRS application. It appears that the Bluetooth hardware doesn't respond when Bluetooth is turned on again when you start the reference application afterwards. This could be caused by the first application leaving Bluetooth in a bad state.

    The WeightScale application (ethermind_10415_manager.out) seems to have the same issue but the PulseOx application (ethermind_10404_manager.out) doesn't. Also, this issue occurs only with the NUC BayTrail setup described previously; it doesn't occur when you're using other x86 target platforms or a different Bluetooth module.

    Workaround: After terminating the HRS application, use pidin to determine the PID of the io-hci resource manager, which runs the HCI USB driver. Then, use the following command to slay the process:

    slay -9 PID_of_io-hci

    Next, restart the resource manager and load the HCI USB driver, by issuing this command:

    io-hci -d usb

    You can now successfully run the reference application.

Technical support

To obtain technical support for any QNX product, visit the Support area on our website. You'll find a wide range of support options, including community forums.