├── .gitignore ├── CMakeLists.txt ├── LICENSE ├── Makefile ├── README.md ├── main ├── CMakeLists.txt ├── Kconfig.projbuild ├── app_main.c ├── component.mk ├── esp_hid_gap.c └── esp_hid_gap.h ├── mqtt_tcp_example_test.py ├── sdkconfig └── sdkconfig.ci /.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | dist/ 3 | .vscode/ 4 | .cache/ 5 | npm-debug.log 6 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # The following four lines of boilerplate have to be in your project's CMakeLists 2 | # in this exact order for cmake to work correctly 3 | cmake_minimum_required(VERSION 3.5) 4 | 5 | # (Not part of the boilerplate) 6 | # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection. 7 | set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common) 8 | 9 | include($ENV{IDF_PATH}/tools/cmake/project.cmake) 10 | project(mqtt_tcp) 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 YeMeng 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # This is a project Makefile. It is assumed the directory this Makefile resides in is a 3 | # project subdirectory. 4 | # 5 | PROJECT_NAME := mqtt_tcp 6 | 7 | EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common 8 | 9 | include $(IDF_PATH)/make/project.mk 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | QQ交流群:785357955 3 | 4 | # ESP-MQTT sample application 5 | (See the README.md file in the upper level 'examples' directory for more information about examples.) 6 | 7 | This example connects to the broker URI selected using `idf.py menuconfig` (using mqtt tcp transport) and as a demonstration subscribes/unsubscribes and send a message on certain topic. 8 | (Please note that the public broker is maintained by the community so may not be always available, for details please see this [disclaimer](https://iot.eclipse.org/getting-started/#sandboxes)) 9 | 10 | Note: If the URI equals `FROM_STDIN` then the broker address is read from stdin upon application startup (used for testing) 11 | 12 | It uses ESP-MQTT library which implements mqtt client to connect to mqtt broker. 13 | 14 | ## How to use example 15 | 16 | ### Hardware Required 17 | 18 | This example can be executed on any ESP32 board, the only required interface is WiFi and connection to internet. 19 | 20 | ### Configure the project 21 | 22 | * Open the project configuration menu (`idf.py menuconfig`) 23 | * Configure Wi-Fi or Ethernet under "Example Connection Configuration" menu. See "Establishing Wi-Fi or Ethernet Connection" section in [examples/protocols/README.md](../../README.md) for more details. 24 | * When using Make build system, set `Default serial port` under `Serial flasher config`. 25 | 26 | ### Build and Flash 27 | 28 | Build the project and flash it to the board, then run monitor tool to view serial output: 29 | 30 | ``` 31 | idf.py -p PORT flash monitor 32 | ``` 33 | 34 | (To exit the serial monitor, type ``Ctrl-]``.) 35 | 36 | See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects. 37 | 38 | ## Example Output 39 | 40 | ``` 41 | I (3714) event: sta ip: 192.168.0.139, mask: 255.255.255.0, gw: 192.168.0.2 42 | I (3714) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE 43 | I (3964) MQTT_CLIENT: Sending MQTT CONNECT message, type: 1, id: 0000 44 | I (4164) MQTT_EXAMPLE: MQTT_EVENT_CONNECTED 45 | I (4174) MQTT_EXAMPLE: sent publish successful, msg_id=41464 46 | I (4174) MQTT_EXAMPLE: sent subscribe successful, msg_id=17886 47 | I (4174) MQTT_EXAMPLE: sent subscribe successful, msg_id=42970 48 | I (4184) MQTT_EXAMPLE: sent unsubscribe successful, msg_id=50241 49 | I (4314) MQTT_EXAMPLE: MQTT_EVENT_PUBLISHED, msg_id=41464 50 | I (4484) MQTT_EXAMPLE: MQTT_EVENT_SUBSCRIBED, msg_id=17886 51 | I (4484) MQTT_EXAMPLE: sent publish successful, msg_id=0 52 | I (4684) MQTT_EXAMPLE: MQTT_EVENT_SUBSCRIBED, msg_id=42970 53 | I (4684) MQTT_EXAMPLE: sent publish successful, msg_id=0 54 | I (4884) MQTT_CLIENT: deliver_publish, message_length_read=19, message_length=19 55 | I (4884) MQTT_EXAMPLE: MQTT_EVENT_DATA 56 | TOPIC=/topic/qos0 57 | DATA=data 58 | I (5194) MQTT_CLIENT: deliver_publish, message_length_read=19, message_length=19 59 | I (5194) MQTT_EXAMPLE: MQTT_EVENT_DATA 60 | TOPIC=/topic/qos0 61 | DATA=data 62 | ``` 63 | -------------------------------------------------------------------------------- /main/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | #set(srcs "app_main.c" 2 | # "esp_hid_gap.c") 3 | # set(include_dirs ".") 4 | # 5 | idf_component_register(SRCS "app_main.c" 6 | "esp_hid_gap.c" 7 | INCLUDE_DIRS ".") 8 | # idf_component_register(SRCS "${srcs}" 9 | # INCLUDE_DIRS "." 10 | # REQUIRES esp_hid) 11 | -------------------------------------------------------------------------------- /main/Kconfig.projbuild: -------------------------------------------------------------------------------- 1 | menu "Example Configuration" 2 | 3 | config BROKER_URL 4 | string "Broker URL" 5 | default "mqtt://mqtt.eclipseprojects.io" 6 | help 7 | URL of the broker to connect to 8 | 9 | config BROKER_URL_FROM_STDIN 10 | bool 11 | default y if BROKER_URL = "FROM_STDIN" 12 | 13 | endmenu 14 | -------------------------------------------------------------------------------- /main/app_main.c: -------------------------------------------------------------------------------- 1 | /* MQTT (over TCP) Example 2 | 3 | This example code is in the Public Domain (or CC0 licensed, at your option.) 4 | 5 | Unless required by applicable law or agreed to in writing, this 6 | software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 7 | CONDITIONS OF ANY KIND, either express or implied. 8 | */ 9 | 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include "esp_wifi.h" 15 | #include "esp_system.h" 16 | #include "nvs_flash.h" 17 | #include "esp_event.h" 18 | #include "esp_netif.h" 19 | #include "protocol_examples_common.h" 20 | #include "esp_bt.h" 21 | #include "esp_bt_defs.h" 22 | #include "esp_gap_ble_api.h" 23 | #include "esp_gatts_api.h" 24 | #include "esp_gatt_defs.h" 25 | #include "esp_bt_main.h" 26 | #include "esp_bt_device.h" 27 | 28 | 29 | #include "freertos/FreeRTOS.h" 30 | #include "freertos/task.h" 31 | #include "freertos/semphr.h" 32 | #include "freertos/queue.h" 33 | #include "driver/gpio.h" 34 | #include "driver/ledc.h" 35 | 36 | #include "lwip/sockets.h" 37 | #include "lwip/dns.h" 38 | #include "lwip/netdb.h" 39 | 40 | #include "esp_log.h" 41 | #include "mqtt_client.h" 42 | #include "cJSON.h" 43 | 44 | #include "esp_hidh.h" 45 | #include "esp_hid_gap.h" 46 | 47 | // #include "ps4.h" 48 | 49 | 50 | 51 | // #define BLINK_LED_PIN GPIO_NUM_10 52 | // #define MOTOR_IN1 GPIO_NUM_0 53 | // #define MOTOR_IN2 GPIO_NUM_1 54 | // #define BLINK_LED_BLINK 500 55 | 56 | // #define LEDC_TIMER LEDC_TIMER_0 57 | // #define LEDC_SERVO_TIMER LEDC_TIMER_1 58 | // #define LEDC_MODE LEDC_LOW_SPEED_MODE 59 | // #define LEDC_OUTPUT_IO (2) // Define the output GPIO 60 | // #define SERVO_OUTPUT_IO (5) // Define the output GPIO 61 | // #define LEDC_CHANNEL LEDC_CHANNEL_0 62 | // #define SERVO_CHANNEL LEDC_CHANNEL_1 63 | // #define LEDC_DUTY_RES LEDC_TIMER_13_BIT // Set duty resolution to 13 bits 64 | // #define LEDC_SERVO_DUTY_RES LEDC_TIMER_13_BIT // Set duty resolution to 13 bits 分辨率2的13次方 65 | // #define LEDC_DUTY (4095) // Set duty to 50%. ((2 ** 13) - 1) * 50% = 4095 66 | // #define LEDC_SERVO_DUTY (480) // Set duty to 5%. ((2 ** 13) - 1) * 7.5% = 12.75 0.5ms-2.5ms舵机调整范围 pwm波 20ms周期,2.5%-12.5%占空比 调整0-180度 中间值为1.5ms,占空比为7.5% 409分辨率 67 | // #define LEDC_FREQUENCY (5000) // Frequency in Hertz. Set frequency at 5 kHz 68 | // #define LEDC_SERVO_FREQUENCY (50) // Frequency in Hertz. Set frequency at 5 kHz 69 | 70 | static const char *TAG = "MQTT_EXAMPLE"; 71 | static char mqtt_msg[512]; 72 | //0x 80 80 80 80 08 00 xx 00 00 ps4初始数据 73 | //左摇杆第0和1位,右摇杆第2和3位,上下左右,方块,三角,圆,叉第4位,前端左右四键第5位 74 | static int psdata0=128; 75 | static int psdata1=128; 76 | static int psdata2=128; 77 | static int psdata3=128; 78 | static int psdata4=8; 79 | static int psdata5=0; 80 | //mqtt接收消息缓冲区 81 | // static float initspeed=0.5; 82 | // //小车初始速度系数 83 | // static int ledstatus=0; 84 | // //车灯状态 85 | // static int x=128; 86 | // static int y=128; 87 | // //获取方向盘油门数值 88 | // static int xangle=128; 89 | // static int yangle=128; 90 | //方向盘油门中值 91 | 92 | // static int pulseWithmidle = 480; 93 | // static int freq = 50; // 频率(20ms周期) 94 | // static int channel = 8; // 95 | // static int resolution = 8; // 分辨率 96 | /* 97 | 如果 ESP32-C3 的定时器选用了RTCxM_CLK作为其时钟源,驱动会通过内部校准来得知这个时钟源的实际频率。这样确保了输出PWM信号频率的精准性。 98 | 99 | ESP32-C3 的所有定时器共用一个时钟源。因此 ESP32-C3 不支持给不同的定时器配置不同的时钟源。 100 | ESP32-C3 LEDC 时钟源特性 101 | 102 | 时钟名称 时钟频率 时钟功能 103 | APB_CLK 80 MHz / 104 | 105 | RTC20M_CLK ~20 MHz 支持动态调频(DFS)功能,支持Light-sleep模式 106 | 107 | XTAL_CLK 40 MHz 支持动态调频(DFS)功能 108 | 109 | */ 110 | 111 | 112 | 113 | static void log_error_if_nonzero(const char *message, int error_code) 114 | { 115 | if (error_code != 0) { 116 | ESP_LOGE(TAG, "Last error %s: 0x%x", message, error_code); 117 | } 118 | } 119 | 120 | char *mystrncpy(const char *string,int n){//要求截取的字符串不可以改变,但指向字符串的指针可以改变 121 | char *p=string; 122 | if(p==NULL){//如果截取的字符串是空的直接返回 123 | return NULL; 124 | }else{ 125 | int i=0; 126 | while(*p!='\0'){//循环直到达n个字符串终止 127 | if(i==n){ 128 | break; 129 | } 130 | i++; 131 | p++; 132 | } 133 | *(p++)='\0';//赋值结束字符串 134 | return string; 135 | } 136 | } 137 | 138 | //数字转为字符串函数 139 | char* itoa(int num,char* str,int radix) 140 | { 141 | char index[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";//索引表 142 | unsigned unum;//存放要转换的整数的绝对值,转换的整数可能是负数 143 | int i=0,j,k;//i用来指示设置字符串相应位,转换之后i其实就是字符串的长度;转换后顺序是逆序的,有正负的情况,k用来指示调整顺序的开始位置;j用来指示调整顺序时的交换。 144 | 145 | //获取要转换的整数的绝对值 146 | if(radix==10&&num<0)//要转换成十进制数并且是负数 147 | { 148 | unum=(unsigned)-num;//将num的绝对值赋给unum 149 | str[i++]='-';//在字符串最前面设置为'-'号,并且索引加1 150 | } 151 | else unum=(unsigned)num;//若是num为正,直接赋值给unum 152 | 153 | //转换部分,注意转换后是逆序的 154 | do 155 | { 156 | str[i++]=index[unum%(unsigned)radix];//取unum的最后一位,并设置为str对应位,指示索引加1 157 | unum/=radix;//unum去掉最后一位 158 | 159 | }while(unum);//直至unum为0退出循环 160 | 161 | str[i]='\0';//在字符串最后添加'\0'字符,c语言字符串以'\0'结束。 162 | 163 | //将顺序调整过来 164 | if(str[0]=='-') k=1;//如果是负数,符号不用调整,从符号后面开始调整 165 | else k=0;//不是负数,全部都要调整 166 | 167 | char temp;//临时变量,交换两个值时用到 168 | for(j=k;j<=(i-1)/2;j++)//头尾一一对称交换,i其实就是字符串的长度,索引最大值比长度少1 169 | { 170 | temp=str[j];//头部赋值给临时变量 171 | str[j]=str[i-1+k-j];//尾部赋值给头部 172 | str[i-1+k-j]=temp;//将临时变量的值(其实就是之前的头部值)赋给尾部 173 | } 174 | 175 | return str;//返回转换后的字符串 176 | 177 | } 178 | // static void example_ledc_init(void) 179 | // { 180 | // // Prepare and then apply the LEDC PWM timer configuration 181 | // ledc_timer_config_t ledc_timer = { 182 | // .speed_mode = LEDC_MODE, 183 | // .timer_num = LEDC_TIMER, 184 | // .duty_resolution = LEDC_DUTY_RES, 185 | // .freq_hz = LEDC_FREQUENCY, // Set output frequency at 5 kHz 186 | // .clk_cfg = LEDC_AUTO_CLK 187 | // }; 188 | // ESP_ERROR_CHECK(ledc_timer_config(&ledc_timer)); 189 | 190 | // // Prepare and then apply the LEDC PWM channel configuration 191 | // ledc_channel_config_t ledc_channel = { 192 | // .speed_mode = LEDC_MODE, 193 | // .channel = LEDC_CHANNEL, 194 | // .timer_sel = LEDC_TIMER, 195 | // .intr_type = LEDC_INTR_DISABLE, 196 | // .gpio_num = LEDC_OUTPUT_IO, 197 | // .duty = 0, // Set duty to 0% 198 | // .hpoint = 0 199 | // }; 200 | // ESP_ERROR_CHECK(ledc_channel_config(&ledc_channel)); 201 | // } 202 | 203 | // static void example_servo_init(void) 204 | // { 205 | // // Prepare and then apply the LEDC PWM timer configuration 206 | // ledc_timer_config_t servo_timer = { 207 | // .speed_mode = LEDC_MODE, 208 | // .timer_num = LEDC_SERVO_TIMER, 209 | // .duty_resolution = LEDC_SERVO_DUTY_RES, //2的13次方分辨率 210 | // .freq_hz = LEDC_SERVO_FREQUENCY, // Set output frequency at 50 Hz 211 | // .clk_cfg = LEDC_AUTO_CLK 212 | // }; 213 | // ESP_ERROR_CHECK(ledc_timer_config(&servo_timer)); 214 | 215 | // // Prepare and then apply the LEDC PWM channel configuration 216 | // ledc_channel_config_t servo_channel = { 217 | // .speed_mode = LEDC_MODE, 218 | // .channel = SERVO_CHANNEL, 219 | // .timer_sel = LEDC_SERVO_TIMER, 220 | // .intr_type = LEDC_INTR_DISABLE, 221 | // .gpio_num = SERVO_OUTPUT_IO , 222 | // .duty = LEDC_SERVO_DUTY, // Set duty to 0% 223 | // .hpoint = 0 224 | // }; 225 | // ESP_ERROR_CHECK(ledc_channel_config(&servo_channel)); 226 | // } 227 | 228 | /* 229 | * @brief Event handler registered to receive MQTT events 230 | * 231 | * This function is called by the MQTT client event loop. 232 | * 233 | * @param handler_args user data registered to the event. 234 | * @param base Event base for the handler(always MQTT Base in this example). 235 | * @param event_id The id for the received event. 236 | * @param event_data The data for the event, esp_mqtt_event_handle_t. 237 | */ 238 | esp_mqtt_client_handle_t client = ""; 239 | static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_t event_id, void *event_data) 240 | { 241 | ESP_LOGD(TAG, "Event dispatched from event loop base=%s, event_id=%d", base, event_id); 242 | esp_mqtt_event_handle_t event = event_data; 243 | client = event->client; 244 | int msg_id; 245 | switch ((esp_mqtt_event_id_t)event_id) { 246 | case MQTT_EVENT_CONNECTED://mqtt连接事件 247 | ESP_LOGI(TAG, "MQTT_EVENT_CONNECTED"); 248 | msg_id = esp_mqtt_client_publish(client, "/PS4ESP32_89860000000000000000", "connected", 0, 1, 0);//将89860000000000000000改为你的物联网卡ICCID,保持和小车端一致 249 | ESP_LOGI(TAG, "sent publish successful, msg_id=%d", msg_id); 250 | 251 | // msg_id = esp_mqtt_client_subscribe(client, "/topic/qos0", 0); 252 | // ESP_LOGI(TAG, "sent subscribe successful, msg_id=%d", msg_id); 253 | 254 | // msg_id = esp_mqtt_client_subscribe(client, "/topic/qos1", 1); 255 | // ESP_LOGI(TAG, "sent subscribe successful, msg_id=%d", msg_id); 256 | 257 | // msg_id = esp_mqtt_client_unsubscribe(client, "/topic/qos1"); 258 | // ESP_LOGI(TAG, "sent unsubscribe successful, msg_id=%d", msg_id); 259 | // esp_mqtt_client_subscribe(client, "/car_89860000000000000000", 1); 260 | msg_id = esp_mqtt_client_subscribe(client, "/driver_89860000000000000000", 1);//将89860000000000000000改为你的物联网卡ICCID,保持和小车端一致 261 | ESP_LOGI(TAG, "sent subscribe successful, msg_id=%d", msg_id); 262 | break; 263 | case MQTT_EVENT_DISCONNECTED://mqtt断开事件 264 | ESP_LOGI(TAG, "MQTT_EVENT_DISCONNECTED"); 265 | break; 266 | 267 | case MQTT_EVENT_SUBSCRIBED: 268 | // ESP_LOGI(TAG, "MQTT_EVENT_SUBSCRIBED, msg_id=%d", event->msg_id); 269 | // msg_id = esp_mqtt_client_publish(client, "/topic/qos0", "data", 0, 0, 0); 270 | // ESP_LOGI(TAG, "sent publish successful, msg_id=%d", msg_id); 271 | ESP_LOGI(TAG, "MQTT_EVENT_SUBSCRIBED"); 272 | break; 273 | case MQTT_EVENT_UNSUBSCRIBED: 274 | ESP_LOGI(TAG, "MQTT_EVENT_UNSUBSCRIBED, msg_id=%d", event->msg_id); 275 | break; 276 | case MQTT_EVENT_PUBLISHED: 277 | // ESP_LOGI(TAG, "MQTT_EVENT_PUBLISHED, msg_id=%d", event->msg_id); 278 | break; 279 | case MQTT_EVENT_DATA://mqtt接收数据事件 280 | // ESP_LOGI(TAG, "MQTT_EVENT_DATA"); 281 | // printf("TOPIC=%.*s\r\n", event->topic_len, event->topic); 282 | // printf("DATA=%.*s\r\n", event->data_len, event->data); 283 | // printf(ty) 284 | // printf((event->data).toString()); 285 | // char orderstr[event->data_len]; 286 | // strcpy(orderstr,event->data); 287 | if (event->data_len >= (sizeof(mqtt_msg) - 1)) 288 | { 289 | ESP_LOGE(TAG, "Received MQTT message size [%d] more than expected [%d]", event->data_len, (sizeof(mqtt_msg) - 1)); 290 | return ESP_FAIL; 291 | } 292 | 293 | 294 | // if(event->data_len>1){ 295 | // // printf(strlen(event->data)); 296 | // // printf("DATA=%.*s\r\n",event->data); 297 | // } 298 | // char orderstr=event->data; 299 | // printf(orderstr); 300 | // strcpy(mqtt_msg, mystrncpy(event->data,event->data_len)); 301 | // // printf(mqtt_msg); 302 | // // printf("\r\n"); 303 | // if(strcmp(mqtt_msg,"start")==0){ 304 | // // printf("turn on or off led\r\n"); 305 | // if(ledstatus){ 306 | // //开灯 307 | // gpio_set_level(BLINK_LED_PIN, 0); 308 | // ledstatus = 0; 309 | // return; 310 | // }else{ 311 | // //关灯 312 | // gpio_set_level(BLINK_LED_PIN, 1); 313 | // ledstatus = 1; 314 | // return; 315 | // } 316 | // }else if (strcmp(mqtt_msg,"one")==0) 317 | // { 318 | // initspeed =1; 319 | // return; 320 | // }else if (strcmp(mqtt_msg,"half")==0) 321 | // { 322 | // initspeed=0.5; 323 | // return; 324 | // }else if (strcmp(mqtt_msg,"halfhalf")==0) 325 | // { 326 | // initspeed=0.25; 327 | // return; 328 | // } 329 | // cJSON* cjson = cJSON_Parse(mqtt_msg);//将JSON字符串转换成JSON结构体 330 | // if(cjson == NULL) //判断转换是否成功 331 | // { 332 | // printf("cjson error...\r\n"); 333 | // } 334 | // else 335 | // { 336 | // // printf("%s\n",cJSON_Print(cjson));//打包成功调用cJSON_Print打印输出 337 | // } 338 | 339 | // // printf("/*********************以下就是提取的数据**********************/\n"); 340 | // x = cJSON_GetObjectItem(cjson,"x")->valueint; //解析字符串 341 | // // printf("x--->>%d\n",x); 342 | // y = cJSON_GetObjectItem(cjson,"y")->valueint; //解析字符串 343 | // // printf("y--->>>%d\n",y); 344 | // // char *name = cJSON_GetObjectItem(cjson,"name")->valuestring; //解析字符串 345 | // // printf("%s\n",name); 346 | // // int age = cJSON_GetObjectItem(cjson,"age")->valueint; //解析整型 347 | // // printf("%d\n",age); 348 | // // double height = cJSON_GetObjectItem(cjson,"height")->valuedouble; //解析双浮点型 349 | // // printf("%.1f\n",height); 350 | // // int gender = cJSON_GetObjectItem(cjson,"gender")->type; //解析逻辑值---输出逻辑值对应的宏定义数值 351 | // // printf("%d\n",gender); 352 | 353 | // cJSON_Delete(cjson);//清除结构体 354 | // if(xangle-x>0){ 355 | // //turn left左转 356 | // // en2.servoWrite(parseInt(pulseWithmidle+(xangle-JSON.parse(message.toString()).x)*3.125)) 357 | // ESP_ERROR_CHECK(ledc_set_duty(LEDC_MODE, SERVO_CHANNEL,pulseWithmidle+(xangle-x)*3.125)); 358 | // // Update duty to apply the new value 359 | // ESP_ERROR_CHECK(ledc_update_duty(LEDC_MODE, SERVO_CHANNEL)); 360 | // } 361 | // if(x-xangle>0){ 362 | // //turn right右转 363 | // // en2.servoWrite(parseInt(pulseWithmidle-(JSON.parse(message.toString()).x-xangle)*3.125)) 364 | // ESP_ERROR_CHECK(ledc_set_duty(LEDC_MODE, SERVO_CHANNEL,pulseWithmidle-(x-xangle)*3.125)); 365 | // // Update duty to apply the new value 366 | // ESP_ERROR_CHECK(ledc_update_duty(LEDC_MODE, SERVO_CHANNEL)); 367 | // } 368 | // if(x-xangle==0){ 369 | 370 | // // console.log('midllle-->>',JSON.parse(message.toString()).x-xangle) 371 | // // en2.servoWrite(pulseWithmidle) 372 | // // Set duty to 2.5% 373 | // ESP_ERROR_CHECK(ledc_set_duty(LEDC_MODE, SERVO_CHANNEL, pulseWithmidle)); 374 | // // Update duty to apply the new value 375 | // ESP_ERROR_CHECK(ledc_update_duty(LEDC_MODE, SERVO_CHANNEL)); 376 | // } 377 | // if(yangle-y>0){ 378 | // //油门 379 | // // en1.write((yangle-JSON.parse(message.toString()).y)*initspeed/128) 380 | // // in1.writeSync(1) 381 | // // in2.writeSync(0) 382 | // // in1.digitalWrite(1) 383 | // // in2.digitalWrite(0) 384 | // gpio_set_level(MOTOR_IN1, 1); 385 | // gpio_set_level(MOTOR_IN2, 0); 386 | // ESP_ERROR_CHECK(ledc_set_duty(LEDC_MODE, LEDC_CHANNEL, (yangle-y)*initspeed*64)); 387 | // // Update duty to apply the new value 388 | // ESP_ERROR_CHECK(ledc_update_duty(LEDC_MODE, LEDC_CHANNEL)); 389 | // // console.log('y left-->>',yangle-JSON.parse(message.toString()).y) 390 | // return; 391 | // } 392 | // if(y-yangle>0){ 393 | // //油门 394 | // // en1.write((JSON.parse(message.toString()).y-yangle)*initspeed/128) 395 | // // in1.writeSync(0) 396 | // // in2.writeSync(1) 397 | // // in1.digitalWrite(0) 398 | // // in2.digitalWrite(1) 399 | // gpio_set_level(MOTOR_IN1, 0); 400 | // gpio_set_level(MOTOR_IN2, 1); 401 | // ESP_ERROR_CHECK(ledc_set_duty(LEDC_MODE, LEDC_CHANNEL, (y-yangle)*initspeed*64)); 402 | // // Update duty to apply the new value 403 | // ESP_ERROR_CHECK(ledc_update_duty(LEDC_MODE, LEDC_CHANNEL)); 404 | // // console.log('y right-->>',JSON.parse(message.toString()).y-yangle) 405 | // return; 406 | // } 407 | // if(y-yangle==0){ 408 | // //停止 409 | // // in1.writeSync(1) 410 | // // in2.writeSync(1) 411 | // // in1.digitalWrite(1) 412 | // // in2.digitalWrite(1) 413 | // // console.log('stop-->>',JSON.parse(message.toString()).y-yangle) 414 | // gpio_set_level(MOTOR_IN1, 1); 415 | // gpio_set_level(MOTOR_IN2, 1); 416 | // return; 417 | // } 418 | // return 0; 419 | 420 | 421 | 422 | break; 423 | case MQTT_EVENT_ERROR: 424 | ESP_LOGI(TAG, "MQTT_EVENT_ERROR"); 425 | if (event->error_handle->error_type == MQTT_ERROR_TYPE_TCP_TRANSPORT) { 426 | log_error_if_nonzero("reported from esp-tls", event->error_handle->esp_tls_last_esp_err); 427 | log_error_if_nonzero("reported from tls stack", event->error_handle->esp_tls_stack_err); 428 | log_error_if_nonzero("captured as transport's socket errno", event->error_handle->esp_transport_sock_errno); 429 | ESP_LOGI(TAG, "Last errno string (%s)", strerror(event->error_handle->esp_transport_sock_errno)); 430 | 431 | } 432 | break; 433 | default: 434 | ESP_LOGI(TAG, "Other event id:%d", event->event_id); 435 | break; 436 | } 437 | } 438 | static char jsonstr[]=""; 439 | static char xstr[]="{\"x\":"; 440 | static char ystr[]=",\"y\":"; 441 | static char endstr[]="}"; 442 | char xstring[3] = {0}; 443 | char ystring[3] = {0}; 444 | //这部分变量用于拼接json字符串 445 | void hidh_callback(void *handler_args, esp_event_base_t base, int32_t id, void *event_data) 446 | { 447 | esp_hidh_event_t event = (esp_hidh_event_t)id; 448 | esp_hidh_event_data_t *param = (esp_hidh_event_data_t *)event_data; 449 | 450 | switch (event) { 451 | case ESP_HIDH_OPEN_EVENT: { 452 | if (param->open.status == ESP_OK) { 453 | const uint8_t *bda = esp_hidh_dev_bda_get(param->open.dev); 454 | ESP_LOGI(TAG, ESP_BD_ADDR_STR " OPEN: %s", ESP_BD_ADDR_HEX(bda), esp_hidh_dev_name_get(param->open.dev)); 455 | esp_hidh_dev_dump(param->open.dev, stdout); 456 | } else { 457 | ESP_LOGE(TAG, " OPEN failed!"); 458 | } 459 | break; 460 | } 461 | case ESP_HIDH_BATTERY_EVENT: { 462 | const uint8_t *bda = esp_hidh_dev_bda_get(param->battery.dev); 463 | ESP_LOGI(TAG, ESP_BD_ADDR_STR " BATTERY: %d%%", ESP_BD_ADDR_HEX(bda), param->battery.level); 464 | break; 465 | } 466 | case ESP_HIDH_INPUT_EVENT: { 467 | const uint8_t *bda = esp_hidh_dev_bda_get(param->input.dev); 468 | // ESP_LOGI(TAG, ESP_BD_ADDR_STR " INPUT: %8s, MAP: %2u, ID: %3u, Len: %d, Data:", ESP_BD_ADDR_HEX(bda), esp_hid_usage_str(param->input.usage), param->input.map_index, param->input.report_id, param->input.length); 469 | // ESP_LOG_BUFFER_HEX(TAG, param->input.data, param->input.length); 470 | 471 | // printf("DATA=%d\r\n",param->input.data[0]); 472 | // printf("recivie-->>>\n"); 473 | // strcpy(mqtt_msg, mystrncpy(param->input.data,param->input.length)); 474 | // printf("mqtt_msg-->>>%s \n",mqtt_msg); 475 | // if() 476 | // esp_mqtt_client_publish(client, "/car_89860000000000000000", "start", 0, 1, 0); 477 | //数据有变化才进行mqtt数据上报。 478 | if(param->input.data[0]!=psdata0||param->input.data[1]!=psdata1||param->input.data[2]!=psdata2||param->input.data[3]!=psdata3||param->input.data[4]!=psdata4||param->input.data[5]!=psdata5){ 479 | if(param->input.data[1]!=psdata1||param->input.data[2]!=psdata2){ 480 | itoa(param->input.data[1],ystring,10); 481 | itoa(param->input.data[2],xstring,10); 482 | strcat(jsonstr,xstr); 483 | strcat(jsonstr,xstring); 484 | strcat(jsonstr,ystr); 485 | strcat(jsonstr,ystring); 486 | strcat(jsonstr,endstr); 487 | 488 | esp_mqtt_client_publish(client, "/car_89860000000000000000", jsonstr, 0, 1, 0);//将89860000000000000000改为你的物联网卡ICCID,保持和小车端一致 489 | strcpy(jsonstr, ""); 490 | } 491 | psdata0=param->input.data[0]; 492 | psdata1=param->input.data[1]; 493 | psdata2=param->input.data[2]; 494 | psdata3=param->input.data[3]; 495 | psdata4=param->input.data[4]; 496 | psdata5=param->input.data[5]; 497 | if(psdata4==136){ 498 | esp_mqtt_client_publish(client, "/car_89860000000000000000", "start", 0, 1, 0);//将89860000000000000000改为你的物联网卡ICCID,保持和小车端一致 499 | return; 500 | } 501 | if(psdata4==24){ 502 | esp_mqtt_client_publish(client, "/car_89860000000000000000", "halfhalf", 0, 1, 0);//将89860000000000000000改为你的物联网卡ICCID,保持和小车端一致 503 | return; 504 | } 505 | if(psdata4==40){ 506 | esp_mqtt_client_publish(client, "/car_89860000000000000000", "half", 0, 1, 0);//将89860000000000000000改为你的物联网卡ICCID,保持和小车端一致 507 | return; 508 | } 509 | if(psdata4==72){ 510 | esp_mqtt_client_publish(client, "/car_89860000000000000000", "one", 0, 1, 0);//将89860000000000000000改为你的物联网卡ICCID,保持和小车端一致 511 | } 512 | 513 | 514 | } 515 | break; 516 | } 517 | case ESP_HIDH_FEATURE_EVENT: { 518 | const uint8_t *bda = esp_hidh_dev_bda_get(param->feature.dev); 519 | ESP_LOGI(TAG, ESP_BD_ADDR_STR " FEATURE: %8s, MAP: %2u, ID: %3u, Len: %d", ESP_BD_ADDR_HEX(bda), 520 | esp_hid_usage_str(param->feature.usage), param->feature.map_index, param->feature.report_id, 521 | param->feature.length); 522 | ESP_LOG_BUFFER_HEX(TAG, param->feature.data, param->feature.length); 523 | break; 524 | } 525 | case ESP_HIDH_CLOSE_EVENT: { 526 | const uint8_t *bda = esp_hidh_dev_bda_get(param->close.dev); 527 | ESP_LOGI(TAG, ESP_BD_ADDR_STR " CLOSE: %s", ESP_BD_ADDR_HEX(bda), esp_hidh_dev_name_get(param->close.dev)); 528 | break; 529 | } 530 | default: 531 | ESP_LOGI(TAG, "EVENT: %d", event); 532 | break; 533 | } 534 | } 535 | 536 | #define SCAN_DURATION_SECONDS 20 537 | 538 | void hid_demo_task(void *pvParameters) 539 | { 540 | size_t results_len = 0; 541 | esp_hid_scan_result_t *results = NULL; 542 | ESP_LOGI(TAG, "SCAN..."); 543 | //start scan for HID devices 544 | esp_hid_scan(SCAN_DURATION_SECONDS, &results_len, &results); 545 | ESP_LOGI(TAG, "SCAN: %u results", results_len); 546 | if (results_len) { 547 | esp_hid_scan_result_t *r = results; 548 | esp_hid_scan_result_t *cr = NULL; 549 | // printf("connect results %s \n",results); 550 | while (r) { 551 | printf(" %s: " ESP_BD_ADDR_STR ", ", (r->transport == ESP_HID_TRANSPORT_BLE) ? "BLE" : "BT ", ESP_BD_ADDR_HEX(r->bda)); 552 | printf("RSSI1111: %d, ", r->rssi); 553 | printf("USAGE: %s, ", esp_hid_usage_str(r->usage)); 554 | #if CONFIG_BT_BLE_ENABLED 555 | if (r->transport == ESP_HID_TRANSPORT_BLE) { 556 | cr = r; 557 | printf("APPEARANCE: 0x%04x, ", r->ble.appearance); 558 | printf("ADDR_TYPE: '%s', ", ble_addr_type_str(r->ble.addr_type)); 559 | } 560 | #endif /* CONFIG_BT_BLE_ENABLED */ 561 | #if CONFIG_BT_HID_HOST_ENABLED 562 | if (r->transport == ESP_HID_TRANSPORT_BT) { 563 | cr = r; 564 | printf("COD: %s[", esp_hid_cod_major_str(r->bt.cod.major)); 565 | esp_hid_cod_minor_print(r->bt.cod.minor, stdout); 566 | printf("] srv 0x%03x, ", r->bt.cod.service); 567 | print_uuid(&r->bt.uuid); 568 | printf(", "); 569 | } 570 | #endif /* CONFIG_BT_HID_HOST_ENABLED */ 571 | printf("NAME: %s ", r->name ? r->name : ""); 572 | printf("\n"); 573 | r = r->next; 574 | } 575 | // printf("connect cr %s \n",cr); 576 | if (cr) { 577 | //open the last result 578 | printf("connect last one \n"); 579 | printf("connect bda %s \n",cr->bda); 580 | // printf("connect transport %s \n",cr->transport); 581 | // printf("connect ble.addr_type %s \n",cr->ble.addr_type); 582 | esp_hidh_dev_open(cr->bda, cr->transport, cr->ble.addr_type); 583 | } 584 | //free the results 585 | esp_hid_scan_results_free(results); 586 | } 587 | vTaskDelete(NULL); 588 | } 589 | 590 | static void mqtt_app_start(void) 591 | { 592 | esp_mqtt_client_config_t mqtt_cfg = { 593 | .uri = CONFIG_BROKER_URL, 594 | }; 595 | 596 | // static esp_mqtt_client_config_t mqtt_cfg = { 597 | // .host= IOT_CORE_MQTT_BROKER_URL, 598 | // .event_handle = mqtt_event_handler,//注册回调函数 599 | // .port = 1883, 600 | // .username = mqtt_token, 601 | // .client_id = my_clinet_id 602 | // }; 603 | //定义并初始化MQTT Client配置结构体 604 | //client_id 默认使用的是ESP32_%CHIPID%的形式; 605 | 606 | #if CONFIG_BROKER_URL_FROM_STDIN 607 | char line[128]; 608 | 609 | if (strcmp(mqtt_cfg.uri, "FROM_STDIN") == 0) { 610 | int count = 0; 611 | printf("Please enter url of mqtt broker\n"); 612 | while (count < 128) { 613 | int c = fgetc(stdin); 614 | if (c == '\n') { 615 | line[count] = '\0'; 616 | break; 617 | } else if (c > 0 && c < 127) { 618 | line[count] = c; 619 | ++count; 620 | } 621 | vTaskDelay(10 / portTICK_PERIOD_MS); 622 | } 623 | mqtt_cfg.uri = line; 624 | printf("Broker url: %s\n", line); 625 | } else { 626 | ESP_LOGE(TAG, "Configuration mismatch: wrong broker url"); 627 | abort(); 628 | } 629 | #endif /* CONFIG_BROKER_URL_FROM_STDIN */ 630 | 631 | esp_mqtt_client_handle_t client = esp_mqtt_client_init(&mqtt_cfg); 632 | /* The last argument may be used to pass data to the event handler, in this example mqtt_event_handler */ 633 | esp_mqtt_client_register_event(client, ESP_EVENT_ANY_ID, mqtt_event_handler, NULL); 634 | esp_mqtt_client_start(client); 635 | //启动客户端,连接服务器 636 | vTaskDelay(1000 / portTICK_PERIOD_MS); 637 | } 638 | 639 | // void controller_event_cb( ps4_t ps4, ps4_event_t event ) 640 | // { 641 | // // Event handling here... 642 | // if ( ps4.status.battery >= ps3_status_battery_high ) 643 | // print("The controller still has sufficient battery charge"); 644 | 645 | // if ( ps4.status.charging ) 646 | // print("Controller is charging"); 647 | 648 | // if ( ps4.button.triangle ) 649 | // print("Currently pressing the trangle button"); 650 | 651 | // if ( ps4.analog.stick.lx < 0 ) 652 | // print("Currently pulling analog stick to the left"); 653 | 654 | // if ( event.button_down.cross ) 655 | // print("The user started pressing the X button"); 656 | 657 | // if ( event.button_up.cross ) 658 | // print("The user released the X button"); 659 | 660 | // if ( event.analog_changed.stick.lx ) 661 | // print("The user has moved the left stick sideways"); 662 | // } 663 | 664 | void app_main(void) 665 | { 666 | ESP_LOGI(TAG, "[APP] Startup.."); 667 | ESP_LOGI(TAG, "[APP] Free memory: %d bytes", esp_get_free_heap_size()); 668 | ESP_LOGI(TAG, "[APP] IDF version: %s", esp_get_idf_version()); 669 | 670 | esp_log_level_set("*", ESP_LOG_INFO); 671 | esp_log_level_set("MQTT_CLIENT", ESP_LOG_VERBOSE); 672 | esp_log_level_set("MQTT_EXAMPLE", ESP_LOG_VERBOSE); 673 | esp_log_level_set("TRANSPORT_BASE", ESP_LOG_VERBOSE); 674 | esp_log_level_set("esp-tls", ESP_LOG_VERBOSE); 675 | esp_log_level_set("TRANSPORT", ESP_LOG_VERBOSE); 676 | esp_log_level_set("OUTBOX", ESP_LOG_VERBOSE); 677 | 678 | 679 | 680 | ESP_ERROR_CHECK(nvs_flash_init()); 681 | ESP_ERROR_CHECK(esp_netif_init()); 682 | ESP_ERROR_CHECK(esp_event_loop_create_default()); 683 | 684 | /* This helper function configures Wi-Fi or Ethernet, as selected in menuconfig. 685 | * Read "Establishing Wi-Fi or Ethernet Connection" section in 686 | * examples/protocols/README.md for more information about this function. 687 | */ 688 | ESP_ERROR_CHECK(example_connect()); 689 | 690 | 691 | #if HID_HOST_MODE == HIDH_IDLE_MODE 692 | ESP_LOGE(TAG, "Please turn on BT HID host or BLE!"); 693 | return; 694 | #endif 695 | ESP_LOGI(TAG, "setting hid gap, mode:%d", HID_HOST_MODE); 696 | ESP_ERROR_CHECK( esp_hid_gap_init(HID_HOST_MODE) ); 697 | #if CONFIG_BT_BLE_ENABLED 698 | ESP_ERROR_CHECK( esp_ble_gattc_register_callback(esp_hidh_gattc_event_handler) ); 699 | #endif /* CONFIG_BT_BLE_ENABLED */ 700 | esp_hidh_config_t config = { 701 | .callback = hidh_callback, 702 | .event_stack_size = 4096, 703 | .callback_arg = NULL, 704 | }; 705 | ESP_ERROR_CHECK( esp_hidh_init(&config) ); 706 | xTaskCreate(&hid_demo_task, "hid_task", 6 * 1024, NULL, 2, NULL); 707 | 708 | mqtt_app_start(); 709 | 710 | 711 | 712 | 713 | 714 | } 715 | -------------------------------------------------------------------------------- /main/component.mk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApolloRobot/ps4-esp32-driver/043b5a4e041b508c7700d06692700d09269a0630/main/component.mk -------------------------------------------------------------------------------- /main/esp_hid_gap.c: -------------------------------------------------------------------------------- 1 | // Copyright 2017-2019 Espressif Systems (Shanghai) PTE LTD 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #include 16 | #include 17 | 18 | #include "freertos/FreeRTOS.h" 19 | #include "freertos/task.h" 20 | #include "freertos/semphr.h" 21 | 22 | #include "esp_hid_gap.h" 23 | 24 | static const char *TAG = "ESP_HID_GAP"; 25 | 26 | // uncomment to print all devices that were seen during a scan 27 | #define GAP_DBG_PRINTF(...) printf(__VA_ARGS__) 28 | 29 | #if CONFIG_BT_HID_HOST_ENABLED 30 | static const char * gap_bt_prop_type_names[5] = {"","BDNAME","COD","RSSI","EIR"}; 31 | #endif 32 | 33 | static esp_hid_scan_result_t *bt_scan_results = NULL; 34 | static size_t num_bt_scan_results = 0; 35 | 36 | static esp_hid_scan_result_t *ble_scan_results = NULL; 37 | static size_t num_ble_scan_results = 0; 38 | 39 | static xSemaphoreHandle bt_hidh_cb_semaphore = NULL; 40 | #define WAIT_BT_CB() xSemaphoreTake(bt_hidh_cb_semaphore, portMAX_DELAY) 41 | #define SEND_BT_CB() xSemaphoreGive(bt_hidh_cb_semaphore) 42 | 43 | static xSemaphoreHandle ble_hidh_cb_semaphore = NULL; 44 | #define WAIT_BLE_CB() xSemaphoreTake(ble_hidh_cb_semaphore, portMAX_DELAY) 45 | #define SEND_BLE_CB() xSemaphoreGive(ble_hidh_cb_semaphore) 46 | 47 | #define SIZEOF_ARRAY(a) (sizeof(a)/sizeof(*a)) 48 | 49 | static const char *ble_gap_evt_names[] = { "ADV_DATA_SET_COMPLETE", "SCAN_RSP_DATA_SET_COMPLETE", "SCAN_PARAM_SET_COMPLETE", "SCAN_RESULT", "ADV_DATA_RAW_SET_COMPLETE", "SCAN_RSP_DATA_RAW_SET_COMPLETE", "ADV_START_COMPLETE", "SCAN_START_COMPLETE", "AUTH_CMPL", "KEY", "SEC_REQ", "PASSKEY_NOTIF", "PASSKEY_REQ", "OOB_REQ", "LOCAL_IR", "LOCAL_ER", "NC_REQ", "ADV_STOP_COMPLETE", "SCAN_STOP_COMPLETE", "SET_STATIC_RAND_ADDR", "UPDATE_CONN_PARAMS", "SET_PKT_LENGTH_COMPLETE", "SET_LOCAL_PRIVACY_COMPLETE", "REMOVE_BOND_DEV_COMPLETE", "CLEAR_BOND_DEV_COMPLETE", "GET_BOND_DEV_COMPLETE", "READ_RSSI_COMPLETE", "UPDATE_WHITELIST_COMPLETE"}; 50 | static const char *bt_gap_evt_names[] = { "DISC_RES", "DISC_STATE_CHANGED", "RMT_SRVCS", "RMT_SRVC_REC", "AUTH_CMPL", "PIN_REQ", "CFM_REQ", "KEY_NOTIF", "KEY_REQ", "READ_RSSI_DELTA"}; 51 | static const char *ble_addr_type_names[] = {"PUBLIC", "RANDOM", "RPA_PUBLIC", "RPA_RANDOM"}; 52 | 53 | const char *ble_addr_type_str(esp_ble_addr_type_t ble_addr_type) 54 | { 55 | if (ble_addr_type > BLE_ADDR_TYPE_RPA_RANDOM) { 56 | return "UNKNOWN"; 57 | } 58 | return ble_addr_type_names[ble_addr_type]; 59 | } 60 | 61 | const char *ble_gap_evt_str(uint8_t event) 62 | { 63 | if (event >= SIZEOF_ARRAY(ble_gap_evt_names)) { 64 | return "UNKNOWN"; 65 | } 66 | return ble_gap_evt_names[event]; 67 | } 68 | 69 | const char *bt_gap_evt_str(uint8_t event) 70 | { 71 | if (event >= SIZEOF_ARRAY(bt_gap_evt_names)) { 72 | return "UNKNOWN"; 73 | } 74 | return bt_gap_evt_names[event]; 75 | } 76 | 77 | #if CONFIG_BT_BLE_ENABLED 78 | const char *esp_ble_key_type_str(esp_ble_key_type_t key_type) 79 | { 80 | const char *key_str = NULL; 81 | switch (key_type) { 82 | case ESP_LE_KEY_NONE: 83 | key_str = "ESP_LE_KEY_NONE"; 84 | break; 85 | case ESP_LE_KEY_PENC: 86 | key_str = "ESP_LE_KEY_PENC"; 87 | break; 88 | case ESP_LE_KEY_PID: 89 | key_str = "ESP_LE_KEY_PID"; 90 | break; 91 | case ESP_LE_KEY_PCSRK: 92 | key_str = "ESP_LE_KEY_PCSRK"; 93 | break; 94 | case ESP_LE_KEY_PLK: 95 | key_str = "ESP_LE_KEY_PLK"; 96 | break; 97 | case ESP_LE_KEY_LLK: 98 | key_str = "ESP_LE_KEY_LLK"; 99 | break; 100 | case ESP_LE_KEY_LENC: 101 | key_str = "ESP_LE_KEY_LENC"; 102 | break; 103 | case ESP_LE_KEY_LID: 104 | key_str = "ESP_LE_KEY_LID"; 105 | break; 106 | case ESP_LE_KEY_LCSRK: 107 | key_str = "ESP_LE_KEY_LCSRK"; 108 | break; 109 | default: 110 | key_str = "INVALID BLE KEY TYPE"; 111 | break; 112 | 113 | } 114 | return key_str; 115 | } 116 | #endif /* CONFIG_BT_BLE_ENABLED */ 117 | 118 | void esp_hid_scan_results_free(esp_hid_scan_result_t *results) 119 | { 120 | esp_hid_scan_result_t *r = NULL; 121 | while (results) { 122 | r = results; 123 | results = results->next; 124 | if (r->name != NULL) { 125 | free((char *)r->name); 126 | } 127 | free(r); 128 | } 129 | } 130 | 131 | #if (CONFIG_BT_HID_HOST_ENABLED || CONFIG_BT_BLE_ENABLED) 132 | static esp_hid_scan_result_t *find_scan_result(esp_bd_addr_t bda, esp_hid_scan_result_t *results) 133 | { 134 | esp_hid_scan_result_t *r = results; 135 | while (r) { 136 | if (memcmp(bda, r->bda, sizeof(esp_bd_addr_t)) == 0) { 137 | return r; 138 | } 139 | r = r->next; 140 | } 141 | return NULL; 142 | } 143 | #endif /* (CONFIG_BT_HID_HOST_ENABLED || CONFIG_BT_BLE_ENABLED) */ 144 | 145 | #if CONFIG_BT_HID_HOST_ENABLED 146 | static void add_bt_scan_result(esp_bd_addr_t bda, esp_bt_cod_t *cod, esp_bt_uuid_t *uuid, uint8_t *name, uint8_t name_len, int rssi) 147 | { 148 | esp_hid_scan_result_t *r = find_scan_result(bda, bt_scan_results); 149 | if (r) { 150 | //Some info may come later 151 | if (r->name == NULL && name && name_len) { 152 | char *name_s = (char *)malloc(name_len + 1); 153 | if (name_s == NULL) { 154 | ESP_LOGE(TAG, "Malloc result name failed!"); 155 | return; 156 | } 157 | memcpy(name_s, name, name_len); 158 | name_s[name_len] = 0; 159 | r->name = (const char *)name_s; 160 | } 161 | if (r->bt.uuid.len == 0 && uuid->len) { 162 | memcpy(&r->bt.uuid, uuid, sizeof(esp_bt_uuid_t)); 163 | } 164 | if (rssi != 0) { 165 | r->rssi = rssi; 166 | } 167 | return; 168 | } 169 | 170 | r = (esp_hid_scan_result_t *)malloc(sizeof(esp_hid_scan_result_t)); 171 | if (r == NULL) { 172 | ESP_LOGE(TAG, "Malloc bt_hidh_scan_result_t failed!"); 173 | return; 174 | } 175 | r->transport = ESP_HID_TRANSPORT_BT; 176 | memcpy(r->bda, bda, sizeof(esp_bd_addr_t)); 177 | memcpy(&r->bt.cod, cod, sizeof(esp_bt_cod_t)); 178 | memcpy(&r->bt.uuid, uuid, sizeof(esp_bt_uuid_t)); 179 | r->usage = esp_hid_usage_from_cod((uint32_t)cod); 180 | r->rssi = rssi; 181 | r->name = NULL; 182 | if (name_len && name) { 183 | char *name_s = (char *)malloc(name_len + 1); 184 | if (name_s == NULL) { 185 | free(r); 186 | ESP_LOGE(TAG, "Malloc result name failed!"); 187 | return; 188 | } 189 | memcpy(name_s, name, name_len); 190 | name_s[name_len] = 0; 191 | r->name = (const char *)name_s; 192 | } 193 | r->next = bt_scan_results; 194 | bt_scan_results = r; 195 | num_bt_scan_results++; 196 | } 197 | #endif 198 | 199 | #if CONFIG_BT_BLE_ENABLED 200 | static void add_ble_scan_result(esp_bd_addr_t bda, esp_ble_addr_type_t addr_type, uint16_t appearance, uint8_t *name, uint8_t name_len, int rssi) 201 | { 202 | if (find_scan_result(bda, ble_scan_results)) { 203 | ESP_LOGW(TAG, "Result already exists!"); 204 | return; 205 | } 206 | esp_hid_scan_result_t *r = (esp_hid_scan_result_t *)malloc(sizeof(esp_hid_scan_result_t)); 207 | if (r == NULL) { 208 | ESP_LOGE(TAG, "Malloc ble_hidh_scan_result_t failed!"); 209 | return; 210 | } 211 | r->transport = ESP_HID_TRANSPORT_BLE; 212 | memcpy(r->bda, bda, sizeof(esp_bd_addr_t)); 213 | r->ble.appearance = appearance; 214 | r->ble.addr_type = addr_type; 215 | r->usage = esp_hid_usage_from_appearance(appearance); 216 | r->rssi = rssi; 217 | r->name = NULL; 218 | if (name_len && name) { 219 | char *name_s = (char *)malloc(name_len + 1); 220 | if (name_s == NULL) { 221 | free(r); 222 | ESP_LOGE(TAG, "Malloc result name failed!"); 223 | return; 224 | } 225 | memcpy(name_s, name, name_len); 226 | name_s[name_len] = 0; 227 | r->name = (const char *)name_s; 228 | } 229 | r->next = ble_scan_results; 230 | ble_scan_results = r; 231 | num_ble_scan_results++; 232 | } 233 | #endif /* CONFIG_BT_BLE_ENABLED */ 234 | 235 | void print_uuid(esp_bt_uuid_t *uuid) 236 | { 237 | if (uuid->len == ESP_UUID_LEN_16) { 238 | GAP_DBG_PRINTF("UUID16: 0x%04x", uuid->uuid.uuid16); 239 | } else if (uuid->len == ESP_UUID_LEN_32) { 240 | GAP_DBG_PRINTF("UUID32: 0x%08x", uuid->uuid.uuid32); 241 | } else if (uuid->len == ESP_UUID_LEN_128) { 242 | GAP_DBG_PRINTF("UUID128: %02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x", uuid->uuid.uuid128[0], 243 | uuid->uuid.uuid128[1], uuid->uuid.uuid128[2], uuid->uuid.uuid128[3], 244 | uuid->uuid.uuid128[4], uuid->uuid.uuid128[5], uuid->uuid.uuid128[6], 245 | uuid->uuid.uuid128[7], uuid->uuid.uuid128[8], uuid->uuid.uuid128[9], 246 | uuid->uuid.uuid128[10], uuid->uuid.uuid128[11], uuid->uuid.uuid128[12], 247 | uuid->uuid.uuid128[13], uuid->uuid.uuid128[14], uuid->uuid.uuid128[15]); 248 | } 249 | } 250 | 251 | #if CONFIG_BT_HID_HOST_ENABLED 252 | static void handle_bt_device_result(struct disc_res_param *disc_res) 253 | { 254 | GAP_DBG_PRINTF("BT : " ESP_BD_ADDR_STR, ESP_BD_ADDR_HEX(disc_res->bda)); 255 | uint32_t codv = 0; 256 | esp_bt_cod_t *cod = (esp_bt_cod_t *)&codv; 257 | int8_t rssi = 0; 258 | uint8_t *name = NULL; 259 | uint8_t name_len = 0; 260 | esp_bt_uuid_t uuid; 261 | 262 | uuid.len = ESP_UUID_LEN_16; 263 | uuid.uuid.uuid16 = 0; 264 | 265 | for (int i = 0; i < disc_res->num_prop; i++) { 266 | esp_bt_gap_dev_prop_t *prop = &disc_res->prop[i]; 267 | if (prop->type != ESP_BT_GAP_DEV_PROP_EIR) { 268 | GAP_DBG_PRINTF(", %s: ", gap_bt_prop_type_names[prop->type]); 269 | } 270 | if (prop->type == ESP_BT_GAP_DEV_PROP_BDNAME) { 271 | name = (uint8_t *)prop->val; 272 | name_len = strlen((const char *)name); 273 | GAP_DBG_PRINTF("%s", (const char *)name); 274 | } else if (prop->type == ESP_BT_GAP_DEV_PROP_RSSI) { 275 | rssi = *((int8_t *)prop->val); 276 | GAP_DBG_PRINTF("%d", rssi); 277 | } else if (prop->type == ESP_BT_GAP_DEV_PROP_COD) { 278 | memcpy(&codv, prop->val, sizeof(uint32_t)); 279 | GAP_DBG_PRINTF("major: %s, minor: %d, service: 0x%03x", esp_hid_cod_major_str(cod->major), cod->minor, cod->service); 280 | } else if (prop->type == ESP_BT_GAP_DEV_PROP_EIR) { 281 | uint8_t len = 0; 282 | uint8_t *data = 0; 283 | 284 | data = esp_bt_gap_resolve_eir_data((uint8_t *)prop->val, ESP_BT_EIR_TYPE_CMPL_16BITS_UUID, &len); 285 | if (data == NULL) { 286 | data = esp_bt_gap_resolve_eir_data((uint8_t *)prop->val, ESP_BT_EIR_TYPE_INCMPL_16BITS_UUID, &len); 287 | } 288 | if (data && len == ESP_UUID_LEN_16) { 289 | uuid.len = ESP_UUID_LEN_16; 290 | uuid.uuid.uuid16 = data[0] + (data[1] << 8); 291 | GAP_DBG_PRINTF(", "); print_uuid(&uuid); 292 | continue; 293 | } 294 | 295 | data = esp_bt_gap_resolve_eir_data((uint8_t *)prop->val, ESP_BT_EIR_TYPE_CMPL_32BITS_UUID, &len); 296 | if (data == NULL) { 297 | data = esp_bt_gap_resolve_eir_data((uint8_t *)prop->val, ESP_BT_EIR_TYPE_INCMPL_32BITS_UUID, &len); 298 | } 299 | if (data && len == ESP_UUID_LEN_32) { 300 | uuid.len = len; 301 | memcpy(&uuid.uuid.uuid32, data, sizeof(uint32_t)); 302 | GAP_DBG_PRINTF(", "); print_uuid(&uuid); 303 | continue; 304 | } 305 | 306 | data = esp_bt_gap_resolve_eir_data((uint8_t *)prop->val, ESP_BT_EIR_TYPE_CMPL_128BITS_UUID, &len); 307 | if (data == NULL) { 308 | data = esp_bt_gap_resolve_eir_data((uint8_t *)prop->val, ESP_BT_EIR_TYPE_INCMPL_128BITS_UUID, &len); 309 | } 310 | if (data && len == ESP_UUID_LEN_128) { 311 | uuid.len = len; 312 | memcpy(uuid.uuid.uuid128, (uint8_t *)data, len); 313 | GAP_DBG_PRINTF(", "); print_uuid(&uuid); 314 | continue; 315 | } 316 | 317 | //try to find a name 318 | if (name == NULL) { 319 | data = esp_bt_gap_resolve_eir_data((uint8_t *)prop->val, ESP_BT_EIR_TYPE_CMPL_LOCAL_NAME, &len); 320 | if (data == NULL) { 321 | data = esp_bt_gap_resolve_eir_data((uint8_t *)prop->val, ESP_BT_EIR_TYPE_SHORT_LOCAL_NAME, &len); 322 | } 323 | if (data && len) { 324 | name = data; 325 | name_len = len; 326 | GAP_DBG_PRINTF(", NAME: "); 327 | for (int x = 0; x < len; x++) { 328 | GAP_DBG_PRINTF("%c", (char)data[x]); 329 | } 330 | } 331 | } 332 | } 333 | } 334 | GAP_DBG_PRINTF("\n"); 335 | 336 | if (cod->major == ESP_BT_COD_MAJOR_DEV_PERIPHERAL || (find_scan_result(disc_res->bda, bt_scan_results) != NULL)) { 337 | add_bt_scan_result(disc_res->bda, cod, &uuid, name, name_len, rssi); 338 | } 339 | } 340 | #endif 341 | 342 | #if CONFIG_BT_BLE_ENABLED 343 | static void handle_ble_device_result(struct ble_scan_result_evt_param *scan_rst) 344 | { 345 | 346 | uint16_t uuid = 0; 347 | uint16_t appearance = 0; 348 | char name[64] = {0}; 349 | 350 | uint8_t uuid_len = 0; 351 | uint8_t *uuid_d = esp_ble_resolve_adv_data(scan_rst->ble_adv, ESP_BLE_AD_TYPE_16SRV_CMPL, &uuid_len); 352 | if (uuid_d != NULL && uuid_len) { 353 | uuid = uuid_d[0] + (uuid_d[1] << 8); 354 | } 355 | 356 | uint8_t appearance_len = 0; 357 | uint8_t *appearance_d = esp_ble_resolve_adv_data(scan_rst->ble_adv, ESP_BLE_AD_TYPE_APPEARANCE, &appearance_len); 358 | if (appearance_d != NULL && appearance_len) { 359 | appearance = appearance_d[0] + (appearance_d[1] << 8); 360 | } 361 | 362 | uint8_t adv_name_len = 0; 363 | uint8_t *adv_name = esp_ble_resolve_adv_data(scan_rst->ble_adv, ESP_BLE_AD_TYPE_NAME_CMPL, &adv_name_len); 364 | 365 | if (adv_name == NULL) { 366 | adv_name = esp_ble_resolve_adv_data(scan_rst->ble_adv, ESP_BLE_AD_TYPE_NAME_SHORT, &adv_name_len); 367 | } 368 | 369 | if (adv_name != NULL && adv_name_len) { 370 | memcpy(name, adv_name, adv_name_len); 371 | name[adv_name_len] = 0; 372 | } 373 | 374 | GAP_DBG_PRINTF("BLE: " ESP_BD_ADDR_STR ", ", ESP_BD_ADDR_HEX(scan_rst->bda)); 375 | GAP_DBG_PRINTF("RSSI222: %d, ", scan_rst->rssi); 376 | GAP_DBG_PRINTF("UUID: 0x%04x, ", uuid); 377 | GAP_DBG_PRINTF("APPEARANCE: 0x%04x, ", appearance); 378 | GAP_DBG_PRINTF("ADDR_TYPE: '%s'", ble_addr_type_str(scan_rst->ble_addr_type)); 379 | GAP_DBG_PRINTF(", NAME: '%s'", name); 380 | // if (adv_name_len) { 381 | // GAP_DBG_PRINTF(", NAME: '%s'", name); 382 | // } 383 | GAP_DBG_PRINTF("\n"); 384 | 385 | if (uuid == ESP_GATT_UUID_HID_SVC) { 386 | add_ble_scan_result(scan_rst->bda, scan_rst->ble_addr_type, appearance, adv_name, adv_name_len, scan_rst->rssi); 387 | } 388 | } 389 | #endif /* CONFIG_BT_BLE_ENABLED */ 390 | 391 | #if CONFIG_BT_HID_HOST_ENABLED 392 | /* 393 | * BT GAP 394 | * */ 395 | 396 | static void bt_gap_event_handler(esp_bt_gap_cb_event_t event, esp_bt_gap_cb_param_t *param) 397 | { 398 | switch (event) { 399 | case ESP_BT_GAP_DISC_STATE_CHANGED_EVT: { 400 | ESP_LOGV(TAG, "BT GAP DISC_STATE %s", (param->disc_st_chg.state == ESP_BT_GAP_DISCOVERY_STARTED) ? "START" : "STOP"); 401 | if (param->disc_st_chg.state == ESP_BT_GAP_DISCOVERY_STOPPED) { 402 | SEND_BT_CB(); 403 | } 404 | break; 405 | } 406 | case ESP_BT_GAP_DISC_RES_EVT: { 407 | handle_bt_device_result(¶m->disc_res); 408 | break; 409 | } 410 | case ESP_BT_GAP_KEY_NOTIF_EVT: 411 | ESP_LOGI(TAG, "BT GAP KEY_NOTIF passkey:%d", param->key_notif.passkey); 412 | break; 413 | case ESP_BT_GAP_MODE_CHG_EVT: 414 | ESP_LOGI(TAG, "BT GAP MODE_CHG_EVT mode:%d", param->mode_chg.mode); 415 | break; 416 | default: 417 | ESP_LOGV(TAG, "BT GAP EVENT %s", bt_gap_evt_str(event)); 418 | break; 419 | } 420 | } 421 | 422 | static esp_err_t init_bt_gap(void) 423 | { 424 | esp_err_t ret; 425 | esp_bt_sp_param_t param_type = ESP_BT_SP_IOCAP_MODE; 426 | esp_bt_io_cap_t iocap = ESP_BT_IO_CAP_IO; 427 | esp_bt_gap_set_security_param(param_type, &iocap, sizeof(uint8_t)); 428 | /* 429 | * Set default parameters for Legacy Pairing 430 | * Use fixed pin code 431 | */ 432 | esp_bt_pin_type_t pin_type = ESP_BT_PIN_TYPE_FIXED; 433 | esp_bt_pin_code_t pin_code; 434 | pin_code[0] = '1'; 435 | pin_code[1] = '2'; 436 | pin_code[2] = '3'; 437 | pin_code[3] = '4'; 438 | esp_bt_gap_set_pin(pin_type, 4, pin_code); 439 | 440 | if ((ret = esp_bt_gap_register_callback(bt_gap_event_handler)) != ESP_OK) { 441 | ESP_LOGE(TAG, "esp_bt_gap_register_callback failed: %d", ret); 442 | return ret; 443 | } 444 | 445 | // Allow BT devices to connect back to us 446 | if ((ret = esp_bt_gap_set_scan_mode(ESP_BT_CONNECTABLE, ESP_BT_NON_DISCOVERABLE)) != ESP_OK) { 447 | ESP_LOGE(TAG, "esp_bt_gap_set_scan_mode failed: %d", ret); 448 | return ret; 449 | } 450 | return ret; 451 | } 452 | 453 | static esp_err_t start_bt_scan(uint32_t seconds) 454 | { 455 | esp_err_t ret = ESP_OK; 456 | if ((ret = esp_bt_gap_start_discovery(ESP_BT_INQ_MODE_GENERAL_INQUIRY, (int)(seconds / 1.28), 0)) != ESP_OK) { 457 | ESP_LOGE(TAG, "esp_bt_gap_start_discovery failed: %d", ret); 458 | return ret; 459 | } 460 | return ret; 461 | } 462 | #endif 463 | 464 | #if CONFIG_BT_BLE_ENABLED 465 | /* 466 | * BLE GAP 467 | * */ 468 | 469 | static void ble_gap_event_handler(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t *param) 470 | { 471 | switch (event) { 472 | /* 473 | * SCAN 474 | * */ 475 | case ESP_GAP_BLE_SCAN_PARAM_SET_COMPLETE_EVT: { 476 | ESP_LOGV(TAG, "BLE GAP EVENT SCAN_PARAM_SET_COMPLETE"); 477 | SEND_BLE_CB(); 478 | break; 479 | } 480 | case ESP_GAP_BLE_SCAN_RESULT_EVT: { 481 | esp_ble_gap_cb_param_t *scan_result = (esp_ble_gap_cb_param_t *)param; 482 | switch (scan_result->scan_rst.search_evt) { 483 | case ESP_GAP_SEARCH_INQ_RES_EVT: { 484 | handle_ble_device_result(&scan_result->scan_rst); 485 | break; 486 | } 487 | case ESP_GAP_SEARCH_INQ_CMPL_EVT: 488 | ESP_LOGV(TAG, "BLE GAP EVENT SCAN DONE: %d", scan_result->scan_rst.num_resps); 489 | SEND_BLE_CB(); 490 | break; 491 | default: 492 | break; 493 | } 494 | break; 495 | } 496 | case ESP_GAP_BLE_SCAN_STOP_COMPLETE_EVT: { 497 | ESP_LOGV(TAG, "BLE GAP EVENT SCAN CANCELED"); 498 | break; 499 | } 500 | 501 | /* 502 | * ADVERTISEMENT 503 | * */ 504 | case ESP_GAP_BLE_ADV_DATA_SET_COMPLETE_EVT: 505 | ESP_LOGV(TAG, "BLE GAP ADV_DATA_SET_COMPLETE"); 506 | break; 507 | 508 | case ESP_GAP_BLE_ADV_START_COMPLETE_EVT: 509 | ESP_LOGV(TAG, "BLE GAP ADV_START_COMPLETE"); 510 | break; 511 | 512 | /* 513 | * AUTHENTICATION 514 | * */ 515 | case ESP_GAP_BLE_AUTH_CMPL_EVT: 516 | if (!param->ble_security.auth_cmpl.success) { 517 | ESP_LOGE(TAG, "BLE GAP AUTH ERROR: 0x%x", param->ble_security.auth_cmpl.fail_reason); 518 | } else { 519 | ESP_LOGI(TAG, "BLE GAP AUTH SUCCESS"); 520 | } 521 | break; 522 | 523 | case ESP_GAP_BLE_KEY_EVT: //shows the ble key info share with peer device to the user. 524 | ESP_LOGI(TAG, "BLE GAP KEY type = %s", esp_ble_key_type_str(param->ble_security.ble_key.key_type)); 525 | break; 526 | 527 | case ESP_GAP_BLE_PASSKEY_NOTIF_EVT: // ESP_IO_CAP_OUT 528 | // The app will receive this evt when the IO has Output capability and the peer device IO has Input capability. 529 | // Show the passkey number to the user to input it in the peer device. 530 | ESP_LOGI(TAG, "BLE GAP PASSKEY_NOTIF passkey:%d", param->ble_security.key_notif.passkey); 531 | break; 532 | 533 | case ESP_GAP_BLE_NC_REQ_EVT: // ESP_IO_CAP_IO 534 | // The app will receive this event when the IO has DisplayYesNO capability and the peer device IO also has DisplayYesNo capability. 535 | // show the passkey number to the user to confirm it with the number displayed by peer device. 536 | ESP_LOGI(TAG, "BLE GAP NC_REQ passkey:%d", param->ble_security.key_notif.passkey); 537 | esp_ble_confirm_reply(param->ble_security.key_notif.bd_addr, true); 538 | break; 539 | 540 | case ESP_GAP_BLE_PASSKEY_REQ_EVT: // ESP_IO_CAP_IN 541 | // The app will receive this evt when the IO has Input capability and the peer device IO has Output capability. 542 | // See the passkey number on the peer device and send it back. 543 | ESP_LOGI(TAG, "BLE GAP PASSKEY_REQ"); 544 | //esp_ble_passkey_reply(param->ble_security.ble_req.bd_addr, true, 1234); 545 | break; 546 | 547 | case ESP_GAP_BLE_SEC_REQ_EVT: 548 | ESP_LOGI(TAG, "BLE GAP SEC_REQ"); 549 | // Send the positive(true) security response to the peer device to accept the security request. 550 | // If not accept the security request, should send the security response with negative(false) accept value. 551 | esp_ble_gap_security_rsp(param->ble_security.ble_req.bd_addr, true); 552 | break; 553 | 554 | default: 555 | ESP_LOGV(TAG, "BLE GAP EVENT %s", ble_gap_evt_str(event)); 556 | break; 557 | } 558 | } 559 | 560 | static esp_err_t init_ble_gap(void) 561 | { 562 | esp_err_t ret; 563 | 564 | if ((ret = esp_ble_gap_register_callback(ble_gap_event_handler)) != ESP_OK) { 565 | ESP_LOGE(TAG, "esp_ble_gap_register_callback failed: %d", ret); 566 | return ret; 567 | } 568 | return ret; 569 | } 570 | 571 | static esp_ble_scan_params_t hid_scan_params = { 572 | .scan_type = BLE_SCAN_TYPE_ACTIVE, 573 | .own_addr_type = BLE_ADDR_TYPE_PUBLIC, 574 | .scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL, 575 | .scan_interval = 0x50, 576 | .scan_window = 0x30, 577 | .scan_duplicate = BLE_SCAN_DUPLICATE_ENABLE, 578 | }; 579 | 580 | static esp_err_t start_ble_scan(uint32_t seconds) 581 | { 582 | esp_err_t ret = ESP_OK; 583 | if ((ret = esp_ble_gap_set_scan_params(&hid_scan_params)) != ESP_OK) { 584 | ESP_LOGE(TAG, "esp_ble_gap_set_scan_params failed: %d", ret); 585 | return ret; 586 | } 587 | WAIT_BLE_CB(); 588 | 589 | if ((ret = esp_ble_gap_start_scanning(seconds)) != ESP_OK) { 590 | ESP_LOGE(TAG, "esp_ble_gap_start_scanning failed: %d", ret); 591 | return ret; 592 | } 593 | return ret; 594 | } 595 | 596 | esp_err_t esp_hid_ble_gap_adv_init(uint16_t appearance, const char *device_name) 597 | { 598 | 599 | esp_err_t ret; 600 | 601 | const uint8_t hidd_service_uuid128[] = { 602 | 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80, 0x00, 0x10, 0x00, 0x00, 0x12, 0x18, 0x00, 0x00, 603 | }; 604 | 605 | esp_ble_adv_data_t ble_adv_data = { 606 | .set_scan_rsp = false, 607 | .include_name = true, 608 | .include_txpower = true, 609 | .min_interval = 0x0006, //slave connection min interval, Time = min_interval * 1.25 msec 610 | .max_interval = 0x0010, //slave connection max interval, Time = max_interval * 1.25 msec 611 | .appearance = appearance, 612 | .manufacturer_len = 0, 613 | .p_manufacturer_data = NULL, 614 | .service_data_len = 0, 615 | .p_service_data = NULL, 616 | .service_uuid_len = sizeof(hidd_service_uuid128), 617 | .p_service_uuid = (uint8_t *)hidd_service_uuid128, 618 | .flag = 0x6, 619 | }; 620 | 621 | esp_ble_auth_req_t auth_req = ESP_LE_AUTH_REQ_SC_MITM_BOND; 622 | //esp_ble_io_cap_t iocap = ESP_IO_CAP_OUT;//you have to enter the key on the host 623 | //esp_ble_io_cap_t iocap = ESP_IO_CAP_IN;//you have to enter the key on the device 624 | esp_ble_io_cap_t iocap = ESP_IO_CAP_IO;//you have to agree that key matches on both 625 | //esp_ble_io_cap_t iocap = ESP_IO_CAP_NONE;//device is not capable of input or output, unsecure 626 | uint8_t init_key = ESP_BLE_ENC_KEY_MASK | ESP_BLE_ID_KEY_MASK; 627 | uint8_t rsp_key = ESP_BLE_ENC_KEY_MASK | ESP_BLE_ID_KEY_MASK; 628 | uint8_t key_size = 16; //the key size should be 7~16 bytes 629 | uint32_t passkey = 1234;//ESP_IO_CAP_OUT 630 | 631 | if ((ret = esp_ble_gap_set_security_param(ESP_BLE_SM_AUTHEN_REQ_MODE, &auth_req, 1)) != ESP_OK) { 632 | ESP_LOGE(TAG, "GAP set_security_param AUTHEN_REQ_MODE failed: %d", ret); 633 | return ret; 634 | } 635 | 636 | if ((ret = esp_ble_gap_set_security_param(ESP_BLE_SM_IOCAP_MODE, &iocap, 1)) != ESP_OK) { 637 | ESP_LOGE(TAG, "GAP set_security_param IOCAP_MODE failed: %d", ret); 638 | return ret; 639 | } 640 | 641 | if ((ret = esp_ble_gap_set_security_param(ESP_BLE_SM_SET_INIT_KEY, &init_key, 1)) != ESP_OK) { 642 | ESP_LOGE(TAG, "GAP set_security_param SET_INIT_KEY failed: %d", ret); 643 | return ret; 644 | } 645 | 646 | if ((ret = esp_ble_gap_set_security_param(ESP_BLE_SM_SET_RSP_KEY, &rsp_key, 1)) != ESP_OK) { 647 | ESP_LOGE(TAG, "GAP set_security_param SET_RSP_KEY failed: %d", ret); 648 | return ret; 649 | } 650 | 651 | if ((ret = esp_ble_gap_set_security_param(ESP_BLE_SM_MAX_KEY_SIZE, &key_size, 1)) != ESP_OK) { 652 | ESP_LOGE(TAG, "GAP set_security_param MAX_KEY_SIZE failed: %d", ret); 653 | return ret; 654 | } 655 | 656 | if ((ret = esp_ble_gap_set_security_param(ESP_BLE_SM_SET_STATIC_PASSKEY, &passkey, sizeof(uint32_t))) != ESP_OK) { 657 | ESP_LOGE(TAG, "GAP set_security_param SET_STATIC_PASSKEY failed: %d", ret); 658 | return ret; 659 | } 660 | 661 | if ((ret = esp_ble_gap_set_device_name(device_name)) != ESP_OK) { 662 | ESP_LOGE(TAG, "GAP set_device_name failed: %d", ret); 663 | return ret; 664 | } 665 | 666 | if ((ret = esp_ble_gap_config_adv_data(&ble_adv_data)) != ESP_OK) { 667 | ESP_LOGE(TAG, "GAP config_adv_data failed: %d", ret); 668 | return ret; 669 | } 670 | 671 | return ret; 672 | } 673 | 674 | esp_err_t esp_hid_ble_gap_adv_start(void) 675 | { 676 | static esp_ble_adv_params_t hidd_adv_params = { 677 | .adv_int_min = 0x20, 678 | .adv_int_max = 0x30, 679 | .adv_type = ADV_TYPE_IND, 680 | .own_addr_type = BLE_ADDR_TYPE_PUBLIC, 681 | .channel_map = ADV_CHNL_ALL, 682 | .adv_filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY, 683 | }; 684 | return esp_ble_gap_start_advertising(&hidd_adv_params); 685 | } 686 | #endif /* CONFIG_BT_BLE_ENABLED */ 687 | 688 | /* 689 | * CONTROLLER INIT 690 | * */ 691 | 692 | static esp_err_t init_low_level(uint8_t mode) 693 | { 694 | esp_err_t ret; 695 | esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); 696 | #if CONFIG_IDF_TARGET_ESP32 697 | bt_cfg.mode = mode; 698 | #endif 699 | #if CONFIG_BT_HID_HOST_ENABLED 700 | if (mode & ESP_BT_MODE_CLASSIC_BT) { 701 | bt_cfg.bt_max_acl_conn = 3; 702 | bt_cfg.bt_max_sync_conn = 3; 703 | } else 704 | #endif 705 | { 706 | ret = esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT); 707 | if (ret) { 708 | ESP_LOGE(TAG, "esp_bt_controller_mem_release failed: %d", ret); 709 | return ret; 710 | } 711 | } 712 | ret = esp_bt_controller_init(&bt_cfg); 713 | if (ret) { 714 | ESP_LOGE(TAG, "esp_bt_controller_init failed: %d", ret); 715 | return ret; 716 | } 717 | 718 | ret = esp_bt_controller_enable(mode); 719 | if (ret) { 720 | ESP_LOGE(TAG, "esp_bt_controller_enable failed: %d", ret); 721 | return ret; 722 | } 723 | 724 | ret = esp_bluedroid_init(); 725 | if (ret) { 726 | ESP_LOGE(TAG, "esp_bluedroid_init failed: %d", ret); 727 | return ret; 728 | } 729 | 730 | ret = esp_bluedroid_enable(); 731 | if (ret) { 732 | ESP_LOGE(TAG, "esp_bluedroid_enable failed: %d", ret); 733 | return ret; 734 | } 735 | #if CONFIG_BT_HID_HOST_ENABLED 736 | if (mode & ESP_BT_MODE_CLASSIC_BT) { 737 | ret = init_bt_gap(); 738 | if (ret) { 739 | return ret; 740 | } 741 | } 742 | #endif 743 | #if CONFIG_BT_BLE_ENABLED 744 | if (mode & ESP_BT_MODE_BLE) { 745 | ret = init_ble_gap(); 746 | if (ret) { 747 | return ret; 748 | } 749 | } 750 | #endif /* CONFIG_BT_BLE_ENABLED */ 751 | return ret; 752 | } 753 | 754 | esp_err_t esp_hid_gap_init(uint8_t mode) 755 | { 756 | esp_err_t ret; 757 | if (!mode || mode > ESP_BT_MODE_BTDM) { 758 | ESP_LOGE(TAG, "Invalid mode given!"); 759 | return ESP_FAIL; 760 | } 761 | 762 | if (bt_hidh_cb_semaphore != NULL) { 763 | ESP_LOGE(TAG, "Already initialised"); 764 | return ESP_FAIL; 765 | } 766 | 767 | bt_hidh_cb_semaphore = xSemaphoreCreateBinary(); 768 | if (bt_hidh_cb_semaphore == NULL) { 769 | ESP_LOGE(TAG, "xSemaphoreCreateMutex failed!"); 770 | return ESP_FAIL; 771 | } 772 | 773 | ble_hidh_cb_semaphore = xSemaphoreCreateBinary(); 774 | if (ble_hidh_cb_semaphore == NULL) { 775 | ESP_LOGE(TAG, "xSemaphoreCreateMutex failed!"); 776 | vSemaphoreDelete(bt_hidh_cb_semaphore); 777 | bt_hidh_cb_semaphore = NULL; 778 | return ESP_FAIL; 779 | } 780 | 781 | ret = init_low_level(mode); 782 | if (ret != ESP_OK) { 783 | vSemaphoreDelete(bt_hidh_cb_semaphore); 784 | bt_hidh_cb_semaphore = NULL; 785 | vSemaphoreDelete(ble_hidh_cb_semaphore); 786 | ble_hidh_cb_semaphore = NULL; 787 | return ret; 788 | } 789 | 790 | return ESP_OK; 791 | } 792 | 793 | esp_err_t esp_hid_scan(uint32_t seconds, size_t *num_results, esp_hid_scan_result_t **results) 794 | { 795 | if (num_bt_scan_results || bt_scan_results || num_ble_scan_results || ble_scan_results) { 796 | ESP_LOGE(TAG, "There are old scan results. Free them first!"); 797 | return ESP_FAIL; 798 | } 799 | 800 | #if CONFIG_BT_BLE_ENABLED 801 | if (start_ble_scan(seconds) == ESP_OK) { 802 | WAIT_BLE_CB(); 803 | } else { 804 | return ESP_FAIL; 805 | } 806 | #endif /* CONFIG_BT_BLE_ENABLED */ 807 | 808 | #if CONFIG_BT_HID_HOST_ENABLED 809 | if (start_bt_scan(seconds) == ESP_OK) { 810 | WAIT_BT_CB(); 811 | } else { 812 | return ESP_FAIL; 813 | } 814 | #endif 815 | printf("num_bt_scan_results %d \n",num_bt_scan_results); 816 | printf("num_ble_scan_results %d \n",num_ble_scan_results); 817 | *num_results = num_bt_scan_results + num_ble_scan_results; 818 | *results = bt_scan_results; 819 | if (num_bt_scan_results) { 820 | while (bt_scan_results->next != NULL) { 821 | bt_scan_results = bt_scan_results->next; 822 | } 823 | bt_scan_results->next = ble_scan_results; 824 | } else { 825 | *results = ble_scan_results; 826 | } 827 | 828 | num_bt_scan_results = 0; 829 | bt_scan_results = NULL; 830 | num_ble_scan_results = 0; 831 | ble_scan_results = NULL; 832 | return ESP_OK; 833 | } 834 | -------------------------------------------------------------------------------- /main/esp_hid_gap.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017-2019 Espressif Systems (Shanghai) PTE LTD 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #ifndef _ESP_HID_GAP_H_ 16 | #define _ESP_HID_GAP_H_ 17 | 18 | #define HIDH_IDLE_MODE 0x00 19 | #define HIDH_BLE_MODE 0x01 20 | #define HIDH_BT_MODE 0x02 21 | #define HIDH_BTDM_MODE 0x03 22 | 23 | #if CONFIG_BT_HID_HOST_ENABLED 24 | #if CONFIG_BT_BLE_ENABLED 25 | #define HID_HOST_MODE HIDH_BTDM_MODE 26 | #else 27 | #define HID_HOST_MODE HIDH_BT_MODE 28 | #endif 29 | #elif CONFIG_BT_BLE_ENABLED 30 | #define HID_HOST_MODE HIDH_BLE_MODE 31 | #else 32 | #define HID_HOST_MODE HIDH_IDLE_MODE 33 | #endif 34 | 35 | #include "esp_err.h" 36 | #include "esp_log.h" 37 | 38 | #include "esp_bt.h" 39 | #include "esp_bt_defs.h" 40 | #include "esp_bt_main.h" 41 | #include "esp_gap_bt_api.h" 42 | #include "esp_hid_common.h" 43 | #if CONFIG_BT_BLE_ENABLED 44 | #include "esp_gattc_api.h" 45 | #include "esp_gatt_defs.h" 46 | #include "esp_gap_ble_api.h" 47 | #endif 48 | 49 | #ifdef __cplusplus 50 | extern "C" { 51 | #endif 52 | 53 | typedef struct esp_hidh_scan_result_s { 54 | struct esp_hidh_scan_result_s *next; 55 | 56 | esp_bd_addr_t bda; 57 | const char *name; 58 | int8_t rssi; 59 | esp_hid_usage_t usage; 60 | esp_hid_transport_t transport; //BT, BLE or USB 61 | union { 62 | struct { 63 | esp_bt_cod_t cod; 64 | esp_bt_uuid_t uuid; 65 | } bt; 66 | struct { 67 | esp_ble_addr_type_t addr_type; 68 | uint16_t appearance; 69 | } ble; 70 | }; 71 | } esp_hid_scan_result_t; 72 | 73 | esp_err_t esp_hid_gap_init(uint8_t mode); 74 | esp_err_t esp_hid_scan(uint32_t seconds, size_t *num_results, esp_hid_scan_result_t **results); 75 | void esp_hid_scan_results_free(esp_hid_scan_result_t *results); 76 | 77 | esp_err_t esp_hid_ble_gap_adv_init(uint16_t appearance, const char *device_name); 78 | esp_err_t esp_hid_ble_gap_adv_start(void); 79 | 80 | void print_uuid(esp_bt_uuid_t *uuid); 81 | const char *ble_addr_type_str(esp_ble_addr_type_t ble_addr_type); 82 | 83 | #ifdef __cplusplus 84 | } 85 | #endif 86 | 87 | #endif /* _ESP_HIDH_GAP_H_ */ 88 | -------------------------------------------------------------------------------- /mqtt_tcp_example_test.py: -------------------------------------------------------------------------------- 1 | import os 2 | import re 3 | import socket 4 | import struct 5 | import sys 6 | import time 7 | from threading import Thread 8 | 9 | import ttfw_idf 10 | from tiny_test_fw import DUT 11 | 12 | msgid = -1 13 | 14 | 15 | def get_my_ip(): 16 | s1 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 17 | s1.connect(('8.8.8.8', 80)) 18 | my_ip = s1.getsockname()[0] 19 | s1.close() 20 | return my_ip 21 | 22 | 23 | def mqqt_server_sketch(my_ip, port): 24 | global msgid 25 | print('Starting the server on {}'.format(my_ip)) 26 | s = None 27 | try: 28 | s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 29 | s.settimeout(60) 30 | s.bind((my_ip, port)) 31 | s.listen(1) 32 | q,addr = s.accept() 33 | q.settimeout(30) 34 | print('connection accepted') 35 | except Exception: 36 | print('Local server on {}:{} listening/accepting failure: {}' 37 | 'Possibly check permissions or firewall settings' 38 | 'to accept connections on this address'.format(my_ip, port, sys.exc_info()[0])) 39 | raise 40 | data = q.recv(1024) 41 | # check if received initial empty message 42 | print('received from client {}'.format(data)) 43 | data = bytearray([0x20, 0x02, 0x00, 0x00]) 44 | q.send(data) 45 | # try to receive qos1 46 | data = q.recv(1024) 47 | msgid = struct.unpack('>H', data[15:17])[0] 48 | print('received from client {}, msgid: {}'.format(data, msgid)) 49 | data = bytearray([0x40, 0x02, data[15], data[16]]) 50 | q.send(data) 51 | time.sleep(5) 52 | s.close() 53 | print('server closed') 54 | 55 | 56 | @ttfw_idf.idf_example_test(env_tag='Example_EthKitV1') 57 | def test_examples_protocol_mqtt_qos1(env, extra_data): 58 | global msgid 59 | """ 60 | steps: (QoS1: Happy flow) 61 | 1. start the broker broker (with correctly sending ACK) 62 | 2. DUT client connects to a broker and publishes qos1 message 63 | 3. Test evaluates that qos1 message is queued and removed from queued after ACK received 64 | 4. Test the broker received the same message id evaluated in step 3 65 | """ 66 | dut1 = env.get_dut('mqtt_tcp', 'examples/protocols/mqtt/tcp', dut_class=ttfw_idf.ESP32DUT) 67 | # check and log bin size 68 | binary_file = os.path.join(dut1.app.binary_path, 'mqtt_tcp.bin') 69 | bin_size = os.path.getsize(binary_file) 70 | ttfw_idf.log_performance('mqtt_tcp_bin_size', '{}KB'.format(bin_size // 1024)) 71 | # 1. start mqtt broker sketch 72 | host_ip = get_my_ip() 73 | thread1 = Thread(target=mqqt_server_sketch, args=(host_ip,1883)) 74 | thread1.start() 75 | # 2. start the dut test and wait till client gets IP address 76 | dut1.start_app() 77 | # waiting for getting the IP address 78 | try: 79 | ip_address = dut1.expect(re.compile(r' eth ip: ([^,]+),'), timeout=30) 80 | print('Connected to AP with IP: {}'.format(ip_address)) 81 | except DUT.ExpectTimeout: 82 | raise ValueError('ENV_TEST_FAILURE: Cannot connect to AP') 83 | 84 | print('writing to device: {}'.format('mqtt://' + host_ip + '\n')) 85 | dut1.write('mqtt://' + host_ip + '\n') 86 | thread1.join() 87 | print('Message id received from server: {}'.format(msgid)) 88 | # 3. check the message id was enqueued and then deleted 89 | msgid_enqueued = dut1.expect(re.compile(r'OUTBOX: ENQUEUE msgid=([0-9]+)'), timeout=30) 90 | msgid_deleted = dut1.expect(re.compile(r'OUTBOX: DELETED msgid=([0-9]+)'), timeout=30) 91 | # 4. check the msgid of received data are the same as that of enqueued and deleted from outbox 92 | if (msgid_enqueued[0] == str(msgid) and msgid_deleted[0] == str(msgid)): 93 | print('PASS: Received correct msg id') 94 | else: 95 | print('Failure!') 96 | raise ValueError('Mismatch of msgid: received: {}, enqueued {}, deleted {}'.format(msgid, msgid_enqueued, msgid_deleted)) 97 | 98 | 99 | if __name__ == '__main__': 100 | test_examples_protocol_mqtt_qos1() 101 | -------------------------------------------------------------------------------- /sdkconfig: -------------------------------------------------------------------------------- 1 | # 2 | # Automatically generated file. DO NOT EDIT. 3 | # Espressif IoT Development Framework (ESP-IDF) Project Configuration 4 | # 5 | CONFIG_IDF_CMAKE=y 6 | CONFIG_IDF_TARGET_ARCH_XTENSA=y 7 | CONFIG_IDF_TARGET="esp32" 8 | CONFIG_IDF_TARGET_ESP32=y 9 | CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000 10 | 11 | # 12 | # SDK tool configuration 13 | # 14 | CONFIG_SDK_TOOLPREFIX="riscv32-esp-elf-" 15 | # CONFIG_SDK_TOOLCHAIN_SUPPORTS_TIME_WIDE_64_BITS is not set 16 | # end of SDK tool configuration 17 | 18 | # 19 | # Build type 20 | # 21 | CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y 22 | # CONFIG_APP_BUILD_TYPE_ELF_RAM is not set 23 | CONFIG_APP_BUILD_GENERATE_BINARIES=y 24 | CONFIG_APP_BUILD_BOOTLOADER=y 25 | CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y 26 | # end of Build type 27 | 28 | # 29 | # Application manager 30 | # 31 | CONFIG_APP_COMPILE_TIME_DATE=y 32 | # CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set 33 | # CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set 34 | # CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set 35 | CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16 36 | # end of Application manager 37 | 38 | # 39 | # Bootloader config 40 | # 41 | CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x1000 42 | CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y 43 | # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set 44 | # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set 45 | # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set 46 | # CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set 47 | # CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set 48 | # CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set 49 | CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y 50 | # CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set 51 | # CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set 52 | CONFIG_BOOTLOADER_LOG_LEVEL=3 53 | CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y 54 | # CONFIG_BOOTLOADER_FACTORY_RESET is not set 55 | # CONFIG_BOOTLOADER_APP_TEST is not set 56 | CONFIG_BOOTLOADER_WDT_ENABLE=y 57 | # CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set 58 | CONFIG_BOOTLOADER_WDT_TIME_MS=9000 59 | # CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set 60 | # CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set 61 | # CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set 62 | # CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set 63 | CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 64 | # CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set 65 | CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y 66 | # end of Bootloader config 67 | 68 | # 69 | # Security features 70 | # 71 | # CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set 72 | # CONFIG_SECURE_BOOT is not set 73 | # CONFIG_SECURE_FLASH_ENC_ENABLED is not set 74 | # end of Security features 75 | 76 | # 77 | # Serial flasher config 78 | # 79 | CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200 80 | # CONFIG_ESPTOOLPY_NO_STUB is not set 81 | # CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set 82 | # CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set 83 | CONFIG_ESPTOOLPY_FLASHMODE_DIO=y 84 | # CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set 85 | CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y 86 | CONFIG_ESPTOOLPY_FLASHMODE="dio" 87 | CONFIG_ESPTOOLPY_FLASHFREQ_80M=y 88 | # CONFIG_ESPTOOLPY_FLASHFREQ_40M is not set 89 | # CONFIG_ESPTOOLPY_FLASHFREQ_26M is not set 90 | # CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set 91 | CONFIG_ESPTOOLPY_FLASHFREQ="80m" 92 | # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set 93 | CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y 94 | # CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set 95 | # CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set 96 | # CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set 97 | CONFIG_ESPTOOLPY_FLASHSIZE="2MB" 98 | CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=y 99 | CONFIG_ESPTOOLPY_BEFORE_RESET=y 100 | # CONFIG_ESPTOOLPY_BEFORE_NORESET is not set 101 | CONFIG_ESPTOOLPY_BEFORE="default_reset" 102 | CONFIG_ESPTOOLPY_AFTER_RESET=y 103 | # CONFIG_ESPTOOLPY_AFTER_NORESET is not set 104 | CONFIG_ESPTOOLPY_AFTER="hard_reset" 105 | # CONFIG_ESPTOOLPY_MONITOR_BAUD_CONSOLE is not set 106 | # CONFIG_ESPTOOLPY_MONITOR_BAUD_9600B is not set 107 | # CONFIG_ESPTOOLPY_MONITOR_BAUD_57600B is not set 108 | CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y 109 | # CONFIG_ESPTOOLPY_MONITOR_BAUD_230400B is not set 110 | # CONFIG_ESPTOOLPY_MONITOR_BAUD_921600B is not set 111 | # CONFIG_ESPTOOLPY_MONITOR_BAUD_2MB is not set 112 | # CONFIG_ESPTOOLPY_MONITOR_BAUD_OTHER is not set 113 | CONFIG_ESPTOOLPY_MONITOR_BAUD_OTHER_VAL=115200 114 | CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 115 | # end of Serial flasher config 116 | 117 | # 118 | # Partition Table 119 | # 120 | # CONFIG_PARTITION_TABLE_SINGLE_APP is not set 121 | CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y 122 | # CONFIG_PARTITION_TABLE_TWO_OTA is not set 123 | # CONFIG_PARTITION_TABLE_CUSTOM is not set 124 | CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" 125 | CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp_large.csv" 126 | CONFIG_PARTITION_TABLE_OFFSET=0x8000 127 | CONFIG_PARTITION_TABLE_MD5=y 128 | # end of Partition Table 129 | 130 | # 131 | # Example Configuration 132 | # 133 | CONFIG_BROKER_URL="mqtt://mno:81525782@broker.mnoiot.com:1883" 134 | # end of Example Configuration 135 | 136 | # 137 | # Example Connection Configuration 138 | # 139 | CONFIG_EXAMPLE_GPIO_RANGE_MIN=0 140 | CONFIG_EXAMPLE_GPIO_RANGE_MAX=33 141 | CONFIG_EXAMPLE_CONNECT_WIFI=y 142 | CONFIG_EXAMPLE_WIFI_SSID="yourssid" 143 | CONFIG_EXAMPLE_WIFI_PASSWORD="yourpassword" 144 | # CONFIG_EXAMPLE_WIFI_SCAN_METHOD_FAST is not set 145 | CONFIG_EXAMPLE_WIFI_SCAN_METHOD_ALL_CHANNEL=y 146 | 147 | # 148 | # WiFi Scan threshold 149 | # 150 | CONFIG_EXAMPLE_WIFI_SCAN_RSSI_THRESHOLD=-127 151 | CONFIG_EXAMPLE_WIFI_AUTH_OPEN=y 152 | # CONFIG_EXAMPLE_WIFI_AUTH_WEP is not set 153 | # CONFIG_EXAMPLE_WIFI_AUTH_WPA_PSK is not set 154 | # CONFIG_EXAMPLE_WIFI_AUTH_WPA2_PSK is not set 155 | # CONFIG_EXAMPLE_WIFI_AUTH_WPA_WPA2_PSK is not set 156 | # CONFIG_EXAMPLE_WIFI_AUTH_WPA2_ENTERPRISE is not set 157 | # CONFIG_EXAMPLE_WIFI_AUTH_WPA3_PSK is not set 158 | # CONFIG_EXAMPLE_WIFI_AUTH_WPA2_WPA3_PSK is not set 159 | # CONFIG_EXAMPLE_WIFI_AUTH_WAPI_PSK is not set 160 | # end of WiFi Scan threshold 161 | 162 | CONFIG_EXAMPLE_WIFI_CONNECT_AP_BY_SIGNAL=y 163 | # CONFIG_EXAMPLE_WIFI_CONNECT_AP_BY_SECURITY is not set 164 | # CONFIG_EXAMPLE_CONNECT_ETHERNET is not set 165 | CONFIG_EXAMPLE_CONNECT_IPV6=y 166 | CONFIG_EXAMPLE_CONNECT_IPV6_PREF_LOCAL_LINK=y 167 | # CONFIG_EXAMPLE_CONNECT_IPV6_PREF_GLOBAL is not set 168 | # CONFIG_EXAMPLE_CONNECT_IPV6_PREF_SITE_LOCAL is not set 169 | # CONFIG_EXAMPLE_CONNECT_IPV6_PREF_UNIQUE_LOCAL is not set 170 | # end of Example Connection Configuration 171 | 172 | # 173 | # Compiler options 174 | # 175 | CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y 176 | # CONFIG_COMPILER_OPTIMIZATION_SIZE is not set 177 | # CONFIG_COMPILER_OPTIMIZATION_PERF is not set 178 | # CONFIG_COMPILER_OPTIMIZATION_NONE is not set 179 | CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y 180 | # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set 181 | # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set 182 | CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 183 | # CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set 184 | CONFIG_COMPILER_HIDE_PATHS_MACROS=y 185 | # CONFIG_COMPILER_CXX_EXCEPTIONS is not set 186 | # CONFIG_COMPILER_CXX_RTTI is not set 187 | CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y 188 | # CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set 189 | # CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set 190 | # CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set 191 | # CONFIG_COMPILER_WARN_WRITE_STRINGS is not set 192 | # CONFIG_COMPILER_DISABLE_GCC8_WARNINGS is not set 193 | # CONFIG_COMPILER_DUMP_RTL_FILES is not set 194 | # end of Compiler options 195 | 196 | # 197 | # Component config 198 | # 199 | 200 | # 201 | # Application Level Tracing 202 | # 203 | # CONFIG_APPTRACE_DEST_JTAG is not set 204 | CONFIG_APPTRACE_DEST_NONE=y 205 | CONFIG_APPTRACE_LOCK_ENABLE=y 206 | # end of Application Level Tracing 207 | 208 | # 209 | # ESP-ASIO 210 | # 211 | # CONFIG_ASIO_SSL_SUPPORT is not set 212 | # end of ESP-ASIO 213 | 214 | # 215 | # Bluetooth 216 | # 217 | CONFIG_BT_ENABLED=y 218 | 219 | # 220 | # Bluetooth controller 221 | # 222 | # CONFIG_BTDM_CTRL_MODE_BLE_ONLY is not set 223 | # CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY is not set 224 | CONFIG_BTDM_CTRL_MODE_BTDM=y 225 | CONFIG_BTDM_CTRL_BLE_MAX_CONN=3 226 | CONFIG_BTDM_CTRL_BR_EDR_MAX_ACL_CONN=2 227 | CONFIG_BTDM_CTRL_BR_EDR_MAX_SYNC_CONN=0 228 | # CONFIG_BTDM_CTRL_BR_EDR_SCO_DATA_PATH_HCI is not set 229 | CONFIG_BTDM_CTRL_BR_EDR_SCO_DATA_PATH_PCM=y 230 | CONFIG_BTDM_CTRL_BR_EDR_SCO_DATA_PATH_EFF=1 231 | CONFIG_BTDM_CTRL_PCM_ROLE_EDGE_CONFIG=y 232 | CONFIG_BTDM_CTRL_PCM_ROLE_MASTER=y 233 | # CONFIG_BTDM_CTRL_PCM_ROLE_SLAVE is not set 234 | CONFIG_BTDM_CTRL_PCM_POLAR_FALLING_EDGE=y 235 | # CONFIG_BTDM_CTRL_PCM_POLAR_RISING_EDGE is not set 236 | CONFIG_BTDM_CTRL_PCM_ROLE_EFF=0 237 | CONFIG_BTDM_CTRL_PCM_POLAR_EFF=0 238 | # CONFIG_BTDM_CTRL_AUTO_LATENCY is not set 239 | CONFIG_BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT=y 240 | CONFIG_BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT_EFF=y 241 | CONFIG_BTDM_CTRL_BLE_MAX_CONN_EFF=3 242 | CONFIG_BTDM_CTRL_BR_EDR_MAX_ACL_CONN_EFF=2 243 | CONFIG_BTDM_CTRL_BR_EDR_MAX_SYNC_CONN_EFF=0 244 | CONFIG_BTDM_CTRL_PINNED_TO_CORE=0 245 | CONFIG_BTDM_CTRL_HCI_MODE_VHCI=y 246 | # CONFIG_BTDM_CTRL_HCI_MODE_UART_H4 is not set 247 | 248 | # 249 | # MODEM SLEEP Options 250 | # 251 | CONFIG_BTDM_CTRL_MODEM_SLEEP=y 252 | CONFIG_BTDM_CTRL_MODEM_SLEEP_MODE_ORIG=y 253 | # CONFIG_BTDM_CTRL_MODEM_SLEEP_MODE_EVED is not set 254 | CONFIG_BTDM_CTRL_LPCLK_SEL_MAIN_XTAL=y 255 | # end of MODEM SLEEP Options 256 | 257 | CONFIG_BTDM_BLE_DEFAULT_SCA_250PPM=y 258 | CONFIG_BTDM_BLE_SLEEP_CLOCK_ACCURACY_INDEX_EFF=1 259 | CONFIG_BTDM_BLE_SCAN_DUPL=y 260 | CONFIG_BTDM_SCAN_DUPL_TYPE_DEVICE=y 261 | # CONFIG_BTDM_SCAN_DUPL_TYPE_DATA is not set 262 | # CONFIG_BTDM_SCAN_DUPL_TYPE_DATA_DEVICE is not set 263 | CONFIG_BTDM_SCAN_DUPL_TYPE=0 264 | CONFIG_BTDM_SCAN_DUPL_CACHE_SIZE=200 265 | # CONFIG_BTDM_BLE_MESH_SCAN_DUPL_EN is not set 266 | CONFIG_BTDM_CTRL_FULL_SCAN_SUPPORTED=y 267 | CONFIG_BTDM_BLE_ADV_REPORT_FLOW_CTRL_SUPP=y 268 | CONFIG_BTDM_BLE_ADV_REPORT_FLOW_CTRL_NUM=100 269 | CONFIG_BTDM_BLE_ADV_REPORT_DISCARD_THRSHOLD=20 270 | CONFIG_BTDM_RESERVE_DRAM=0xdb5c 271 | CONFIG_BTDM_CTRL_HLI=y 272 | # end of Bluetooth controller 273 | 274 | CONFIG_BT_BLUEDROID_ENABLED=y 275 | # CONFIG_BT_NIMBLE_ENABLED is not set 276 | # CONFIG_BT_CONTROLLER_ONLY is not set 277 | 278 | # 279 | # Bluedroid Options 280 | # 281 | CONFIG_BT_BTC_TASK_STACK_SIZE=3072 282 | CONFIG_BT_BLUEDROID_PINNED_TO_CORE=0 283 | CONFIG_BT_BTU_TASK_STACK_SIZE=4096 284 | # CONFIG_BT_BLUEDROID_MEM_DEBUG is not set 285 | CONFIG_BT_CLASSIC_ENABLED=y 286 | # CONFIG_BT_A2DP_ENABLE is not set 287 | # CONFIG_BT_SPP_ENABLED is not set 288 | # CONFIG_BT_HFP_ENABLE is not set 289 | CONFIG_BT_HID_ENABLED=y 290 | CONFIG_BT_HID_HOST_ENABLED=y 291 | # CONFIG_BT_HID_DEVICE_ENABLED is not set 292 | CONFIG_BT_SSP_ENABLED=y 293 | CONFIG_BT_BLE_ENABLED=y 294 | CONFIG_BT_GATTS_ENABLE=y 295 | # CONFIG_BT_GATTS_PPCP_CHAR_GAP is not set 296 | # CONFIG_BT_BLE_BLUFI_ENABLE is not set 297 | CONFIG_BT_GATT_MAX_SR_PROFILES=8 298 | # CONFIG_BT_GATTS_SEND_SERVICE_CHANGE_MANUAL is not set 299 | CONFIG_BT_GATTS_SEND_SERVICE_CHANGE_AUTO=y 300 | CONFIG_BT_GATTS_SEND_SERVICE_CHANGE_MODE=0 301 | CONFIG_BT_GATTC_ENABLE=y 302 | # CONFIG_BT_GATTC_CACHE_NVS_FLASH is not set 303 | CONFIG_BT_GATTC_CONNECT_RETRY_COUNT=3 304 | CONFIG_BT_BLE_SMP_ENABLE=y 305 | # CONFIG_BT_SMP_SLAVE_CON_PARAMS_UPD_ENABLE is not set 306 | # CONFIG_BT_STACK_NO_LOG is not set 307 | 308 | # 309 | # BT DEBUG LOG LEVEL 310 | # 311 | # CONFIG_BT_LOG_HCI_TRACE_LEVEL_NONE is not set 312 | # CONFIG_BT_LOG_HCI_TRACE_LEVEL_ERROR is not set 313 | CONFIG_BT_LOG_HCI_TRACE_LEVEL_WARNING=y 314 | # CONFIG_BT_LOG_HCI_TRACE_LEVEL_API is not set 315 | # CONFIG_BT_LOG_HCI_TRACE_LEVEL_EVENT is not set 316 | # CONFIG_BT_LOG_HCI_TRACE_LEVEL_DEBUG is not set 317 | # CONFIG_BT_LOG_HCI_TRACE_LEVEL_VERBOSE is not set 318 | CONFIG_BT_LOG_HCI_TRACE_LEVEL=2 319 | # CONFIG_BT_LOG_BTM_TRACE_LEVEL_NONE is not set 320 | # CONFIG_BT_LOG_BTM_TRACE_LEVEL_ERROR is not set 321 | CONFIG_BT_LOG_BTM_TRACE_LEVEL_WARNING=y 322 | # CONFIG_BT_LOG_BTM_TRACE_LEVEL_API is not set 323 | # CONFIG_BT_LOG_BTM_TRACE_LEVEL_EVENT is not set 324 | # CONFIG_BT_LOG_BTM_TRACE_LEVEL_DEBUG is not set 325 | # CONFIG_BT_LOG_BTM_TRACE_LEVEL_VERBOSE is not set 326 | CONFIG_BT_LOG_BTM_TRACE_LEVEL=2 327 | # CONFIG_BT_LOG_L2CAP_TRACE_LEVEL_NONE is not set 328 | # CONFIG_BT_LOG_L2CAP_TRACE_LEVEL_ERROR is not set 329 | CONFIG_BT_LOG_L2CAP_TRACE_LEVEL_WARNING=y 330 | # CONFIG_BT_LOG_L2CAP_TRACE_LEVEL_API is not set 331 | # CONFIG_BT_LOG_L2CAP_TRACE_LEVEL_EVENT is not set 332 | # CONFIG_BT_LOG_L2CAP_TRACE_LEVEL_DEBUG is not set 333 | # CONFIG_BT_LOG_L2CAP_TRACE_LEVEL_VERBOSE is not set 334 | CONFIG_BT_LOG_L2CAP_TRACE_LEVEL=2 335 | # CONFIG_BT_LOG_RFCOMM_TRACE_LEVEL_NONE is not set 336 | # CONFIG_BT_LOG_RFCOMM_TRACE_LEVEL_ERROR is not set 337 | CONFIG_BT_LOG_RFCOMM_TRACE_LEVEL_WARNING=y 338 | # CONFIG_BT_LOG_RFCOMM_TRACE_LEVEL_API is not set 339 | # CONFIG_BT_LOG_RFCOMM_TRACE_LEVEL_EVENT is not set 340 | # CONFIG_BT_LOG_RFCOMM_TRACE_LEVEL_DEBUG is not set 341 | # CONFIG_BT_LOG_RFCOMM_TRACE_LEVEL_VERBOSE is not set 342 | CONFIG_BT_LOG_RFCOMM_TRACE_LEVEL=2 343 | # CONFIG_BT_LOG_SDP_TRACE_LEVEL_NONE is not set 344 | # CONFIG_BT_LOG_SDP_TRACE_LEVEL_ERROR is not set 345 | CONFIG_BT_LOG_SDP_TRACE_LEVEL_WARNING=y 346 | # CONFIG_BT_LOG_SDP_TRACE_LEVEL_API is not set 347 | # CONFIG_BT_LOG_SDP_TRACE_LEVEL_EVENT is not set 348 | # CONFIG_BT_LOG_SDP_TRACE_LEVEL_DEBUG is not set 349 | # CONFIG_BT_LOG_SDP_TRACE_LEVEL_VERBOSE is not set 350 | CONFIG_BT_LOG_SDP_TRACE_LEVEL=2 351 | # CONFIG_BT_LOG_GAP_TRACE_LEVEL_NONE is not set 352 | # CONFIG_BT_LOG_GAP_TRACE_LEVEL_ERROR is not set 353 | CONFIG_BT_LOG_GAP_TRACE_LEVEL_WARNING=y 354 | # CONFIG_BT_LOG_GAP_TRACE_LEVEL_API is not set 355 | # CONFIG_BT_LOG_GAP_TRACE_LEVEL_EVENT is not set 356 | # CONFIG_BT_LOG_GAP_TRACE_LEVEL_DEBUG is not set 357 | # CONFIG_BT_LOG_GAP_TRACE_LEVEL_VERBOSE is not set 358 | CONFIG_BT_LOG_GAP_TRACE_LEVEL=2 359 | # CONFIG_BT_LOG_BNEP_TRACE_LEVEL_NONE is not set 360 | # CONFIG_BT_LOG_BNEP_TRACE_LEVEL_ERROR is not set 361 | CONFIG_BT_LOG_BNEP_TRACE_LEVEL_WARNING=y 362 | # CONFIG_BT_LOG_BNEP_TRACE_LEVEL_API is not set 363 | # CONFIG_BT_LOG_BNEP_TRACE_LEVEL_EVENT is not set 364 | # CONFIG_BT_LOG_BNEP_TRACE_LEVEL_DEBUG is not set 365 | # CONFIG_BT_LOG_BNEP_TRACE_LEVEL_VERBOSE is not set 366 | CONFIG_BT_LOG_BNEP_TRACE_LEVEL=2 367 | # CONFIG_BT_LOG_PAN_TRACE_LEVEL_NONE is not set 368 | # CONFIG_BT_LOG_PAN_TRACE_LEVEL_ERROR is not set 369 | CONFIG_BT_LOG_PAN_TRACE_LEVEL_WARNING=y 370 | # CONFIG_BT_LOG_PAN_TRACE_LEVEL_API is not set 371 | # CONFIG_BT_LOG_PAN_TRACE_LEVEL_EVENT is not set 372 | # CONFIG_BT_LOG_PAN_TRACE_LEVEL_DEBUG is not set 373 | # CONFIG_BT_LOG_PAN_TRACE_LEVEL_VERBOSE is not set 374 | CONFIG_BT_LOG_PAN_TRACE_LEVEL=2 375 | # CONFIG_BT_LOG_A2D_TRACE_LEVEL_NONE is not set 376 | # CONFIG_BT_LOG_A2D_TRACE_LEVEL_ERROR is not set 377 | CONFIG_BT_LOG_A2D_TRACE_LEVEL_WARNING=y 378 | # CONFIG_BT_LOG_A2D_TRACE_LEVEL_API is not set 379 | # CONFIG_BT_LOG_A2D_TRACE_LEVEL_EVENT is not set 380 | # CONFIG_BT_LOG_A2D_TRACE_LEVEL_DEBUG is not set 381 | # CONFIG_BT_LOG_A2D_TRACE_LEVEL_VERBOSE is not set 382 | CONFIG_BT_LOG_A2D_TRACE_LEVEL=2 383 | # CONFIG_BT_LOG_AVDT_TRACE_LEVEL_NONE is not set 384 | # CONFIG_BT_LOG_AVDT_TRACE_LEVEL_ERROR is not set 385 | CONFIG_BT_LOG_AVDT_TRACE_LEVEL_WARNING=y 386 | # CONFIG_BT_LOG_AVDT_TRACE_LEVEL_API is not set 387 | # CONFIG_BT_LOG_AVDT_TRACE_LEVEL_EVENT is not set 388 | # CONFIG_BT_LOG_AVDT_TRACE_LEVEL_DEBUG is not set 389 | # CONFIG_BT_LOG_AVDT_TRACE_LEVEL_VERBOSE is not set 390 | CONFIG_BT_LOG_AVDT_TRACE_LEVEL=2 391 | # CONFIG_BT_LOG_AVCT_TRACE_LEVEL_NONE is not set 392 | # CONFIG_BT_LOG_AVCT_TRACE_LEVEL_ERROR is not set 393 | CONFIG_BT_LOG_AVCT_TRACE_LEVEL_WARNING=y 394 | # CONFIG_BT_LOG_AVCT_TRACE_LEVEL_API is not set 395 | # CONFIG_BT_LOG_AVCT_TRACE_LEVEL_EVENT is not set 396 | # CONFIG_BT_LOG_AVCT_TRACE_LEVEL_DEBUG is not set 397 | # CONFIG_BT_LOG_AVCT_TRACE_LEVEL_VERBOSE is not set 398 | CONFIG_BT_LOG_AVCT_TRACE_LEVEL=2 399 | # CONFIG_BT_LOG_AVRC_TRACE_LEVEL_NONE is not set 400 | # CONFIG_BT_LOG_AVRC_TRACE_LEVEL_ERROR is not set 401 | CONFIG_BT_LOG_AVRC_TRACE_LEVEL_WARNING=y 402 | # CONFIG_BT_LOG_AVRC_TRACE_LEVEL_API is not set 403 | # CONFIG_BT_LOG_AVRC_TRACE_LEVEL_EVENT is not set 404 | # CONFIG_BT_LOG_AVRC_TRACE_LEVEL_DEBUG is not set 405 | # CONFIG_BT_LOG_AVRC_TRACE_LEVEL_VERBOSE is not set 406 | CONFIG_BT_LOG_AVRC_TRACE_LEVEL=2 407 | # CONFIG_BT_LOG_MCA_TRACE_LEVEL_NONE is not set 408 | # CONFIG_BT_LOG_MCA_TRACE_LEVEL_ERROR is not set 409 | CONFIG_BT_LOG_MCA_TRACE_LEVEL_WARNING=y 410 | # CONFIG_BT_LOG_MCA_TRACE_LEVEL_API is not set 411 | # CONFIG_BT_LOG_MCA_TRACE_LEVEL_EVENT is not set 412 | # CONFIG_BT_LOG_MCA_TRACE_LEVEL_DEBUG is not set 413 | # CONFIG_BT_LOG_MCA_TRACE_LEVEL_VERBOSE is not set 414 | CONFIG_BT_LOG_MCA_TRACE_LEVEL=2 415 | # CONFIG_BT_LOG_HID_TRACE_LEVEL_NONE is not set 416 | # CONFIG_BT_LOG_HID_TRACE_LEVEL_ERROR is not set 417 | CONFIG_BT_LOG_HID_TRACE_LEVEL_WARNING=y 418 | # CONFIG_BT_LOG_HID_TRACE_LEVEL_API is not set 419 | # CONFIG_BT_LOG_HID_TRACE_LEVEL_EVENT is not set 420 | # CONFIG_BT_LOG_HID_TRACE_LEVEL_DEBUG is not set 421 | # CONFIG_BT_LOG_HID_TRACE_LEVEL_VERBOSE is not set 422 | CONFIG_BT_LOG_HID_TRACE_LEVEL=2 423 | # CONFIG_BT_LOG_APPL_TRACE_LEVEL_NONE is not set 424 | # CONFIG_BT_LOG_APPL_TRACE_LEVEL_ERROR is not set 425 | CONFIG_BT_LOG_APPL_TRACE_LEVEL_WARNING=y 426 | # CONFIG_BT_LOG_APPL_TRACE_LEVEL_API is not set 427 | # CONFIG_BT_LOG_APPL_TRACE_LEVEL_EVENT is not set 428 | # CONFIG_BT_LOG_APPL_TRACE_LEVEL_DEBUG is not set 429 | # CONFIG_BT_LOG_APPL_TRACE_LEVEL_VERBOSE is not set 430 | CONFIG_BT_LOG_APPL_TRACE_LEVEL=2 431 | # CONFIG_BT_LOG_GATT_TRACE_LEVEL_NONE is not set 432 | # CONFIG_BT_LOG_GATT_TRACE_LEVEL_ERROR is not set 433 | CONFIG_BT_LOG_GATT_TRACE_LEVEL_WARNING=y 434 | # CONFIG_BT_LOG_GATT_TRACE_LEVEL_API is not set 435 | # CONFIG_BT_LOG_GATT_TRACE_LEVEL_EVENT is not set 436 | # CONFIG_BT_LOG_GATT_TRACE_LEVEL_DEBUG is not set 437 | # CONFIG_BT_LOG_GATT_TRACE_LEVEL_VERBOSE is not set 438 | CONFIG_BT_LOG_GATT_TRACE_LEVEL=2 439 | # CONFIG_BT_LOG_SMP_TRACE_LEVEL_NONE is not set 440 | # CONFIG_BT_LOG_SMP_TRACE_LEVEL_ERROR is not set 441 | CONFIG_BT_LOG_SMP_TRACE_LEVEL_WARNING=y 442 | # CONFIG_BT_LOG_SMP_TRACE_LEVEL_API is not set 443 | # CONFIG_BT_LOG_SMP_TRACE_LEVEL_EVENT is not set 444 | # CONFIG_BT_LOG_SMP_TRACE_LEVEL_DEBUG is not set 445 | # CONFIG_BT_LOG_SMP_TRACE_LEVEL_VERBOSE is not set 446 | CONFIG_BT_LOG_SMP_TRACE_LEVEL=2 447 | # CONFIG_BT_LOG_BTIF_TRACE_LEVEL_NONE is not set 448 | # CONFIG_BT_LOG_BTIF_TRACE_LEVEL_ERROR is not set 449 | CONFIG_BT_LOG_BTIF_TRACE_LEVEL_WARNING=y 450 | # CONFIG_BT_LOG_BTIF_TRACE_LEVEL_API is not set 451 | # CONFIG_BT_LOG_BTIF_TRACE_LEVEL_EVENT is not set 452 | # CONFIG_BT_LOG_BTIF_TRACE_LEVEL_DEBUG is not set 453 | # CONFIG_BT_LOG_BTIF_TRACE_LEVEL_VERBOSE is not set 454 | CONFIG_BT_LOG_BTIF_TRACE_LEVEL=2 455 | # CONFIG_BT_LOG_BTC_TRACE_LEVEL_NONE is not set 456 | # CONFIG_BT_LOG_BTC_TRACE_LEVEL_ERROR is not set 457 | CONFIG_BT_LOG_BTC_TRACE_LEVEL_WARNING=y 458 | # CONFIG_BT_LOG_BTC_TRACE_LEVEL_API is not set 459 | # CONFIG_BT_LOG_BTC_TRACE_LEVEL_EVENT is not set 460 | # CONFIG_BT_LOG_BTC_TRACE_LEVEL_DEBUG is not set 461 | # CONFIG_BT_LOG_BTC_TRACE_LEVEL_VERBOSE is not set 462 | CONFIG_BT_LOG_BTC_TRACE_LEVEL=2 463 | # CONFIG_BT_LOG_OSI_TRACE_LEVEL_NONE is not set 464 | # CONFIG_BT_LOG_OSI_TRACE_LEVEL_ERROR is not set 465 | CONFIG_BT_LOG_OSI_TRACE_LEVEL_WARNING=y 466 | # CONFIG_BT_LOG_OSI_TRACE_LEVEL_API is not set 467 | # CONFIG_BT_LOG_OSI_TRACE_LEVEL_EVENT is not set 468 | # CONFIG_BT_LOG_OSI_TRACE_LEVEL_DEBUG is not set 469 | # CONFIG_BT_LOG_OSI_TRACE_LEVEL_VERBOSE is not set 470 | CONFIG_BT_LOG_OSI_TRACE_LEVEL=2 471 | # CONFIG_BT_LOG_BLUFI_TRACE_LEVEL_NONE is not set 472 | # CONFIG_BT_LOG_BLUFI_TRACE_LEVEL_ERROR is not set 473 | CONFIG_BT_LOG_BLUFI_TRACE_LEVEL_WARNING=y 474 | # CONFIG_BT_LOG_BLUFI_TRACE_LEVEL_API is not set 475 | # CONFIG_BT_LOG_BLUFI_TRACE_LEVEL_EVENT is not set 476 | # CONFIG_BT_LOG_BLUFI_TRACE_LEVEL_DEBUG is not set 477 | # CONFIG_BT_LOG_BLUFI_TRACE_LEVEL_VERBOSE is not set 478 | CONFIG_BT_LOG_BLUFI_TRACE_LEVEL=2 479 | # end of BT DEBUG LOG LEVEL 480 | 481 | CONFIG_BT_ACL_CONNECTIONS=4 482 | CONFIG_BT_MULTI_CONNECTION_ENBALE=y 483 | # CONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST is not set 484 | # CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY is not set 485 | # CONFIG_BT_BLE_HOST_QUEUE_CONG_CHECK is not set 486 | CONFIG_BT_SMP_ENABLE=y 487 | # CONFIG_BT_BLE_ACT_SCAN_REP_ADV_SCAN is not set 488 | CONFIG_BT_BLE_ESTAB_LINK_CONN_TOUT=30 489 | CONFIG_BT_BLE_RPA_SUPPORTED=y 490 | # end of Bluedroid Options 491 | # end of Bluetooth 492 | 493 | # CONFIG_BLE_MESH is not set 494 | 495 | # 496 | # CoAP Configuration 497 | # 498 | CONFIG_COAP_MBEDTLS_PSK=y 499 | # CONFIG_COAP_MBEDTLS_PKI is not set 500 | # CONFIG_COAP_MBEDTLS_DEBUG is not set 501 | CONFIG_COAP_LOG_DEFAULT_LEVEL=0 502 | # end of CoAP Configuration 503 | 504 | # 505 | # Driver configurations 506 | # 507 | 508 | # 509 | # ADC configuration 510 | # 511 | # CONFIG_ADC_FORCE_XPD_FSM is not set 512 | CONFIG_ADC_DISABLE_DAC=y 513 | # end of ADC configuration 514 | 515 | # 516 | # MCPWM configuration 517 | # 518 | # CONFIG_MCPWM_ISR_IN_IRAM is not set 519 | # end of MCPWM configuration 520 | 521 | # 522 | # SPI configuration 523 | # 524 | # CONFIG_SPI_MASTER_IN_IRAM is not set 525 | CONFIG_SPI_MASTER_ISR_IN_IRAM=y 526 | # CONFIG_SPI_SLAVE_IN_IRAM is not set 527 | CONFIG_SPI_SLAVE_ISR_IN_IRAM=y 528 | # end of SPI configuration 529 | 530 | # 531 | # TWAI configuration 532 | # 533 | # CONFIG_TWAI_ISR_IN_IRAM is not set 534 | # CONFIG_TWAI_ERRATA_FIX_BUS_OFF_REC is not set 535 | # CONFIG_TWAI_ERRATA_FIX_TX_INTR_LOST is not set 536 | # CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID is not set 537 | # CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT is not set 538 | # end of TWAI configuration 539 | 540 | # 541 | # UART configuration 542 | # 543 | # CONFIG_UART_ISR_IN_IRAM is not set 544 | # end of UART configuration 545 | 546 | # 547 | # RTCIO configuration 548 | # 549 | # CONFIG_RTCIO_SUPPORT_RTC_GPIO_DESC is not set 550 | # end of RTCIO configuration 551 | 552 | # 553 | # GPIO Configuration 554 | # 555 | # CONFIG_GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL is not set 556 | # end of GPIO Configuration 557 | 558 | # 559 | # GDMA Configuration 560 | # 561 | # CONFIG_GDMA_CTRL_FUNC_IN_IRAM is not set 562 | # CONFIG_GDMA_ISR_IRAM_SAFE is not set 563 | # end of GDMA Configuration 564 | # end of Driver configurations 565 | 566 | # 567 | # eFuse Bit Manager 568 | # 569 | # CONFIG_EFUSE_CUSTOM_TABLE is not set 570 | # CONFIG_EFUSE_VIRTUAL is not set 571 | # CONFIG_EFUSE_CODE_SCHEME_COMPAT_NONE is not set 572 | CONFIG_EFUSE_CODE_SCHEME_COMPAT_3_4=y 573 | # CONFIG_EFUSE_CODE_SCHEME_COMPAT_REPEAT is not set 574 | CONFIG_EFUSE_MAX_BLK_LEN=192 575 | # end of eFuse Bit Manager 576 | 577 | # 578 | # ESP-TLS 579 | # 580 | CONFIG_ESP_TLS_USING_MBEDTLS=y 581 | # CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set 582 | # CONFIG_ESP_TLS_SERVER is not set 583 | # CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set 584 | # CONFIG_ESP_TLS_PSK_VERIFICATION is not set 585 | # CONFIG_ESP_TLS_INSECURE is not set 586 | # end of ESP-TLS 587 | 588 | # 589 | # ESP32-specific 590 | # 591 | CONFIG_ESP32_REV_MIN_0=y 592 | # CONFIG_ESP32_REV_MIN_1 is not set 593 | # CONFIG_ESP32_REV_MIN_2 is not set 594 | # CONFIG_ESP32_REV_MIN_3 is not set 595 | CONFIG_ESP32_REV_MIN=0 596 | # CONFIG_ESP32_DEFAULT_CPU_FREQ_80 is not set 597 | CONFIG_ESP32_DEFAULT_CPU_FREQ_160=y 598 | # CONFIG_ESP32_DEFAULT_CPU_FREQ_240 is not set 599 | CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=160 600 | # CONFIG_ESP32_SPIRAM_SUPPORT is not set 601 | # CONFIG_ESP32_TRAX is not set 602 | CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0 603 | # CONFIG_ESP32_ULP_COPROC_ENABLED is not set 604 | CONFIG_ESP32_ULP_COPROC_RESERVE_MEM=0 605 | CONFIG_ESP32_DEBUG_OCDAWARE=y 606 | CONFIG_ESP32_BROWNOUT_DET=y 607 | CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y 608 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_1 is not set 609 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_2 is not set 610 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_3 is not set 611 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_4 is not set 612 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_5 is not set 613 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_6 is not set 614 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_7 is not set 615 | CONFIG_ESP32_BROWNOUT_DET_LVL=0 616 | CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y 617 | # CONFIG_ESP32_TIME_SYSCALL_USE_RTC is not set 618 | # CONFIG_ESP32_TIME_SYSCALL_USE_FRC1 is not set 619 | # CONFIG_ESP32_TIME_SYSCALL_USE_NONE is not set 620 | CONFIG_ESP32_RTC_CLK_SRC_INT_RC=y 621 | # CONFIG_ESP32_RTC_CLK_SRC_EXT_CRYS is not set 622 | # CONFIG_ESP32_RTC_CLK_SRC_EXT_OSC is not set 623 | # CONFIG_ESP32_RTC_CLK_SRC_INT_8MD256 is not set 624 | CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024 625 | CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000 626 | CONFIG_ESP32_XTAL_FREQ_40=y 627 | # CONFIG_ESP32_XTAL_FREQ_26 is not set 628 | # CONFIG_ESP32_XTAL_FREQ_AUTO is not set 629 | CONFIG_ESP32_XTAL_FREQ=40 630 | # CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE is not set 631 | # CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set 632 | # CONFIG_ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set 633 | # CONFIG_ESP32_RTCDATA_IN_FAST_MEM is not set 634 | # CONFIG_ESP32_USE_FIXED_STATIC_RAM_SIZE is not set 635 | CONFIG_ESP32_DPORT_DIS_INTERRUPT_LVL=5 636 | # CONFIG_ESP32_IRAM_AS_8BIT_ACCESSIBLE_MEMORY is not set 637 | # end of ESP32-specific 638 | 639 | # 640 | # ADC-Calibration 641 | # 642 | CONFIG_ADC_CAL_EFUSE_TP_ENABLE=y 643 | CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y 644 | CONFIG_ADC_CAL_LUT_ENABLE=y 645 | # end of ADC-Calibration 646 | 647 | # 648 | # Common ESP-related 649 | # 650 | CONFIG_ESP_ERR_TO_NAME_LOOKUP=y 651 | # end of Common ESP-related 652 | 653 | # 654 | # Ethernet 655 | # 656 | CONFIG_ETH_ENABLED=y 657 | CONFIG_ETH_USE_ESP32_EMAC=y 658 | CONFIG_ETH_PHY_INTERFACE_RMII=y 659 | CONFIG_ETH_RMII_CLK_INPUT=y 660 | # CONFIG_ETH_RMII_CLK_OUTPUT is not set 661 | CONFIG_ETH_RMII_CLK_IN_GPIO=0 662 | CONFIG_ETH_DMA_BUFFER_SIZE=512 663 | CONFIG_ETH_DMA_RX_BUFFER_NUM=10 664 | CONFIG_ETH_DMA_TX_BUFFER_NUM=10 665 | CONFIG_ETH_USE_SPI_ETHERNET=y 666 | # CONFIG_ETH_SPI_ETHERNET_DM9051 is not set 667 | # CONFIG_ETH_SPI_ETHERNET_W5500 is not set 668 | # CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set 669 | # CONFIG_ETH_USE_OPENETH is not set 670 | # end of Ethernet 671 | 672 | # 673 | # Event Loop Library 674 | # 675 | # CONFIG_ESP_EVENT_LOOP_PROFILING is not set 676 | CONFIG_ESP_EVENT_POST_FROM_ISR=y 677 | CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y 678 | # end of Event Loop Library 679 | 680 | # 681 | # GDB Stub 682 | # 683 | # end of GDB Stub 684 | 685 | # 686 | # ESP HTTP client 687 | # 688 | CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y 689 | # CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set 690 | CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH=y 691 | # end of ESP HTTP client 692 | 693 | # 694 | # HTTP Server 695 | # 696 | CONFIG_HTTPD_MAX_REQ_HDR_LEN=512 697 | CONFIG_HTTPD_MAX_URI_LEN=512 698 | CONFIG_HTTPD_ERR_RESP_NO_DELAY=y 699 | CONFIG_HTTPD_PURGE_BUF_LEN=32 700 | # CONFIG_HTTPD_LOG_PURGE_DATA is not set 701 | # CONFIG_HTTPD_WS_SUPPORT is not set 702 | # end of HTTP Server 703 | 704 | # 705 | # ESP HTTPS OTA 706 | # 707 | # CONFIG_OTA_ALLOW_HTTP is not set 708 | # end of ESP HTTPS OTA 709 | 710 | # 711 | # ESP HTTPS server 712 | # 713 | # CONFIG_ESP_HTTPS_SERVER_ENABLE is not set 714 | # end of ESP HTTPS server 715 | 716 | # 717 | # Hardware Settings 718 | # 719 | 720 | # 721 | # MAC Config 722 | # 723 | CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y 724 | CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y 725 | CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y 726 | CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y 727 | # CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set 728 | CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y 729 | CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4 730 | # end of MAC Config 731 | 732 | # 733 | # Sleep Config 734 | # 735 | CONFIG_ESP_SLEEP_POWER_DOWN_FLASH=y 736 | CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y 737 | CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND=y 738 | # CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND is not set 739 | # end of Sleep Config 740 | 741 | # 742 | # RTC Clock Config 743 | # 744 | # end of RTC Clock Config 745 | # end of Hardware Settings 746 | 747 | # 748 | # IPC (Inter-Processor Call) 749 | # 750 | CONFIG_ESP_IPC_TASK_STACK_SIZE=1536 751 | # end of IPC (Inter-Processor Call) 752 | 753 | # 754 | # LCD and Touch Panel 755 | # 756 | 757 | # 758 | # LCD Peripheral Configuration 759 | # 760 | CONFIG_LCD_PANEL_IO_FORMAT_BUF_SIZE=32 761 | # end of LCD Peripheral Configuration 762 | # end of LCD and Touch Panel 763 | 764 | # 765 | # ESP NETIF Adapter 766 | # 767 | CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 768 | CONFIG_ESP_NETIF_TCPIP_LWIP=y 769 | # CONFIG_ESP_NETIF_LOOPBACK is not set 770 | CONFIG_ESP_NETIF_TCPIP_ADAPTER_COMPATIBLE_LAYER=y 771 | # end of ESP NETIF Adapter 772 | 773 | # 774 | # PHY 775 | # 776 | CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y 777 | # CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set 778 | CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 779 | CONFIG_ESP_PHY_MAX_TX_POWER=20 780 | CONFIG_ESP_PHY_REDUCE_TX_POWER=y 781 | # end of PHY 782 | 783 | # 784 | # Power Management 785 | # 786 | # CONFIG_PM_ENABLE is not set 787 | # end of Power Management 788 | 789 | # 790 | # ESP System Settings 791 | # 792 | # CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set 793 | CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y 794 | # CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set 795 | # CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set 796 | # CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set 797 | CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE=y 798 | CONFIG_ESP_SYSTEM_RTC_FAST_MEM_AS_HEAP_DEPCHECK=y 799 | CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP=y 800 | 801 | # 802 | # Memory protection 803 | # 804 | # end of Memory protection 805 | 806 | CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32 807 | CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304 808 | CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584 809 | CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y 810 | # CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set 811 | CONFIG_ESP_MAIN_TASK_AFFINITY=0x0 812 | CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048 813 | CONFIG_ESP_CONSOLE_UART_DEFAULT=y 814 | # CONFIG_ESP_CONSOLE_UART_CUSTOM is not set 815 | # CONFIG_ESP_CONSOLE_NONE is not set 816 | CONFIG_ESP_CONSOLE_UART=y 817 | CONFIG_ESP_CONSOLE_MULTIPLE_UART=y 818 | CONFIG_ESP_CONSOLE_UART_NUM=0 819 | CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 820 | CONFIG_ESP_INT_WDT=y 821 | CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 822 | CONFIG_ESP_TASK_WDT=y 823 | # CONFIG_ESP_TASK_WDT_PANIC is not set 824 | CONFIG_ESP_TASK_WDT_TIMEOUT_S=5 825 | CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y 826 | # CONFIG_ESP_PANIC_HANDLER_IRAM is not set 827 | # CONFIG_ESP_DEBUG_STUBS_ENABLE is not set 828 | CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5=y 829 | # end of ESP System Settings 830 | 831 | # 832 | # High resolution timer (esp_timer) 833 | # 834 | # CONFIG_ESP_TIMER_PROFILING is not set 835 | CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y 836 | CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y 837 | CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584 838 | CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1 839 | # CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set 840 | # CONFIG_ESP_TIMER_IMPL_FRC2 is not set 841 | CONFIG_ESP_TIMER_IMPL_TG0_LAC=y 842 | # end of High resolution timer (esp_timer) 843 | 844 | # 845 | # Wi-Fi 846 | # 847 | CONFIG_ESP32_WIFI_ENABLED=y 848 | CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=y 849 | CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 850 | CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 851 | # CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set 852 | CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y 853 | CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1 854 | CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 855 | # CONFIG_ESP32_WIFI_CSI_ENABLED is not set 856 | CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y 857 | CONFIG_ESP32_WIFI_TX_BA_WIN=6 858 | CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y 859 | CONFIG_ESP32_WIFI_RX_BA_WIN=6 860 | CONFIG_ESP32_WIFI_NVS_ENABLED=y 861 | CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752 862 | CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32 863 | CONFIG_ESP32_WIFI_IRAM_OPT=y 864 | CONFIG_ESP32_WIFI_RX_IRAM_OPT=y 865 | CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y 866 | # CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set 867 | # CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE is not set 868 | # CONFIG_ESP_WIFI_GMAC_SUPPORT is not set 869 | CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y 870 | # end of Wi-Fi 871 | 872 | # 873 | # Core dump 874 | # 875 | # CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set 876 | # CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set 877 | CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y 878 | # end of Core dump 879 | 880 | # 881 | # FAT Filesystem support 882 | # 883 | # CONFIG_FATFS_CODEPAGE_DYNAMIC is not set 884 | CONFIG_FATFS_CODEPAGE_437=y 885 | # CONFIG_FATFS_CODEPAGE_720 is not set 886 | # CONFIG_FATFS_CODEPAGE_737 is not set 887 | # CONFIG_FATFS_CODEPAGE_771 is not set 888 | # CONFIG_FATFS_CODEPAGE_775 is not set 889 | # CONFIG_FATFS_CODEPAGE_850 is not set 890 | # CONFIG_FATFS_CODEPAGE_852 is not set 891 | # CONFIG_FATFS_CODEPAGE_855 is not set 892 | # CONFIG_FATFS_CODEPAGE_857 is not set 893 | # CONFIG_FATFS_CODEPAGE_860 is not set 894 | # CONFIG_FATFS_CODEPAGE_861 is not set 895 | # CONFIG_FATFS_CODEPAGE_862 is not set 896 | # CONFIG_FATFS_CODEPAGE_863 is not set 897 | # CONFIG_FATFS_CODEPAGE_864 is not set 898 | # CONFIG_FATFS_CODEPAGE_865 is not set 899 | # CONFIG_FATFS_CODEPAGE_866 is not set 900 | # CONFIG_FATFS_CODEPAGE_869 is not set 901 | # CONFIG_FATFS_CODEPAGE_932 is not set 902 | # CONFIG_FATFS_CODEPAGE_936 is not set 903 | # CONFIG_FATFS_CODEPAGE_949 is not set 904 | # CONFIG_FATFS_CODEPAGE_950 is not set 905 | CONFIG_FATFS_CODEPAGE=437 906 | CONFIG_FATFS_LFN_NONE=y 907 | # CONFIG_FATFS_LFN_HEAP is not set 908 | # CONFIG_FATFS_LFN_STACK is not set 909 | CONFIG_FATFS_FS_LOCK=0 910 | CONFIG_FATFS_TIMEOUT_MS=10000 911 | CONFIG_FATFS_PER_FILE_CACHE=y 912 | # CONFIG_FATFS_USE_FASTSEEK is not set 913 | # end of FAT Filesystem support 914 | 915 | # 916 | # Modbus configuration 917 | # 918 | CONFIG_FMB_COMM_MODE_TCP_EN=y 919 | CONFIG_FMB_TCP_PORT_DEFAULT=502 920 | CONFIG_FMB_TCP_PORT_MAX_CONN=5 921 | CONFIG_FMB_TCP_CONNECTION_TOUT_SEC=20 922 | CONFIG_FMB_COMM_MODE_RTU_EN=y 923 | CONFIG_FMB_COMM_MODE_ASCII_EN=y 924 | CONFIG_FMB_MASTER_TIMEOUT_MS_RESPOND=150 925 | CONFIG_FMB_MASTER_DELAY_MS_CONVERT=200 926 | CONFIG_FMB_QUEUE_LENGTH=20 927 | CONFIG_FMB_PORT_TASK_STACK_SIZE=4096 928 | CONFIG_FMB_SERIAL_BUF_SIZE=256 929 | CONFIG_FMB_SERIAL_ASCII_BITS_PER_SYMB=8 930 | CONFIG_FMB_SERIAL_ASCII_TIMEOUT_RESPOND_MS=1000 931 | CONFIG_FMB_PORT_TASK_PRIO=10 932 | CONFIG_FMB_PORT_TASK_AFFINITY=0x7FFFFFFF 933 | CONFIG_FMB_CONTROLLER_SLAVE_ID_SUPPORT=y 934 | CONFIG_FMB_CONTROLLER_SLAVE_ID=0x00112233 935 | CONFIG_FMB_CONTROLLER_NOTIFY_TIMEOUT=20 936 | CONFIG_FMB_CONTROLLER_NOTIFY_QUEUE_SIZE=20 937 | CONFIG_FMB_CONTROLLER_STACK_SIZE=4096 938 | CONFIG_FMB_EVENT_QUEUE_TIMEOUT=20 939 | # CONFIG_FMB_TIMER_PORT_ENABLED is not set 940 | CONFIG_FMB_TIMER_GROUP=0 941 | CONFIG_FMB_TIMER_INDEX=0 942 | CONFIG_FMB_MASTER_TIMER_GROUP=0 943 | CONFIG_FMB_MASTER_TIMER_INDEX=0 944 | # CONFIG_FMB_TIMER_ISR_IN_IRAM is not set 945 | # end of Modbus configuration 946 | 947 | # 948 | # FreeRTOS 949 | # 950 | CONFIG_FREERTOS_UNICORE=y 951 | CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF 952 | CONFIG_FREERTOS_TICK_SUPPORT_CORETIMER=y 953 | CONFIG_FREERTOS_CORETIMER_0=y 954 | # CONFIG_FREERTOS_CORETIMER_1 is not set 955 | CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y 956 | CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y 957 | CONFIG_FREERTOS_HZ=100 958 | CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y 959 | # CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set 960 | # CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set 961 | CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y 962 | # CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set 963 | CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y 964 | CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1 965 | CONFIG_FREERTOS_ASSERT_FAIL_ABORT=y 966 | # CONFIG_FREERTOS_ASSERT_FAIL_PRINT_CONTINUE is not set 967 | # CONFIG_FREERTOS_ASSERT_DISABLE is not set 968 | CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 969 | CONFIG_FREERTOS_ISR_STACKSIZE=1536 970 | # CONFIG_FREERTOS_LEGACY_HOOKS is not set 971 | CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 972 | CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y 973 | # CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set 974 | CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 975 | CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 976 | CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 977 | CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 978 | # CONFIG_FREERTOS_USE_TRACE_FACILITY is not set 979 | # CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set 980 | CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y 981 | CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y 982 | # CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set 983 | # CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set 984 | CONFIG_FREERTOS_DEBUG_OCDAWARE=y 985 | # CONFIG_FREERTOS_FPU_IN_ISR is not set 986 | CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y 987 | # CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH is not set 988 | # end of FreeRTOS 989 | 990 | # 991 | # Hardware Abstraction Layer (HAL) and Low Level (LL) 992 | # 993 | CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y 994 | # CONFIG_HAL_ASSERTION_DISABLE is not set 995 | # CONFIG_HAL_ASSERTION_SILIENT is not set 996 | # CONFIG_HAL_ASSERTION_ENABLE is not set 997 | CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2 998 | # end of Hardware Abstraction Layer (HAL) and Low Level (LL) 999 | 1000 | # 1001 | # Heap memory debugging 1002 | # 1003 | CONFIG_HEAP_POISONING_DISABLED=y 1004 | # CONFIG_HEAP_POISONING_LIGHT is not set 1005 | # CONFIG_HEAP_POISONING_COMPREHENSIVE is not set 1006 | CONFIG_HEAP_TRACING_OFF=y 1007 | # CONFIG_HEAP_TRACING_STANDALONE is not set 1008 | # CONFIG_HEAP_TRACING_TOHOST is not set 1009 | # CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set 1010 | # end of Heap memory debugging 1011 | 1012 | # 1013 | # jsmn 1014 | # 1015 | # CONFIG_JSMN_PARENT_LINKS is not set 1016 | # CONFIG_JSMN_STRICT is not set 1017 | # end of jsmn 1018 | 1019 | # 1020 | # libsodium 1021 | # 1022 | # end of libsodium 1023 | 1024 | # 1025 | # Log output 1026 | # 1027 | # CONFIG_LOG_DEFAULT_LEVEL_NONE is not set 1028 | # CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set 1029 | # CONFIG_LOG_DEFAULT_LEVEL_WARN is not set 1030 | CONFIG_LOG_DEFAULT_LEVEL_INFO=y 1031 | # CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set 1032 | # CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set 1033 | CONFIG_LOG_DEFAULT_LEVEL=3 1034 | CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y 1035 | # CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set 1036 | # CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set 1037 | CONFIG_LOG_MAXIMUM_LEVEL=3 1038 | CONFIG_LOG_COLORS=y 1039 | CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y 1040 | # CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set 1041 | # end of Log output 1042 | 1043 | # 1044 | # LWIP 1045 | # 1046 | CONFIG_LWIP_LOCAL_HOSTNAME="espressif" 1047 | # CONFIG_LWIP_NETIF_API is not set 1048 | # CONFIG_LWIP_TCPIP_CORE_LOCKING is not set 1049 | CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y 1050 | # CONFIG_LWIP_L2_TO_L3_COPY is not set 1051 | # CONFIG_LWIP_IRAM_OPTIMIZATION is not set 1052 | CONFIG_LWIP_TIMERS_ONDEMAND=y 1053 | CONFIG_LWIP_MAX_SOCKETS=10 1054 | # CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set 1055 | # CONFIG_LWIP_SO_LINGER is not set 1056 | CONFIG_LWIP_SO_REUSE=y 1057 | CONFIG_LWIP_SO_REUSE_RXTOALL=y 1058 | # CONFIG_LWIP_SO_RCVBUF is not set 1059 | # CONFIG_LWIP_NETBUF_RECVINFO is not set 1060 | CONFIG_LWIP_IP4_FRAG=y 1061 | CONFIG_LWIP_IP6_FRAG=y 1062 | # CONFIG_LWIP_IP4_REASSEMBLY is not set 1063 | # CONFIG_LWIP_IP6_REASSEMBLY is not set 1064 | # CONFIG_LWIP_IP_FORWARD is not set 1065 | # CONFIG_LWIP_STATS is not set 1066 | # CONFIG_LWIP_ETHARP_TRUST_IP_MAC is not set 1067 | CONFIG_LWIP_ESP_GRATUITOUS_ARP=y 1068 | CONFIG_LWIP_GARP_TMR_INTERVAL=60 1069 | CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 1070 | CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y 1071 | # CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set 1072 | CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y 1073 | # CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set 1074 | CONFIG_LWIP_DHCP_OPTIONS_LEN=68 1075 | 1076 | # 1077 | # DHCP server 1078 | # 1079 | CONFIG_LWIP_DHCPS=y 1080 | CONFIG_LWIP_DHCPS_LEASE_UNIT=60 1081 | CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 1082 | # end of DHCP server 1083 | 1084 | # CONFIG_LWIP_AUTOIP is not set 1085 | CONFIG_LWIP_IPV6=y 1086 | # CONFIG_LWIP_IPV6_AUTOCONFIG is not set 1087 | CONFIG_LWIP_IPV6_NUM_ADDRESSES=3 1088 | # CONFIG_LWIP_IPV6_FORWARD is not set 1089 | # CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set 1090 | CONFIG_LWIP_NETIF_LOOPBACK=y 1091 | CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 1092 | 1093 | # 1094 | # TCP 1095 | # 1096 | CONFIG_LWIP_MAX_ACTIVE_TCP=16 1097 | CONFIG_LWIP_MAX_LISTENING_TCP=16 1098 | CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y 1099 | CONFIG_LWIP_TCP_MAXRTX=12 1100 | CONFIG_LWIP_TCP_SYNMAXRTX=12 1101 | CONFIG_LWIP_TCP_MSS=1440 1102 | CONFIG_LWIP_TCP_TMR_INTERVAL=250 1103 | CONFIG_LWIP_TCP_MSL=60000 1104 | CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744 1105 | CONFIG_LWIP_TCP_WND_DEFAULT=5744 1106 | CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 1107 | CONFIG_LWIP_TCP_QUEUE_OOSEQ=y 1108 | # CONFIG_LWIP_TCP_SACK_OUT is not set 1109 | # CONFIG_LWIP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES is not set 1110 | CONFIG_LWIP_TCP_OVERSIZE_MSS=y 1111 | # CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set 1112 | # CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set 1113 | CONFIG_LWIP_TCP_RTO_TIME=1500 1114 | # end of TCP 1115 | 1116 | # 1117 | # UDP 1118 | # 1119 | CONFIG_LWIP_MAX_UDP_PCBS=16 1120 | CONFIG_LWIP_UDP_RECVMBOX_SIZE=6 1121 | # end of UDP 1122 | 1123 | # 1124 | # Checksums 1125 | # 1126 | # CONFIG_LWIP_CHECKSUM_CHECK_IP is not set 1127 | # CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set 1128 | CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y 1129 | # end of Checksums 1130 | 1131 | CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 1132 | CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y 1133 | # CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set 1134 | CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF 1135 | # CONFIG_LWIP_PPP_SUPPORT is not set 1136 | CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 1137 | CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 1138 | # CONFIG_LWIP_SLIP_SUPPORT is not set 1139 | 1140 | # 1141 | # ICMP 1142 | # 1143 | CONFIG_LWIP_ICMP=y 1144 | # CONFIG_LWIP_MULTICAST_PING is not set 1145 | # CONFIG_LWIP_BROADCAST_PING is not set 1146 | # end of ICMP 1147 | 1148 | # 1149 | # LWIP RAW API 1150 | # 1151 | CONFIG_LWIP_MAX_RAW_PCBS=16 1152 | # end of LWIP RAW API 1153 | 1154 | # 1155 | # SNTP 1156 | # 1157 | CONFIG_LWIP_SNTP_MAX_SERVERS=1 1158 | # CONFIG_LWIP_DHCP_GET_NTP_SRV is not set 1159 | CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000 1160 | # end of SNTP 1161 | 1162 | CONFIG_LWIP_ESP_LWIP_ASSERT=y 1163 | 1164 | # 1165 | # Hooks 1166 | # 1167 | # CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set 1168 | CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y 1169 | # CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set 1170 | CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y 1171 | # CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set 1172 | # CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set 1173 | CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y 1174 | # CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set 1175 | # CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set 1176 | CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y 1177 | # CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set 1178 | # CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set 1179 | # end of Hooks 1180 | 1181 | # CONFIG_LWIP_DEBUG is not set 1182 | # end of LWIP 1183 | 1184 | # 1185 | # mbedTLS 1186 | # 1187 | CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y 1188 | # CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set 1189 | # CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set 1190 | CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y 1191 | CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384 1192 | CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 1193 | # CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set 1194 | # CONFIG_MBEDTLS_DEBUG is not set 1195 | 1196 | # 1197 | # mbedTLS v2.28.x related 1198 | # 1199 | # CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set 1200 | # CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set 1201 | # CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set 1202 | CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y 1203 | # end of mbedTLS v2.28.x related 1204 | 1205 | # 1206 | # Certificate Bundle 1207 | # 1208 | CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y 1209 | CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y 1210 | # CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set 1211 | # CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set 1212 | # CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set 1213 | # end of Certificate Bundle 1214 | 1215 | # CONFIG_MBEDTLS_ECP_RESTARTABLE is not set 1216 | # CONFIG_MBEDTLS_CMAC_C is not set 1217 | CONFIG_MBEDTLS_HARDWARE_AES=y 1218 | CONFIG_MBEDTLS_HARDWARE_MPI=y 1219 | CONFIG_MBEDTLS_HARDWARE_SHA=y 1220 | CONFIG_MBEDTLS_ROM_MD5=y 1221 | # CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set 1222 | # CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set 1223 | CONFIG_MBEDTLS_HAVE_TIME=y 1224 | # CONFIG_MBEDTLS_HAVE_TIME_DATE is not set 1225 | CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y 1226 | CONFIG_MBEDTLS_SHA512_C=y 1227 | CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y 1228 | # CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set 1229 | # CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set 1230 | # CONFIG_MBEDTLS_TLS_DISABLED is not set 1231 | CONFIG_MBEDTLS_TLS_SERVER=y 1232 | CONFIG_MBEDTLS_TLS_CLIENT=y 1233 | CONFIG_MBEDTLS_TLS_ENABLED=y 1234 | 1235 | # 1236 | # TLS Key Exchange Methods 1237 | # 1238 | # CONFIG_MBEDTLS_PSK_MODES is not set 1239 | CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y 1240 | CONFIG_MBEDTLS_KEY_EXCHANGE_DHE_RSA=y 1241 | CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y 1242 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y 1243 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y 1244 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y 1245 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y 1246 | # end of TLS Key Exchange Methods 1247 | 1248 | CONFIG_MBEDTLS_SSL_RENEGOTIATION=y 1249 | # CONFIG_MBEDTLS_SSL_PROTO_SSL3 is not set 1250 | CONFIG_MBEDTLS_SSL_PROTO_TLS1=y 1251 | CONFIG_MBEDTLS_SSL_PROTO_TLS1_1=y 1252 | CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y 1253 | # CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set 1254 | # CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set 1255 | CONFIG_MBEDTLS_SSL_ALPN=y 1256 | CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y 1257 | CONFIG_MBEDTLS_X509_CHECK_KEY_USAGE=y 1258 | CONFIG_MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE=y 1259 | CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y 1260 | 1261 | # 1262 | # Symmetric Ciphers 1263 | # 1264 | CONFIG_MBEDTLS_AES_C=y 1265 | # CONFIG_MBEDTLS_CAMELLIA_C is not set 1266 | # CONFIG_MBEDTLS_DES_C is not set 1267 | CONFIG_MBEDTLS_RC4_DISABLED=y 1268 | # CONFIG_MBEDTLS_RC4_ENABLED_NO_DEFAULT is not set 1269 | # CONFIG_MBEDTLS_RC4_ENABLED is not set 1270 | # CONFIG_MBEDTLS_BLOWFISH_C is not set 1271 | # CONFIG_MBEDTLS_XTEA_C is not set 1272 | CONFIG_MBEDTLS_CCM_C=y 1273 | CONFIG_MBEDTLS_GCM_C=y 1274 | # CONFIG_MBEDTLS_NIST_KW_C is not set 1275 | # end of Symmetric Ciphers 1276 | 1277 | # CONFIG_MBEDTLS_RIPEMD160_C is not set 1278 | 1279 | # 1280 | # Certificates 1281 | # 1282 | CONFIG_MBEDTLS_PEM_PARSE_C=y 1283 | CONFIG_MBEDTLS_PEM_WRITE_C=y 1284 | CONFIG_MBEDTLS_X509_CRL_PARSE_C=y 1285 | CONFIG_MBEDTLS_X509_CSR_PARSE_C=y 1286 | # end of Certificates 1287 | 1288 | CONFIG_MBEDTLS_ECP_C=y 1289 | CONFIG_MBEDTLS_ECDH_C=y 1290 | CONFIG_MBEDTLS_ECDSA_C=y 1291 | # CONFIG_MBEDTLS_ECJPAKE_C is not set 1292 | CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y 1293 | CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y 1294 | CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y 1295 | CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y 1296 | CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y 1297 | CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y 1298 | CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y 1299 | CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y 1300 | CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y 1301 | CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y 1302 | CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y 1303 | CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y 1304 | CONFIG_MBEDTLS_ECP_NIST_OPTIM=y 1305 | # CONFIG_MBEDTLS_POLY1305_C is not set 1306 | # CONFIG_MBEDTLS_CHACHA20_C is not set 1307 | # CONFIG_MBEDTLS_HKDF_C is not set 1308 | # CONFIG_MBEDTLS_THREADING_C is not set 1309 | CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI=y 1310 | # CONFIG_MBEDTLS_SECURITY_RISKS is not set 1311 | # end of mbedTLS 1312 | 1313 | # 1314 | # mDNS 1315 | # 1316 | CONFIG_MDNS_MAX_SERVICES=10 1317 | CONFIG_MDNS_TASK_PRIORITY=1 1318 | CONFIG_MDNS_TASK_STACK_SIZE=4096 1319 | # CONFIG_MDNS_TASK_AFFINITY_NO_AFFINITY is not set 1320 | CONFIG_MDNS_TASK_AFFINITY_CPU0=y 1321 | CONFIG_MDNS_TASK_AFFINITY=0x0 1322 | CONFIG_MDNS_SERVICE_ADD_TIMEOUT_MS=2000 1323 | # CONFIG_MDNS_STRICT_MODE is not set 1324 | CONFIG_MDNS_TIMER_PERIOD_MS=100 1325 | # CONFIG_MDNS_NETWORKING_SOCKET is not set 1326 | CONFIG_MDNS_MULTIPLE_INSTANCE=y 1327 | # end of mDNS 1328 | 1329 | # 1330 | # ESP-MQTT Configurations 1331 | # 1332 | CONFIG_MQTT_PROTOCOL_311=y 1333 | CONFIG_MQTT_TRANSPORT_SSL=y 1334 | CONFIG_MQTT_TRANSPORT_WEBSOCKET=y 1335 | CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y 1336 | # CONFIG_MQTT_MSG_ID_INCREMENTAL is not set 1337 | # CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set 1338 | # CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set 1339 | # CONFIG_MQTT_USE_CUSTOM_CONFIG is not set 1340 | # CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set 1341 | # CONFIG_MQTT_CUSTOM_OUTBOX is not set 1342 | # end of ESP-MQTT Configurations 1343 | 1344 | # 1345 | # Newlib 1346 | # 1347 | CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y 1348 | # CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set 1349 | # CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set 1350 | # CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set 1351 | # CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set 1352 | CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y 1353 | # CONFIG_NEWLIB_NANO_FORMAT is not set 1354 | # end of Newlib 1355 | 1356 | # 1357 | # NVS 1358 | # 1359 | # end of NVS 1360 | 1361 | # 1362 | # OpenSSL 1363 | # 1364 | # CONFIG_OPENSSL_DEBUG is not set 1365 | CONFIG_OPENSSL_ERROR_STACK=y 1366 | # CONFIG_OPENSSL_ASSERT_DO_NOTHING is not set 1367 | CONFIG_OPENSSL_ASSERT_EXIT=y 1368 | # end of OpenSSL 1369 | 1370 | # 1371 | # OpenThread 1372 | # 1373 | # CONFIG_OPENTHREAD_ENABLED is not set 1374 | # end of OpenThread 1375 | 1376 | # 1377 | # PThreads 1378 | # 1379 | CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5 1380 | CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 1381 | CONFIG_PTHREAD_STACK_MIN=768 1382 | CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1 1383 | CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread" 1384 | # end of PThreads 1385 | 1386 | # 1387 | # SPI Flash driver 1388 | # 1389 | # CONFIG_SPI_FLASH_VERIFY_WRITE is not set 1390 | # CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set 1391 | CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y 1392 | CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y 1393 | # CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set 1394 | # CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set 1395 | # CONFIG_SPI_FLASH_USE_LEGACY_IMPL is not set 1396 | # CONFIG_SPI_FLASH_SHARE_SPI1_BUS is not set 1397 | # CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set 1398 | CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y 1399 | CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20 1400 | CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1 1401 | CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 1402 | # CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set 1403 | # CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set 1404 | # CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set 1405 | 1406 | # 1407 | # Auto-detect flash chips 1408 | # 1409 | CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y 1410 | CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y 1411 | CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y 1412 | CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y 1413 | CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=y 1414 | CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=y 1415 | # end of Auto-detect flash chips 1416 | 1417 | CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y 1418 | # end of SPI Flash driver 1419 | 1420 | # 1421 | # SPIFFS Configuration 1422 | # 1423 | CONFIG_SPIFFS_MAX_PARTITIONS=3 1424 | 1425 | # 1426 | # SPIFFS Cache Configuration 1427 | # 1428 | CONFIG_SPIFFS_CACHE=y 1429 | CONFIG_SPIFFS_CACHE_WR=y 1430 | # CONFIG_SPIFFS_CACHE_STATS is not set 1431 | # end of SPIFFS Cache Configuration 1432 | 1433 | CONFIG_SPIFFS_PAGE_CHECK=y 1434 | CONFIG_SPIFFS_GC_MAX_RUNS=10 1435 | # CONFIG_SPIFFS_GC_STATS is not set 1436 | CONFIG_SPIFFS_PAGE_SIZE=256 1437 | CONFIG_SPIFFS_OBJ_NAME_LEN=32 1438 | # CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set 1439 | CONFIG_SPIFFS_USE_MAGIC=y 1440 | CONFIG_SPIFFS_USE_MAGIC_LENGTH=y 1441 | CONFIG_SPIFFS_META_LENGTH=4 1442 | CONFIG_SPIFFS_USE_MTIME=y 1443 | 1444 | # 1445 | # Debug Configuration 1446 | # 1447 | # CONFIG_SPIFFS_DBG is not set 1448 | # CONFIG_SPIFFS_API_DBG is not set 1449 | # CONFIG_SPIFFS_GC_DBG is not set 1450 | # CONFIG_SPIFFS_CACHE_DBG is not set 1451 | # CONFIG_SPIFFS_CHECK_DBG is not set 1452 | # CONFIG_SPIFFS_TEST_VISUALISATION is not set 1453 | # end of Debug Configuration 1454 | # end of SPIFFS Configuration 1455 | 1456 | # 1457 | # TCP Transport 1458 | # 1459 | 1460 | # 1461 | # Websocket 1462 | # 1463 | CONFIG_WS_TRANSPORT=y 1464 | CONFIG_WS_BUFFER_SIZE=1024 1465 | # end of Websocket 1466 | # end of TCP Transport 1467 | 1468 | # 1469 | # Unity unit testing library 1470 | # 1471 | CONFIG_UNITY_ENABLE_FLOAT=y 1472 | CONFIG_UNITY_ENABLE_DOUBLE=y 1473 | # CONFIG_UNITY_ENABLE_64BIT is not set 1474 | # CONFIG_UNITY_ENABLE_COLOR is not set 1475 | CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y 1476 | # CONFIG_UNITY_ENABLE_FIXTURE is not set 1477 | # CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set 1478 | # end of Unity unit testing library 1479 | 1480 | # 1481 | # Virtual file system 1482 | # 1483 | CONFIG_VFS_SUPPORT_IO=y 1484 | CONFIG_VFS_SUPPORT_DIR=y 1485 | CONFIG_VFS_SUPPORT_SELECT=y 1486 | CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y 1487 | CONFIG_VFS_SUPPORT_TERMIOS=y 1488 | 1489 | # 1490 | # Host File System I/O (Semihosting) 1491 | # 1492 | CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 1493 | CONFIG_VFS_SEMIHOSTFS_HOST_PATH_MAX_LEN=128 1494 | # end of Host File System I/O (Semihosting) 1495 | # end of Virtual file system 1496 | 1497 | # 1498 | # Wear Levelling 1499 | # 1500 | # CONFIG_WL_SECTOR_SIZE_512 is not set 1501 | CONFIG_WL_SECTOR_SIZE_4096=y 1502 | CONFIG_WL_SECTOR_SIZE=4096 1503 | # end of Wear Levelling 1504 | 1505 | # 1506 | # Wi-Fi Provisioning Manager 1507 | # 1508 | CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16 1509 | CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30 1510 | # CONFIG_WIFI_PROV_BLE_BONDING is not set 1511 | # end of Wi-Fi Provisioning Manager 1512 | 1513 | # 1514 | # Supplicant 1515 | # 1516 | CONFIG_WPA_MBEDTLS_CRYPTO=y 1517 | # CONFIG_WPA_WAPI_PSK is not set 1518 | # CONFIG_WPA_SUITE_B_192 is not set 1519 | # CONFIG_WPA_DEBUG_PRINT is not set 1520 | # CONFIG_WPA_TESTING_OPTIONS is not set 1521 | # CONFIG_WPA_WPS_STRICT is not set 1522 | # CONFIG_WPA_11KV_SUPPORT is not set 1523 | # end of Supplicant 1524 | # end of Component config 1525 | 1526 | # 1527 | # Compatibility options 1528 | # 1529 | # CONFIG_LEGACY_INCLUDE_COMMON_HEADERS is not set 1530 | # end of Compatibility options 1531 | 1532 | # Deprecated options for backward compatibility 1533 | CONFIG_TOOLPREFIX="riscv32-esp-elf-" 1534 | # CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set 1535 | # CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set 1536 | # CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set 1537 | CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y 1538 | # CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set 1539 | # CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set 1540 | CONFIG_LOG_BOOTLOADER_LEVEL=3 1541 | # CONFIG_APP_ROLLBACK_ENABLE is not set 1542 | # CONFIG_FLASH_ENCRYPTION_ENABLED is not set 1543 | # CONFIG_FLASHMODE_QIO is not set 1544 | # CONFIG_FLASHMODE_QOUT is not set 1545 | CONFIG_FLASHMODE_DIO=y 1546 | # CONFIG_FLASHMODE_DOUT is not set 1547 | # CONFIG_MONITOR_BAUD_9600B is not set 1548 | # CONFIG_MONITOR_BAUD_57600B is not set 1549 | CONFIG_MONITOR_BAUD_115200B=y 1550 | # CONFIG_MONITOR_BAUD_230400B is not set 1551 | # CONFIG_MONITOR_BAUD_921600B is not set 1552 | # CONFIG_MONITOR_BAUD_2MB is not set 1553 | # CONFIG_MONITOR_BAUD_OTHER is not set 1554 | CONFIG_MONITOR_BAUD_OTHER_VAL=115200 1555 | CONFIG_MONITOR_BAUD=115200 1556 | CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y 1557 | # CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set 1558 | CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y 1559 | # CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set 1560 | # CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set 1561 | CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2 1562 | # CONFIG_CXX_EXCEPTIONS is not set 1563 | CONFIG_STACK_CHECK_NONE=y 1564 | # CONFIG_STACK_CHECK_NORM is not set 1565 | # CONFIG_STACK_CHECK_STRONG is not set 1566 | # CONFIG_STACK_CHECK_ALL is not set 1567 | # CONFIG_WARN_WRITE_STRINGS is not set 1568 | # CONFIG_DISABLE_GCC8_WARNINGS is not set 1569 | # CONFIG_ESP32_APPTRACE_DEST_TRAX is not set 1570 | CONFIG_ESP32_APPTRACE_DEST_NONE=y 1571 | CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y 1572 | # CONFIG_BTDM_CONTROLLER_MODE_BLE_ONLY is not set 1573 | # CONFIG_BTDM_CONTROLLER_MODE_BR_EDR_ONLY is not set 1574 | CONFIG_BTDM_CONTROLLER_MODE_BTDM=y 1575 | CONFIG_BTDM_CONTROLLER_BLE_MAX_CONN=3 1576 | CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN=2 1577 | CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN=0 1578 | CONFIG_BTDM_CONTROLLER_BLE_MAX_CONN_EFF=3 1579 | CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF=2 1580 | CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF=0 1581 | CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE=0 1582 | CONFIG_BTDM_CONTROLLER_HCI_MODE_VHCI=y 1583 | # CONFIG_BTDM_CONTROLLER_HCI_MODE_UART_H4 is not set 1584 | CONFIG_BTDM_CONTROLLER_MODEM_SLEEP=y 1585 | CONFIG_BLE_SCAN_DUPLICATE=y 1586 | CONFIG_SCAN_DUPLICATE_BY_DEVICE_ADDR=y 1587 | # CONFIG_SCAN_DUPLICATE_BY_ADV_DATA is not set 1588 | # CONFIG_SCAN_DUPLICATE_BY_ADV_DATA_AND_DEVICE_ADDR is not set 1589 | CONFIG_SCAN_DUPLICATE_TYPE=0 1590 | CONFIG_DUPLICATE_SCAN_CACHE_SIZE=200 1591 | # CONFIG_BLE_MESH_SCAN_DUPLICATE_EN is not set 1592 | CONFIG_BTDM_CONTROLLER_FULL_SCAN_SUPPORTED=y 1593 | CONFIG_BLE_ADV_REPORT_FLOW_CONTROL_SUPPORTED=y 1594 | CONFIG_BLE_ADV_REPORT_FLOW_CONTROL_NUM=100 1595 | CONFIG_BLE_ADV_REPORT_DISCARD_THRSHOLD=20 1596 | CONFIG_BLUEDROID_ENABLED=y 1597 | # CONFIG_NIMBLE_ENABLED is not set 1598 | CONFIG_BTC_TASK_STACK_SIZE=3072 1599 | CONFIG_BLUEDROID_PINNED_TO_CORE=0 1600 | CONFIG_BTU_TASK_STACK_SIZE=4096 1601 | # CONFIG_BLUEDROID_MEM_DEBUG is not set 1602 | CONFIG_CLASSIC_BT_ENABLED=y 1603 | # CONFIG_A2DP_ENABLE is not set 1604 | # CONFIG_HFP_ENABLE is not set 1605 | CONFIG_GATTS_ENABLE=y 1606 | # CONFIG_GATTS_SEND_SERVICE_CHANGE_MANUAL is not set 1607 | CONFIG_GATTS_SEND_SERVICE_CHANGE_AUTO=y 1608 | CONFIG_GATTS_SEND_SERVICE_CHANGE_MODE=0 1609 | CONFIG_GATTC_ENABLE=y 1610 | # CONFIG_GATTC_CACHE_NVS_FLASH is not set 1611 | CONFIG_BLE_SMP_ENABLE=y 1612 | # CONFIG_SMP_SLAVE_CON_PARAMS_UPD_ENABLE is not set 1613 | # CONFIG_HCI_TRACE_LEVEL_NONE is not set 1614 | # CONFIG_HCI_TRACE_LEVEL_ERROR is not set 1615 | CONFIG_HCI_TRACE_LEVEL_WARNING=y 1616 | # CONFIG_HCI_TRACE_LEVEL_API is not set 1617 | # CONFIG_HCI_TRACE_LEVEL_EVENT is not set 1618 | # CONFIG_HCI_TRACE_LEVEL_DEBUG is not set 1619 | # CONFIG_HCI_TRACE_LEVEL_VERBOSE is not set 1620 | CONFIG_HCI_INITIAL_TRACE_LEVEL=2 1621 | # CONFIG_BTM_TRACE_LEVEL_NONE is not set 1622 | # CONFIG_BTM_TRACE_LEVEL_ERROR is not set 1623 | CONFIG_BTM_TRACE_LEVEL_WARNING=y 1624 | # CONFIG_BTM_TRACE_LEVEL_API is not set 1625 | # CONFIG_BTM_TRACE_LEVEL_EVENT is not set 1626 | # CONFIG_BTM_TRACE_LEVEL_DEBUG is not set 1627 | # CONFIG_BTM_TRACE_LEVEL_VERBOSE is not set 1628 | CONFIG_BTM_INITIAL_TRACE_LEVEL=2 1629 | # CONFIG_L2CAP_TRACE_LEVEL_NONE is not set 1630 | # CONFIG_L2CAP_TRACE_LEVEL_ERROR is not set 1631 | CONFIG_L2CAP_TRACE_LEVEL_WARNING=y 1632 | # CONFIG_L2CAP_TRACE_LEVEL_API is not set 1633 | # CONFIG_L2CAP_TRACE_LEVEL_EVENT is not set 1634 | # CONFIG_L2CAP_TRACE_LEVEL_DEBUG is not set 1635 | # CONFIG_L2CAP_TRACE_LEVEL_VERBOSE is not set 1636 | CONFIG_L2CAP_INITIAL_TRACE_LEVEL=2 1637 | # CONFIG_RFCOMM_TRACE_LEVEL_NONE is not set 1638 | # CONFIG_RFCOMM_TRACE_LEVEL_ERROR is not set 1639 | CONFIG_RFCOMM_TRACE_LEVEL_WARNING=y 1640 | # CONFIG_RFCOMM_TRACE_LEVEL_API is not set 1641 | # CONFIG_RFCOMM_TRACE_LEVEL_EVENT is not set 1642 | # CONFIG_RFCOMM_TRACE_LEVEL_DEBUG is not set 1643 | # CONFIG_RFCOMM_TRACE_LEVEL_VERBOSE is not set 1644 | CONFIG_RFCOMM_INITIAL_TRACE_LEVEL=2 1645 | # CONFIG_SDP_TRACE_LEVEL_NONE is not set 1646 | # CONFIG_SDP_TRACE_LEVEL_ERROR is not set 1647 | CONFIG_SDP_TRACE_LEVEL_WARNING=y 1648 | # CONFIG_SDP_TRACE_LEVEL_API is not set 1649 | # CONFIG_SDP_TRACE_LEVEL_EVENT is not set 1650 | # CONFIG_SDP_TRACE_LEVEL_DEBUG is not set 1651 | # CONFIG_SDP_TRACE_LEVEL_VERBOSE is not set 1652 | CONFIG_BTH_LOG_SDP_INITIAL_TRACE_LEVEL=2 1653 | # CONFIG_GAP_TRACE_LEVEL_NONE is not set 1654 | # CONFIG_GAP_TRACE_LEVEL_ERROR is not set 1655 | CONFIG_GAP_TRACE_LEVEL_WARNING=y 1656 | # CONFIG_GAP_TRACE_LEVEL_API is not set 1657 | # CONFIG_GAP_TRACE_LEVEL_EVENT is not set 1658 | # CONFIG_GAP_TRACE_LEVEL_DEBUG is not set 1659 | # CONFIG_GAP_TRACE_LEVEL_VERBOSE is not set 1660 | CONFIG_GAP_INITIAL_TRACE_LEVEL=2 1661 | CONFIG_BNEP_INITIAL_TRACE_LEVEL=2 1662 | # CONFIG_PAN_TRACE_LEVEL_NONE is not set 1663 | # CONFIG_PAN_TRACE_LEVEL_ERROR is not set 1664 | CONFIG_PAN_TRACE_LEVEL_WARNING=y 1665 | # CONFIG_PAN_TRACE_LEVEL_API is not set 1666 | # CONFIG_PAN_TRACE_LEVEL_EVENT is not set 1667 | # CONFIG_PAN_TRACE_LEVEL_DEBUG is not set 1668 | # CONFIG_PAN_TRACE_LEVEL_VERBOSE is not set 1669 | CONFIG_PAN_INITIAL_TRACE_LEVEL=2 1670 | # CONFIG_A2D_TRACE_LEVEL_NONE is not set 1671 | # CONFIG_A2D_TRACE_LEVEL_ERROR is not set 1672 | CONFIG_A2D_TRACE_LEVEL_WARNING=y 1673 | # CONFIG_A2D_TRACE_LEVEL_API is not set 1674 | # CONFIG_A2D_TRACE_LEVEL_EVENT is not set 1675 | # CONFIG_A2D_TRACE_LEVEL_DEBUG is not set 1676 | # CONFIG_A2D_TRACE_LEVEL_VERBOSE is not set 1677 | CONFIG_A2D_INITIAL_TRACE_LEVEL=2 1678 | # CONFIG_AVDT_TRACE_LEVEL_NONE is not set 1679 | # CONFIG_AVDT_TRACE_LEVEL_ERROR is not set 1680 | CONFIG_AVDT_TRACE_LEVEL_WARNING=y 1681 | # CONFIG_AVDT_TRACE_LEVEL_API is not set 1682 | # CONFIG_AVDT_TRACE_LEVEL_EVENT is not set 1683 | # CONFIG_AVDT_TRACE_LEVEL_DEBUG is not set 1684 | # CONFIG_AVDT_TRACE_LEVEL_VERBOSE is not set 1685 | CONFIG_AVDT_INITIAL_TRACE_LEVEL=2 1686 | # CONFIG_AVCT_TRACE_LEVEL_NONE is not set 1687 | # CONFIG_AVCT_TRACE_LEVEL_ERROR is not set 1688 | CONFIG_AVCT_TRACE_LEVEL_WARNING=y 1689 | # CONFIG_AVCT_TRACE_LEVEL_API is not set 1690 | # CONFIG_AVCT_TRACE_LEVEL_EVENT is not set 1691 | # CONFIG_AVCT_TRACE_LEVEL_DEBUG is not set 1692 | # CONFIG_AVCT_TRACE_LEVEL_VERBOSE is not set 1693 | CONFIG_AVCT_INITIAL_TRACE_LEVEL=2 1694 | # CONFIG_AVRC_TRACE_LEVEL_NONE is not set 1695 | # CONFIG_AVRC_TRACE_LEVEL_ERROR is not set 1696 | CONFIG_AVRC_TRACE_LEVEL_WARNING=y 1697 | # CONFIG_AVRC_TRACE_LEVEL_API is not set 1698 | # CONFIG_AVRC_TRACE_LEVEL_EVENT is not set 1699 | # CONFIG_AVRC_TRACE_LEVEL_DEBUG is not set 1700 | # CONFIG_AVRC_TRACE_LEVEL_VERBOSE is not set 1701 | CONFIG_AVRC_INITIAL_TRACE_LEVEL=2 1702 | # CONFIG_MCA_TRACE_LEVEL_NONE is not set 1703 | # CONFIG_MCA_TRACE_LEVEL_ERROR is not set 1704 | CONFIG_MCA_TRACE_LEVEL_WARNING=y 1705 | # CONFIG_MCA_TRACE_LEVEL_API is not set 1706 | # CONFIG_MCA_TRACE_LEVEL_EVENT is not set 1707 | # CONFIG_MCA_TRACE_LEVEL_DEBUG is not set 1708 | # CONFIG_MCA_TRACE_LEVEL_VERBOSE is not set 1709 | CONFIG_MCA_INITIAL_TRACE_LEVEL=2 1710 | # CONFIG_HID_TRACE_LEVEL_NONE is not set 1711 | # CONFIG_HID_TRACE_LEVEL_ERROR is not set 1712 | CONFIG_HID_TRACE_LEVEL_WARNING=y 1713 | # CONFIG_HID_TRACE_LEVEL_API is not set 1714 | # CONFIG_HID_TRACE_LEVEL_EVENT is not set 1715 | # CONFIG_HID_TRACE_LEVEL_DEBUG is not set 1716 | # CONFIG_HID_TRACE_LEVEL_VERBOSE is not set 1717 | CONFIG_HID_INITIAL_TRACE_LEVEL=2 1718 | # CONFIG_APPL_TRACE_LEVEL_NONE is not set 1719 | # CONFIG_APPL_TRACE_LEVEL_ERROR is not set 1720 | CONFIG_APPL_TRACE_LEVEL_WARNING=y 1721 | # CONFIG_APPL_TRACE_LEVEL_API is not set 1722 | # CONFIG_APPL_TRACE_LEVEL_EVENT is not set 1723 | # CONFIG_APPL_TRACE_LEVEL_DEBUG is not set 1724 | # CONFIG_APPL_TRACE_LEVEL_VERBOSE is not set 1725 | CONFIG_APPL_INITIAL_TRACE_LEVEL=2 1726 | # CONFIG_GATT_TRACE_LEVEL_NONE is not set 1727 | # CONFIG_GATT_TRACE_LEVEL_ERROR is not set 1728 | CONFIG_GATT_TRACE_LEVEL_WARNING=y 1729 | # CONFIG_GATT_TRACE_LEVEL_API is not set 1730 | # CONFIG_GATT_TRACE_LEVEL_EVENT is not set 1731 | # CONFIG_GATT_TRACE_LEVEL_DEBUG is not set 1732 | # CONFIG_GATT_TRACE_LEVEL_VERBOSE is not set 1733 | CONFIG_GATT_INITIAL_TRACE_LEVEL=2 1734 | # CONFIG_SMP_TRACE_LEVEL_NONE is not set 1735 | # CONFIG_SMP_TRACE_LEVEL_ERROR is not set 1736 | CONFIG_SMP_TRACE_LEVEL_WARNING=y 1737 | # CONFIG_SMP_TRACE_LEVEL_API is not set 1738 | # CONFIG_SMP_TRACE_LEVEL_EVENT is not set 1739 | # CONFIG_SMP_TRACE_LEVEL_DEBUG is not set 1740 | # CONFIG_SMP_TRACE_LEVEL_VERBOSE is not set 1741 | CONFIG_SMP_INITIAL_TRACE_LEVEL=2 1742 | # CONFIG_BTIF_TRACE_LEVEL_NONE is not set 1743 | # CONFIG_BTIF_TRACE_LEVEL_ERROR is not set 1744 | CONFIG_BTIF_TRACE_LEVEL_WARNING=y 1745 | # CONFIG_BTIF_TRACE_LEVEL_API is not set 1746 | # CONFIG_BTIF_TRACE_LEVEL_EVENT is not set 1747 | # CONFIG_BTIF_TRACE_LEVEL_DEBUG is not set 1748 | # CONFIG_BTIF_TRACE_LEVEL_VERBOSE is not set 1749 | CONFIG_BTIF_INITIAL_TRACE_LEVEL=2 1750 | # CONFIG_BTC_TRACE_LEVEL_NONE is not set 1751 | # CONFIG_BTC_TRACE_LEVEL_ERROR is not set 1752 | CONFIG_BTC_TRACE_LEVEL_WARNING=y 1753 | # CONFIG_BTC_TRACE_LEVEL_API is not set 1754 | # CONFIG_BTC_TRACE_LEVEL_EVENT is not set 1755 | # CONFIG_BTC_TRACE_LEVEL_DEBUG is not set 1756 | # CONFIG_BTC_TRACE_LEVEL_VERBOSE is not set 1757 | CONFIG_BTC_INITIAL_TRACE_LEVEL=2 1758 | # CONFIG_OSI_TRACE_LEVEL_NONE is not set 1759 | # CONFIG_OSI_TRACE_LEVEL_ERROR is not set 1760 | CONFIG_OSI_TRACE_LEVEL_WARNING=y 1761 | # CONFIG_OSI_TRACE_LEVEL_API is not set 1762 | # CONFIG_OSI_TRACE_LEVEL_EVENT is not set 1763 | # CONFIG_OSI_TRACE_LEVEL_DEBUG is not set 1764 | # CONFIG_OSI_TRACE_LEVEL_VERBOSE is not set 1765 | CONFIG_OSI_INITIAL_TRACE_LEVEL=2 1766 | # CONFIG_BLUFI_TRACE_LEVEL_NONE is not set 1767 | # CONFIG_BLUFI_TRACE_LEVEL_ERROR is not set 1768 | CONFIG_BLUFI_TRACE_LEVEL_WARNING=y 1769 | # CONFIG_BLUFI_TRACE_LEVEL_API is not set 1770 | # CONFIG_BLUFI_TRACE_LEVEL_EVENT is not set 1771 | # CONFIG_BLUFI_TRACE_LEVEL_DEBUG is not set 1772 | # CONFIG_BLUFI_TRACE_LEVEL_VERBOSE is not set 1773 | CONFIG_BLUFI_INITIAL_TRACE_LEVEL=2 1774 | # CONFIG_BLE_HOST_QUEUE_CONGESTION_CHECK is not set 1775 | CONFIG_SMP_ENABLE=y 1776 | # CONFIG_BLE_ACTIVE_SCAN_REPORT_ADV_SCAN_RSP_INDIVIDUALLY is not set 1777 | CONFIG_BLE_ESTABLISH_LINK_CONNECTION_TIMEOUT=30 1778 | CONFIG_ADC2_DISABLE_DAC=y 1779 | # CONFIG_SPIRAM_SUPPORT is not set 1780 | CONFIG_TRACEMEM_RESERVE_DRAM=0x0 1781 | # CONFIG_ULP_COPROC_ENABLED is not set 1782 | CONFIG_ULP_COPROC_RESERVE_MEM=0 1783 | CONFIG_BROWNOUT_DET=y 1784 | CONFIG_BROWNOUT_DET_LVL_SEL_0=y 1785 | # CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set 1786 | # CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set 1787 | # CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set 1788 | # CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set 1789 | # CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set 1790 | # CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set 1791 | # CONFIG_BROWNOUT_DET_LVL_SEL_7 is not set 1792 | CONFIG_BROWNOUT_DET_LVL=0 1793 | CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y 1794 | # CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL is not set 1795 | # CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC is not set 1796 | # CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256 is not set 1797 | # CONFIG_DISABLE_BASIC_ROM_CONSOLE is not set 1798 | # CONFIG_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set 1799 | # CONFIG_EVENT_LOOP_PROFILING is not set 1800 | CONFIG_POST_EVENTS_FROM_ISR=y 1801 | CONFIG_POST_EVENTS_FROM_IRAM_ISR=y 1802 | # CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set 1803 | CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y 1804 | CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4 1805 | CONFIG_ESP_SYSTEM_PD_FLASH=y 1806 | CONFIG_ESP32C3_LIGHTSLEEP_GPIO_RESET_WORKAROUND=y 1807 | CONFIG_IPC_TASK_STACK_SIZE=1536 1808 | CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y 1809 | # CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set 1810 | CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20 1811 | CONFIG_ESP32_PHY_MAX_TX_POWER=20 1812 | CONFIG_ESP32_REDUCE_PHY_TX_POWER=y 1813 | # CONFIG_ESP32S2_PANIC_PRINT_HALT is not set 1814 | CONFIG_ESP32S2_PANIC_PRINT_REBOOT=y 1815 | # CONFIG_ESP32S2_PANIC_SILENT_REBOOT is not set 1816 | # CONFIG_ESP32S2_PANIC_GDBSTUB is not set 1817 | CONFIG_ESP32S2_ALLOW_RTC_FAST_MEM_AS_HEAP=y 1818 | CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 1819 | CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304 1820 | CONFIG_MAIN_TASK_STACK_SIZE=3584 1821 | CONFIG_CONSOLE_UART_DEFAULT=y 1822 | # CONFIG_CONSOLE_UART_CUSTOM is not set 1823 | # CONFIG_ESP_CONSOLE_UART_NONE is not set 1824 | CONFIG_CONSOLE_UART=y 1825 | CONFIG_CONSOLE_UART_NUM=0 1826 | CONFIG_CONSOLE_UART_BAUDRATE=115200 1827 | CONFIG_INT_WDT=y 1828 | CONFIG_INT_WDT_TIMEOUT_MS=300 1829 | CONFIG_TASK_WDT=y 1830 | # CONFIG_TASK_WDT_PANIC is not set 1831 | CONFIG_TASK_WDT_TIMEOUT_S=5 1832 | CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y 1833 | # CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set 1834 | CONFIG_TIMER_TASK_STACK_SIZE=3584 1835 | CONFIG_SW_COEXIST_ENABLE=y 1836 | # CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set 1837 | # CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set 1838 | CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y 1839 | CONFIG_MB_MASTER_TIMEOUT_MS_RESPOND=150 1840 | CONFIG_MB_MASTER_DELAY_MS_CONVERT=200 1841 | CONFIG_MB_QUEUE_LENGTH=20 1842 | CONFIG_MB_SERIAL_TASK_STACK_SIZE=4096 1843 | CONFIG_MB_SERIAL_BUF_SIZE=256 1844 | CONFIG_MB_SERIAL_TASK_PRIO=10 1845 | CONFIG_MB_CONTROLLER_SLAVE_ID_SUPPORT=y 1846 | CONFIG_MB_CONTROLLER_SLAVE_ID=0x00112233 1847 | CONFIG_MB_CONTROLLER_NOTIFY_TIMEOUT=20 1848 | CONFIG_MB_CONTROLLER_NOTIFY_QUEUE_SIZE=20 1849 | CONFIG_MB_CONTROLLER_STACK_SIZE=4096 1850 | CONFIG_MB_EVENT_QUEUE_TIMEOUT=20 1851 | # CONFIG_MB_TIMER_PORT_ENABLED is not set 1852 | CONFIG_MB_TIMER_GROUP=0 1853 | CONFIG_MB_TIMER_INDEX=0 1854 | # CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set 1855 | CONFIG_TIMER_TASK_PRIORITY=1 1856 | CONFIG_TIMER_TASK_STACK_DEPTH=2048 1857 | CONFIG_TIMER_QUEUE_LENGTH=10 1858 | # CONFIG_L2_TO_L3_COPY is not set 1859 | # CONFIG_USE_ONLY_LWIP_SELECT is not set 1860 | CONFIG_ESP_GRATUITOUS_ARP=y 1861 | CONFIG_GARP_TMR_INTERVAL=60 1862 | CONFIG_TCPIP_RECVMBOX_SIZE=32 1863 | CONFIG_TCP_MAXRTX=12 1864 | CONFIG_TCP_SYNMAXRTX=12 1865 | CONFIG_TCP_MSS=1440 1866 | CONFIG_TCP_MSL=60000 1867 | CONFIG_TCP_SND_BUF_DEFAULT=5744 1868 | CONFIG_TCP_WND_DEFAULT=5744 1869 | CONFIG_TCP_RECVMBOX_SIZE=6 1870 | CONFIG_TCP_QUEUE_OOSEQ=y 1871 | # CONFIG_ESP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES is not set 1872 | CONFIG_TCP_OVERSIZE_MSS=y 1873 | # CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set 1874 | # CONFIG_TCP_OVERSIZE_DISABLE is not set 1875 | CONFIG_UDP_RECVMBOX_SIZE=6 1876 | CONFIG_TCPIP_TASK_STACK_SIZE=3072 1877 | CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y 1878 | # CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set 1879 | CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF 1880 | # CONFIG_PPP_SUPPORT is not set 1881 | CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5 1882 | CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 1883 | CONFIG_ESP32_PTHREAD_STACK_MIN=768 1884 | CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1 1885 | CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread" 1886 | CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y 1887 | # CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set 1888 | # CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set 1889 | CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y 1890 | CONFIG_SUPPORT_TERMIOS=y 1891 | CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 1892 | CONFIG_SEMIHOSTFS_HOST_PATH_MAX_LEN=128 1893 | # End of deprecated options 1894 | -------------------------------------------------------------------------------- /sdkconfig.ci: -------------------------------------------------------------------------------- 1 | CONFIG_LOG_DEFAULT_LEVEL_DEBUG=y 2 | CONFIG_BROKER_URL="FROM_STDIN" 3 | CONFIG_ESP_NETIF_TCPIP_ADAPTER_COMPATIBLE_LAYER=n 4 | CONFIG_EXAMPLE_CONNECT_ETHERNET=y 5 | CONFIG_EXAMPLE_CONNECT_WIFI=n 6 | CONFIG_EXAMPLE_USE_INTERNAL_ETHERNET=y 7 | CONFIG_EXAMPLE_ETH_PHY_IP101=y 8 | CONFIG_EXAMPLE_ETH_MDC_GPIO=23 9 | CONFIG_EXAMPLE_ETH_MDIO_GPIO=18 10 | CONFIG_EXAMPLE_ETH_PHY_RST_GPIO=5 11 | CONFIG_EXAMPLE_ETH_PHY_ADDR=1 12 | CONFIG_EXAMPLE_CONNECT_IPV6=y 13 | --------------------------------------------------------------------------------