I am making some good progress on the D1001, but now want to look into the ESP32-C6 coprocessor inside. Seeed Studio has provided a binary firmware for the C6, but the git does not contain the source code of this firmware. I would like to be able to build and flash code myself to this C6.
On the schematics (and on the pcb) you can see a pin header for the UORXD and UOTXD pins of the C6 which -I guess- could be used for flashing/debugging…
I’m guessing that the C6 is factory loaded with the stock esp-hosted-mcu slave firmware provided by Espressif as I cannot determine from the schematics of the D1001 that extra functionality was added to it, other than the esp-hosted and esp_wifi_remote functions.
I don’t think it works in a way you can benefit from it , probably break the bridge connection.
Is writing custom C6 firmware worth the squeeze?
Unless you are developing a specific custom network protocol: No.
Espressif Hosted / SDIO Slave Architecture: The P4 talks to the C6 across a high-speed SDIO slave interface using Espressif’s standard esp-hosted / wireless bridge firmware. The binary Seeed supplies is the compiled network slave firmware that allows the ESP32-P4 (running ESP-IDF) to see the C6 as a standard Wi-Fi / Bluetooth network interface adapter.
Breaking the Network Stack: If the user replaces the C6’s firmware with standalone custom code, the ESP32-P4 loses all Wi-Fi, BLE, and cloud capability unless they manually write an alternative IPC transport over UART or SDIO.
Espressif Source is Open: If they genuinely want the source code for the C6 slave binary, they don’t need Seeed’s proprietary code—it’s based on Espressif’s open-source esp-hosted or standard AT firmware repository.
Also the the flash mode entry is not standard. SO there’s that..
Because the main ESP32-P4 application chip lacks integrated radios, Seeed put a dedicated ESP32-C6 on the board purely as the wireless connectivity coprocessor (handling Wi-Fi 6, BLE 5, and 802.15.4 / Thread).
Well, I will keep the bridge, I just want to add some code to it. The C6 U0RXT and UOTXD pins are accessible on the pcb and I would like to use these to connect a uart device to it and use Espressifs Custom Peer Data Channel (built into the esp-hosted thing) and relay that uart comms to the P4.
I stepped away from the C6-idea and using the Custom Peer Data Channel. I also stepped away from brookesia as that was not required for my project. Now running an LVGL 9.5 firmware with the Quectel EC25 fully working (both DATA and GNSS). Working on a custom PCB that will fit in the LoRa-socket on the D1001 so I can attach a custom module to the D1001.