Troubleshooting

ESP32-C6 esphosted firmware not loaded for Firebeetle 2 ESP32-P4 AI board?

userHead Rogan.Dawes 2026-01-26 21:10:15 209 Views3 Replies

Hi,

 

I have bought a DFR1172 (FireBeetle 2 ESP32-P4 AI Vision Board), with ESP32-C6 wifi coprocessor. However, it turns out that there is no firmware loaded on the C6 as received from the factory, and therefore the ESP32-P4 cannot talk to it. Additionally, while the SDIO pins are connected to the P4, and this should allow for firmware upgrades, this obviously only applies when there is already firmware on the board to start with!

 

Worse, while the schematic indicates that there are GPIO9, RST, RX and TX pins available for reprogramming, these are only available as pads on the underside of the board, using what appears to be 2mm spacing. Even more unfortunately, there are no labels for the pads, and no obvious way to figure out the pinout, other than continuity for Gnd and 3v3, and using a UART to find TX from the C6 when it boots. That still leaves RX, GPIO9 and RST, and the small problem of making a pogo pin jig to do the initial programming of the esphosted firmware.

 

Please can someone confirm the pinout? And perhaps consider programming an initial version of the ESPHosted firmware at the factory to save people this hassle in the future?

2026-01-27 14:06:32

Thank you for your feedback and suggestions. The ESP32-C6 comes pre-programmed with the esp-hosted firmware from the factory. In response to your suggestions, we have added the ESP32-C6 firmware programming tutorial to the Wiki: https://wiki.dfrobot.com/SKU_DFR1172_FireBeetle_2_Board_ESP32_P4#9.%20ESP32-C6%20Firmware%20update

userHeadPic erhahaha
2026-01-27 03:26:39

+1, feels pretty poor to just have the schematic with random net names scattered throughout and test points not in the connector / footprint shape. 

 

Maybe next time indicate which is test point 1 on the silkscreen labels (you could have shifted the logo and board name up a bit / elsewhere).

 

 

Updating the board function image on the wiki page to label the test points would be a good stop-gap solution:

 

My log is showing this, using an arduino-esp32 (v3.3.6) sketch known to work with the Waveshare-P4-WIFI6 (same co-processor / esp-hosted setup):

```

19:24:51:914 -> E (2331) sdio_wrapper: sdio_card_fn_init failed
19:24:52:043 -> E (2461) sdmmc_io: sdmmc_init_io: sdmmc_io_send_op_cond (1) returned 0x107
19:24:52:044 -> E (2461) sdio_wrapper: sdmmc_card_init failed
19:24:52:284 -> E (2701) sdio_wrapper: sdio_card_fn_init failed
19:24:52:425 -> E (2842) sdmmc_io: sdmmc_io_read_byte: sdmmc_io_rw_direct (read 0x3) returned 0x107
19:24:52:426 -> E (2842) sdio_wrapper: sdio_card_fn_init failed
19:24:52:665 -> E (3083) sdio_wrapper: sdio_card_fn_init failed
19:24:52:795 -> E (3213) sdmmc_io: sdmmc_init_io: sdmmc_io_send_op_cond (1) returned 0x107
19:24:52:796 -> E (3213) sdio_wrapper: sdmmc_card_init failed
19:24:52:925 -> E (3343) sdmmc_io: sdmmc_init_io: sdmmc_io_send_op_cond (1) returned 0x107
19:24:52:926 -> E (3343) sdio_wrapper: sdmmc_card_init failed
19:24:53:165 -> E (3583) sdio_wrapper: sdio_card_fn_init failed
19:24:53:307 -> E (3724) sdmmc_io: sdmmc_io_read_byte: sdmmc_io_rw_direct (read 0x3) returned 0x107
19:24:53:307 -> E (3724) sdio_wrapper: sdio_card_fn_init failed
19:24:53:547 -> E (3965) sdio_wrapper: sdio_card_fn_init failed
19:24:53:678 -> E (4095) sdmmc_io: sdmmc_init_io: sdmmc_io_send_op_cond (1) returned 0x107
19:24:53:678 -> E (4095) sdio_wrapper: sdmmc_card_init failed
19:24:53:807 -> E (4225) sdmmc_io: sdmmc_init_io: sdmmc_io_send_op_cond (1) returned 0x107
19:24:53:808 -> E (4225) sdio_wrapper: sdmmc_card_init failed
19:24:54:047 -> E (4465) sdio_wrapper: sdio_card_fn_init failed
19:24:54:178 -> E (4595) sdmmc_io: sdmmc_io_read_byte: sdmmc_io_rw_direct (read 0x3) returned 0x107
19:24:54:178 -> E (4596) sdio_wrapper: sdio_card_fn_init failed
19:24:54:309 -> E (4726) sdmmc_io: sdmmc_init_io: sdmmc_io_send_op_cond (1) returned 0x107
19:24:54:310 -> E (4726) sdio_wrapper: sdmmc_card_init failed
19:24:54:409 -> E (4826) H_SDIO_DRV: card init failed
19:24:54:410 -> E (4826) transport: ensure_slave_bus_ready failed
19:24:54:413 -> xffffffff (ESP_FAIL) at 0x400a0632
19:24:54:420 -> file: "./managed_components/espressif__esp_hosted/host/api/src/esp_hosted_api.c" line 179
19:24:54:423 -> func: esp_hosted_reconfigure
19:24:54:426 -> expression: transport_drv_reconfigure()
19:24:54:430 -> E (4844) H_API: ESP-Hosted link not yet up
19:24:54:439 -> [  4866][E][esp32-hal-hosted.c:83] hostedHasUpdate(): Could not get slave firmware version: ESP_FAIL
19:24:54:451 -> [  4886][I][esp32-hal-hosted.c:88] hostedHasUpdate(): Host firmware version: 2.9.6
19:24:54:458 -> [  4894][I][esp32-hal-hosted.c:89] hostedHasUpdate(): Slave firmware version: 0.0.0
19:24:54:465 -> [  4901][W][esp32-hal-hosted.c:98] hostedHasUpdate(): Version on Host is NEWER than version on co-processor
19:24:54:478 -> [  4911][W][esp32-hal-hosted.c:99] hostedHasUpdate(): Update URL: https://espressif.github.io/arduino-esp32/hosted/esp32c6-v2.9.6.bin
19:24:56:148 -> E (6565) sdio_wrapper: sdio_card_fn_init failed
19:24:56:278 -> E (6695) sdmmc_io: sdmmc_init_io: sdmmc_io_send_op_cond (1) returned 0x107
19:24:56:278 -> E (6695) sdio_wrapper: sdmmc_card_init failed
19:24:56:407 -> E (6825) sdmmc_io: sdmmc_init_io: sdmmc_io_send_op_cond (1) returned 0x107
19:24:56:408 -> E (6825) sdio_wrapper: sdmmc_card_init failed
19:24:56:648 -> E (7065) sdio_wrapper: sdio_card_fn_init failed
19:24:56:790 -> E (7206) sdmmc_io: sdmmc_io_read_byte: sdmmc_io_rw_direct (read 0x3) returned 0x107
19:24:56:791 -> E (7206) sdio_wrapper: sdio_card_fn_init failed
19:24:57:030 -> E (7447) sdio_wrapper: sdio_card_fn_init failed
19:24:57:160 -> E (7577) sdmmc_io: sdmmc_init_io: sdmmc_io_send_op_cond (1) returned 0x107
19:24:57:161 -> E (7577) sdio_wrapper: sdmmc_card_init failed
19:24:57:291 -> E (7707) sdmmc_io: sdmmc_init_io: sdmmc_io_send_op_cond (1) returned 0x107
19:24:57:292 -> E (7707) sdio_wrapper: sdmmc_card_init failed
19:24:57:530 -> E (7947) sdio_wrapper: sdio_card_fn_init failed
19:24:57:672 -> E (8088) sdmmc_io: sdmmc_io_read_byte: sdmmc_io_rw_direct (read 0x3) returned 0x107
19:24:57:672 -> E (8088) sdio_wrapper: sdio_card_fn_init failed
19:24:57:912 -> E (8329) sdio_wrapper: sdio_card_fn_init failed
19:24:58:042 -> E (8459) sdmmc_io: sdmmc_init_io: sdmmc_io_send_op_cond (1) returned 0x107
19:24:58:043 -> E (8459) sdio_wrapper: sdmmc_card_init failed
19:24:58:172 -> E (8589) sdmmc_io: sdmmc_init_io: sdmmc_io_send_op_cond (1) returned 0x107
19:24:58:172 -> E (8589) sdio_wrapper: sdmmc_card_init failed
19:24:58:412 -> E (8829) sdio_wrapper: sdio_card_fn_init failed
19:24:58:542 -> E (8959) sdmmc_io: sdmmc_io_read_byte: sdmmc_io_rw_direct (read 0x2) returned 0x107
19:24:58:542 -> E (8960) sdio_wrapper: sdio_card_fn_init failed
19:24:58:643 -> E (9060) H_SDIO_DRV: card init failed
19:24:58:644 -> E (9060) transport: ensure_slave_bus_ready failed
19:24:58:646 -> ESP_ERROR_CHECK_WITHOUT_ABORT failed: esp_err_t 0xffffffff (ESP_FAIL) at 0x400a0632
19:24:58:654 -> file: "./managed_components/espressif__esp_hosted/host/api/src/esp_hosted_api.c" line 179
19:24:58:657 -> func: esp_hosted_reconfigure
19:24:58:660 -> expression: transport_drv_reconfigure()
19:24:58:664 -> E (9078) H_API: ESP-Hosted link not yet up
19:24:58:672 -> [  9100][E][WiFiGeneric.cpp:284] wifiLowLevelInit(): esp_wifi_init 0xffffffff: ESP_FAIL
19:24:58:683 -> E (9101) H_API: ESP-Hosted link not yet up
19:24:58:684 -> [  9119][E][STA.cpp:530] disconnect(): STA disconnect failed! 0xffffffff: ESP_FAIL
19:24:58:795 -> [  9230][I][esp32-hal-hosted.c:275] hostedInitWiFi(): Initializing ESP-Hosted for WiFi
19:25:00:462 -> E (10880) sdio_wrapper: sdio_card_fn_init failed
19:25:00:593 -> E (11010) sdmmc_io: sdmmc_init_io: sdmmc_io_send_op_cond (1) returned 0x107
19:25:00:594 -> E (11010) sdio_wrapper: sdmmc_card_init failed
19:25:00:724 -> E (11140) sdmmc_io: sdmmc_init_io: sdmmc_io_send_op_cond (1) returned 0x107
19:25:00:725 -> E (11140) sdio_wrapper: sdmmc_card_init failed
19:25:00:963 -> E (11380) sdio_wrapper: sdio_card_fn_init failed
19:25:01:104 -> E (11521) sdmmc_io: sdmmc_io_read_byte: sdmmc_io_rw_direct (read 0x3) returned 0x107
19:25:01:104 -> E (11521) sdio_wrapper: sdio_card_fn_init failed
19:25:01:345 -> E (11762) sdio_wrapper: sdio_card_fn_init failed
19:25:01:475 -> E (11892) sdmmc_io: sdmmc_init_io: sdmmc_io_send_op_cond (1) returned 0x107
19:25:01:475 -> E (11892) sdio_wrapper: sdmmc_card_init failed
19:25:01:605 -> E (12022) sdmmc_io: sdmmc_init_io: sdmmc_io_send_op_cond (1) returned 0x107
19:25:01:605 -> E (12022) sdio_wrapper: sdmmc_card_init failed
19:25:01:845 -> E (12262) sdio_wrapper: sdio_card_fn_init failed
19:25:01:975 -> E (12392) sdmmc_io: sdmmc_io_read_byte: sdmmc_io_rw_direct (read 0x2) returned 0x107
19:25:01:975 -> E (12393) sdio_wrapper: sdio_card_fn_init failed
19:25:02:106 -> E (12523) sdmmc_io: sdmmc_init_io: sdmmc_io_send_op_cond (1) returned 0x107
19:25:02:106 -> E (12523) sdio_wrapper: sdmmc_card_init failed
19:25:02:236 -> E (12653) sdmmc_io: sdmmc_init_io: sdmmc_io_send_op_cond (1) returned 0x107
19:25:02:236 -> E (12653) sdio_wrapper: sdmmc_card_init failed
19:25:02:476 -> E (12893) sdio_wrapper: sdio_card_fn_init failed
19:25:02:606 -> E (13023) sdmmc_io: sdmmc_init_io: sdmmc_io_send_op_cond (1) returned 0x107
19:25:02:606 -> E (13023) sdio_wrapper: sdmmc_card_init failed
19:25:02:736 -> E (13153) sdmmc_io: sdmmc_init_io: sdmmc_io_send_op_cond (1) returned 0x107
19:25:02:748 -> E (13153) sdio_wrapper: sdmmc_card_init failed
19:25:02:836 -> E (13253) H_SDIO_DRV: card init failed
19:25:02:836 -> E (13253) transport: ensure_slave_bus_ready failed
19:25:02:839 -> ESP_ERROR_CHECK_WITHOUT_ABORT failed: esp_err_t 0xffffffff (ESP_FAIL) at 0x400a0632
19:25:02:847 -> file: "./managed_components/espressif__esp_hosted/host/api/src/esp_hosted_api.c" line 179
19:25:02:850 -> func: esp_hosted_reconfigure
19:25:02:854 -> expression: transport_drv_reconfigure()
19:25:02:857 -> E (13271) H_API: ESP-Hosted link not yet up
19:25:02:865 -> [ 13294][E][WiFiGeneric.cpp:284] wifiLowLevelInit(): esp_wifi_init 0xffffffff: ESP_FAIL
19:25:02:877 -> E (13294) H_API: ESP-Hosted link not yet up

```

userHeadPic tyethgundry
erhahaha wrote:

Thank you for your feedback and suggestions. The ESP32-C6 comes pre-programmed with the esp-hosted firmware from the factory. In response to your suggestions, we have added the ESP32-C6 firmware programming tutorial to the Wiki: https://wiki.dfrobot.com/SKU_DFR1172_FireBeetle_2_Board_ESP32_P4#9.%20ESP32-C6%20Firmware%20update

2026-01-27 14:06:57
1 Replies