Adafruit Feather nRF52840 Express
⚡ L’essentiel en 60 secondes
- 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:
- Sur cette fiche : 9 tutoriels · 10 codes
La carte Adafruit Feather nRF52840 Express se distingue dans le paysage des microcontrôleurs par une combinaison rare de ressources informatiques et de capacités de communication sans fil, le tout dans un format compact et standardisé. Introduite aux alentours de janvier 2019, cette carte repose sur le cœur de la plateforme Nordic Semiconductor nRF52840, un circuit intégré qui intègre un processeur ARM Cortex-M4F cadencé à 64 MHz. Pour comprendre l'intérêt de cette fréquence, il faut savoir que le Cortex-M4F est conçu pour le calcul numérique efficace, incluant un support matériel pour les opérations à virgule flottante, ce qui permet d'effectuer des calculs complexes sans ralentir le système. Ce processeur est épaulé par 1 Mo de mémoire flash pour stocker le code et 256 Ko de mémoire vive pour les données temporaires, des quantités généreuses pour un microcontrôleur, permettant d'exécuter des environnements de développement avancés comme CircuitPython. De plus, la carte dispose de 2 Mo de mémoire flash externe via une interface QSPI, offrant un espace de stockage supplémentaire pour les fichiers, les bibliothèques ou les journaux de données, indépendamment de la mémoire dédiée au programme.
L'un des atouts majeurs de cette carte est son intégration d'une radio multiprotocole fonctionnant dans la bande des 2,4 GHz. Elle supporte nativement le Bluetooth 5 et le Bluetooth Low Energy (BLE), idéal pour la communication avec les smartphones ou les objets connectés à faible consommation. Elle est également compatible avec la norme IEEE 802.15.4, qui sert de base aux réseaux Thread et Zigbee, ouvrant la porte à des projets de domotique interopérables. La puissance d'émission peut atteindre +8 dBm, tandis que la sensibilité de réception est excellente, permettant des connexions fiables. Il est important de noter que cette carte ne possède pas de Wi-Fi ni de port Ethernet, se concentrant exclusivement sur les communications sans fil à courte portée. La sécurité est renforcée par un accélérateur matériel de chiffrement ARM CryptoCell-310, qui libère le processeur principal des tâches lourdes de cryptographie, une fonctionnalité cruciale pour les applications nécessitant une authentification robuste.
Sur le plan de la connectivité physique, la Feather nRF52840 Express innove en intégrant un contrôleur USB natif. Contrairement à de nombreuses cartes précédentes qui nécessitaient une puce séparée pour convertir le signal USB en série, cette carte utilise directement le circuit intégré pour gérer les communications USB. Cela signifie qu'elle peut se comporter comme une clé USB, un clavier, une souris ou un périphérique de stockage de masse, tout en offrant un port série virtuel pour le débogage. Cette caractéristique simplifie grandement le développement, car il suffit d'un simple câble USB pour alimenter la carte, la programmer et échanger des données avec un ordinateur, sans configuration complexe. La carte est alimentée par un connecteur micro-USB et dispose d'un circuit de charge pour batteries lithium-polymère, avec une sélection automatique de la source d'alimentation entre l'USB et la batterie, permettant une utilisation autonome sur batterie.
Le format « Feather » impose des dimensions standard de 51 x 23 mm, rendant la carte compatible avec une vaste gamme d'accessoires appelés FeatherWings. Ces modules complémentaires permettent d'ajouter des fonctionnalités comme des écrans, des capteurs ou des relais sans soudure. La carte expose 21 broches d'entrée/sortie numériques (GPIO) fonctionnant en logique 3,3 V. Elle offre une grande flexibilité pour les périphériques externes grâce à des interfaces matérielles telles que le SPI, l'I2C, l'UART et l'I2S, qui peuvent être routées sur différentes broches selon les besoins du projet. On y trouve également six entrées analogiques pour lire des capteurs, ainsi que jusqu'à douze sorties de modulation de largeur d'impulsion (PWM) pour contrôler des moteurs ou des LED avec précision. Des éléments pratiques sont intégrés directement sur la carte, comme un bouton utilisateur, un bouton de réinitialisation, une LED rouge d'état et une LED NeoPixel adressable, utile pour afficher des codes couleur ou des états système.
Le développement logiciel est particulièrement riche pour cette carte. Elle est officiellement prise en charge par Arduino, permettant d'utiliser le langage C++ avec les bibliothèques Adafruit qui facilitent l'accès aux fonctions Bluetooth et aux capteurs. Elle est aussi l'une des premières cartes à supporter pleinement CircuitPython, une variante de Python adaptée aux microcontrôleurs, qui permet de modifier le code simplement en éditant un fichier texte sur la mémoire de masse de la carte, sans avoir besoin de recompiler. Pour les développeurs plus avancés ou les projets industriels, la carte est compatible avec le système d'exploitation temps réel Zephyr et le SDK nRF Connect de Nordic, offrant des outils professionnels pour le développement de produits finis. Le programmeur est préchargé avec un bootloader UF2, qui permet de mettre à jour le logiciel par simple glisser-déposer d'un fichier, une méthode intuitive qui évite l'utilisation de programmeurs matériels complexes.
Cependant, certains points de vigilance doivent être notés. Une limitation matérielle connue affecte l'interface SPI haute vitesse (SPIM3) lorsque la carte est alimentée par batterie : elle ne fonctionne pas correctement si le port USB n'est pas connecté. Les développeurs utilisant CircuitPython doivent appliquer une solution de contournement spécifique pour éviter ce problème. De plus, lorsque la pile Bluetooth est active, elle possède une priorité élevée sur le processeur, ce qui peut empêcher le respect strict de délais temps réel critiques dans le code utilisateur. Enfin, bien que la carte soit toujours activement supportée par le logiciel, sa disponibilité commerciale peut être limitée, Adafruit indiquant parfois une rupture de stock. Il est également recommandé de vérifier la version du bootloader installé, car les anciennes versions peuvent poser des problèmes lors de la mise à jour vers les dernières versions de CircuitPython. Malgré ces nuances, la Feather nRF52840 Express reste une référence solide pour quiconque souhaite explorer le Bluetooth Low Energy, le développement Python embarqué ou la création d'objets connectés sécurisés dans un format compact et évolutif.

Schéma de brochage (pinout)

| Attr | Specs | vérifié |
|---|---|---|
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). | ? non vérifié |
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: | ? non vérifié |
mechanical | Feather form factor, 51 × 23 × 7.2 mm, ~6 g (Adafruit product page). | ? non vérifié |
- Fabricant : Adafruit Industries (États-Unis). La carte est le Feather « tout-en-un » compatible Arduino + Bluetooth Low Energy d'Adafruit, construit autour du SoC Nordic nRF52840 monté sur un module Raytac MDBT50Q ( ; module confirmé sur tous deux consultés le 2026-10-13).
- Année d'introduction : lancement à proximité du début des années 2020 : les photos produit du guide d'apprentissage Adafruit et la fiche technique du module Raytac datent de décembre 2018 – janvier 2019 (horodatages d'assets CDN 1546346679 ≈ 2019-01-01, 1548963877 ≈ 2019-01-31), la carte a donc été expédiée vers janvier 2019.
- Statut (2026-10-13) : toujours référencée et activement prise en charge (builds CircuitPython publiés pour cette carte, par ex. 11.0.0-alpha.1), mais marquée « Out of Stock » chez Adafruit sur les pages du guide d'apprentissage récupérées aujourd'hui (
- Prix de lancement :
- Variantes : - Feather nRF52840 Sense (#4516) : même carte avec en plus accéléro/gyro LSM6DS3TR-C, magnétomètre LIS3MDL, capteur de proximité/gestes APDS9960, micro PDM, humidité SHT, BMP280 ; introduite en février 2020 (page produit + vidéo « New Products 2/5/2020 », consultée le 2026-10-13). - Feather nRF52 Bluefruit LE [nRF52832] (#3406) : prédécesseur à flash plus petite, micro-USB, pas d'USB natif sur le MCU. - Des formats Feather nRF52840 plus récents avec connecteurs d'antenne externe existent dans la boutique Adafruit ;
+ Points forts
- Seul SoC BLE grand public avec USB natif ayant assez de RAM pour CircuitPython — Adafruit l'a choisi comme première carte CircuitPython BLE exactement pour cette raison (
- Classes de périphérique USB natives via TinyUSB : série CDC, clavier/souris HID, MIDI, stockage de masse (
- Multiprotocole 2,4 GHz : Bluetooth 5/BLE + IEEE 802.15.4 → Thread (OpenThread pris en charge dans Zephyr) et stacks de classe Zigbee via le nRF Connect SDK (sources dans la section SoC).
- Sécurité matérielle : accélérateur ARM CryptoCell-310 (arbre d'appareils Zephyr).
- Bootloader UF2 en glisser-déposer + DFU BLE-OTA sans matériel supplémentaire (guide d'apprentissage, circuitpython.org).
- 2 Mo de flash QSPI pour les bibliothèques/fichiers CircuitPython, séparés du 1 Mo de flash de code (page produit Adafruit).
- Radio certifiée FCC / IC / TELEC via le module Raytac MDBT50Q (page produit Adafruit ; fiche technique Raytac).
- Écosystème Feather : compatibilité FeatherWing enfichable, charge LiPo, en-tête SWD — l'amélioration « les wings utilisant l'UART fonctionnent aussi » par rapport au Feather nRF52832 (page produit).
− Points faibles
- Un vieux bootloader UF2 fait échouer les mises à jour CircuitPython : les cartes expédiées avec un bootloader < 0.6.1 « do not handle large UF2's, including CircuitPython 8.2.0 and later, and has other issues » ; vérifier INFO_UF2.TXT sur le lecteur ...BOOT. La auto-mise à jour via UF2 exige elle-même ≥ 0.4.0 ; ≤ 0.3.x nécessite l'Arduino IDE/CLI (
- SPIM3 (SPI haute vitesse) mort sur batterie : bug matériel documenté — SPIM3 « does not operate properly when the board is not powered via the USB port » (VUSB non alimenté). Le premier board.SPI de CircuitPython saisit SPIM3, donc Adafruit publie une solution de contournement (allouer-et-ignorer le premier objet SPI). Suivi dans (
- Contention broches/périphériques SPIM0–2 : les trois maîtrès SPI basse vitesse partagent leurs instances avec les maîtrès I²C, « so not all SPI peripherals are always available » (même page que le #2).
- Pas de temps réel dur quand le BLE tourne : le core Arduino ordonnance les tâches sur FreeRTOS et la stack Nordic SoftDevice « has higher priority than any user code, including control over interrupt handlers » — les exigences de minutage dur ne sont pas garanties quand la radio est active (
- Erratum du schéma Rev D (signalé par Adafruit) : dans la section « JS PH LIPO INPUT » la note soie/nétliste indique D5 là où il devrait y avoir A6 (
- Conflit de documentation sur la broche de la LED rouge : la page Express dit « Pin #3 red LED », la page Sense dit « Pin #13 red LED » (toutes deux récupérées le 2026-10-13). Utilisez le NeoPixel sans ambiguïté ou LED_BUILTIN du BSP plutôt que de coder en dur.
- Disponibilité : listée « Out of Stock » chez Adafruit le 2026-10-13 (pages du guide d'apprentissage) ; la variante Sense est la carte sœur la plus facile à trouver.
- Piège du câble USB de charge uniquement : Adafruit avertit explicitement que les échecs de double-clic-reset/UF2 viennent le plus souvent de câbles de charge uniquement (page d'installation circuitpython).
- 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
Retours et projets de la communauté
- 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
- Un vieux bootloader UF2 fait échouer les mises à jour CircuitPython : les cartes expédiées avec un bootloader < 0.6.1 « do not handle large UF2's, including CircuitPython 8.2.0 and later, and has other issues » ; vérifier INFO_UF2.TXT sur le lecteur ...BOOT. La auto-mise à jour via UF2 exige elle-même ≥ 0.4.0 ; ≤ 0.3.x nécessite l'Arduino IDE/CLI (
- SPIM3 (SPI haute vitesse) mort sur batterie : bug matériel documenté — SPIM3 « does not operate properly when the board is not powered via the USB port » (VUSB non alimenté). Le premier board.SPI de CircuitPython saisit SPIM3, donc Adafruit publie une solution de contournement (allouer-et-ignorer le premier objet SPI). Suivi dans (
- Contention broches/périphériques SPIM0–2 : les trois maîtrès SPI basse vitesse partagent leurs instances avec les maîtrès I²C, « so not all SPI peripherals are always available » (même page que le #2).
- Pas de temps réel dur quand le BLE tourne : le core Arduino ordonnance les tâches sur FreeRTOS et la stack Nordic SoftDevice « has higher priority than any user code, including control over interrupt handlers » — les exigences de minutage dur ne sont pas garanties quand la radio est active (
- Erratum du schéma Rev D (signalé par Adafruit) : dans la section « JS PH LIPO INPUT » la note soie/nétliste indique D5 là où il devrait y avoir A6 (
- Conflit de documentation sur la broche de la LED rouge : la page Express dit « Pin #3 red LED », la page Sense dit « Pin #13 red LED » (toutes deux récupérées le 2026-10-13). Utilisez le NeoPixel sans ambiguïté ou LED_BUILTIN du BSP plutôt que de coder en dur.
- Disponibilité : listée « Out of Stock » chez Adafruit le 2026-10-13 (pages du guide d'apprentissage) ; la variante Sense est la carte sœur la plus facile à trouver.
- Piège du câble USB de charge uniquement : Adafruit avertit explicitement que les échecs de double-clic-reset/UF2 viennent le plus souvent de câbles de charge uniquement (page d'installation circuitpython).
- 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.
Bibliothèque de code — exemples écrits pour cette carte
neopixel_pulsation.pyPythonled_bouton.pyPythonentrees_num.pyPythonanalogique_lumiere.pyPythonservo_pwm.pyPythonscanner_i2c.pyPythonble_uart.pyPythonsommeil_alarme.pyPythonlogging_qspi.pyPythonneopixel_arcenciel.pyPython
Exemples et dépôts trouvés en ligne
- adafruit/Adafruit_nRF52_Arduino github.com
- nrfconnect/sdk-nrf github.com
- zephyrproject-rtos/zephyr github.com