This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Best solution for programming Softdevice/Bootloader/Firmware to multiple nrf51822 from one PC.

Hello,

I am almost finishing developement of a BLE module using nrf51822.

For mass production, I hope I can program Softdevice/Bootloader/Firmware to 10 nrf51822 using one PC. (since on my PCB array, there are 10 single boards)

Using 10 j-link is a solution, but it is a quite expensive way.

Is there any cheaper solution?

Thanks.

Jason

  • This could be a solution IDAP-Link. It will be ready soon. Gang programming can be accomplished by connecting multiple IDAP-Link to a single PC via a USB hub. Each IDAP-Link then would appears to the PC as a USB drive. All that is left to do is to copy firmware file over to each drive. This could be accomplished by a batch command.

    Updated Jan 15:

    Gang programming without PC

    The IDAP-Link feature list has been updated to include a microSD. This will allow you to gang programming without a PC. All you need is to insert a microSD card with firmware into the IDAP-Link and press the program button. It will automatically Flash program the target.

    Updated Dec 15:

    IDAP-Link can now parallel program both nRF51 and nRF52 using command line tool IDAPnRFProg.

    $ ./IDAPnRFProg s110_nrf51_8.0.0_softdevice.hex Blinky_ble.hex dfu_nrf51.hex
    IDAPnRFProg version 0.2
    Copyright 2015, I-SYST inc. All rights reserved
    
    Found IDAP-Link - S/N : 0000000000001
    Found IDAP-Link - S/N : 0000000000002
    IDAP-Link-0030415000005 : nRF51822-QFAA R2, Rev.2, HWID = 0x003C, DEVID = 0x299C1D17BD361134
    IDAP-Link-0030415000005 : Flash size = 262144, Ram size = 16384
    IDAP-Link-0030415000017 : nRF51822-QFAA R1, Rev.1, HWID = 0x001D, DEVID = 0x32B4DDFECEE22394
    IDAP-Link-0030415000017 : Flash size = 262144, Ram size = 16384
    
    IDAP-Link found : 2
    
    IDAP-Link-0030415000005 : Erase Flash
    IDAP-Link-0030415000017 : Erase Flash
    IDAP-Link-0030415000005 : Blank checking...
    IDAP-Link-0030415000017 : Blank checking...
    IDAP-Link-0030415000005 : Programming...
    IDAP-Link-0030415000017 : Programming...
    IDAP-Link-0030415000005 : Firmware start address 0x18000
    IDAP-Link-0030415000005 : DFU start address 0x3c000
    IDAP-Link-0030415000017 : Firmware start address 0x18000
    IDAP-Link-0030415000017 : DFU start address 0x3c000
    IDAP-Link-0030415000005 : Programmed 256 KB in 21.524 sec at rate 11.894 KB/s
    IDAP-Link-0030415000005 : Verifying...
    IDAP-Link-0030415000017 : Programmed 256 KB in 21.524 sec at rate 11.894 KB/s
    IDAP-Link-0030415000017 : Verifying...
    IDAP-Link-0030415000005 : Flashing succeeded.
    IDAP-Link-0030415000017 : Flashing succeeded.
    
    Total Flashed 2 nRF51 devices in 51.112 sec, 1024 KB R/W transfered, rate = 20.035 KB/s
    
  • It sounds great! But is downloading SD/BL/FW as simple as copy and paste? How to specify starting address of BL and FW? I also need to write some values to certain Flash address. Is it possible?

  • That can be accomplish using the merge hex utility provided by Nordic. It merges the softdevice, the app and the DFU together with appropriate values.

    Update 9.1.2014 How to merge softdevice+bootloader+application into one .hex file is described here

  • Ok, good idea~ What about write some bytes to certain flash address?

  • That can be accomplished using OpenOCD or pyOCD flash write command. The only issue is that OpenOCD is very slow but writing a few bytes would be a big impact. Currently debugging is fully implemented and works with Keil, CrosWorks, Eclipse OpenOCD, ... The drag & drop feature is still under development. I believe that feature will be ready around the end of jan. The board is targeted at $40 price range. You can pretty much buy 10 of them for the cost of 1 jlink.

Related