xref: /btstack/port/windows-h4-da14585/README.md (revision 9085f7a510af90fcaaa656553bf07535560fa004)
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