Adafruit Feather nRF52840 Express
⚡ The essentials in 60 seconds
- soc — Nordic Semiconductor nRF52840 (QFN, on the Raytac MDBT50Q module). - CPU: ARM Cortex-M4F (HW floating point) @ 64 MHz — confirmed by Adafruit ( and by Zephyr's device tree clock-frequency = <64000000> ( - Memory: 1 MB flash + 256 KB RAM on-chip (Adafruit product page; circuitpython.org board page; Zephyr board YAML ram: 256, The Feather adds 2 MB external QSPI flash for CircuitPython file storage (Adafruit product page). - No GPU (microcontroller).
- radio_2_4_ghz_multiprotocol — - Bluetooth 5 / Bluetooth Low Energy — the MDBT50Q module datasheet describes it as a "BT 5.0 stack (Bluetooth low energy or BLE) module designed based on Nordic nRF52840 SoC" with "Bluetooth 5, IEEE 802.15.4, 2.4 GHz transceiver" (Raytac MDBT50Q datasheet rev B, 2018-06-12, mirrored by Adafruit: - IEEE 802.15.4 (Thread / Zigbee): the radio node carries ieee802154-supported in Zephyr's nRF52840 device tree, and the nRF52840 DK board lists netif:openthread (Thread) support (links above). - No Wi-Fi, no Ethernet. - TX power up to +8 dBm; RX sensitivity −95 dBm @ 1 Mbps BLE (Adafruit product page; Raytac datasheet).
- usb — native USB 2.0 device controller (no CP210x/FT232 needed) — USB D+/D− pins on the module (Raytac datasheet), usbd@40027000 (nordic,nrf-usbd) in Zephyr's device tree, TinyUSB-based Arduino support exposing CDC/HID/Mass Storage/MIDI classes (Adafruit product page +
- gpio_peripherals_board_level_adafruit_product_page — - 21 GPIO, 3.3 V logic (Feather standard). - 6 × 12-bit ADC pins; up to 12 PWM outputs (3 PWM modules × 4 channels). - Hardware SPI, UART, I²C and I²S routable to any pins (nRF peripheral PSEL). - SPI detail: 3 low-speed SPIM (≤8 MHz, shared with TWIM) + 1 high-speed SPIM3 (≤32 MHz) ( - On-board: red user LED, NeoPixel status LED, USER button, reset button, power/enable pin, battery-VIN divider on an analog pin, 2×5 0.05″ SWD connector, 4 mounting holes.
- security — on-chip ARM CryptoCell-310 crypto accelerator (arm,cryptocell-310 node in Zephyr's device tree, link above), plus NFC interface on the module (Raytac datasheet).
- power — 1.7–3.3 V operation with internal LDO + DC/DC regulators (Adafruit product page); LiPo connector with on-board charger and USB/battery auto-select; runs from micro-USB alone. Current-consumption figures:
- On this board : 9 tutorials · 10 code
The Adafruit Feather nRF52840 Express stands as a pivotal development board for makers and engineers seeking to bridge the gap between simple microcontroller projects and complex, connected wireless applications. Launched around January 2019, this board is built around the Nordic Semiconductor nRF52840 System-on-Chip, mounted on a Raytac MDBT50Q module. This specific configuration makes it one of the first mainstream Bluetooth Low Energy boards to offer native USB connectivity, a feature that significantly simplifies the development workflow by eliminating the need for separate USB-to-serial converter chips. The board adheres to the popular Feather form factor, measuring just 51 by 23 millimeters, which ensures compatibility with a vast ecosystem of add-on modules known as FeatherWings. This modularity allows users to expand the board’s capabilities with sensors, displays, or motor drivers without redesigning the core circuit, making it an ideal starting point for both beginners and advanced users.
At the heart of the board lies the nRF52840, a powerful microcontroller featuring an ARM Cortex-M4F processor running at 64 MHz. The "F" in Cortex-M4F denotes hardware floating-point support, which allows the chip to perform complex mathematical calculations much faster than microcontrollers that rely on software emulation for such tasks. This processing power is backed by 1 MB of flash memory for storing program code and 256 KB of RAM for temporary data storage. For projects requiring more storage, the board includes an additional 2 MB of external QSPI flash memory, which is particularly useful for storing CircuitPython libraries, images, or data logs. The radio capabilities are equally impressive, offering a multiprotocol 2.4 GHz transceiver that supports Bluetooth 5 and Bluetooth Low Energy, as well as IEEE 802.15.4 standards used in Thread and Zigbee networks. This versatility allows the board to serve as a hub for various wireless protocols, although it is important to note that it does not support Wi-Fi or Ethernet. The radio module is FCC, IC, and TELEC certified, ensuring that it meets regulatory requirements for wireless emissions in major markets.
One of the most significant advantages of the nRF52840 Express is its native USB device controller. Unlike many other Bluetooth boards that require an external chip to communicate with a computer, this board handles USB communication directly through the main processor. This enables it to appear as a standard USB device, such as a keyboard, mouse, MIDI instrument, or mass storage drive, using the TinyUSB library. For developers, this means that programming the board is as simple as dragging and dropping files onto a drive that appears on the computer, thanks to the pre-flashed UF2 bootloader. This bootloader allows for easy updates to the firmware, including the operating system itself, without the need for specialized programming hardware. However, users should be aware that older versions of the bootloader may have issues with larger firmware updates, so checking the version and updating it if necessary is a recommended first step.
The board’s input and output capabilities are designed to be flexible and accessible. It features 21 general-purpose input/output pins, which are digital pins that can be configured as either inputs or outputs. These pins operate at 3.3 volts, a standard voltage level for modern electronics that balances power consumption and signal integrity. Among these pins, six can be used as analog-to-digital converters, allowing the board to read varying voltage levels from sensors, and up to twelve can be used for pulse-width modulation, a technique used to control the speed of motors or the brightness of LEDs. The board also supports various communication protocols, including SPI, UART, I2C, and I2S, which can be routed to different pins depending on the project’s needs. On-board, users will find a red user LED, a NeoPixel status LED, a user button, and a reset button, along with a battery connector with an integrated charger, allowing the board to run on a small lithium polymer battery.
Despite its strengths, the board has some known limitations and quirks that developers should keep in mind. For instance, the high-speed SPI interface (SPIM3) has a documented bug where it does not function correctly when the board is powered solely by a battery, as it requires the voltage from the USB port to operate properly. Additionally, the three low-speed SPI interfaces share resources with the I2C interfaces, meaning that not all peripherals can be used simultaneously. Another consideration is that when the Bluetooth stack is active, it runs with a higher priority than user code, which can affect the timing precision of real-time applications. Furthermore, there has been some confusion in documentation regarding the pin number of the red LED, with different sources citing different pins; using the built-in LED constant provided by the software libraries is the safest approach to avoid errors.
The Adafruit Feather nRF52840 Express is supported by a robust software ecosystem, including Arduino, CircuitPython, and Zephyr RTOS. CircuitPython, in particular, is a popular choice for this board because it allows for easy scripting and rapid prototyping, with the ability to edit code directly on the board without recompiling. The board’s combination of powerful processing, extensive memory, versatile radio capabilities, and user-friendly programming interfaces makes it a compelling choice for a wide range of projects, from simple sensor logging to complex wireless communication systems. While it has been marked as out of stock by Adafruit as of late 2026, it remains actively supported with software updates, and its successor, the Feather nRF52840 Sense, offers additional integrated sensors for those who need them. For anyone looking to explore the world of Bluetooth Low Energy development with a board that offers both ease of use and professional-grade features, the nRF52840 Express remains a highly relevant and capable platform.

Pinout diagram

| Attr | Specs | verified |
|---|---|---|
soc | Nordic Semiconductor nRF52840 (QFN, on the Raytac MDBT50Q module). - CPU: ARM Cortex-M4F (HW floating point) @ 64 MHz — confirmed by Adafruit ( and by Zephyr's device tree clock-frequency = <64000000> ( - Memory: 1 MB flash + 256 KB RAM on-chip (Adafruit product page; circuitpython.org board page; Zephyr board YAML ram: 256, The Feather adds 2 MB external QSPI flash for CircuitPython file storage (Adafruit product page). - No GPU (microcontroller). | ✔ |
radio_2_4_ghz_multiprotocol | - Bluetooth 5 / Bluetooth Low Energy — the MDBT50Q module datasheet describes it as a "BT 5.0 stack (Bluetooth low energy or BLE) module designed based on Nordic nRF52840 SoC" with "Bluetooth 5, IEEE 802.15.4, 2.4 GHz transceiver" (Raytac MDBT50Q datasheet rev B, 2018-06-12, mirrored by Adafruit: - IEEE 802.15.4 (Thread / Zigbee): the radio node carries ieee802154-supported in Zephyr's nRF52840 device tree, and the nRF52840 DK board lists netif:openthread (Thread) support (links above). - No Wi-Fi, no Ethernet. - TX power up to +8 dBm; RX sensitivity −95 dBm @ 1 Mbps BLE (Adafruit product page; Raytac datasheet). | ✔ |
usb | native USB 2.0 device controller (no CP210x/FT232 needed) — USB D+/D− pins on the module (Raytac datasheet), usbd@40027000 (nordic,nrf-usbd) in Zephyr's device tree, TinyUSB-based Arduino support exposing CDC/HID/Mass Storage/MIDI classes (Adafruit product page + | ✔ |
gpio_peripherals_board_level_adafruit_product_page | - 21 GPIO, 3.3 V logic (Feather standard). - 6 × 12-bit ADC pins; up to 12 PWM outputs (3 PWM modules × 4 channels). - Hardware SPI, UART, I²C and I²S routable to any pins (nRF peripheral PSEL). - SPI detail: 3 low-speed SPIM (≤8 MHz, shared with TWIM) + 1 high-speed SPIM3 (≤32 MHz) ( - On-board: red user LED, NeoPixel status LED, USER button, reset button, power/enable pin, battery-VIN divider on an analog pin, 2×5 0.05″ SWD connector, 4 mounting holes. | ✔ |
security | on-chip ARM CryptoCell-310 crypto accelerator (arm,cryptocell-310 node in Zephyr's device tree, link above), plus NFC interface on the module (Raytac datasheet). | ? unverified |
power | 1.7–3.3 V operation with internal LDO + DC/DC regulators (Adafruit product page); LiPo connector with on-board charger and USB/battery auto-select; runs from micro-USB alone. Current-consumption figures: | ? unverified |
mechanical | Feather form factor, 51 × 23 × 7.2 mm, ~6 g (Adafruit product page). | ? unverified |
- Manufacturer: Adafruit Industries (USA). Board is Adafruit's "all-in-one" Arduino-compatible + Bluetooth Low Energy Feather, built around the Nordic nRF52840 SoC mounted on a Raytac MDBT50Q module ( module confirmed at both retrieved 2026-10-13).
- Year introduced: early 2020s-adjacent launch: the Adafruit learning guide's product photos and the Raytac module datasheet are dated December 2018 – January 2019 (CDN asset timestamps 1546346679 ≈ 2019-01-01, 1548963877 ≈ 2019-01-31), so the board shipped around January 2019.
- Status (2026-10-13): still listed and actively supported (CircuitPython builds published for it, e.g. 11.0.0-alpha.1), but marked "Out of Stock" at Adafruit on the learning-guide pages retrieved today (
- Launch price:
- Variants: - Feather nRF52840 Sense (#4516): same board plus LSM6DS3TR-C accel/gyro, LIS3MDL magnetometer, APDS9960 proximity/gesture, PDM mic, SHT humidity, BMP280; introduced Feb 2020 (product page + "New Products 2/5/2020" video, retrieved 2026-10-13). - Feather nRF52 Bluefruit LE [nRF52832] (#3406): smaller-flash predecessor, micro-USB, no native USB on the MCU. - Later nRF52840 Feather form factors with external antenna connectors exist in Adafruit's shop;
+ Strengths
- Only mainstream BLE SoC with native USB that has enough RAM for CircuitPython — Adafruit chose it as their first BLE CircuitPython board for exactly this reason (
- Native USB device classes via TinyUSB: CDC serial, HID keyboard/mouse, MIDI, mass storage (
- Multiprotocol 2.4 GHz: Bluetooth 5/BLE + IEEE 802.15.4 → Thread (OpenThread supported in Zephyr) and Zigbee-class stacks via nRF Connect SDK (sources in SoC section).
- Hardware security: ARM CryptoCell-310 accelerator (Zephyr device tree).
- UF2 drag-drop bootloader + BLE OTA DFU with no extra hardware (learn guide, circuitpython.org).
- 2 MB QSPI flash for CircuitPython libraries/files, separate from the 1 MB code flash (Adafruit product page).
- FCC / IC / TELEC certified radio via the Raytac MDBT50Q module (Adafruit product page; Raytac datasheet).
- Feather ecosystem: drop-in FeatherWing compatibility, LiPo charging, SWD header — the "UART-using wings work too" upgrade over the nRF52832 Feather (product page).
− Weaknesses
- Old UF2 bootloader bricks CircuitPython upgrades: boards shipped with bootloader < 0.6.1 "do not handle large UF2's, including CircuitPython 8.2.0 and later, and has other issues"; check INFO_UF2.TXT on the ...BOOT drive. UF2-based self-update itself requires ≥ 0.4.0; ≤ 0.3.x needs Arduino IDE/CLI (
- SPIM3 (high-speed SPI) dead on battery power: documented hardware bug — SPIM3 "does not operate properly when the board is not powered via the USB port" (VUSB not energized). CircuitPython's first board.SPI grabs SPIM3, so Adafruit publishes a workaround (allocate-and-ignore the first SPI object). Tracked in (
- SPIM0–2 pin/peripheral contention: the three low-speed SPI masters share instances with the I²C masters, "so not all SPI peripherals are always available" (same page as #2).
- No hard real-time while BLE runs: the Arduino core schedules tasks on FreeRTOS and Nordic's SoftDevice stack "has higher priority than any user code, including control over interrupt handlers" — hard timing requirements are not guaranteed when the radio is active (
- Rev D schematic erratum (Adafruit-flagged): in the "JS PH LIPO INPUT" section the silkscreen/net note says D5 where it should be A6 (
- Red-LED pin documentation conflict: Express page says "Pin #3 red LED", Sense page says "Pin #13 red LED" (both retrieved 2026-10-13). Use the unambiguous NeoPixel or LED_BUILTIN from the BSP instead of hardcoding.
- Availability: listed "Out of Stock" at Adafruit on 2026-10-13 (learn-guide pages); the Sense variant is the easier-to-find sibling.
- Charge-only USB cable trap: Adafruit explicitly warns double-click-reset/UF2 failures are usually charge-only cables (circuitpython install page).
- Retour d'expérience expert expert — expert-microcontroleur
- Retour sur la nRF52840 Feather. C'est la carte de choix si vous voulez du BLE avec CircuitPython, car c'est le seul SoC courant avec assez de RAM et USB natif. Attention toutefois aux pièges matériels. Si votre bootloader est antérieur à la v0.6.1, les mises à jour UF2 récentes comme CircuitPython … — expert-microcontroleur
- Merci pour ces précisions, ça m'évite des heures de debug. J'ai justement galéré avec le SPI sur batterie, je pensais à un problème de code Python mais c'était bien le hardware. Par contre, je bute sur le schéma Rev D. J'ai lu l'errata concernant le silkscreen D5 vs A6, mais je ne suis pas sûr de c… — maker_bricoleur
- Pour l'errata D5/A6, c'est une erreur d'étiquetage sur le PCB, pas un défaut de routage électrique. Le signal est bien là où il doit être, mais si tu te fies au texte sérigraphié pour identifier le pin A6, tu vas te tromper et souder sur le mauvais endroit. Utilise Always la doc technique ou les sc… — dev_embedde
Community feedback and projects
- Everything nRF52840 - MySensors Forum forum.mysensors.org
- Sunrise Programmer 2023: Feather nRF52840 notes sunriseprogrammer.blogspot.com
- DIY CO2 Monitoring - Edge Collective notes edgecollective.io
- Product page
- Learning guide (schematics, pinout, tutorials)
- nRF52840 Product Specification (official, Nordic)
- nRF52840 Product Specification (official, Nordic)
- Raytac MDBT50Q module datasheet
- Schematic / EagleCAD / PCB
- Schematic / EagleCAD / PCB
- Arduino core
- CircuitPython board page
- CircuitPython board page
- TinyUSB Arduino library
- Zephyr board doc / device tree
- Zephyr board doc / device tree
- nRF Connect SDK
- Community
- Community
- Old UF2 bootloader bricks CircuitPython upgrades: boards shipped with bootloader < 0.6.1 "do not handle large UF2's, including CircuitPython 8.2.0 and later, and has other issues"; check INFO_UF2.TXT on the ...BOOT drive. UF2-based self-update itself requires ≥ 0.4.0; ≤ 0.3.x needs Arduino IDE/CLI (
- SPIM3 (high-speed SPI) dead on battery power: documented hardware bug — SPIM3 "does not operate properly when the board is not powered via the USB port" (VUSB not energized). CircuitPython's first board.SPI grabs SPIM3, so Adafruit publishes a workaround (allocate-and-ignore the first SPI object). Tracked in (
- SPIM0–2 pin/peripheral contention: the three low-speed SPI masters share instances with the I²C masters, "so not all SPI peripherals are always available" (same page as #2).
- No hard real-time while BLE runs: the Arduino core schedules tasks on FreeRTOS and Nordic's SoftDevice stack "has higher priority than any user code, including control over interrupt handlers" — hard timing requirements are not guaranteed when the radio is active (
- Rev D schematic erratum (Adafruit-flagged): in the "JS PH LIPO INPUT" section the silkscreen/net note says D5 where it should be A6 (
- Red-LED pin documentation conflict: Express page says "Pin #3 red LED", Sense page says "Pin #13 red LED" (both retrieved 2026-10-13). Use the unambiguous NeoPixel or LED_BUILTIN from the BSP instead of hardcoding.
- Availability: listed "Out of Stock" at Adafruit on 2026-10-13 (learn-guide pages); the Sense variant is the easier-to-find sibling.
- Charge-only USB cable trap: Adafruit explicitly warns double-click-reset/UF2 failures are usually charge-only cables (circuitpython install page).
- Faire clignoter la LED de la Feather nRF52840 debutant Schéma : IMG-nrf52840-feather-debutant-1-nrf52840-clignotement-led.svg — Vue de dessus de la Feather nRF52840 Express alimentée en micro-USB, LED rouge utilisateur et bouton RST annotés.
- Bouton utilisateur et console série USB debutant Schéma : IMG-nrf52840-feather-debutant-2-nrf52840-bouton-console-uart.svg — Feather nRF52840 avec le bouton USER relié à la broche D9, résistance de pull-up interne et moniteur série affiché à l'écran.
- Lire un capteur analogique avec le SAADC 12 bits debutant Schéma : IMG-nrf52840-feather-debutant-3-nrf52840-capteur-analogique-saadc.svg — Potentiomètre alimenté en 3,3 V, curseur relié à A0 de la Feather nRF52840, masse commune, tension lue affichée en console.
- Périphérique BLE : pont série air ↔ USB (Bluefruit) intermediaire Schéma : IMG-nrf52840-feather-intermediaire-1-nrf52840-ble-peripheral-bluefruit.svg — Feather nRF52840 advertised « Feather52840 », smartphone avec l'app Bluefruit LE Connect UART, flèches de données bidirectionnelles vers le port USB.
- Pilote le NeoPixel embarqué (broche D13) intermediaire Schéma : IMG-nrf52840-feather-intermediaire-2-nrf52840-neopixel-d13.svg — Gros plan sur le NeoPixel d'état de la Feather nRF52840, broche D13 et alimentation 3,3 V commandées depuis la broche data, ruban de couleurs d'exemple.
- Connecter un capteur externe en I²C et SPI intermediaire Schéma : IMG-nrf52840-feather-intermediaire-3-nrf52840-spi-i2c-capteur-externe.svg — Feather nRF52840 reliée à un module BMP280 en I²C (SDA/SCL) et à un module SPI, pull-up sur le bus, broches 3V3 et GND communes.
- Low-power : veille profonde et réveil avance Schéma : IMG-nrf52840-feather-avance-1-nrf52840-low-power-system-off.svg — Feather nRF52840 sur batterie LiPo, pin ENABLE coupant le régulateur, ampèremètre en série, bouton RST et broche de réveil annotés.
- USB HID + CDC et BLE simultanés avance Schéma : IMG-nrf52840-feather-avance-2-nrf52840-usb-hid-cdc-ble.svg — Feather nRF52840 connectée en USB (clavier HID + port série CDC) et en BLE (smartphone), trois flux logiques distincts vers ordinateur et téléphone.
- Thread/OpenThread sous Zephyr et mises à jour DFU/UF2 avance Schéma : IMG-nrf52840-feather-avance-3-nrf52840-thread-openthread-dfu.svg — Feather nRF52840 en nœud Thread (IEEE 802.15.4) reliée à un border router, flash par glisser-déposer UF2 vers le lecteur FTHR840BOOT, chaîne de mise à jour annotée.
Code library — examples written for this board
neopixel_pulsation.pyPythonled_bouton.pyPythonentrees_num.pyPythonanalogique_lumiere.pyPythonservo_pwm.pyPythonscanner_i2c.pyPythonble_uart.pyPythonsommeil_alarme.pyPythonlogging_qspi.pyPythonneopixel_arcenciel.pyPython
Examples and repos found online
- adafruit/Adafruit_nRF52_Arduino github.com
- nrfconnect/sdk-nrf github.com
- zephyrproject-rtos/zephyr github.com