Back to articles
Adafruit’s Feather nRF52840 Express Board and Developing with CircuitPython
The Nordic-powered Feather nRF52840 Express has been flying off the shelves. We take a closer look at the capabilities of the board and the associated development tools.
Adafruit’s latest Nordic equipped rapid development board
Adafruit has been around since 2005, when it was founded by Limor Fried, an MIT-educated electrical engineer, aka ‘Ladyada’. The moniker pays tribute to another female innovator of the engineering world, Lady Ada Lovelace, who was the daughter of poet and bon-viveur Lord Byron and did work on Charles Babbage’s mechanical general purpose computer. But I digress...
Ms Fried and her company Adafruit have over time built a very solid reputation for offering exciting and innovative open-source kits, software and accessories for the maker and inventor markets. They offer a number of kits using Nordic parts, the most recent of which is the Feather nRF52840 Express board.
The Feather nRF52840 Express
At first glance, this is a small and unassuming little board, but it hides plenty of power.
First of all, it hosts the Bluefruit LE module, which has the nRF52840 multiprotocol SoC inside. The nRF52840 has everything but the kitchen sink on its silicon and really is an amazing little device.
The Bluefruit LE module is a pre-certified module with just about all interfaces and GPIO available at its edge. This means if you start getting really advanced on your maker journey, you can start designing your own circuits and use the Bluefruit LE module in your product runs.
Where Adafruit have really brought something special to the party is with all of the software and tools support it offers. This means you can start making stuff simply and quickly without the need for 20 years experience as an embedded software developer.
CircuitPython support
Python is the fastest growing programming language worldwide. It is a powerful, high-level programming language that is popular in a range of industries including Data Science and automation scripts.
Python is an interpreted language. This means a central piece of code called a Virtual Machine (VM) takes the code you write, interprets it, and does something with it. VMs are very common in the world of computing. They are used by the likes of Java and Javascript as well as Python.
Within the embedded world, there are differing views on the use of VMs. On the plus side, they can offer fairly predictable behavior and reduce the possibility for errors lurking in the code. However, they limit absolute control of the hardware and the ability to tune for performance the way a language like C can.
Python was initially developed to run on computers with lots of resources. Some adaptation was needed to create a version that could fit easily on microcontrollers that have memory and resource constraints. CircuitPython is an open source version of Python for microcontrollers and embedded devices. It is derived from MicroPython and really is just about adding embedded support to regular Python so it can interact with the world - meaning electronics, motors, sensors, small microcontrollers and the like. Other than that, it is almost totally compatible with regular Python language use. You can find out more about CircuitPython here.
Arduino IDE support
This feather board can be used with the popular Arduino tools, used by millions of people around the world. This allows you to tap into the massive number of libraries that exist as a part of the Arduino community.
Other code editors and IDEs can be used if you are familiar with them. For beginners, the Mu editor is the easiest place to begin. Arduino is very similar to C++, which like CircuitPython is an object-oriented language that offers a lot of possibility.
Unlike CircuitPython, Arduino/C++ is a compiled language. Your code is what runs the microcontroller and interacts directly with what is available on that microcontroller. C++ has its origins in the C language and so while very powerful, it is not as easy to use nor as readable as CircuitPython. However, it’s good to have choices to consider, and the Feather nRF52840 Express offers you both.
Using standard Nordic toolchain and software
In addition to the great rapid prototyping and ease of use when using either Arduino or CircuitPython, the Feather nRF52840 Express can be used as a normal development board together with the extensive Nordic software, supporting Bluetooth LE, Bluetooth mesh, Thread and Zigbee.
This requires some knowledge of using Nordic toolchains and although I wouldn’t recommend it for a beginner, it is possible
Accompanying apps for iOS and Android
Adafruit offer a broad range of development tools and software to support the Feather nRF52840 Express board. There are flash programming apps and much more.
Their Bluefruit LE Connect apps for iOS and Android offer direct control with digital and analog interfaces and pins on the device itself. You can also plot graphs based on parameter info from sensors, pass GPS data from the phone over to the device and get full visibility of all Bluetooth LE profiles, services and characteristics in use.
The extensive Adafruit Feather ecosystem
There is plenty of stuff you can get on the Adafruit store to pimp-up your Feather nRF52840 Express. Feather wings (I do love Adafruit’s approach to marketing) are add-ons that bring external devices and possibilities to your new favorite board. These include ethernet connectivity, e-ink displays, power switching relays and stepper motor wings.
If you need it, Adafruit has it, and at astonishingly reasonable prices. This is advanced technology and inventing, democratised. Check out the Feather wings selection here.
Ready to invent on day one
The Feather nRF52840 Express is pre-loaded with the UF2 bootloader and supports drag-and-drop programming directly from either the Arduino or CircuitPython IDEs. There are lots of great examples of things you can do with the phone apps available and much of the connectivity is via simple APIs that resemble normal UART interactions.
For those wanting to dig deeper there is a 10-pin SWD connector for hooking up regular debugging tools.
The Feather nRF52840 measures just 51mm x 23mm x 7.2mm and weighs 0.6 grams. It can be powered directly from a LiOn battery for stacks of usage time. This could conceivably be years from just a single charge.
The Feather nRF52840 Express retails at just $24.95. It’s a snip at that price and has been selling fast. Get yourself one here.