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 ---