1# BTstack Port for POSIX Systems with Intel Wireless 8260/8265 Controllers 2 3Same as port/libusb, but customized for Intel Wireless 8260 and 8265 Controllers. 4These controller require firmware upload and configuration to work. Firmware and config is downloaded from the Linux firmware repository. 5 6## Compilation 7 8Requirements: 9- [pkg-config](http://www.freedesktop.org/wiki/Software/pkg-config/) 10- [libusb-1.0](http://libusb.info) 11 12On a recent Debian-based system, all you need is: 13 14 apt-get install gcc git libusb-1.0 pkg-config 15 16 17When everything is ready, you compile all examples with: 18 19 make 20 21## Environment 22 23On Linux, the USB Bluetooth dongle is usually not accessible to a regular user. You can either: 24- run the examples as root 25- add a udev rule for your dongle to extend access rights to user processes 26 27To add an udev rule, please create `/etc/udev/rules.d/btstack.rules` and add this 28 29 # Match all devices from CSR 30 SUBSYSTEM=="usb", ATTRS{idVendor}=="0a12", MODE="0666" 31 32 # Match DeLOCK Bluetooth 4.0 dongle 33 SUBSYSTEM=="usb", ATTRS{idVendor}=="0a5c", ATTRS{device}=="21e8", MODE="0666" 34 35 # Match Asus BT400 36 SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", ATTRS{device}=="17cb", MODE="0666" 37 38 # Match Laird BT860 / Cypress Semiconductor CYW20704A2 39 SUBSYSTEM=="usb", ATTRS{idVendor}=="04b4", ATTRS{device}=="f901", MODE="0666" 40 41 # Match Intel Wireless 8260 8265 42 SUBSYSTEM=="usb", ATTRS{idVendor}=="8027", ATTRS{device}=="0a2b, MODE="0666" 43 44On macOS, the OS will try to use a plugged-in Bluetooth Controller if one is available. 45It's best to to tell the OS to always use the internal Bluetooth Contoller. 46 47For this, execute: 48 49 sudo nvram bluetoothHostControllerSwitchBehavior=never 50 51and then reboot to activate the change. 52 53## Running the examples 54 55BTstack's HCI USB transport will try to find a suitable Bluetooth module and use it. 56 57On start, BTstack will try to find a suitable Bluetooth module. It will also print the path to the packet log as well as the USB path. 58 59 $ ./le_counter 60 Packet Log: /tmp/hci_dump.pklg 61 USB Path: 03-01-04-03 62 Firwmare ./ibt-12-16.sfi 63 Firmware upload complete 64 Firmware operational 65 Done 1 66 BTstack counter 0001 67 USB Path: 03-01-04-03 68BTstack up and running on F8:34:41:D5:BE:6F. 69 70If you want to run multiple examples at the same time, it helps to fix the path to the used Bluetooth module by passing -u usb-path to the executable. 71 72Example running le_streamer and le_streamer_client in two processes, using Bluetooth dongles at USB path 6 and 4: 73 74 ./le_streamer -u 6 75 Specified USB Path: 06 76 Packet Log: /tmp/hci_dump_6.pklg 77 USB Path: 06 78 BTstack up and running on 00:1A:7D:DA:71:13. 79 To start the streaming, please run the le_streamer_client example on other device, or use some GATT Explorer, e.g. LightBlue, BLExplr. 80 81 $ ./le_streamer_client -u 4 82 Specified USB Path: 04 83 Packet Log: /tmp/hci_dump_4.pklg 84 USB Path: 04 85 BTstack up and running on 00:1A:7D:DA:71:13. 86 Start scanning! 87