xref: /btstack/port/windows-h4-da14585/README.md (revision 98918ebd93a53d7aa0542734869acf064936895c)
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
13*98918ebdSMatthias 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
15*98918ebdSMatthias Ringwald## Visual Studio 2022
163c214e8aSMatthias Ringwald
17*98918ebdSMatthias RingwaldVisual Studio can directly open the provided `port/windows-windows-h4-da14585/CMakeLists.txt` and allows to compile and run all examples.
18*98918ebdSMatthias Ringwald
19*98918ebdSMatthias Ringwald## mingw64
20*98918ebdSMatthias Ringwald
21*98918ebdSMatthias RingwaldIt can also be compiles with a regular Unix-style toolchain like [mingw-w64](https://www.mingw-w64.org).
22*98918ebdSMatthias 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.'
23*98918ebdSMatthias Ringwald
24*98918ebdSMatthias 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
293c214e8aSMatthias Ringwald    $ pacman -S make
303c214e8aSMatthias Ringwald    $ pacman -S mingw-w64-x86_64-toolchain
313c214e8aSMatthias Ringwald    $ pacman -S python
323c214e8aSMatthias Ringwald    $ pacman -S winpty
333c214e8aSMatthias Ringwald
34*98918ebdSMatthias Ringwald### Compilation
353c214e8aSMatthias Ringwald
36*98918ebdSMatthias RingwaldWith mingw64-w64 installed, just go to the port/windows-h4-da14585 directory and run make
373c214e8aSMatthias Ringwald
38*98918ebdSMatthias Ringwald    $ cd port/windows-h4-da14585
393c214e8aSMatthias Ringwald    $ make
403c214e8aSMatthias Ringwald
413c214e8aSMatthias RingwaldNote: When compiling with msys2-32 bit and/or the 32-bit toolchain, compilation fails
423c214e8aSMatthias Ringwaldas `conio.h` seems to be mission. Please use msys2-64 bit with the 64-bit toolchain for now.
433c214e8aSMatthias Ringwald
443c214e8aSMatthias Ringwald## Console Output
453c214e8aSMatthias Ringwald
463c214e8aSMatthias 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:
473c214e8aSMatthias Ringwald
48*98918ebdSMatthias Ringwald    $ winpty ./gatt_counter.exe
49*98918ebdSMatthias Ringwald
50*98918ebdSMatthias RingwaldThe packet log will be written to hci_dump.pklg
51