Challenger 840 BLE – 8MB information

The Challenger 840 BLE board is an Arduino/Circuitpython compatible Adafruit Feather format micro controller board packed with loads of functionality for your projects that require low power consumption and a BLE connection.

The main controller of this board is the Nordic Semiconductor nRF52840 with 1MByte of FLASH memory and 256KByte of SRAM. The nRF52840 SoC is the most advanced member of the nRF52 Series. It meets the challenges of sophisticated applications that need protocol concurrency and a rich and varied set of peripherals and features. It offers generous memory availability for both Flash and RAM, which are prerequisites for such demanding applications.


The nRF52840 is fully multi protocol capable with full protocol concurrency. It has protocol support for Bluetooth LE, Bluetooth mesh, Thread, Zigbee, 802.15.4, ANT and 2.4 GHz proprietary stacks.

USB Type C

In the recent years we have noticed that we are seeing more and more USB Type C cable laying around the lab due to the fact that all new phones and accessories use them. As of yet we haven’t seen any shortage of micro USB cables but we are not getting any new ones any more and old ones do break occasionally. So we decided to go for a USB Type C connector for this board. A bonus of this is that they are quite bit more durable and you don’t have to fiddle with the cable before plugging it in.

Challenger 840 BLE – 8MB Features

The board is packed with hardware features, here’s a short list of its most prominent ones.

– Sturdy USB Type C connector
– nRF52840 @ 64MHz
– 1MB internal chip FLASH + 256KB RAM
– 8 MByte external NOR FLASH memory
– 32.768 KHz crystal for clock generation & RTC
– 3.3V regulator with 250 mA peak current output, most of which is reserved for the board itself
– USB native support, comes with UF2 USB bootloader
– 20 GPIO pins
– Hardware Serial, hardware I2C, hardware SPI support
– PWM outputs on all pins
– 6 x 12-bit analog inputs
– Built in 500 mA LiPo charger with charging status indicator LED
– Power/enable pin
– 4 mounting holes
– Reset button
– Neopixel LED that indicates board status but that can be used by the programmer


Challenger 840 BLE Software

The Challenger 840 BLE board is 100% compatible with the Arduino framework. It has a unique board support package that fully supports all the features of the board. You can also install and run Circuitpython on the board if this is what you want to do. Check out the “Getting Started” tab for more information.


The boards comes with loose headers that can be soldered to the board if your application requires it.

Weight 0.009 kg
Dimensions 5.07 × 2.28 × 0.72 cm


In order to start using the Arduino environment for the Challenger boards you need to install a board support package for the board. This is how you do it.

Configure the IDE to find the support package.

The first thing we need to do is to tell the IDE where to find the board support package.

Go to the preferences in the Arduino IDE. You will find it in the “File” menu and it looks something like this:

Now, click on the the little box to the right of the “Additional Boards Manager URL’s” (circled in blue) and the following dialog will pop up:

In this dialog you should add the URL of the board support description file. I’ve already done it in the picture above. The URL you should use is: https://ilabs.se/files/package_ilabs-nrf52_index.json

When you have entered the URL you can close the “Additional Boards Manager URLs” dialog and the “Preferences” dialog by clicking “OK”.

Download the board support package

When you have set up the URL for the board description we need to tell the Arduino IDE to download all the necessary tools and board support files.

Go to the tools menu and click on the “Board:” entry, then click on “Boards Manager”. This will give you the following dialog:

Type NRF52 into the circled text box to find the proper board support package and then click on the Install button in the “Adafruit/iLabs nRF52” entry.

After the installation process completes you are now ready to start developing C/C++ programs for the Challenger 840 BLE board.

Now, check out the examples section for for inspiration on how to get going =)


The Challenger 840 BLE board is fully compatible Adafruits CircuitPython. You can download the latest and greatest circuitpython interpreter from here.

Getting  your first app to run

The board support package is full of exiting examples on how to use the Challenger 840 BLE board. Once you have selected the correct board you can go to “Examples” in the File menu to find examples that are targeted to the Challenger 840 BLE board. You will find BLE radio examples as well as examples on how to use the different on board peripherals.

But to make it simple to get something going we have included a simple code snippet that will create an Eddystone beacon that advertises a URL.

#include <bluefruit.h>
#define URL "https://www.ilabs.se"
// Create an EddyStone URL with rssi at 0m = -40 and URL as defined above
EddyStoneUrl eddyUrl(-40, URL);

void setup()
while ( !Serial ) delay(10); // for nrf52840 with native usb
digitalWrite(LED_GREEN, 1);

Serial.println("Bluefruit52 EddyStone URL Example");

Bluefruit.setTxPower(4); // Check bluefruit.h for supported values

// Setup the advertising packet
Serial.println("Broadcasting EddyStone URL, open Google Physical Web app to test");

void startAdv(void)
// Advertising packet
// Set the beacon payload using the BLEBeacon class populated
// earlier in this example

// Secondary Scan Response packet (optional)
// Since there is no room for 'Name' in Advertising packet

/* Start Advertising
* - Enable auto advertising if disconnected
* - Timeout for fast mode is 30 seconds
* - Start(timeout) with timeout = 0 will advertise forever (until connected)
* Apple Beacon specs
* - Type: Non connectable, undirected
* - Fixed interval: 100 ms -> fast = slow = 100 ms
Bluefruit.Advertising.setInterval(160, 160); // in unit of 0.625 ms
Bluefruit.Advertising.setFastTimeout(30); // number of seconds in fast mode
Bluefruit.Advertising.start(0); // 0 = Don't stop advertising after n seconds

void loop()
// Toggle both LEDs every second

This is just an example on how easy it is to start an advertisement but most things are just as simple. Check out the examples and if something is unclear get in touch with us and we’ll try to help you out.

Here you will find product datasheets and specifications

Main Processor

  • nRF52840 @ 64MHz
  • 1MB FLASH + 256KB RAM
  • 8 MByte of NOR FLASH memory
  • 32.768 KHz crystal for clock generation & RTC
  • 3.3V regulator with 250mA peak current output
  • USB native support, comes with UF2 USB bootloader
  • 20 GPIO pins
  • Hardware Serial, hardware I2C, hardware SPI support
  • PWM outputs on all pins
  • 6 x 12-bit analog inputs

Board functions

  • 4 MByte external SPI FLASH memory
  • Neopixel LED
  • LiPo charger circuit with 500 mA charging current
  • USB Type C connector
  • Green LED for general purpose blinking
  • Power enable pin
  • 4 mounting holes
  • Reset and DFU button
  • Neopixel LED that indicates board status but that can be used by the programmer

You can always get our products from your local reseller if you like. Here is a list of current resellers.

  • The Pi Hut Raspberry Pi Superstore
  • The largest maker shop in Switzerland


There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.