btstack/port/windows-h4-zephyr
2020-09-11 16:55:08 +02:00
..
.gitignore
btstack_config.h da14585: enable le address resolution in some ports 2020-09-11 14:26:45 +02:00
main.c
Makefile ports: remove ENABLE_CLASSIC from LE-only ports 2020-09-11 16:55:08 +02:00
README.md

BTstack port for Zephyr Controller with HCI UART Firmware Connectected To POSIX System

The main difference to the regular posix-h4 port is that that the Zephyr Contoller uses 1000000 as baud rate. In addition, the port defaults to use the fixed static address stored during production.

Prepare Zephyr Controller

Please follow this blog post about how to compile and flash samples/bluetooth/hci_uart to a connected nRF5 dev kit.

In short: you need to install an arm-none-eabi gcc toolchain and the nRF5x Command Line Tools incl. the J-Link drivers, checkout the Zephyr project, and flash an example project onto the chipset:

Configure serial port

To set the serial port of your Zephyr Controller, you can either update config.device_name in main.c or always start the examples with the correct -u COMx option.

Toolchain

The port requires a Unix-like toolchain. We successfully used mingw-w64 to compile and run the examples. mingw64-w64 is based on MinGW, which '...provides a complete Open Source programming tool set which is suitable for the development of native MS-Windows applications, and which do not depend on any 3rd-party C-Runtime DLLs.'

We've used the Msys2 package available from the downloads page on Windows 10, 64-bit and use the MSYS2 MinGW 64-bit start menu item to compile 64-bit binaries.

In the MSYS2 shell, you can install everything with pacman:

$ pacman -S git
$ pacman -S make
$ pacman -S mingw-w64-x86_64-toolchain
$ pacman -S python
$ pacman -S winpty

Compile Examples

$ make

Note: When compiling with msys2-32 bit and/or the 32-bit toolchain, compilation fails as conio.h seems to be mission. Please use msys2-64 bit with the 64-bit toolchain for now.

Run example

Just run any of the created binaries, e.g.

$ ./le_counter

The packet log will be written to /tmp/hci_dump.pklg