Nordic nRF51 DK

This is a great platform for learning more about BLE and the ARM Cortex-M0 architecture.

It seems as if every company I've worked with in the past 6 months is using the Nordic nRF5x. The nRF51 is an "ultra-low power" SoC consisting of a Cortex-M0 MCU with an integrated 2.4GHz transceiver. Nordic also supplies software stacks supporting various BLE configurations as well as other useful features like DFU & OTA updates.

The Nordic chips are directly usable as the primary SoC in low-powered BLE devices. However, I also note a trend of using nRF5x SoCs as a secondary processor in complex systems. Since Nordic provides a fully functional BLE stack, a paired Nordic SoC can be used to handle BLE comms, freeing up the main system processor for other tasks. Other systems take advantage of the low power and use it as an always-on processor that monitors various inputs and wakes the primary system when required.

Due to their ubiquity, I recommend familiarizing yourself with this platform. Nordic provides an SDK for their nRF5x series of parts, which is geared toward their dev boards.

To support nRF51 development, Nordic provides the nRF51 DK. The kit supports development for the nRF51822, nRF51824, and nRF51422 SoCs. The kit is also compatible with Arduino shields, providing interesting prototyping options right out of the box. Nordic also highlights that the nRF51 DK can be used as a low-cost Bluetooth LE packet sniffer by using their nRF Sniffer software.

The nRF51 DK is also compatible with ARM mbed.

More on the nRF51 and nRF51 DK:


The Crazyflie is much more fun than your typical development kit, as it involves a small flying drone! This is a great example of a complex system with multiple processors that interact. The Crazyflie2 utilizes BLE and a custom Nordic radio protocol (Enhanced Shockburst) for communicating with a phone or host PC. The Crazyflie has two expansion decks, so if you're interested in learning to build a custom board this is a great platform to utilize.

Right out of the box there is a fully operational flying drone. The drone's capabilities can be expanded via two expansion decks. Particularly adventures hackers who want to test their hardware development skills can try building their own expansion decks and writing a custom deck driver.

The Crazyflie itself has two processors: an nRF51 and an STM32. The nRF51 manages the radio link with the USB radio base station, and the STM32 handles flight control and other primary system functions. There are many ways to tinker with this device, such as exploring inter-processor communication, adding custom decks, messing with the flight control software (just to name a few).

All Crazyflie-related source code is available on Github. There are many software pieces involved with this device, and each has its own dedicated software repository.

More on the Crazyflie2: