| Bluetooth subsystem |
| |
| = Building = |
| |
| Build samples |
| |
| $ make -C samples/bluetooth/<app> |
| |
| = Bluetooth Sample application = |
| |
| Host Bluetooth controller is connected to the second qemu serial line |
| through a UNIX socket (qemu option -serial unix:/tmp/bt-server-bredr). |
| This option is already added to qemu through QEMU_EXTRA_FLAGS in Makefile. |
| |
| On the host side BlueZ allows to "connect" Bluetooth controller through |
| a so-called user channel. Use the btproxy tool for that: |
| |
| $ sudo tools/btproxy -u |
| Listening on /tmp/bt-server-bredr |
| |
| Note that before calling btproxy make sure that Bluetooth controller is down. |
| |
| Now running qemu result connecting second serial line to 'bt-server-bredr' |
| UNIX socket. When Bluetooth (CONFIG_BLUETOOTH) and Bluetooth HCI UART driver |
| (CONFIG_BLUETOOTH_H4) are enabled, Bluetooth driver registers to the system. |
| From now on Bluetooth might be used by the application. To run application in |
| the qemu run: |
| |
| $ make qemu |
| |
| = Bluetooth sanity check = |
| |
| There is smoke test application in tests directory which gets run in sanity |
| check script: |
| |
| $ scripts/sanity_chk/sanitycheck [-P <platform>] |
| |
| To only run Bluetooth tests use the -t bluetooth switch: |
| |
| $ scripts/sanity_chk/sanitycheck -t bluetooth |
| |
| = Summary of available applications = |
| |
| beacon: |
| A simple application demonstrating the BLE Broadcaster role |
| functionality by advertising an Eddystone URL (the Zephyr |
| website). |
| |
| central: |
| Application demonstrating very basic BLE Central role |
| functionality by scanning for other BLE devices and establishing |
| a connection to the first one with a strong enough signal. |
| |
| central_hr: |
| Similar to 'central', except that this application specifically |
| looks for heart-rate monitors and reports the heart-rate |
| readings once connected. |
| |
| eddystone: |
| Application demostrating Eddystone Configuration Service: |
| https://github.com/google/eddystone/tree/master/configuration-service |
| |
| gatt: |
| Not an application, but a set of reusable modules for common |
| GATT profiles & services. |
| |
| hci_uart: |
| Expose Zephyr Bluetooth Controller support over UART to another |
| device/CPU using the H:4 HCI transport protocol (requires HW |
| flow control from the UART). |
| |
| hci_usb: |
| Make a USB Bluetooth dongle out of Zephyr. Requires USB device |
| support from the board it runs on (e.g. Arduino 101 has this). |
| |
| ipsp: |
| Application demonstrating the IPSP (Internet Protocol Support |
| Profile) Node role. IPSP is the Bluetooth profile that |
| underneath utilizes 6LoWPAN, i.e. gives you IPv6 connectivity |
| over BLE. |
| |
| peripheral: |
| Application demonstrating the BLE Peripheral role. It has |
| several well-known and vendor-specific GATT services that it |
| exposes. |
| |
| peripheral_csc: |
| Similar to 'peripheral', except that this application |
| specifically exposes the CSC (Cycling Speed and Cadence) |
| GATT Service. |
| |
| peripheral_dis: |
| Similar to 'peripheral', except that this application |
| specifically exposes the DIS (Device Information) GATT Service. |
| |
| peripheral_esp: |
| Similar to 'peripheral', except that this application |
| specifically exposes the ESP (Environmental Sensing Profile) |
| GATT Service. |
| |
| peripheral_hr: |
| Similar to 'peripheral', except that this application |
| specifically exposes the HR (Heart Rate) GATT Service. Once a |
| device connects it will generate dummy heart-rate values. |
| |
| peripheral_hids: |
| Similar to 'peripheral', except that this application |
| specifically exposes the HID GATT Service. The report map used |
| is for a generic mouse. |