We're gearing up to program about 4,000 nRF51822s. They'll get the BLE version of DFU plus a stable version of our own code. For future production runs, we'll likely have our partner in Japan program the devices on the assembly line.
So, my question is: how are you handling your programming? Are you literally doing boards one-at-a-time with a SEGGER and a pogo-pins or similar?
Our PCBs are panelized as 5*5, so I've toyed with the idea of building an X-Y slide with stepper motors to fly a programming head across the boards. Buying 25 SEGGERs so that we can push 25 sets of pogo-pins down on to an entire panel is cost prohibitive.
Our world is also slightly more complex in that we create custom stickers that are unique to each programmed device, too :)
Thoughts? Current strategies? Horror stories? Please share! :)
Since it doesn't really seem like any other customers have anything to say on this, I thought I'd let you know our normal recommendations.
There are basically two ways to program the nRF51 series devices in production:
Which one of those to choose is mostly a matter of personal preference as far as I can see. :)
Edit 02.08.16: This topic can also be found on our infocenter, section "production programming and testing".
Unfortunately, our manufacturing partner has already built our radio modules, so we're going to have to go the "post programming" route.
If I build a "flying programming head", I will be sure to post a video of it!
What we've decided to do is build a custom programming rig with nRFjprog on a PC, an Arduino and some Python to control everything.
As we'll be post-programming, the rig will have pogo pins that interface with standardized set of contacts on each of our five different nRF51-containing boards.
The rig will both program and exercise our board (we'll emulate a battery connection, check peripherals work).
I'll post some pictures when we get everything working! :)
Which brings me up to the next question: any suggestions on code to "exercise" an nRF51822 to check that it's functioning? We can write something, but figured I'd ask...I'll post it in a separate topic.
I've been developing a similar jig using pogo-pins and a custom board with a FT2232H to power each board and provide serial communications. I'm also planning on using the second channel of the FT2232H to program the nRF51822 using JTAG but I haven't developed the software for this yet.
Our panelization is 2x8 which makes it a bit easier to develop an affordable solution - especially if we can use the FTDI chip for both serial and JTAG.