[Ovmsdev] Bluetooth struggle

Michael Balzer dexter at expeedo.de
Sat Mar 28 04:22:55 HKT 2020


Chris,

sorry for the outdated bluetooth sdkconfig and lack of info on this.

The bluetooth component development was done by Mark. It's been stopped at an early stage without usable functionality IIRC. It was supposed to pair, but
nothing else. It used up a lot of memory we needed for other tasks, and there was no real need for this, so we excluded it from the standard build.

It's been stuck there since mid 2018, and the IDF API may have changed in the meantime. I think the IDF even introduced a whole new driver approach later on, so
the component may need a complete rewrite.

You're welcome to work on that, but maybe there are better options for what you'd like to do, or you can work with a simplified approach.

If I understood you correctly, you would like to access the UpMiiGo's main CAN bus via a bluetooth OBD2 dongle, because the main CAN isn't available at your
preferred OVMS mounting point.

My own experiences with bluetooth OBD2 dongles were all bad, very slow and unreliable, unsuitable for live CAN data. That's been years ago, maybe the situation
has changed, but I still would prefer a cable, also because I don't trust these cheap bluetooth (or wifi) devices to be secure. Isn't the CAN bus reachable
somewhere near?

Regards,
Michael


Am 27.03.20 um 19:57 schrieb Chris van der Meijden:
> Hi all
>
> To make my question a bit more "transparent" I put templates of my
> bluetooth Kconfig and sdkconfig here
>
> https://github.com/devmarxx/Open-Vehicle-Monitoring-System-3/tree/maste
> r/vehicle/OVMS.V3/support
>
> in my github. The templates both end on .devmarxx
>
> Good health to everyone and take care!
>
> Greetinx
>
> Chris
>
> Am Donnerstag, den 26.03.2020, 20:46 +0100 schrieb Chris van der
> Meijden:
>> Dear all
>>
>> I'm struggling with the activation of the bluetooth functionality
>> with
>> the recent code.
>>
>> The sdkconfig.bluetooth.hw31 will not compile at all.
>>
>> I found three major problems here.
>>
>> 1. Mongoose SSL is needed
>> 2. Support for the 8MB RAM version is needed (not included in
>> sdkconfig.bluetooth.hw31!)
>> 3. CONFIG_BTDM_CONTROLLER_BR_EDR_SCO_DATA_PATH_EFF is needed for our
>> special esp-idf situation
>>
>> By doing a simple diff I could solve 1, but overlooked Nr. 2. And
>> that
>> was lethal. It brought my OVMS in a boot loop after I installed the
>> fresh compiled ovms3.bin. But I got here great help from Thomas
>> (Thanx!), who pointed to the problem and helped me out on the
>> sdkconfig
>> settings.
>>
>> For Nr. 3 I made a dirty workaround by adding
>>
>> config BTDM_CONTROLLER_BR_EDR_SCO_DATA_PATH_EFF
>>     int "Should be 0, can also be 1"
>>     default 0
>>     depends on OVMS
>>     help
>>         Workaround to make bluetooth compile with our special
>>         esp-idf situation. 
>>
>> to the KConfig.
>>
>> But all efforts didn't bring a postive result. The image compiles and
>> boots now, but we can't activate bluetooth. We get the Error
>>
>> bt: init controller failed: ESP_ERR_NO_MEM
>>
>> So I would like to ask, if anybody has a working, recent, bluetooth
>> image and if so what does it need? Any help on this is highly
>> welcome.
>>
>> Here the diff of my bluetooth sdkconfig to the standard sdkconfig
>> without bluetooth:
>>
>> 137,146c137,138
>> < CONFIG_BT_ENABLED=y
>>>> < #
>> < # Bluetooth controller
>> < #
>> < CONFIG_BTDM_CONTROLLER_MODE_BLE_ONLY=y
>> < CONFIG_BTDM_CONTROLLER_MODE_BR_EDR_ONLY=
>> < CONFIG_BTDM_CONTROLLER_MODE_BTDM=
>> < CONFIG_BTDM_CONTROLLER_BLE_MAX_CONN=3
>> < CONFIG_BTDM_CONTROLLER_BLE_MAX_CONN_EFF=3
>> ---
>>> CONFIG_BT_ENABLED=
>>> CONFIG_BTDM_CONTROLLER_BLE_MAX_CONN_EFF=0
>> 149,150d140
>> < CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE_0=y
>> < CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE_1=
>> 152,365c142
>> < CONFIG_BTDM_CONTROLLER_HCI_MODE_VHCI=y
>> < CONFIG_BTDM_CONTROLLER_HCI_MODE_UART_H4=
>>>> < #
>> < # MODEM SLEEP Options
>> < #
>> < CONFIG_BTDM_CONTROLLER_MODEM_SLEEP=
>> < CONFIG_BLE_SCAN_DUPLICATE=y
>> < 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_BLE_MESH_SCAN_DUPLICATE_EN=
>> < CONFIG_BTDM_CONTROLLER_FULL_SCAN_SUPPORTED=
>> < CONFIG_BLE_ADV_REPORT_FLOW_CONTROL_SUPPORTED=y
>> < CONFIG_BLE_ADV_REPORT_FLOW_CONTROL_NUM=100
>> < CONFIG_BLE_ADV_REPORT_DISCARD_THRSHOLD=20
>> < 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=6144
>> < 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=
>> < CONFIG_BLE_SMP_ENABLE=y
>> < CONFIG_SMP_SLAVE_CON_PARAMS_UPD_ENABLE=
>> < CONFIG_BT_STACK_NO_LOG=
>>>> < #
>> < # BT DEBUG LOG LEVEL
>> < #
>> < CONFIG_HCI_TRACE_LEVEL_NONE=
>> < CONFIG_HCI_TRACE_LEVEL_ERROR=
>> < CONFIG_HCI_TRACE_LEVEL_WARNING=y
>> < CONFIG_HCI_TRACE_LEVEL_API=
>> < CONFIG_HCI_TRACE_LEVEL_EVENT=
>> < CONFIG_HCI_TRACE_LEVEL_DEBUG=
>> < CONFIG_HCI_TRACE_LEVEL_VERBOSE=
>> < CONFIG_HCI_INITIAL_TRACE_LEVEL=2
>> < CONFIG_BTM_TRACE_LEVEL_NONE=
>> < CONFIG_BTM_TRACE_LEVEL_ERROR=
>> < CONFIG_BTM_TRACE_LEVEL_WARNING=y
>> < CONFIG_BTM_TRACE_LEVEL_API=
>> < CONFIG_BTM_TRACE_LEVEL_EVENT=
>> < CONFIG_BTM_TRACE_LEVEL_DEBUG=
>> < CONFIG_BTM_TRACE_LEVEL_VERBOSE=
>> < CONFIG_BTM_INITIAL_TRACE_LEVEL=2
>> < CONFIG_L2CAP_TRACE_LEVEL_NONE=
>> < CONFIG_L2CAP_TRACE_LEVEL_ERROR=
>> < CONFIG_L2CAP_TRACE_LEVEL_WARNING=y
>> < CONFIG_L2CAP_TRACE_LEVEL_API=
>> < CONFIG_L2CAP_TRACE_LEVEL_EVENT=
>> < CONFIG_L2CAP_TRACE_LEVEL_DEBUG=
>> < CONFIG_L2CAP_TRACE_LEVEL_VERBOSE=
>> < CONFIG_L2CAP_INITIAL_TRACE_LEVEL=2
>> < CONFIG_RFCOMM_TRACE_LEVEL_NONE=
>> < CONFIG_RFCOMM_TRACE_LEVEL_ERROR=
>> < CONFIG_RFCOMM_TRACE_LEVEL_WARNING=y
>> < CONFIG_RFCOMM_TRACE_LEVEL_API=
>> < CONFIG_RFCOMM_TRACE_LEVEL_EVENT=
>> < CONFIG_RFCOMM_TRACE_LEVEL_DEBUG=
>> < CONFIG_RFCOMM_TRACE_LEVEL_VERBOSE=
>> < CONFIG_RFCOMM_INITIAL_TRACE_LEVEL=2
>> < CONFIG_SDP_TRACE_LEVEL_NONE=
>> < CONFIG_SDP_TRACE_LEVEL_ERROR=
>> < CONFIG_SDP_TRACE_LEVEL_WARNING=y
>> < CONFIG_SDP_TRACE_LEVEL_API=
>> < CONFIG_SDP_TRACE_LEVEL_EVENT=
>> < CONFIG_SDP_TRACE_LEVEL_DEBUG=
>> < CONFIG_SDP_TRACE_LEVEL_VERBOSE=
>> < CONFIG_SDP_INITIAL_TRACE_LEVEL=2
>> < CONFIG_GAP_TRACE_LEVEL_NONE=
>> < CONFIG_GAP_TRACE_LEVEL_ERROR=
>> < CONFIG_GAP_TRACE_LEVEL_WARNING=y
>> < CONFIG_GAP_TRACE_LEVEL_API=
>> < CONFIG_GAP_TRACE_LEVEL_EVENT=
>> < CONFIG_GAP_TRACE_LEVEL_DEBUG=
>> < CONFIG_GAP_TRACE_LEVEL_VERBOSE=
>> < CONFIG_GAP_INITIAL_TRACE_LEVEL=2
>> < CONFIG_BNEP_TRACE_LEVEL_NONE=
>> < CONFIG_BNEP_TRACE_LEVEL_ERROR=
>> < CONFIG_BNEP_TRACE_LEVEL_WARNING=y
>> < CONFIG_BNEP_TRACE_LEVEL_API=
>> < CONFIG_BNEP_TRACE_LEVEL_EVENT=
>> < CONFIG_BNEP_TRACE_LEVEL_DEBUG=
>> < CONFIG_BNEP_TRACE_LEVEL_VERBOSE=
>> < CONFIG_BNEP_INITIAL_TRACE_LEVEL=2
>> < CONFIG_PAN_TRACE_LEVEL_NONE=
>> < CONFIG_PAN_TRACE_LEVEL_ERROR=
>> < CONFIG_PAN_TRACE_LEVEL_WARNING=y
>> < CONFIG_PAN_TRACE_LEVEL_API=
>> < CONFIG_PAN_TRACE_LEVEL_EVENT=
>> < CONFIG_PAN_TRACE_LEVEL_DEBUG=
>> < CONFIG_PAN_TRACE_LEVEL_VERBOSE=
>> < CONFIG_PAN_INITIAL_TRACE_LEVEL=2
>> < CONFIG_A2D_TRACE_LEVEL_NONE=
>> < CONFIG_A2D_TRACE_LEVEL_ERROR=
>> < CONFIG_A2D_TRACE_LEVEL_WARNING=y
>> < CONFIG_A2D_TRACE_LEVEL_API=
>> < CONFIG_A2D_TRACE_LEVEL_EVENT=
>> < CONFIG_A2D_TRACE_LEVEL_DEBUG=
>> < CONFIG_A2D_TRACE_LEVEL_VERBOSE=
>> < CONFIG_A2D_INITIAL_TRACE_LEVEL=2
>> < CONFIG_AVDT_TRACE_LEVEL_NONE=
>> < CONFIG_AVDT_TRACE_LEVEL_ERROR=
>> < CONFIG_AVDT_TRACE_LEVEL_WARNING=y
>> < CONFIG_AVDT_TRACE_LEVEL_API=
>> < CONFIG_AVDT_TRACE_LEVEL_EVENT=
>> < CONFIG_AVDT_TRACE_LEVEL_DEBUG=
>> < CONFIG_AVDT_TRACE_LEVEL_VERBOSE=
>> < CONFIG_AVDT_INITIAL_TRACE_LEVEL=2
>> < CONFIG_AVCT_TRACE_LEVEL_NONE=
>> < CONFIG_AVCT_TRACE_LEVEL_ERROR=
>> < CONFIG_AVCT_TRACE_LEVEL_WARNING=y
>> < CONFIG_AVCT_TRACE_LEVEL_API=
>> < CONFIG_AVCT_TRACE_LEVEL_EVENT=
>> < CONFIG_AVCT_TRACE_LEVEL_DEBUG=
>> < CONFIG_AVCT_TRACE_LEVEL_VERBOSE=
>> < CONFIG_AVCT_INITIAL_TRACE_LEVEL=2
>> < CONFIG_AVRC_TRACE_LEVEL_NONE=
>> < CONFIG_AVRC_TRACE_LEVEL_ERROR=
>> < CONFIG_AVRC_TRACE_LEVEL_WARNING=y
>> < CONFIG_AVRC_TRACE_LEVEL_API=
>> < CONFIG_AVRC_TRACE_LEVEL_EVENT=
>> < CONFIG_AVRC_TRACE_LEVEL_DEBUG=
>> < CONFIG_AVRC_TRACE_LEVEL_VERBOSE=
>> < CONFIG_AVRC_INITIAL_TRACE_LEVEL=2
>> < CONFIG_MCA_TRACE_LEVEL_NONE=
>> < CONFIG_MCA_TRACE_LEVEL_ERROR=
>> < CONFIG_MCA_TRACE_LEVEL_WARNING=y
>> < CONFIG_MCA_TRACE_LEVEL_API=
>> < CONFIG_MCA_TRACE_LEVEL_EVENT=
>> < CONFIG_MCA_TRACE_LEVEL_DEBUG=
>> < CONFIG_MCA_TRACE_LEVEL_VERBOSE=
>> < CONFIG_MCA_INITIAL_TRACE_LEVEL=2
>> < CONFIG_HID_TRACE_LEVEL_NONE=
>> < CONFIG_HID_TRACE_LEVEL_ERROR=
>> < CONFIG_HID_TRACE_LEVEL_WARNING=y
>> < CONFIG_HID_TRACE_LEVEL_API=
>> < CONFIG_HID_TRACE_LEVEL_EVENT=
>> < CONFIG_HID_TRACE_LEVEL_DEBUG=
>> < CONFIG_HID_TRACE_LEVEL_VERBOSE=
>> < CONFIG_HID_INITIAL_TRACE_LEVEL=2
>> < CONFIG_APPL_TRACE_LEVEL_NONE=
>> < CONFIG_APPL_TRACE_LEVEL_ERROR=
>> < CONFIG_APPL_TRACE_LEVEL_WARNING=y
>> < CONFIG_APPL_TRACE_LEVEL_API=
>> < CONFIG_APPL_TRACE_LEVEL_EVENT=
>> < CONFIG_APPL_TRACE_LEVEL_DEBUG=
>> < CONFIG_APPL_TRACE_LEVEL_VERBOSE=
>> < CONFIG_APPL_INITIAL_TRACE_LEVEL=2
>> < CONFIG_GATT_TRACE_LEVEL_NONE=
>> < CONFIG_GATT_TRACE_LEVEL_ERROR=
>> < CONFIG_GATT_TRACE_LEVEL_WARNING=y
>> < CONFIG_GATT_TRACE_LEVEL_API=
>> < CONFIG_GATT_TRACE_LEVEL_EVENT=
>> < CONFIG_GATT_TRACE_LEVEL_DEBUG=
>> < CONFIG_GATT_TRACE_LEVEL_VERBOSE=
>> < CONFIG_GATT_INITIAL_TRACE_LEVEL=2
>> < CONFIG_SMP_TRACE_LEVEL_NONE=
>> < CONFIG_SMP_TRACE_LEVEL_ERROR=
>> < CONFIG_SMP_TRACE_LEVEL_WARNING=y
>> < CONFIG_SMP_TRACE_LEVEL_API=
>> < CONFIG_SMP_TRACE_LEVEL_EVENT=
>> < CONFIG_SMP_TRACE_LEVEL_DEBUG=
>> < CONFIG_SMP_TRACE_LEVEL_VERBOSE=
>> < CONFIG_SMP_INITIAL_TRACE_LEVEL=2
>> < CONFIG_BTIF_TRACE_LEVEL_NONE=
>> < CONFIG_BTIF_TRACE_LEVEL_ERROR=
>> < CONFIG_BTIF_TRACE_LEVEL_WARNING=y
>> < CONFIG_BTIF_TRACE_LEVEL_API=
>> < CONFIG_BTIF_TRACE_LEVEL_EVENT=
>> < CONFIG_BTIF_TRACE_LEVEL_DEBUG=
>> < CONFIG_BTIF_TRACE_LEVEL_VERBOSE=
>> < CONFIG_BTIF_INITIAL_TRACE_LEVEL=2
>> < CONFIG_BTC_TRACE_LEVEL_NONE=
>> < CONFIG_BTC_TRACE_LEVEL_ERROR=
>> < CONFIG_BTC_TRACE_LEVEL_WARNING=y
>> < CONFIG_BTC_TRACE_LEVEL_API=
>> < CONFIG_BTC_TRACE_LEVEL_EVENT=
>> < CONFIG_BTC_TRACE_LEVEL_DEBUG=
>> < CONFIG_BTC_TRACE_LEVEL_VERBOSE=
>> < CONFIG_BTC_INITIAL_TRACE_LEVEL=2
>> < CONFIG_OSI_TRACE_LEVEL_NONE=
>> < CONFIG_OSI_TRACE_LEVEL_ERROR=
>> < CONFIG_OSI_TRACE_LEVEL_WARNING=y
>> < CONFIG_OSI_TRACE_LEVEL_API=
>> < CONFIG_OSI_TRACE_LEVEL_EVENT=
>> < CONFIG_OSI_TRACE_LEVEL_DEBUG=
>> < CONFIG_OSI_TRACE_LEVEL_VERBOSE=
>> < CONFIG_OSI_INITIAL_TRACE_LEVEL=2
>> < CONFIG_BLUFI_TRACE_LEVEL_NONE=
>> < CONFIG_BLUFI_TRACE_LEVEL_ERROR=
>> < CONFIG_BLUFI_TRACE_LEVEL_WARNING=y
>> < CONFIG_BLUFI_TRACE_LEVEL_API=
>> < CONFIG_BLUFI_TRACE_LEVEL_EVENT=
>> < CONFIG_BLUFI_TRACE_LEVEL_DEBUG=
>> < CONFIG_BLUFI_TRACE_LEVEL_VERBOSE=
>> < CONFIG_BLUFI_INITIAL_TRACE_LEVEL=2
>> < CONFIG_BT_ACL_CONNECTIONS=2
>> < 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_BT_RESERVE_DRAM=0xdb5c
>> ---
>>> CONFIG_BT_RESERVE_DRAM=0
>> 506a284
>>> CONFIG_NO_BLOBS=
>> 514d291
>> < CONFIG_SW_COEXIST_ENABLE=
>> 642c419
>> < CONFIG_FATFS_ALLOC_PREFER_EXTRAM=y
>> ---
>>> CONFIG_FATFS_ALLOC_PREFER_EXTRAM=
>> 673c450
>> < CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y
>> ---
>>> CONFIG_FREERTOS_INTERRUPT_BACKTRACE=
>> 683c460
>> < CONFIG_TIMER_TASK_PRIORITY=1
>> ---
>>> CONFIG_TIMER_TASK_PRIORITY=20
>> 688,689c465,469
>> < CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=
>> < CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=
>> ---
>>> CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
>>> CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID=
>>> CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
>>> CONFIG_FREERTOS_RUN_TIME_STATS_USING_ESP_TIMER=y
>>> CONFIG_FREERTOS_RUN_TIME_STATS_USING_CPU_CLK=
>> 775c555
>> < CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
>> ---
>>> CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=
>> 777,778c557,558
>> < CONFIG_TCPIP_TASK_AFFINITY_CPU1=
>> < CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF
>> ---
>>> CONFIG_TCPIP_TASK_AFFINITY_CPU1=y
>>> CONFIG_TCPIP_TASK_AFFINITY=0x1
>> 810c590
>> < CONFIG_OVMS_HW_CAN_RX_QUEUE_SIZE=30
>> ---
>>> CONFIG_OVMS_HW_CAN_RX_QUEUE_SIZE=60
>> 859,860c639,640
>> < CONFIG_OVMS_VEHICLE_RXTASK_STACK=6144
>> < CONFIG_OVMS_VEHICLE_CAN_RX_QUEUE_SIZE=40
>> ---
>>> CONFIG_OVMS_VEHICLE_RXTASK_STACK=8192
>>> CONFIG_OVMS_VEHICLE_CAN_RX_QUEUE_SIZE=60
>> 865d644
>> < CONFIG_OVMS_COMP_BLUETOOTH=y
>> 900d678
>> < CONFIG_BTDM_CONTROLLER_BR_EDR_SCO_DATA_PATH_EFF=0
>> 905,906c683,684
>> < CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y
>> < CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC=
>> ---
>>> CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=
>>> CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC=y
>> 909c687
>> < CONFIG_MBEDTLS_SSL_MAX_CONTENT_LEN=4096
>> ---
>>> CONFIG_MBEDTLS_SSL_MAX_CONTENT_LEN=16384
>> 929c707
>> < CONFIG_MBEDTLS_KEY_EXCHANGE_PSK=
>> ---
>>> CONFIG_MBEDTLS_KEY_EXCHANGE_PSK=y
>> 1104a883
>>> #
>> Thanx in advance for your help.
>>
>> Regards
>>
>> Chris
>>
>> _______________________________________________
>> OvmsDev mailing list
>> OvmsDev at lists.openvehicles.com
>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
> _______________________________________________
> OvmsDev mailing list
> OvmsDev at lists.openvehicles.com
> http://lists.openvehicles.com/mailman/listinfo/ovmsdev

-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26




More information about the OvmsDev mailing list