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