xref: /btstack/port/windows-h4/README.md (revision 3cda7aede81b55796a1111163e9d0f8a57ca5e4e)
1c7558746SMatthias Ringwald# BTstack Port for Windows Systems with Bluetooth Controller connected via Serial Port
2c7558746SMatthias Ringwald
3c7558746SMatthias RingwaldThe Windows-H4 port uses the native run loop and allows to use Bluetooth Controllers connected via Serial Port.
4c7558746SMatthias Ringwald
5c7558746SMatthias RingwaldMake sure to manually reset the Bluetooth Controller before starting any of the examples.
6c7558746SMatthias Ringwald
7*3cda7aedSMatthias Ringwald## Toolchain
8*3cda7aedSMatthias Ringwald
9*3cda7aedSMatthias 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](mingw.org) which has a good summary 'MinGW 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.'
10*3cda7aedSMatthias Ringwald
11*3cda7aedSMatthias RingwaldWe've used the Msys2 package available from their [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.
12*3cda7aedSMatthias Ringwald
13*3cda7aedSMatthias RingwaldIN the MSYS2 shell, you can install git, winpty, and python with pacman:
14*3cda7aedSMatthias Ringwald
15*3cda7aedSMatthias Ringwald    $ pacman -S git
16*3cda7aedSMatthias Ringwald    $ pacman -S winpty
17*3cda7aedSMatthias Ringwald    $ pacman -S python
18*3cda7aedSMatthias Ringwald
19*3cda7aedSMatthias Ringwald## Compilation
20*3cda7aedSMatthias Ringwald
21*3cda7aedSMatthias RingwaldWith mingw64 installed, just go to the port/windows-winusb directory and run make
22*3cda7aedSMatthias Ringwald
23*3cda7aedSMatthias Ringwald    $ cd btstack/port/windows-winusb
24*3cda7aedSMatthias Ringwald    $ make
25*3cda7aedSMatthias Ringwald
26*3cda7aedSMatthias Ringwald## Console Output
27*3cda7aedSMatthias Ringwald
28c7558746SMatthias 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:
29c7558746SMatthias Ringwald
30*3cda7aedSMatthias Ringwald    $ winpty ./spp_and_le_counter.exe
31*3cda7aedSMatthias Ringwald
32c7558746SMatthias Ringwald
33