Bootloader Issues in PlatformIO

Hey everyone,

I’m having trouble following this project:

I’ve gotten it to compile just fine, but it won’t upload to my device.

My platformio.ini file looks like this:
[env:wiscore_rak4631]
platform = nordicnrf52
board = wiscore_rak4631
framework = arduino
lib_deps = beegee-tokyo/SX126x-Arduino@^2.0.16
upload_port=/dev/cu.debug-console

And my error message is:
raise NordicSemiException(“No data received on serial port. Not able to proceed.”)
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.

Is the RAK4631 detected as a USB Serial device when you plug it into your computer?

What OS are you using?

What version is your RAK4631? Is it with Arduino bootloader or with RUI3 bootloader?

You can check by

  • double push reset.
    • if it goes into bootloader mode and is detected as an external USB drive, it is Arduino bootloader
    • if it just resets, it is RUI3 bootloader
  • Connect the device over USB to a terminal app (115200 baud 8N1)
    • send AT+VER=? command to the device
      • if it response with a string that contains the word RUI, it is RUI3 bootloader
      • if it does not response or shows a different string, it is Arduino bootloader

Hey @beegee,

Rak4631 is not detected as a USB Serial device when plugged in. I have M1 Macbook Air macOS Big Sur Version 11.2.3.

I have 0 idea about the bootloader being used. When I reset, it simply resets.

Did you try a different USB port?
If you use an external USB hub, don’t connect the RAK4631 to the hub, instead connect it directly to your Mac.
Did you try a different USB cable?
Can you try a different computer?

Can you remove the

upload_port=/dev/cu.debug-console

from your platformio.ini file. That is definitely wrong. PIO will find the correct port by itself.