What are these platforms? Here's a quick list of what I'm going to take a look at. Some of these are Nordic only, but most of them are what I'm calling "supports everything" platforms, which are toolsets that attempt to abstract a lot of things across different devices to encourage code reuse and to make it easier for people to switch between devices.

nRF5 SDK with SEGGER Embedded Studio

This is the toolchain recommended by Nordic. SEGGER make their Embedded Studio toolchain available for free for use with Nordic devices.

GCC + Makefiles

This is what I ended up using for the project I was working on.

GCC + VS Code

One step up from my low rent approach. Lots of people seem to like VS Code, and although IDEs aren't my cup of tea, it supports so many plugins and approaches that it's worth looking at.


A "supports everything" platform. Well, not quite, but it does support a lot of devices.

ARM mbed

This is ARM's "supports everything" option (as long as it's ARM). Nordic were part of the mbed project for a while, now they're not, but the Nordic chips are still supported.


The Linux of the microcontroller world? It's not Linux, though it's a project of the Linux Foundation. Aims to be a modern operating system for microcontrollers. Another "supports everything" option.


This is the first of two "ringer" platforms, using "languages that are not C". CircuitPython has a reputation as something of a toy, but having written some fairly significant things in Python, I can't quite believe that. I've been told that it supports Bluetooth on the nRF52840, so I want to see just how easy this stuff can be!

Rust + RTFM

The other non-C choice. Rust is pretty amazing, and I know there's been a lot of activity getting it going on ARM processors. There is some experimental BLE support for the nRF52840 floating around. I don't think this will be a serious option for commercial development, but I want to see what's possible as a proof of concept.