Dasduino ConnectPlus Bluetooth SerialBT.begin() causes task watchdog reset loop

Customer:

I received a Dasduino ConnectPlus to transmit measured data over Bluetooth to a computer. I tried the ‘SerialToSerialBT’ example that came with the library (I only need simple string exchange with XML messages, nothing more complex). However, the example does not work – the SerialBT.begin() function call never completes; it appears to hang in an infinite loop. I get these messages on the Serial monitor every ten seconds or so:

20:45:01.711 → E (20801) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:

20:45:01.755 → E (20801) task_wdt: – IDLE0 (CPU 0)

20:45:01.755 → E (20801) task_wdt: Tasks currently running:

20:45:01.755 → E (20801) task_wdt: CPU 0: btController

20:45:01.755 → E (20801) task_wdt: CPU 1: IDLE1

20:45:01.755 → E (20801) task_wdt: Aborting.

20:45:01.755 → abort() was called at PC on core 0

20:45:01.755 →

20:45:01.755 → ELF file SHA256:

20:45:01.755 →

20:45:01.755 → Backtrace: 0x4008df04:0x3ffbe3f0 0x4008e181:0x3ffbe410 :0x3ffbe430 0x400816c9:0x3ffbe450 0x4003c9fd:0x3ffcd2c0 0x4005516e:0x3ffcd2e0 :0x3ffcd300 0x4015737f:0x3ffcd340 0x401578c8:0x3ffcd360 0x4008f49e:0x3ffcd390

20:45:01.801 →

20:45:01.801 → Rebooting…

20:45:01.801 → ets Jul 29 2019 12:21:46

20:45:01.801 →

20:45:01.801 → rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)

20:45:01.801 → configsip: 0, SPIWP:0xee

20:45:01.801 → clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00

20:45:01.801 → mode:DIO, clock div:2

20:45:01.801 → load:0x3fff0018,len:4

20:45:01.801 → load:0x3fff001c,len:1100

20:45:01.801 → load: ,len:10900

20:45:01.801 → load: ,len:6360

20:45:01.801 → entry 0x400806b4

20:45:12.163 → E (20801) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:

20:45:12.163 → E (20801) task_wdt: – IDLE0 (CPU 0)

20:45:12.163 → E (20801) task_wdt: Tasks currently running:

20:45:12.163 → E (20801) task_wdt: CPU 0: btController

20:45:12.163 → E (20801) task_wdt: CPU 1: IDLE1

20:45:12.209 → E (20801) task_wdt: Aborting.

20:45:12.209 → abort() was called at PC on core 0

20:45:12.209 →

20:45:12.209 → ELF file SHA256:

20:45:12.209 →

20:45:12.209 → Backtrace: 0x4008df04:0x3ffbe3f0 0x4008e181:0x3ffbe410 :0x3ffbe430 0x400816c9:0x3ffbe450 0x4003c9fd:0x3ffcd2c0 0x4005516e:0x3ffcd2e0 :0x3ffcd300 0x4015737f:0x3ffcd340 0x401578c8:0x3ffcd360 0x4008f49e:0x3ffcd390

20:45:12.209 →

20:45:12.209 → Rebooting…

20:45:12.209 → ets Jul 29 2019 12:21:46

20:45:12.209 →

20:45:12.209 → rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)

20:45:12.209 → configsip: 0, SPIWP:0xee

20:45:12.209 → clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00

20:45:12.256 → mode:DIO, clock div:2

20:45:12.256 → load:0x3fff0018,len:4

20:45:12.256 → load:0x3fff001c,len:1100

20:45:12.256 → load: ,len:10900

20:45:12.256 → load: ,len:6360

20:45:12.256 → entry 0x400806b4

I tested this example on two different computers with identical results. I have not modified anything in the original example. Arduino IDE version is 1.8.19 and ‘Dasduino ESP32 Boards’ library version is 1.0.0.

Original message (Croatian)

naručio sam Connectplus jer mi treba prijenos izmjerenih podataka preko Bluetootha na računalo – jutros je stigla :-). (Usput, svaka pohvala na brzini isporuka – svaka dosadašnja narudžbe je stigla u nevjerojatno kratkom roku!)

Isprobao sam primjer ‘SerialToSerialBT’ koji je došao s bibliotekom (u suštini mi ne treba puno složenija komunikacija od one u tom primjeru, dovoljna mi je razmjena stringova s XML porukama). Međutim, primjer ne radi – poziv funkcije SerialBT.begin() nikad ne završi, već se čini da ostane u beskonačnoj petlji. Evo što dobivam na Serial monitor svakih desetak sekundi:

20:45:01.711 → E (20801) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:

20:45:01.755 → E (20801) task_wdt: – IDLE0 (CPU 0)

20:45:01.755 → E (20801) task_wdt: Tasks currently running:

20:45:01.755 → E (20801) task_wdt: CPU 0: btController

20:45:01.755 → E (20801) task_wdt: CPU 1: IDLE1

20:45:01.755 → E (20801) task_wdt: Aborting.

20:45:01.755 → abort() was called at PC on core 0

20:45:01.755 →

20:45:01.755 → ELF file SHA256:

20:45:01.755 →

20:45:01.755 → Backtrace: 0x4008df04:0x3ffbe3f0 0x4008e181:0x3ffbe410 :0x3ffbe430 0x400816c9:0x3ffbe450 0x4003c9fd:0x3ffcd2c0 0x4005516e:0x3ffcd2e0 :0x3ffcd300 0x4015737f:0x3ffcd340 0x401578c8:0x3ffcd360 0x4008f49e:0x3ffcd390

20:45:01.801 →

20:45:01.801 → Rebooting…

20:45:01.801 → ets Jul 29 2019 12:21:46

20:45:01.801 →

20:45:01.801 → rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)

20:45:01.801 → configsip: 0, SPIWP:0xee

20:45:01.801 → clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00

20:45:01.801 → mode:DIO, clock div:2

20:45:01.801 → load:0x3fff0018,len:4

20:45:01.801 → load:0x3fff001c,len:1100

20:45:01.801 → load: ,len:10900

20:45:01.801 → load: ,len:6360

20:45:01.801 → entry 0x400806b4

20:45:12.163 → E (20801) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:

20:45:12.163 → E (20801) task_wdt: – IDLE0 (CPU 0)

20:45:12.163 → E (20801) task_wdt: Tasks currently running:

20:45:12.163 → E (20801) task_wdt: CPU 0: btController

20:45:12.163 → E (20801) task_wdt: CPU 1: IDLE1

20:45:12.209 → E (20801) task_wdt: Aborting.

20:45:12.209 → abort() was called at PC on core 0

20:45:12.209 →

20:45:12.209 → ELF file SHA256:

20:45:12.209 →

20:45:12.209 → Backtrace: 0x4008df04:0x3ffbe3f0 0x4008e181:0x3ffbe410 :0x3ffbe430 0x400816c9:0x3ffbe450 0x4003c9fd:0x3ffcd2c0 0x4005516e:0x3ffcd2e0 :0x3ffcd300 0x4015737f:0x3ffcd340 0x401578c8:0x3ffcd360 0x4008f49e:0x3ffcd390

20:45:12.209 →

20:45:12.209 → Rebooting…

20:45:12.209 → ets Jul 29 2019 12:21:46

20:45:12.209 →

20:45:12.209 → rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)

20:45:12.209 → configsip: 0, SPIWP:0xee

20:45:12.209 → clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00

20:45:12.256 → mode:DIO, clock div:2

20:45:12.256 → load:0x3fff0018,len:4

20:45:12.256 → load:0x3fff001c,len:1100

20:45:12.256 → load: ,len:10900

20:45:12.256 → load: ,len:6360

20:45:12.256 → entry 0x400806b4

Probao sam ovaj primjer na dva različita računala, s identičnim rezultatom. Napominjem da nisam mijenjao ništa u izvornom primjeru.

Verzija Ardunio IDE je 1.8.19, a verzija biblioteke ‘Dasduino ESP32 Boards’ 1.0.0 .

Imate li kakvu ideju što još treba napraviti da bi BT proradio?

Ako treba poslati još kakvu info, tu sam.

Originally submitted via email support on 23 March 2023. Migrated to the forum for community visibility.

Soldered Support:

The messages you see on the serial monitor occur when the ESP resets – it is continuously crashing and resetting. Try using the ESP32 Wrover board definition instead. The Dasduino contains an ESP32, so you can use that board definition and everything should still work correctly. Any ESP32 tutorial on the internet applies to Dasduino as well.

Download the ESP32 boards and in the Arduino IDE, select the board “ESP32 Wrover Module” instead of “Dasduino ConnectPlus”.

Original message (Croatian)

hvala Vam na upitu i hvala Vam na pohvalama. Uvijek nam je drago dobiti povratnu informaciju o našem radu, a pogotovo kada je ona pozitivna. To nam je još veći motiv da nastavimo tako i dalje. :grinning_face:

Ovo što dobivate na serial monitor su poruke koje se događaju kada se ESP resetira, dakle on se neprestano ruši i stalno se resetira. Pokušajte molim Vas koristiti ESP32 Wrover board definition koju možete preuzeti ovako. Sa tom bi trebalo raditi. Na Dasduinu se nalazi ESP32 pa se može koristiti i taj board definition i sve bi i dalje trebalo raditi kako treba i generalno svaki tutorijal na internetu koji se odnosi na ESP32, vrijedi i za naš Dasduino.

Dakle, preuzmete ESP32 boards sa linka i umjesto “Dasduino ConnectPlus” u Arduinu odaberete board “ESP32 Wrover Module”.