1
\$\begingroup\$

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?

\$\endgroup\$
3
  • \$\begingroup\$ Some suppilers can provide pre-programmed chips for some fee. However, the general approach is to read the chips datasheet and come to a decision about which interfaces you wish to have on the product board. You typically expose the interfaces that are necessary for chip reprogramming and troubleshooting, anything that could help with future technical maintenance, but it all comes down to application requirements and designer decisions. \$\endgroup\$ – Vicente Cunha Aug 9 '18 at 19:48
  • \$\begingroup\$ Typically you would program them via an SWD header for very small runs, or via a pogo pin type jig for larger ones. Gambling that you'll never need to fix a software bug on built but unshipped hardware is silly, so only supporting programming before soldering is rare. Ultimately it's not different for this chip than any other ARM Cortex MCU, so this is multiply duplicated. \$\endgroup\$ – Chris Stratton Aug 9 '18 at 21:48
  • \$\begingroup\$ As pointed out there are various solutions. Work both with your manufacturing team and with your contract manufacturer. They know or will get quotes on the costs of the various options. And this will vary based on where in the world it is being done, so one answer for one place is not the final answer. \$\endgroup\$ – old_timer Aug 9 '18 at 23:20
3
\$\begingroup\$

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.

bed-of-nails

\$\endgroup\$
1
\$\begingroup\$

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

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.