KakuteH7v2 ESP32-C3 reflash

I’m try to reflash ES32-C3 on KakuteH7v2 for compatible with ArduPilot GCS (default FW compatible with SpeedyBee only and have not serial port in bluetooth) but unable to find suitable pads for this task. What do you think these pads are needed:

I think RX, TX and M (?) connected to U0RXD, U0TXD, GPIO9.

Is it enough for flashing?

After power up with grounded M pin i get:

ESP-ROM:esp32c3-api1-20210207
Build:Feb 7 2021
rst:0x1 (POWERON),boot:0x0 (USB_BOOT)
wait usb download

on RX/TX pad in 115200 8N1 but unable to flash. Any ideas?

Are you trying this procedure?
https://ardupilot.org/copter/docs/common-holybro-kakuteh7-v2.html#loading-firmware

But he wants to flash the ESP32 …

Oh yeah - sorry, ignore me

Did you make any progress? Maybe need a 10-100k resistor in series to ground to correctly pull down to download mode during boot up.

Just stumbled upon your post as I was thinking about doing the same to an older kakute v1 that’s sitting in my drawer.

2 Likes

@ph70 @Elliot Hi did u manage to solve this? I have the exact same issue as you
image

Hi, my post may not be helpful to the original poster, but I have been searching for the same thing for the SpeedyBee F405 V4, and it led me here and nowhere else. So, this might help someone.

I have been successful in re-flashing the ESP32-C3 on the SpeedyBee board with DroneBridgeESP32 firmware. I soldered UART Tx, Rx, and GPIO9 to GND and powered it up. Unfortunately, I did not save the first boot log, but unlike the original poster, mine showed another boot method and was ready for upload via serial. So, I closed the serial terminal and ran esptool. It went smoothly, and now I am running DroneBridgeESP32 on the SpeedyBee board. I had to reverse engineer the connection of UART between the ESP32 and STM32F405. It is connected as follows:

STM32 PA0 (pin 14) —> ESP32 GPIO5 (pin 10)
STM32 PA1 (pin 15) <— ESP32 GPIO3 (pin 8)

In DroneBridge, set the Tx pin to 3 and the Rx pin to 5.

It works with Ardupilot perfectly at 921000 baud.

There is one drawback: you will lose the functionality of the four LEDs signaling battery state.

4 Likes

@kolin I was also looking for a guide on how to flash the SpeedyBee board with the ESP32-C3. Could you share the link to the original post? I will also follow the guide you mentioned. Have you managed to back up the default firmware running on the SpeedyBee ESP32-C3?

Hi, I actually didn’t follow any guide. I worked through the process on my own due to the lack of available guides and shared my experience here. Unfortunately, I didn’t back up the default firmware before flashing the new one. I do not think it was even possible to back up the original firmware. I have not checked, but they may have their firmware locked for reading as usual.

If you have any specific questions about the steps I took, feel free to ask!

Flashing the ESP32-C3 is easy:

  1. Solder three wires to the SpeedyBee: UART RX, UART TX, GPIO9.
  2. Connect it to a USB-UART converter (Rx, Tx, GND).
  3. Start a serial terminal at 115200 baud and the correct COM port.
  4. Temporarily connect GPIO9 to GND.
  5. Connect power to the board (via USB cable, do not use a battery).
  6. Observe the serial terminal; there should be some info from the ESP chip.
  7. Disconnect GPIO9 and leave it floating.
  8. Close terminal and start the DroneBridge web flasher or flash manually via esptool.
  9. Profit
2 Likes

does drone bridge have bluetooth connectivity?

Hey,

I’m trying to get a clear understanding in visual form so this can be used as a ‘guide’.

Is this correct?

Credit to toxic_charger for the images

ESP32-C chip mode for boot:

  • SPI boot mode: GPIO2(1) GPIO8(x) GPIO9(1)
  • Download boot: GPIO2(1) GPIO8(1) GPIO9(0)