13c214e8aSMatthias Ringwald# BTstack Port for Windows Systems with DA14585 Controller connected via Serial Port 23c214e8aSMatthias Ringwald 33c214e8aSMatthias RingwaldThis port allows to use the DA14585 connected via Serial Port with BTstack running on a Win32 host system. 43c214e8aSMatthias Ringwald 53c214e8aSMatthias RingwaldIt first downloads the hci_585.hex firmware from the 6.0.8.509 SDK, before BTstack starts up. 63c214e8aSMatthias Ringwald 73c214e8aSMatthias RingwaldPlease note that it does not detect if the firmware has already been downloaded, so you need to reset the DA14585 before starting an example. 83c214e8aSMatthias Ringwald 93c214e8aSMatthias RingwaldFor production use, the HCI firmware could be flashed into the OTP and the firmware download could be skipped. 103c214e8aSMatthias Ringwald 113c214e8aSMatthias RingwaldTested with the official DA14585 Dev Kit Basic on OS X and Windows 10. 123c214e8aSMatthias Ringwald 1398918ebdSMatthias RingwaldThe port provides both a regular Makefile as well as a CMake build file. It uses native Win32 APIs for file access and does not require the Cygwin or mingw64 build/runtine. All examples can also be build with Visual Studio 2022 (e.g. Community Edition). 143c214e8aSMatthias Ringwald 1598918ebdSMatthias Ringwald## Visual Studio 2022 163c214e8aSMatthias Ringwald 1798918ebdSMatthias RingwaldVisual Studio can directly open the provided `port/windows-windows-h4-da14585/CMakeLists.txt` and allows to compile and run all examples. 1898918ebdSMatthias Ringwald 1998918ebdSMatthias Ringwald## mingw64 2098918ebdSMatthias Ringwald 2198918ebdSMatthias RingwaldIt can also be compiles with a regular Unix-style toolchain like [mingw-w64](https://www.mingw-w64.org). 2298918ebdSMatthias Ringwaldmingw64-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.' 2398918ebdSMatthias Ringwald 2498918ebdSMatthias RingwaldWe've used the Msys2 package available from the [downloads page](https://www.mingw-w64.org/downloads/) on Windows 10, 64-bit and use the MSYS2 MinGW 64-bit start menu item to compile 64-bit binaries. 253c214e8aSMatthias Ringwald 263c214e8aSMatthias RingwaldIn the MSYS2 shell, you can install everything with pacman: 273c214e8aSMatthias Ringwald 283c214e8aSMatthias Ringwald $ pacman -S git 29*9085f7a5SMatthias Ringwald $ pacman -S cmake 303c214e8aSMatthias Ringwald $ pacman -S make 313c214e8aSMatthias Ringwald $ pacman -S mingw-w64-x86_64-toolchain 32*9085f7a5SMatthias Ringwald $ pacman -S mingw-w64-x86_64-portaudio 333c214e8aSMatthias Ringwald $ pacman -S python 343c214e8aSMatthias Ringwald $ pacman -S winpty 353c214e8aSMatthias Ringwald 36*9085f7a5SMatthias Ringwald### Compilation with CMake 373c214e8aSMatthias Ringwald 38*9085f7a5SMatthias RingwaldWith mingw64-w64 installed, just go to the port/windows-h4 directory and use CMake as usual 393c214e8aSMatthias Ringwald 40*9085f7a5SMatthias Ringwald $ cd port/windows-h4 41*9085f7a5SMatthias Ringwald $ mkdir build 42*9085f7a5SMatthias Ringwald $ cd build 43*9085f7a5SMatthias Ringwald $ cmake .. 443c214e8aSMatthias Ringwald $ make 453c214e8aSMatthias Ringwald 463c214e8aSMatthias RingwaldNote: When compiling with msys2-32 bit and/or the 32-bit toolchain, compilation fails 473c214e8aSMatthias Ringwaldas `conio.h` seems to be mission. Please use msys2-64 bit with the 64-bit toolchain for now. 483c214e8aSMatthias Ringwald 493c214e8aSMatthias Ringwald## Console Output 503c214e8aSMatthias Ringwald 513c214e8aSMatthias 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: 523c214e8aSMatthias Ringwald 5398918ebdSMatthias Ringwald $ winpty ./gatt_counter.exe 5498918ebdSMatthias Ringwald 5598918ebdSMatthias RingwaldThe packet log will be written to hci_dump.pklg 56