跳至主要内容

Convert RAK4631-R to RAK4631

The only difference between the RAK4631-R (RUI3) and the RAK4631 (Arduino) is the bootloader it is shipped with - the hardware is the same.

Meshtastic requires the Arduino bootloader on RAK WisBlock nRF52-based boards. The process of converting the bootloader only needs to be performed once.

Here are two ways to flash the bootloader:

USB Device Firmware Upgrade (DFU)

  1. Install Python
  2. Install adafruit-nrfutil
    pip3 install adafruit-nrfutil
  3. Download the required bootloader: WisCore_RAK4631_Board_Bootloader.zip
  4. Connect your RAK device by USB.
  5. Flash the bootloader
    adafruit-nrfutil --verbose dfu serial --package ./WisCore_RAK4631_Board_Bootloader.zip  -p /dev/ttyACM0 -b 115200 --singlebank --touch 1200
    Note: The serial port name (/dev/ttyACM0) may differ depending on your operating system. Make sure to identify the correct port name for your setup.
  6. Continue with the normal flashing instructions

Extra RUI3 Steps

If the above steps fail with errors like:

Touched serial port COM11
Opened serial port COM11
Starting DFU upgrade of type 2, SoftDevice size: 0, 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.

You will need to follow the first part (through the AT+BOOT command) of the Converting RAK4631-R to RAK4631 instructions.

Debugger

This conversion requires the use of either a DAPLink or J-Link. The most reasonably priced and available is the RAKDAP1.

  1. Install Python
  2. Install pyOCD
    pip3 install pyocd
  3. Download the required bootloader: WisCore_RAK4631_Board_Bootloader.hex
  4. Connect the RAKDAP as follows:
  5. Flash the bootloader
    pyocd flash -t nrf52840 .\WisCore_RAK4631_Board_Bootloader.hex
  6. Continue with the normal flashing instructions

Alternate methods of flashing are outlined here.