Trouble trying to recover a failed Bluetooth OTA

So I did something stupid trying to update Meshtastic on this board over BlueTooth.
WisBlock 19007 with RAK4630

Board does not mount on the computer and when power is applied, the red LED is in quick flash mode but low strength.

I have purchased a DapLink and followed the instructions here: RAKDAP1 Flash and Debug Tool Quick Start Guide | Documentation Center
but I get a response back of “0001993 C No ACK received.”

I have tried the adafruit-nrfutil.exe with no success as well. It generates “No data is received on the serial port.”
I have also downloaded the RAK Serial Port Tool and can open communication but nothing responds under the “at+version” or “at+get_config+device:status” commands.

This is from a Windows laptop with the Wisblock being powered by an external USB power supply and not by the DAPLINK device.

Any help will be greatly appreciated as I really don’t think this thing is broken so bad that it can’t be recovered.

Thank you in advance,

Matt

Adafruit error:

BlockquoteC:\WisBlock>adafruit-nrfutil.exe --verbose dfu serial --package RAK4630_bootloader-0.4.1.zip --port COM4 -b 11520 --singlebank --touch 1200
Upgrading target on COM4 with DFU package C:\WisBlock\RAK4630_bootloader-0.4.1.zip. Flow control is disabled, Single bank, Touch 1200
Touched serial port COM4
Opened serial port COM4
Starting DFU upgrade of type 3, SoftDevice size: 151016, bootloader size: 39000, application size: 0
Sending DFU start packet
Timed out waiting for acknowledgement from device.

Failed to upgrade target. Error is: No data received on serial port. Not able to proceed.
Traceback (most recent call last):
File “main.py”, line 296, in serial
File “dfu\dfu.py”, line 226, in dfu_send_images
File “dfu\dfu.py”, line 199, in _dfu_send_image
File “dfu\dfu_transport_serial.py”, line 179, in send_start_dfu
File “dfu\dfu_transport_serial.py”, line 243, in send_packet
File “dfu\dfu_transport_serial.py”, line 282, in get_ack_nr
nordicsemi.exceptions.NordicSemiException: No data received on serial port. Not able to proceed.

Possible causes:

  • Selected Bootloader version does not match the one on Bluefruit device.
    Please upgrade the Bootloader or select correct version in Tools->Bootloader.
  • Baud rate must be 115200, Flow control must be off.
  • Target is not in DFU mode. Ground DFU pin and RESET and release both to enter DFU mode.

Blockquote
PYOCD
C:\WisBlock>pyocd flash -t nrf52840 wiscore_rak4631_board_bootloader-0.4.3.hex
0002059 C No ACK received [main]

When you connect the DAPLink, make sure that the WisBlock is powered over USB or has a battery attached while you try to flash. The DAPLink is not able to supply the RAK4631.

The possible causes shown from the Adafruit flasher are a wild guess.
The error messages seems to be more related to the module not entering bootloader mode. Which would be normal if the bootloader is missing.

IMHO, firmware update over Bluetooth is not safe. If the update fails, the device is stuck without a working application. Usually the bootloader should still work, but I don’t know what the firmware ZIP file of Meshtastic includes. If it includes the bootloader, then the device needs to be flashed with a DAPlink or a JLink.

Yea, I mentioned that the RAK is powered with an external usb source.

I’m just trying to get this thing in a state where I can flash the bootloader firmware and it won’t communicate.

Double check the connections between the DAPLink and the RAK4631 module.
Make sure GND has a good connection on both sides.

On my older RAK4631’s the contacts for the SWD interface are usually slightly corroded. Need to clean them before I can connect with JLink or DAPLink.

Should I just solder on a 4pin jst-xh connector on those to ensure the pins for the Daplink are solid?

That’s on option.

I am using a clip with “gold” pogo pins and clean the copper of the pins on the module from corrosion.

That looks like something I can 3d print. Got a model handy? :smiley:

also, should I remove the Rak4630 from the 19007 board to try this method?

Matt

No, the RAK4630 needs two power supplies. It will not work if you supply only 3.3V from the DAPLink.

Right. Still running into the above errors. If I telnet to the COM port, I don’t get a connection. Any thoughts?

I got a bit farther but still the board flashes the red led at a low power.

C:\WisBlock>pyocd flash -t nrf52840 wiscore_rak4631_board_bootloader-0.4.3.hex
0001811 I Loading C:\WisBlock\wiscore_rak4631_board_bootloader-0.4.3.hex [load_cmd]
[==================================================] 100%
0004025 I Erased 1024 bytes (1 sector), programmed 1024 bytes (1 page), skipped 36864 bytes (9 pages) at 16.88 kB/s [loader]

Forget about the red LED. It is just connected to the charger chip and says nothing about your MCU running or not.

If you have flashed the bootloader successfully, the device should now show up as external drive when connected to your computer.

It’s hit or miss on this. I can get it mounted for about 5 seconds as an external and then it drops. It doesn’t stay connected long enough to get a firmware dropped onto it.

Then a DAPlink or a JLink is the last thing you can try to recover the device

Which I have and it doesn’t seem to work with the commands that I can find in these forums.

What do I need to do to get this board reflashed and working. I am under warranty and don’t want to return this if I don’t have to. I bought the DAPLINK, connected via the above method in the original post but it is a crap shoot on getting the DAPLINK and commands to work.

Please don’t assume any tone in the above message. I am simply asking for help so I can use this device again. :slight_smile:

I did find this article, RAK4630 No ACK Knowledge, that I will try the suggestions the @beegee had listed there this evening.

I’ll report back my findings. :smiley:

Tried all those troubleshooting steps with no resolution. What am I doing wrong or is this board beyond repair?

I found a difference when using DAPlink between specifying chip type nrf52 (only) and nrf52840. Not sure why, with nrf52 the device doesn’t boot up.

When I use nrf52840, I can recover a device that was chip-erased before:

This is the HEX file I used for recovery:
WisBlock-Backup.hex (2.4 MB)

Can you check the versions of Python and PyOCD?

Python version 3.12.6
PyOCD version 0.36.0

I can switch between Arduino bootloader and RUI3 bootloader as well without problems.

Sorry for the late reply.
Here is what I get when I try those commands:

This is with the RAK powered by a seperate USB power source and the 3v rail not plugged in on the RAK side.