From 4898fe46136cab0e8505cc35e0723e5de9252fd1 Mon Sep 17 00:00:00 2001 From: geeksville Date: Sun, 14 Jun 2020 19:39:21 -0700 Subject: [PATCH 1/5] Fixes for BLE reliability, see below * Turn off Bluetooth classic * Turn off using SPIRAM for bluetooth data * CONFIG_PM_ENABLE (to enable modem sleep optionally) * CONFIG_FREERTOSS_USE_TICKLESS_IDLE (to optionally use modem sleep) --- sdkconfig | 32 ++++++++++++++------------------ tools/config.sh | 2 +- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/sdkconfig b/sdkconfig index 7b9ea8558..827038b65 100644 --- a/sdkconfig +++ b/sdkconfig @@ -18,6 +18,7 @@ CONFIG_MAKE_WARN_UNDEFINED_VARIABLES=y CONFIG_APP_COMPILE_TIME_DATE=y CONFIG_APP_EXCLUDE_PROJECT_VER_VAR= CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR= +CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16 # # Arduino Configuration @@ -180,17 +181,14 @@ CONFIG_BT_ENABLED=y # # Bluetooth controller # -CONFIG_BTDM_CONTROLLER_MODE_BLE_ONLY= +CONFIG_BTDM_CONTROLLER_MODE_BLE_ONLY=y CONFIG_BTDM_CONTROLLER_MODE_BR_EDR_ONLY= -CONFIG_BTDM_CONTROLLER_MODE_BTDM=y +CONFIG_BTDM_CONTROLLER_MODE_BTDM= CONFIG_BTDM_CONTROLLER_BLE_MAX_CONN=3 -CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN=2 -CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN=0 CONFIG_BTDM_CTRL_BR_EDR_SCO_DATA_PATH_EFF=0 -CONFIG_BTDM_CTRL_AUTO_LATENCY= CONFIG_BTDM_CTRL_AUTO_LATENCY_EFF= CONFIG_BTDM_CONTROLLER_BLE_MAX_CONN_EFF=3 -CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF=2 +CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF=0 CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF=0 CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE_0=y CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE_1= @@ -224,16 +222,7 @@ CONFIG_BLUEDROID_PINNED_TO_CORE=0 CONFIG_BTC_TASK_STACK_SIZE=8192 CONFIG_BTU_TASK_STACK_SIZE=4096 CONFIG_BLUEDROID_MEM_DEBUG= -CONFIG_CLASSIC_BT_ENABLED=y -CONFIG_A2DP_ENABLE=y -CONFIG_A2DP_SINK_TASK_STACK_SIZE=2048 -CONFIG_A2DP_SOURCE_TASK_STACK_SIZE=2048 -CONFIG_BT_SPP_ENABLED=y -CONFIG_HFP_ENABLE=y -CONFIG_HFP_CLIENT_ENABLE=y -CONFIG_HFP_AUDIO_DATA_PATH_PCM=y -CONFIG_HFP_AUDIO_DATA_PATH_HCI= -CONFIG_BT_SSP_ENABLED=y +CONFIG_CLASSIC_BT_ENABLED= CONFIG_GATTS_ENABLE=y CONFIG_GATTS_SEND_SERVICE_CHANGE_MANUAL= CONFIG_GATTS_SEND_SERVICE_CHANGE_AUTO=y @@ -244,7 +233,7 @@ CONFIG_BLE_SMP_ENABLE=y CONFIG_SMP_SLAVE_CON_PARAMS_UPD_ENABLE= CONFIG_BT_STACK_NO_LOG=y CONFIG_BT_ACL_CONNECTIONS=4 -CONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST=y +CONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST= CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY=y CONFIG_BLE_HOST_QUEUE_CONGESTION_CHECK= CONFIG_SMP_ENABLE=y @@ -352,6 +341,7 @@ CONFIG_D2WD_PSRAM_CS_IO=10 # CONFIG_PICO_PSRAM_CS_IO=10 CONFIG_SPIRAM_SPIWP_SD3_PIN=7 +CONFIG_SPIRAM_2T_MODE= CONFIG_MEMMAP_TRACEMEM= CONFIG_MEMMAP_TRACEMEM_TWOBANKS= CONFIG_ESP32_TRAX= @@ -458,7 +448,11 @@ CONFIG_ESP32_PHY_MAX_TX_POWER=20 # # Power Management # -CONFIG_PM_ENABLE= +CONFIG_PM_ENABLE=y +CONFIG_PM_DFS_INIT_AUTO= +CONFIG_PM_USE_RTC_TIMER_REF= +CONFIG_PM_PROFILING= +CONFIG_PM_TRACE= # # Camera configuration @@ -607,6 +601,8 @@ CONFIG_TIMER_QUEUE_LENGTH=10 CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 CONFIG_FREERTOS_USE_TRACE_FACILITY= CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS= +CONFIG_FREERTOS_USE_TICKLESS_IDLE=y +CONFIG_FREERTOS_IDLE_TIME_BEFORE_SLEEP=3 CONFIG_FREERTOS_DEBUG_INTERNALS= CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y diff --git a/tools/config.sh b/tools/config.sh index 7db15d261..ed0d08e11 100755 --- a/tools/config.sh +++ b/tools/config.sh @@ -13,7 +13,7 @@ if [ -z $IDF_BRANCH ]; then fi # Owner of the target ESP32 Arduino repository -AR_USER="espressif" +AR_USER="meshtastic" # The full name of the repository AR_REPO="$AR_USER/arduino-esp32" From 95eabad3a584856a4722ccbfd554014140489d06 Mon Sep 17 00:00:00 2001 From: geeksville Date: Tue, 7 Jul 2020 17:37:18 -0700 Subject: [PATCH 2/5] Experiment with making more iram available and using more spiram --- sdkconfig | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/sdkconfig b/sdkconfig index 827038b65..d400074e2 100644 --- a/sdkconfig +++ b/sdkconfig @@ -145,8 +145,8 @@ CONFIG_PARTITION_TABLE_MD5=y # # Compiler options # -CONFIG_OPTIMIZATION_LEVEL_DEBUG=y -CONFIG_OPTIMIZATION_LEVEL_RELEASE= +CONFIG_OPTIMIZATION_LEVEL_DEBUG= +CONFIG_OPTIMIZATION_LEVEL_RELEASE=y CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y CONFIG_OPTIMIZATION_ASSERTIONS_SILENT= CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED= @@ -233,7 +233,7 @@ CONFIG_BLE_SMP_ENABLE=y CONFIG_SMP_SLAVE_CON_PARAMS_UPD_ENABLE= CONFIG_BT_STACK_NO_LOG=y CONFIG_BT_ACL_CONNECTIONS=4 -CONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST= +CONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST=y CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY=y CONFIG_BLE_HOST_QUEUE_CONGESTION_CHECK= CONFIG_SMP_ENABLE=y @@ -258,7 +258,7 @@ CONFIG_ADC2_DISABLE_DAC=y CONFIG_SPI_MASTER_IN_IRAM= CONFIG_SPI_MASTER_ISR_IN_IRAM=y CONFIG_SPI_SLAVE_IN_IRAM= -CONFIG_SPI_SLAVE_ISR_IN_IRAM=y +CONFIG_SPI_SLAVE_ISR_IN_IRAM= # # eFuse Bit Manager @@ -309,7 +309,8 @@ CONFIG_SPIRAM_SUPPORT=y # # SPI RAM config # -CONFIG_SPIRAM_BOOT_INIT= +CONFIG_SPIRAM_BOOT_INIT=y +CONFIG_SPIRAM_IGNORE_NOTFOUND= CONFIG_SPIRAM_USE_MEMMAP= CONFIG_SPIRAM_USE_CAPS_ALLOC=y CONFIG_SPIRAM_USE_MALLOC= @@ -318,10 +319,11 @@ CONFIG_SPIRAM_TYPE_ESPPSRAM32= CONFIG_SPIRAM_TYPE_ESPPSRAM64= CONFIG_SPIRAM_SIZE=-1 CONFIG_SPIRAM_SPEED_40M=y +CONFIG_SPIRAM_MEMTEST=y CONFIG_SPIRAM_CACHE_WORKAROUND=y CONFIG_SPIRAM_BANKSWITCH_ENABLE=y CONFIG_SPIRAM_BANKSWITCH_RESERVE=8 -CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST= +CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST=y CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY= # @@ -434,8 +436,8 @@ CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1= CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752 CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32 CONFIG_ESP32_WIFI_DEBUG_LOG_ENABLE= -CONFIG_ESP32_WIFI_IRAM_OPT=y -CONFIG_ESP32_WIFI_RX_IRAM_OPT=y +CONFIG_ESP32_WIFI_IRAM_OPT= +CONFIG_ESP32_WIFI_RX_IRAM_OPT= # # PHY @@ -604,7 +606,6 @@ CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS= CONFIG_FREERTOS_USE_TICKLESS_IDLE=y CONFIG_FREERTOS_IDLE_TIME_BEFORE_SLEEP=3 CONFIG_FREERTOS_DEBUG_INTERNALS= -CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE= @@ -683,6 +684,7 @@ CONFIG_ESP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES= CONFIG_TCP_OVERSIZE_MSS=y CONFIG_TCP_OVERSIZE_QUARTER_MSS= CONFIG_TCP_OVERSIZE_DISABLE= +CONFIG_LWIP_WND_SCALE= # # UDP From 1523f68e065fd852d4f7e1a9ce6c353a96c30995 Mon Sep 17 00:00:00 2001 From: geeksville Date: Sat, 18 Jul 2020 16:21:16 -0700 Subject: [PATCH 3/5] make SPIRAM optional --- sdkconfig | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sdkconfig b/sdkconfig index d400074e2..1a0b20229 100644 --- a/sdkconfig +++ b/sdkconfig @@ -310,7 +310,7 @@ CONFIG_SPIRAM_SUPPORT=y # SPI RAM config # CONFIG_SPIRAM_BOOT_INIT=y -CONFIG_SPIRAM_IGNORE_NOTFOUND= +CONFIG_SPIRAM_IGNORE_NOTFOUND=y CONFIG_SPIRAM_USE_MEMMAP= CONFIG_SPIRAM_USE_CAPS_ALLOC=y CONFIG_SPIRAM_USE_MALLOC= @@ -644,6 +644,7 @@ CONFIG_LWIP_IRAM_OPTIMIZATION= CONFIG_LWIP_MAX_SOCKETS=10 CONFIG_LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS=y CONFIG_USE_ONLY_LWIP_SELECT= +CONFIG_LWIP_SO_LINGER= CONFIG_LWIP_SO_REUSE=y CONFIG_LWIP_SO_REUSE_RXTOALL=y CONFIG_LWIP_SO_RCVBUF=y @@ -923,3 +924,8 @@ CONFIG_WL_SECTOR_SIZE=4096 # Wi-Fi Provisioning Manager # CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16 + +# +# Supplicant +# +CONFIG_WPA_WPS_WARS=y From 3d3f96ac7392cbc01b529172e279797917c0d40f Mon Sep 17 00:00:00 2001 From: geeksville Date: Fri, 24 Jul 2020 12:34:02 -0700 Subject: [PATCH 4/5] Switch to NimBLE from Bluedroid Meshtastic patched version esp-idf commit #e7f316d5a4eb64ca52d40575cb20815d456a9c4f used. In support of: https://github.com/meshtastic/Meshtastic-device/issues/266 --- sdkconfig | 69 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 42 insertions(+), 27 deletions(-) diff --git a/sdkconfig b/sdkconfig index 1a0b20229..48deb70a6 100644 --- a/sdkconfig +++ b/sdkconfig @@ -187,6 +187,7 @@ CONFIG_BTDM_CONTROLLER_MODE_BTDM= CONFIG_BTDM_CONTROLLER_BLE_MAX_CONN=3 CONFIG_BTDM_CTRL_BR_EDR_SCO_DATA_PATH_EFF=0 CONFIG_BTDM_CTRL_AUTO_LATENCY_EFF= +CONFIG_BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT_EFF= CONFIG_BTDM_CONTROLLER_BLE_MAX_CONN_EFF=3 CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF=0 CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF=0 @@ -208,38 +209,52 @@ CONFIG_SCAN_DUPLICATE_BY_DEVICE_ADDR=y CONFIG_SCAN_DUPLICATE_BY_ADV_DATA= CONFIG_SCAN_DUPLICATE_BY_ADV_DATA_AND_DEVICE_ADDR= CONFIG_SCAN_DUPLICATE_TYPE=0 -CONFIG_DUPLICATE_SCAN_CACHE_SIZE=20 +CONFIG_DUPLICATE_SCAN_CACHE_SIZE=200 CONFIG_BLE_MESH_SCAN_DUPLICATE_EN= CONFIG_BTDM_CONTROLLER_FULL_SCAN_SUPPORTED=y CONFIG_BLE_ADV_REPORT_FLOW_CONTROL_SUPPORTED=y CONFIG_BLE_ADV_REPORT_FLOW_CONTROL_NUM=100 CONFIG_BLE_ADV_REPORT_DISCARD_THRSHOLD=20 CONFIG_BTDM_COEX_BT_OPTIONS= -CONFIG_BLUEDROID_ENABLED=y -CONFIG_BLUEDROID_PINNED_TO_CORE_0=y -CONFIG_BLUEDROID_PINNED_TO_CORE_1= -CONFIG_BLUEDROID_PINNED_TO_CORE=0 -CONFIG_BTC_TASK_STACK_SIZE=8192 -CONFIG_BTU_TASK_STACK_SIZE=4096 -CONFIG_BLUEDROID_MEM_DEBUG= -CONFIG_CLASSIC_BT_ENABLED= -CONFIG_GATTS_ENABLE=y -CONFIG_GATTS_SEND_SERVICE_CHANGE_MANUAL= -CONFIG_GATTS_SEND_SERVICE_CHANGE_AUTO=y -CONFIG_GATTS_SEND_SERVICE_CHANGE_MODE=0 -CONFIG_GATTC_ENABLE=y -CONFIG_GATTC_CACHE_NVS_FLASH= -CONFIG_BLE_SMP_ENABLE=y -CONFIG_SMP_SLAVE_CON_PARAMS_UPD_ENABLE= -CONFIG_BT_STACK_NO_LOG=y -CONFIG_BT_ACL_CONNECTIONS=4 -CONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST=y -CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY=y -CONFIG_BLE_HOST_QUEUE_CONGESTION_CHECK= -CONFIG_SMP_ENABLE=y -CONFIG_BLE_ACTIVE_SCAN_REPORT_ADV_SCAN_RSP_INDIVIDUALLY= -CONFIG_BLE_ESTABLISH_LINK_CONNECTION_TIMEOUT=30 +CONFIG_BLUEDROID_ENABLED= CONFIG_BT_RESERVE_DRAM=0xdb5c +CONFIG_NIMBLE_ENABLED=y +CONFIG_NIMBLE_MEM_ALLOC_MODE_INTERNAL= +CONFIG_NIMBLE_MEM_ALLOC_MODE_DEFAULT=y +CONFIG_NIMBLE_MAX_CONNECTIONS=3 +CONFIG_NIMBLE_MAX_BONDS=3 +CONFIG_NIMBLE_MAX_CCCDS=8 +CONFIG_NIMBLE_L2CAP_COC_MAX_NUM=0 +CONFIG_NIMBLE_PINNED_TO_CORE_0=y +CONFIG_NIMBLE_PINNED_TO_CORE_1= +CONFIG_NIMBLE_PINNED_TO_CORE=0 +CONFIG_NIMBLE_TASK_STACK_SIZE=4096 +CONFIG_NIMBLE_ROLE_CENTRAL=y +CONFIG_NIMBLE_ROLE_PERIPHERAL=y +CONFIG_NIMBLE_ROLE_BROADCASTER=y +CONFIG_NIMBLE_ROLE_OBSERVER=y +CONFIG_NIMBLE_NVS_PERSIST=y +CONFIG_NIMBLE_SM_LEGACY=y +CONFIG_NIMBLE_SM_SC=y +CONFIG_NIMBLE_DEBUG= +CONFIG_NIMBLE_SM_SC_DEBUG_KEYS= +CONFIG_NIMBLE_SVC_GAP_DEVICE_NAME="nimble" +CONFIG_NIMBLE_GAP_DEVICE_NAME_MAX_LEN=31 +CONFIG_NIMBLE_ATT_PREFERRED_MTU=256 +CONFIG_NIMBLE_SVC_GAP_APPEARANCE=0 +CONFIG_NIMBLE_ACL_BUF_COUNT=12 +CONFIG_NIMBLE_ACL_BUF_SIZE=255 +CONFIG_NIMBLE_HCI_EVT_BUF_SIZE=70 +CONFIG_NIMBLE_HCI_EVT_HI_BUF_COUNT=30 +CONFIG_NIMBLE_HCI_EVT_LO_BUF_COUNT=8 +CONFIG_NIMBLE_MSYS1_BLOCK_COUNT=12 +CONFIG_NIMBLE_HS_FLOW_CTRL=y +CONFIG_NIMBLE_HS_FLOW_CTRL_ITVL=1000 +CONFIG_NIMBLE_HS_FLOW_CTRL_THRESH=2 +CONFIG_NIMBLE_HS_FLOW_CTRL_TX_ON_DISCONNECT=y +CONFIG_NIMBLE_RPA_TIMEOUT=900 +CONFIG_NIMBLE_MESH= +CONFIG_NIMBLE_CRYPTO_STACK_MBEDTLS=y CONFIG_BLE_MESH= # @@ -733,8 +748,8 @@ CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC= CONFIG_MBEDTLS_SSL_MAX_CONTENT_LEN=16384 CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN= CONFIG_MBEDTLS_DEBUG= -CONFIG_MBEDTLS_ECP_RESTARTABLE= -CONFIG_MBEDTLS_CMAC_C= +CONFIG_MBEDTLS_ECP_RESTARTABLE=y +CONFIG_MBEDTLS_CMAC_C=y CONFIG_MBEDTLS_HARDWARE_AES=y CONFIG_MBEDTLS_HARDWARE_MPI= CONFIG_MBEDTLS_HARDWARE_SHA= From 8f12239e27c5609a5ac7bc07a984a2048bdb2f90 Mon Sep 17 00:00:00 2001 From: Kevin Hester Date: Fri, 25 Dec 2020 10:55:01 +0800 Subject: [PATCH 5/5] Use internal 8mhz clock for RTC - the RC clock drifts very fast in support of https://github.com/meshtastic/Meshtastic-device/issues/584 --- sdkconfig | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/sdkconfig b/sdkconfig index 48deb70a6..9af9007da 100644 --- a/sdkconfig +++ b/sdkconfig @@ -302,8 +302,15 @@ CONFIG_MFN56_4X= # # Object Detection # -CONFIG_LSSH_SPARSE_MN_5=y -CONFIG_LSSH_WITH_LANDMARK= +CONFIG_DETECT_WITH_LANDMARK= + +# +# Pose Estimation +# +CONFIG_HD_NANO1=y +CONFIG_HD_LITE1= +CONFIG_HP_NANO1=y +CONFIG_HP_LITE1= # # ESP32-specific @@ -414,10 +421,10 @@ CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y CONFIG_ESP32_TIME_SYSCALL_USE_RTC= CONFIG_ESP32_TIME_SYSCALL_USE_FRC1= CONFIG_ESP32_TIME_SYSCALL_USE_NONE= -CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y +CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC= CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL= CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC= -CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256= +CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256=y CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024 CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000 CONFIG_ESP32_XTAL_FREQ_40= @@ -474,11 +481,12 @@ CONFIG_PM_TRACE= # # Camera configuration # -CONFIG_OV2640_SUPPORT=y +CONFIG_OV7670_SUPPORT=y CONFIG_OV7725_SUPPORT=y +CONFIG_NT99141_SUPPORT=y +CONFIG_OV2640_SUPPORT=y CONFIG_OV3660_SUPPORT=y CONFIG_OV5640_SUPPORT=y -CONFIG_SCCB_HARDWARE_I2C=y CONFIG_SCCB_HARDWARE_I2C_PORT0= CONFIG_SCCB_HARDWARE_I2C_PORT1=y CONFIG_CAMERA_CORE0=