I am working on this project with bluetooth low energy and it seems I will have to order the Nordic Semi DK kit for one of their nRF51 series chips. I am just curious (and an amateur at this), once one has written the program to be compiled and stored in the chip and tested the program with the DK board, you still obviously have the dev board attached to the chip. Once youre ready to manufacture a PCB do you just order the chip itself and load the compiled program in via an input mechanism on one of the chip's inputs or how exactly does that work most of the time?
Development board to custom hardware:
Development Boards (dev-boards) are incredibly useful for quick prototyping. Typically, after validating your initial design using a development board, you would move to designing a custom PCB suited for your application. Software development can then continue using your application-specific hardware.
Possible reasons to design a custom PCB:
- The product needs to fit in a specific enclosure.
- Smaller PCB = lower cost PCB in mass production (development boards can be large relative to your product).
- Not all components on a development board are required in a mass-produced product. Reducing part-count lowers your cost.
The list goes on. All of these points fall under the princicple of Design For Manufacture (DFM).
Programming your custom hardware in the factory:
You may be able to include a programming connector on-board. This can be any connector that interfaces your hardware to a programmer (such as a Segger J-Link).
There are a few reasons not to use a connector to program mass-produced products:
- It is often not desirable to require an operator on a factory line to plug in every single board to the programmer manually. This takes operator time, which is valuable.
- Adding a connector onto your product for one-time programming incurs unnecessary cost.
- Connectors consume space on the PCB, which (depending on your product size) you may not have.
One very common solution to this is to use a "bed of nails" fixture. This involves pads on the bottom of your PCB that line up with spring contacts on a programming fixture. Not only can this be used to program your finished PCB, but can also make test-points available for automated checking on the factory line.
The Nordic chips have a SWD programming interface, programming can be done using a j-link programmer or trough a DK.
When you are ready to manufacture you can get them pre-programmed but this will cost you. It will probably be better to program them when you produce the PCBsif you are not producing a ton of PCBs. If you are not going to produce large runs and not update the code it will probably be best to program the chips your self.
By the way, have you had a look over at the Nordic dev zone? There are lots of information in questions and blog posts, answered by the community and Nordic employees.
Her is a link to what you are asking about. Programming and debugging custom nrf 5x devices