README.md (52a720ae15cf2b2a8e723f6bfb4b857627c0e451) | README.md (59200c1c2d69b4e80af53a1d63492d824ff9fb12) |
---|---|
1# BTstack Port for the Espressif ESP32 Platform 2 3Status: Basic port incl. all examples. BTstack runs on dedicated FreeRTOS thread. Multi threading (calling BTstack functions from a different thread) is not supported. 4 5## Setup 6 7- Follow [Espressif IoT Development Framework (ESP-IDF) setup](https://github.com/espressif/esp-idf) to install XTensa toolchain and the ESP-IDF. 8- Make sure your checkout is newer than 4654278b1bd6b7f7f55013f7edad76109f7ee944 from Aug 25th, 2017 --- 4 unchanged lines hidden (view full) --- 13In port/esp32, run 14 15 ./integrate_btstack.py 16 17The script will copy parts of the BTstack tree into the ESP-IDF as $IDF_PATH/components/btstack and then create project folders for all examples. 18 19Each example project folder, e.g. port/esp32/examples/spp_and_le_counter, contains a Makefile. Please run the command again after updating the BTstack tree (e.g. by git pull) to also update the copy in the ESP-IDF. 20 | 1# BTstack Port for the Espressif ESP32 Platform 2 3Status: Basic port incl. all examples. BTstack runs on dedicated FreeRTOS thread. Multi threading (calling BTstack functions from a different thread) is not supported. 4 5## Setup 6 7- Follow [Espressif IoT Development Framework (ESP-IDF) setup](https://github.com/espressif/esp-idf) to install XTensa toolchain and the ESP-IDF. 8- Make sure your checkout is newer than 4654278b1bd6b7f7f55013f7edad76109f7ee944 from Aug 25th, 2017 --- 4 unchanged lines hidden (view full) --- 13In port/esp32, run 14 15 ./integrate_btstack.py 16 17The script will copy parts of the BTstack tree into the ESP-IDF as $IDF_PATH/components/btstack and then create project folders for all examples. 18 19Each example project folder, e.g. port/esp32/examples/spp_and_le_counter, contains a Makefile. Please run the command again after updating the BTstack tree (e.g. by git pull) to also update the copy in the ESP-IDF. 20 |
21To compile an example, run: | 21The examples are configure for the original ESP32. IF you want to use the newer ESP32-C3 or ESP32-S3 - both only support Bluetooth LE - you need to: 221. set target: |
22 | 23 |
23 make | 24 `idf.py set-target esp32c3` |
24 | 25 |
26 or |
|
25 | 27 |
26To upload the binary to your device, run: | 28 `idf.py set-target esp32s3` |
27 | 29 |
28 make flash | 302. re-enable Bluetooth Controller via menuconfig 31 32 1. `idf.py menuconfig` 33 2. select `Component Config` 34 3. select `Bluetooth` and enable 35 4. select `Bluetooth Host` 36 5. select `Controller Only` 37 6. exit and save config |
29 | 38 |
39To compile an example, run: |
|
30 | 40 |
31To get the debug output, run: | 41 idf.py |
32 | 42 |
33 make monitor | |
34 | 43 |
35You can quit the monitor with CTRL-]. | 44To upload the binary to your device, run: |
36 | 45 |
37## Old Make Versions | 46 idf.py -p PATH-TO-DEVICE flash |
38 | 47 |
39Compilation fails with older versions of the make tool, e.g. make 3.8.1 (from 2006) provided by the current Xcode 9 on macOS or Ubuntu 14.04.1 LTS. | |
40 | 48 |
41Interestingly, if you run make a second time, it completes the compilation. | 49To get debug output, run: |
42 | 50 |
51 idf.py monitor 52 53You can quit the monitor with CTRL-]. 54 |
|
43## Configuration 44 45The sdkconfig of the example template disables the original Bluedroid stack by disabling the CONFIG_BLUEDROID_ENABLED kconfig option. 46 47## Limitations 48 49### Issues with the Bluetooth Controller Implementation 50 --- 39 unchanged lines hidden --- | 55## Configuration 56 57The sdkconfig of the example template disables the original Bluedroid stack by disabling the CONFIG_BLUEDROID_ENABLED kconfig option. 58 59## Limitations 60 61### Issues with the Bluetooth Controller Implementation 62 --- 39 unchanged lines hidden --- |