After setup been done, here comes the next question: How to program the firmware in to the module. We are using some simple instruction in below for reader’s quick reference.
You will need a Nordic nRF5X DK or a Segger J-link as programmer to load the firmware. To use Nordic nRF5X DK to debug the SoC as well, you will need to order corresponding nRF5X DK to match the SoC number. For example, order nRF52840 DK to debug nRF52840 SoC or order nRF52 DK to debug nRF52832/52810 SoC. But if you are only using it as programmer, any version of nRF5X DK will work as we only use the J-link on this board.
Please download Nordic nRFGo Studio for programming. Remember to install nRF5X Command Line Tools if the board was not detected by nRFGo Studio. Once they are all connected, you can then start programming. Please make sure to “erase all” every time before programming.
For more tutorials and demo of sample code, please visit Nordic’s DevZone and Infocenter where have ample resources to utilize.
SoftDevice + Application
- Erase all first. Then program Softdevice and follow by Application code.
- Or you may combine code as stated in above. Erase all and follow by programing the combined code.
SoftDevice + Bootloader+ Application
- Either Erase all first. Program the Softdevice and follow by Bootloader. and then use DFU to update the application code.
- Or suggested having a combined code (SofDevice+Application+Bootloader) for program. Simply erase all and follow by programming the combined code.
Bootloader is needed for DFU (OTA) Function.
SDK 11 (included) and before – a legacy DFU method, which is simple but less security
SDK 12 (Included) and after – a latest DFU method, which has higher security.
To easy customer’s IoT device mass production, Raytac provide code pre-program service into module before shipment. There are requirements listed in below for customers who need the service!
- A single, combined hex file is required. Please combine softdevice and application or/and bootloader (depending on your firmware design) together before programming. This will shorten programming time and help to manage your code easier. If you are not familiar with merging firmware, please download the instruction from the link: https://mega.nz/#!Qg5UBJTQ!POWmmNNdapGqefHpB10YjpcuExLWwXnxDfBzcVrsTOw
- Need a simple method to check programming status. The easiest way is to check the device name if device will broadcast device name after programming is done; or use I/O to trigger LED and its behavior. This does not aim to test any or full function of your device, only a simple method for the operator to know programming status.