xref: /btstack/port/windows-winusb-intel/README.md (revision 34fd36da1820bede7fdeb1f09f53c180688c8c25)
1*34fd36daSMatthias Ringwald# BTstack Port for Windows Systems with Intel Wireless 8260/8265 Controllers
2f61339eaSMatthias Ringwald
3f61339eaSMatthias RingwaldSame as port/windows-winusb, but customized for Intel Wireless 8260 and 8265 Controllers.
4f61339eaSMatthias RingwaldThese controller require firmware upload and configuration to work. Firmware and config is downloaded from the Linux firmware repository.
5f61339eaSMatthias Ringwald
6f61339eaSMatthias Ringwald## Access to Bluetooth USB Dongle with Zadig
7f61339eaSMatthias Ringwald
8f61339eaSMatthias RingwaldTo allow libusb or WinUSB to access an USB Bluetooth dongle, you need to install a special device driver to make it accessible to user space processes.
9f61339eaSMatthias Ringwald
10f61339eaSMatthias RingwaldIt works like this:
11f61339eaSMatthias Ringwald
12f61339eaSMatthias Ringwald-  Download [Zadig](http://zadig.akeo.ie)
13f61339eaSMatthias Ringwald-  Start Zadig
14f61339eaSMatthias Ringwald-  Select Options -> “List all devices”
15f61339eaSMatthias Ringwald-  Select USB Bluetooth dongle in the big pull down list
16f61339eaSMatthias Ringwald-  Select WinUSB (libusb) in the right pull pull down list
17f61339eaSMatthias Ringwald-  Select “Replace Driver”
18f61339eaSMatthias Ringwald
19f61339eaSMatthias Ringwald## Toolchain
20f61339eaSMatthias Ringwald
213c7822d8SMatthias RingwaldThe port requires a Unix-like toolchain. We successfully used [mingw-w64](https://mingw-w64.org/doku.php) to compile and run the examples. mingw64-w64 is based on [MinGW](https://en.wikipedia.org/wiki/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.'
22f61339eaSMatthias Ringwald
23f61339eaSMatthias RingwaldWe've used the Msys2 package available from the [downloads page](https://mingw-w64.org/doku.php/download) on Windows 10, 64-bit and use the MSYS2 MinGW 32-bit start menu item to compile 32-bit binaries that run on both 32/64-bit systems.
24f61339eaSMatthias Ringwald
25f61339eaSMatthias RingwaldIn the MSYS2 shell, you can install git, python, and, winpty with pacman:
26f61339eaSMatthias Ringwald
27f61339eaSMatthias Ringwald    $ pacman -S git
28f61339eaSMatthias Ringwald    $ pacman -S python
29f61339eaSMatthias Ringwald    $ pacman -S winpty
30f61339eaSMatthias Ringwald
31f61339eaSMatthias Ringwald## Compilation
32f61339eaSMatthias Ringwald
33f61339eaSMatthias RingwaldWith mingw64-w64 installed, just go to the port/windows-winusb directory and run make
34f61339eaSMatthias Ringwald
35f61339eaSMatthias Ringwald    $ cd btstack/port/windows-winusb
36f61339eaSMatthias Ringwald    $ make
37f61339eaSMatthias Ringwald
380af1bfd9SMatthias RingwaldNote: When compiling with msys2-32 bit and/or the 32-bit toolchain, compilation fails
390af1bfd9SMatthias Ringwaldas `conio.h` seems to be mission. Please use msys2-64 bit with the 64-bit toolchain for now.
400af1bfd9SMatthias Ringwald
41f61339eaSMatthias Ringwald## Console Output
42f61339eaSMatthias Ringwald
43f61339eaSMatthias RingwaldWhen running the examples in the MSYS2 shell, the console input (via btstack_stdin_support) doesn't work. It works in the older MSYS and also the regular CMD.exe environment. Another option is to install WinPTY and then start the example via WinPTY like this:
44f61339eaSMatthias Ringwald
45f61339eaSMatthias Ringwald    $ winpty ./spp_and_le_counter.exe
46f61339eaSMatthias Ringwald
47