Tips for Getting Started with the NRF51 from Nordic Semiconductor

While we were getting started with the hardware development for Moment, our first product, we needed to find a suitable way to handle the processing and Bluetooth Low Energy communications for the device. The NRF51 from Nordic Semiconductor, a BLE system on a chip, was very appealing for a few reasons:

  • Support for development using an open source toolchain (ARM GCC)
  • Good performance characteristics and excellent Bluetooth Low Energy support
  • An active community of developers
  • A rapidly improving SDK
  • A well-designed development board

That being said, we encountered a few things we wish we knew before starting:

  • The Keil development environment can be used for free, but use GCC if you plan to make larger or more complicated firmware code (there’s a ~40kb limit on the compiled binary size with Keil for free use)
  • In spite of that, debugging with Keil is much easier than with a GCC setup
  • The provided iOS and Android example apps have excellent demonstration of the over-the-air device firmware update (OTA DFU), but the core functionalities have only recently been split into modular components – integration with your own app can require a lot of tweaking
  • Many of the example programs included with the SDK require some modification until they can be effectively deployed to a new target board – making your own BSP (board support package) can be very useful if you make sure to properly include all the necessary definitions
  • If you plan to use OTA DFU, make sure to thoroughly understand the design constraints it imposes, as well as the structure of the bootloader

And some quick tips as you get started:

  1. Look into the NRF52, in case it will suit your needs more effectively
  2. Always use the latest SDK and documentation whenever possible – many tutorials you find in a Google search will use a different version of the SDK or SoftDevice, and searching for examples outside of the latest SDK documentation can be unproductive
  3. Use GCC. Keil has some great tools for development, but GCC is available across all platforms without restrictions. If you’re a Windows-only team without much price sensitivity, you probably will prefer Keil for its superior debugging.
  4. Have a solid game plan for integrating the chip into your own circuits. How will you update the firmware? What kind of a programmer will you use?
  5. The examples are a good starting point for quickly trying out different SDK components, but starting from scratch with your own code structure will help you keep your code more modular
  6. You can possibly order pre-programmed NRF51 chips, including the DFU OTA bootloader

Author: Shantanu Bala

Shantanu Bala graduated from Arizona State University in 2014 with a double B.S. in Computer Science and Psychology.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.