nRF5 SDK support for RAK4631

Hallo.
Is it possible to use nRF5 SDK on RAK4631 because this RAK module is based on nrf52480 ?
If yes, then which version of the SDK ?

Danke.

Hello Walter,

Yes, it is possible to use nRF5 SDK, but we do not offer support for it. The latest SDK version should work, but you will have to adapt the bootloader to match with our GPIO assignments. There are some IO defined to force bootloader mode or OTA DFU mode in the SDK bootloader that we do not support.
Same for the LoRa transceiver, we cannot offer any solution for the SDK to use the SX1262 LoRa transceiver. You will have to find your own implementation.

Okay.

I was flashing some SDK examples on the RAK board yesterday. Most of the examples were causing the board to brick when I flashed them. Except an example of BLE connectivity test and one other example. So the bootloader installed on my RAK4631 is WisCore v0.4.2 , how could those examples be causing problems with the bootloader and causing board to brick , while some do not ?

Is it because of the GPIO assignments as you suggested ?

The nRF52 code is split into 3 parts

  • Bootloader
  • Softdevice
  • Application

The bootloader is responsible for starting the application and handling the firmware updates.
The softdevice is something I don’t understand complete, but is handling the BLE and other stuff
The application is your code

The application is expecting a specific version of the softdevice, if you use a SDK example that expects a different version of the softdevice, it might crash.

So when you want to write your application with the latest Nordic SDK, you have to add as well the bootloader and softdevice from the same SDK version.

Okay.

But RAK’s bootloader is derived from nRF SDK v11 and contains board specific changes. Do you think RAK4631 can use the latest SDK bootloader in its original form ?

I deduce that GPIO assignments must be changed in the original bootloader to make it work on RAK4631.

Can you be specific about the GPIO pins and other changes please and where exactly should those changes be made ? Because it is more complex than it seems like since the source code structure of RAK bootloader is different than the nRF SDK bootloader.

I will have to ask our SW team, I never touched the bootloader. But an answer will not be here before next year.

Okay.

Just to be sure. By “next year” , you mean after the Chinese New Year or the new year according to Georgian Calendar ?

Danke Schoen.

SW team should be back on January 3rd.

@beegee can you confirm if RAK BSP is based on SDK v11 because as i can see under your repo RAK-nRF52-RUI/cores/nRF5/external at main · RAKWireless/RAK-nRF52-RUI · GitHub

its pointing to [nRF5_SDK_17.0.2] and if you are already supporting latest SDK we can simply have to change pin definitions that are conflicting with RAK HW, Please correct me

@AqibMalik Quite an intriguing point.
In the bootloader repo, it says the bootloader is based on SDK v11. While we also see some hint of SDK V17. @beegee could you comment on this ?

We will have two frameworks for RAK4631 next year, but there is no release date available.

Arduino framework, the bootloader for it is in WisBlock repo

RAKWireless Unified Interface RUI with a different bootloader which you found in RAK-nRF52-RUI

They are based on different SDK’s and have different bootloader versions and softdevice versions.
Code compiled for Arduino framework does not work on the bootloader for RAKWireless RUI

@beegee , can you please tag someone from the SW team on this query. Vielen Dank !

@herr_kommissar
If you have questions regarding the Nordic SDK, you should ask the Nordic support. We are not supporting the Nordic SDK.

Bitte herr Giesecke , I am merely asking for the changes that RAK’s SW team , not Nordic’s team , made to the original SDK bootloader. I can only ask the respective team that made those changes.

The bootloader is not directly based on the SDK.
It is based on the Adafruit_nRF52_Bootloader and the changes are only in the board configuration.

We used as base the board definition of the Feather nRF52 Express and the changes done are only the LED definitions, removing of the button definitions because we do not have buttons on the WisBlock and changing the names.

Comparison of our Bootloader against the Adafruit bootloader:

Comparison of the board.h file from Feather nRF52 Express and RAK4631