Difficulty entering DFU mode during firmware update

Greetings RAK forums,

I’m looking for some help getting my module flashed with fresh firmware. I purchased a wisblock 19007 and the corresponding 4631 module from DigiKey but have been struggling to get it to go into DFU mode. When plugging it in, the red LED shines brightly, blinks briefly one time, and then remains on no matter what I do.

Things I have tried to get around this problem:

  • Double-clicking the reset button (quickly, slowly, and everything in between, no change)
  • Removing and re-seating the LoRa module to ensure good contact (no change)
  • Reflashing from the RUI3 to the Arduino firmware via the instructions HERE (no change)
  • Grounding the boot and reset pins on startup and then releasing them to (hopefully) put it into bootloader mode. (no change)
  • Opening a serial terminal and sending the AT+BOOT command to force the device into bootloader mode. (red light behaves differently, but module doesn’t respond)

The device is being recognized by my laptop as a USB Serial peripheral. When I send it the AT+BOOT command, the red light went from being on brightly to blinking randomly for a few minutes before returning to bright red when I close my serial terminal. So I think that it’s still alive. But for whatever reason it’s not responding to my inputs.

Any advice you have for me would be hugely appreciated. Thanks!

Modules: RAK19007 with a RAK4631
Laptop: Mac M1 Max running Sonoma 14.5

Anybody got any advice at all for me here? I’m stuck and getting pretty discouraged by the experience.

Welcome to the forum @wouldntyaliktono

RUI3 versions and Arduino versions of the RAK4631 are quite different. A RUI3 version does not support DFU mode by double push reset, that is only supported by the Arduino version.
The two versions have different bootloaders and you need to use different Arduino BSP’s to create firmware for them.

The BOOT0 pin is only for STM32 MCU’s and has no function on a RAK4631.

If you want to use Meshtastic (guessing from the link in your message), you need the Arduino BSP bootloader version

The red LED is only controlled by the battery charger and has nothing to do with the MCU or it’s bootloader/firmware.

First thing is to find out whether you have at the moment RUI3 or Arduino bootloader.

(1) Is the device reacting to a double push on the reset button ==> you have Arduino bootloader
(2) If connecting the serial terminal app and you get a response to AT+VER=? (with CR/LF at the end) ==> you have RUI3 bootloader

If both lead to no result, you have most likely bricked your device (temporarily).

For flashing a bootloader, please check our documentation:
Updating RAK4631 to RUI3
Converting RAK4631-R to RAK4631

Tinkering with it last night, I learned that it shipped with the RUI bootloader on it which explains its behavior. However, I was unable to get the bootloader updated via USB using the documentation you shared so I had to use a SWD debugger instead. I didn’t have a RAKDAP1 so I used a raspberry pi GPIO and openOCD for serial wire debug to erase and reflash the bootloader directly. It now reliably goes into DFU mode so I think I have made some progress. Thanks for the help.