xref: /btstack/port/esp32/components/btstack/include/btstack_config.h (revision 50b47281dcd786f25b8e20527b26e5aaa0460809)
1 //
2 // btstack_config.h for esp32 port
3 //
4 
5 #ifndef BTSTACK_CONFIG_H
6 #define BTSTACK_CONFIG_H
7 
8 // Port related features
9 #define HAVE_BTSTACK_STDIN
10 #define HAVE_EMBEDDED_TIME_MS
11 #define HAVE_FREERTOS_INCLUDE_PREFIX
12 #define HAVE_FREERTOS_TASK_NOTIFICATIONS
13 #define HAVE_MALLOC
14 
15 // BTstack features that can be enabled
16 #define ENABLE_ATT_DELAYED_RESPONSE
17 #define ENABLE_BLE
18 #define ENABLE_CLASSIC
19 #define ENABLE_LE_CENTRAL
20 #define ENABLE_LE_DATA_CHANNELS
21 #define ENABLE_LE_DATA_LENGTH_EXTENSION
22 #define ENABLE_LE_PERIPHERAL
23 #define ENABLE_LE_SECURE_CONNECTIONS
24 #define ENABLE_PRINTF_HEXDUMP
25 
26 // ESP32 supports ECDH HCI Commands, but micro-ecc lib is already provided anyway
27 #define ENABLE_LOG_ERROR
28 #define ENABLE_LOG_INFO
29 #define ENABLE_MICRO_ECC_FOR_LE_SECURE_CONNECTIONS
30 #define ENABLE_HFP_WIDE_BAND_SPEECH
31 #define ENABLE_SCO_OVER_HCI
32 
33 // work around to link layer issues in ESP32
34 // https://github.com/espressif/esp-idf/issues/5494
35 #define ENABLE_CLASSIC_LEGACY_CONNECTIONS_FOR_SCO_DEMOS
36 
37 // BTstack configuration. buffers, sizes, ...
38 #define HCI_ACL_PAYLOAD_SIZE (1691 + 4)
39 
40 // HCI Controller to Host Flow Control
41 #define ENABLE_HCI_CONTROLLER_TO_HOST_FLOW_CONTROL
42 
43 // Internal ring buffer: 21 kB
44 #define HCI_HOST_ACL_PACKET_LEN 1024
45 #define HCI_HOST_ACL_PACKET_NUM 20
46 #define HCI_HOST_SCO_PACKET_LEN 60
47 #define HCI_HOST_SCO_PACKET_NUM 10
48 
49 // Link Key DB and LE Device DB using TLV
50 #define NVM_NUM_DEVICE_DB_ENTRIES 16
51 #define NVM_NUM_LINK_KEYS 16
52 
53 
54 // Mesh Configuration
55 #define ENABLE_MESH
56 #define ENABLE_MESH_ADV_BEARER
57 #define ENABLE_MESH_GATT_BEARER
58 #define ENABLE_MESH_PB_ADV
59 #define ENABLE_MESH_PB_GATT
60 #define ENABLE_MESH_PROVISIONER
61 #define ENABLE_MESH_PROXY_SERVER
62 
63 #define MAX_NR_MESH_SUBNETS            2
64 #define MAX_NR_MESH_TRANSPORT_KEYS    16
65 #define MAX_NR_MESH_VIRTUAL_ADDRESSES 16
66 
67 // allow for one NetKey update
68 #define MAX_NR_MESH_NETWORK_KEYS      (MAX_NR_MESH_SUBNETS+1)
69 
70 #endif
71