Adafruit Feather nRF52840 Express

Adafruit IndustriesMCU 8-32 bitarduino

⚡ Lo esencial en 60 segundos

La placa Adafruit Feather nRF52840 Express representa un hito significativo en el mundo de los sistemas embebidos de bajo consumo, diseñada para desarrolladores que buscan integrar conectividad inalámbrica avanzada con la facilidad de uso de las plataformas de desarrollo modernas. Fabricada por Adafruit Industries, esta tarjeta se construye alrededor del sistema en un chip (SoC) nRF52840 de Nordic Semiconductor, montado sobre el módulo Raytac MDBT50Q. Para quien no esté familiarizado con estos términos, un SoC es un circuito integrado que contiene todos los componentes necesarios para un sistema completo, incluyendo la unidad central de procesamiento (CPU), la memoria y las interfaces de entrada/salida, todo en un solo paquete. En este caso, el cerebro de la operación es un procesador ARM Cortex-M4F que opera a una frecuencia de reloj de 64 MHz. Esta frecuencia indica cuántos ciclos de procesamiento puede realizar el chip por segundo; aunque parece modesta comparada con los ordenadores personales, es extremadamente eficiente para tareas de control y comunicación, permitiendo un equilibrio ideal entre rendimiento y consumo de energía. La memoria disponible es generosa para un microcontrolador: cuenta con 1 MB de memoria flash para almacenar el código del programa y 256 KB de memoria RAM para los datos temporales durante la ejecución. Además, la placa incorpora 2 MB de memoria flash externa de tipo QSPI, lo que resulta crucial para entornos de programación como CircuitPython, ya que permite guardar bibliotecas y archivos de datos sin ocupar el espacio reservado para el código principal.

Uno de los aspectos más destacados de esta tarjeta es su capacidad de radio multiconexión en la banda de 2.4 GHz. Soporta Bluetooth 5 y Bluetooth Low Energy (BLE), así como el estándar IEEE 802.15.4, que es la base para protocolos como Thread y Zigbee. Es importante notar que, aunque el hardware es compatible con Zigbee, la certificación específica y el soporte de software pueden depender de las bibliotecas utilizadas, como el nRF Connect SDK de Nordic. La tarjeta no incluye Wi-Fi ni Ethernet, por lo que su enfoque es estrictamente inalámbrico de corto alcance. La potencia de transmisión alcanza los +8 dBm, lo que proporciona un alcance razonable para aplicaciones domésticas o industriales ligeras. Una característica diferenciadora clave es la inclusión de un controlador USB 2.0 nativo integrado en el propio chip. Esto significa que la tarjeta puede actuar como un dispositivo USB completo (como un teclado, un ratón o un dispositivo de almacenamiento masivo) sin necesidad de chips convertidores adicionales, simplificando el diseño y reduciendo el coste. Esta funcionalidad es gestionada por la pila TinyUSB, permitiendo clases de dispositivo como CDC (serial virtual), HID y MIDI.

En cuanto a las interfaces físicas, la placa sigue el formato estándar "Feather", con dimensiones compactas de 51 × 23 mm. Dispone de 21 pines de entrada/salida de propósito general (GPIO) que operan a 3.3 voltios. Los GPIO son pines flexibles que pueden configurarse para leer señales digitales (encendido/apagado) o enviarlas. La tarjeta ofrece 6 entradas analógicas de 12 bits, lo que permite medir con precisión niveles de voltaje de sensores, y hasta 12 salidas PWM, útiles para controlar la velocidad de motores o el brillo de LEDs. Las interfaces de comunicación como SPI, UART, I2C e I2S son enrutables a casi cualquier pin gracias a la arquitectura flexible del nRF52840. Sin embargo, existen limitaciones técnicas documentadas: los periféricos SPI de alta velocidad (SPIM3) no funcionan correctamente si la tarjeta se alimenta solo por batería y no por USB, debido a una cuestión de voltajes internos. Además, los periféricos SPI de baja velocidad comparten recursos con los de I2C, lo que puede limitar la disponibilidad simultánea de ciertos puertos.

La seguridad es otro pilar de esta plataforma, incorporando un acelerador criptográfico ARM CryptoCell-310 integrado en el chip, que acelera las operaciones de cifrado y autenticación, esencial para aplicaciones IoT seguras. La gestión de energía es robusta, con un rango de operación de 1.7 a 3.3 voltios, reguladores internos eficientes y un cargador de batería de litio integrado que permite a la tarjeta alternar automáticamente entre la alimentación por USB y la batería. La placa incluye un LED rojo de usuario, un LED NeoPixel RGB programable, un botón de usuario y un botón de reinicio. Es relevante mencionar una inconsistencia en la documentación oficial de Adafruit respecto al número de pin del LED rojo (algunas fuentes dicen pin 3, otras pin 13), por lo que se recomienda utilizar las definiciones de la biblioteca de soporte (BSP) o el NeoPixel para evitar errores.

El soporte de software es extenso. Se puede programar con el entorno Arduino IDE mediante el núcleo oficial de Adafruit, que utiliza el stack SoftDevice de Nordic para la gestión de Bluetooth. También es la primera placa compatible con Bluetooth en CircuitPython, un lenguaje basado en Python que facilita el desarrollo rápido mediante la simple copia de archivos en la unidad de almacenamiento que aparece al conectar la tarjeta. Para proyectos más avanzados o de producción, es totalmente compatible con Zephyr RTOS y el nRF Connect SDK. El bootloader UF2 preinstalado permite actualizar el firmware arrastrando y soltando archivos, aunque los usuarios deben verificar la versión del bootloader (debe ser 0.6.1 o superior para las versiones recientes de CircuitPython) para evitar problemas de compatibilidad. Aunque la tarjeta ha marcado como "agotada" en algunas tiendas, sigue siendo activamente admitida y es una referencia en el ecosistema de desarrollo de bajo consumo.

Foro (1 tema) →

AttrEspecificacionesverificado
socNordic 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).✔
usbnative 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.✔
securityon-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).? sin verificar
power1.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:? sin verificar
mechanicalFeather form factor, 51 × 23 × 7.2 mm, ~6 g (Adafruit product page).? sin verificar
  • Fabricante: Adafruit Industries (EE. UU.). La placa es el Feather «todo en uno» compatible con Arduino + Bluetooth Low Energy de Adafruit, construido alrededor del SoC Nordic nRF52840 montado sobre un módulo Raytac MDBT50Q ( el módulo se confirma en ambos consultados el 2026-10-13).
  • Año de lanzamiento: lanzamiento de principios de la década de 2020: las fotos de producto de la guía de aprendizaje de Adafruit y la hoja de datos del módulo Raytac están fechadas entre diciembre de 2018 y enero de 2019 (marcas de tiempo de assets CDN 1546346679 ≈ 2019-01-01, 1548963877 ≈ 2019-01-31), por lo que la placa se envió alrededor de enero de 2019.
  • Estado (2026-10-13): sigue listada y activamente admitida (se publican builds de CircuitPython para ella, p. ej. 11.0.0-alpha.1), pero marcada "Out of Stock" en Adafruit en las páginas de la guía de aprendizaje consultadas hoy (
  • Precio de lanzamiento:
  • Variantes: - Feather nRF52840 Sense (#4516): la misma placa más acelerador/giroscopio LSM6DS3TR-C, magnetómetro LIS3MDL, proximidad/gestos APDS9960, micrófono PDM, humedad SHT, BMP280; introducida en febrero de 2020 (página de producto + vídeo «New Products 2/5/2020», consultado el 2026-10-13). - Feather nRF52 Bluefruit LE [nRF52832] (#3406): predecesora con menos flash, micro-USB, sin USB nativo en el MCU. - Existen en la tienda de Adafruit factores de forma Feather nRF52840 posteriores con conectores de antena externa;

+ Puntos fuertes

  • Único SoC BLE mainstream con USB nativo que tiene suficiente RAM para CircuitPython — Adafruit lo eligió como su primera placa CircuitPython BLE exactamente por esta razón (
  • Clases de dispositivo USB nativo vía TinyUSB: serie CDC, teclado/ratón HID, MIDI, almacenamiento masivo (
  • 2.4 GHz multiprotocolo: Bluetooth 5/BLE + IEEE 802.15.4 → Thread (OpenThread admitido en Zephyr) y stacks de clase Zigbee vía nRF Connect SDK (fuentes en la sección SoC).
  • Seguridad de hardware: acelerador ARM CryptoCell-310 (device tree de Zephyr).
  • Bootloader UF2 drag-drop + BLE OTA DFU sin hardware extra (learn guide, circuitpython.org).
  • 2 MB de flash QSPI para librerías/archivos de CircuitPython, separados del 1 MB de flash de código (página de producto de Adafruit).
  • Radio certificada FCC / IC / TELEC vía el módulo Raytac MDBT50Q (página de producto de Adafruit; hoja de datos Raytac).
  • Ecosistema Feather: compatibilidad drop-in FeatherWing, carga LiPo, cabecera SWD — la mejora «las wings que usan UART también funcionan» respecto al Feather nRF52832 (página de producto).

− Puntos débiles

  • Un UF2 bootloader viejo bloquea las actualizaciones de CircuitPython: las placas enviadas con bootloader < 0.6.1 "do not handle large UF2's, including CircuitPython 8.2.0 and later, and has other issues"; revisa INFO_UF2.TXT en la unidad ...BOOT. La autoactualización basada en UF2 requiere ≥ 0.4.0; ≤ 0.3.x necesita Arduino IDE/CLI (
  • SPIM3 (SPI de alta velocidad) muerto con alimentación por batería: bug de hardware documentado — SPIM3 "does not operate properly when the board is not powered via the USB port" (VUSB no energizado). El primer board.SPI de CircuitPython coge SPIM3, así que Adafruit publica un workaround (asignar e ignorar el primer objeto SPI). Rastreado en (
  • Contención de pines/periféricos SPIM0–2: los tres maestros SPI de baja velocidad comparten instancias con los maestros I²C, "so not all SPI peripherals are always available" (misma página que el #2).
  • Sin tiempo real estricto mientras corre BLE: el core de Arduino programa tareas en FreeRTOS y el stack SoftDevice de Nordic "has higher priority than any user code, including control over interrupt handlers" — los requisitos de temporización estrictos no están garantizados cuando la radio está activa (
  • Errata del esquema Rev D (marcada por Adafruit): en la sección "JS PH LIPO INPUT" la nota de serigrafía/red dice D5 donde debería decir A6 (
  • Conflicto de documentación del pin del LED rojo: la página del Express dice "Pin #3 red LED", la página del Sense dice "Pin #13 red LED" (ambas consultadas el 2026-10-13). Usa el NeoPixel, sin ambigüedad, o LED_BUILTIN del BSP en lugar de hardcodear.
  • Disponibilidad: listada «Out of Stock» en Adafruit el 2026-10-13 (páginas de la learn-guide); la variante Sense es la hermana más fácil de encontrar.
  • Trampa del cable USB de solo carga: Adafruit advierte explícitamente de que los fallos de doble-clic-reset/UF2 suelen deberse a cables de solo carga (página de instalación de 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

Opiniones y proyectos de la comunidad

  • BLE Light Switch with Feather nRF52840 and Crickit

    Interruptor de luz BLE con Feather nRF52840 y Crickit — controla un relé/servo (unverified au 2026-10-13) — interno alojado en sitio interno, estado vivo verificado el 2026-10-13. Proyecto documentado en la ficha nrf52840-feather (MCU 8-32 bit); rol: profundi…

  • Un UF2 bootloader viejo bloquea las actualizaciones de CircuitPython: las placas enviadas con bootloader < 0.6.1 "do not handle large UF2's, including CircuitPython 8.2.0 and later, and has other issues"; revisa INFO_UF2.TXT en la unidad ...BOOT. La autoactualización basada en UF2 requiere ≥ 0.4.0; ≤ 0.3.x necesita Arduino IDE/CLI (
  • SPIM3 (SPI de alta velocidad) muerto con alimentación por batería: bug de hardware documentado — SPIM3 "does not operate properly when the board is not powered via the USB port" (VUSB no energizado). El primer board.SPI de CircuitPython coge SPIM3, así que Adafruit publica un workaround (asignar e ignorar el primer objeto SPI). Rastreado en (
  • Contención de pines/periféricos SPIM0–2: los tres maestros SPI de baja velocidad comparten instancias con los maestros I²C, "so not all SPI peripherals are always available" (misma página que el #2).
  • Sin tiempo real estricto mientras corre BLE: el core de Arduino programa tareas en FreeRTOS y el stack SoftDevice de Nordic "has higher priority than any user code, including control over interrupt handlers" — los requisitos de temporización estrictos no están garantizados cuando la radio está activa (
  • Errata del esquema Rev D (marcada por Adafruit): en la sección "JS PH LIPO INPUT" la nota de serigrafía/red dice D5 donde debería decir A6 (
  • Conflicto de documentación del pin del LED rojo: la página del Express dice "Pin #3 red LED", la página del Sense dice "Pin #13 red LED" (ambas consultadas el 2026-10-13). Usa el NeoPixel, sin ambigüedad, o LED_BUILTIN del BSP en lugar de hardcodear.
  • Disponibilidad: listada «Out of Stock» en Adafruit el 2026-10-13 (páginas de la learn-guide); la variante Sense es la hermana más fácil de encontrar.
  • Trampa del cable USB de solo carga: Adafruit advierte explícitamente de que los fallos de doble-clic-reset/UF2 suelen deberse a cables de solo carga (página de instalación de 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.

Biblioteca de código — ejemplos escritos para esta placa

  • neopixel_pulsation.py Python

    El primer saludo de la Feather: el NeoPixel soldado en la placa pulsa en naranja. board.NEOPIXEL es el pin dedicado que CircuitPython define para este board exacto: sin cableado, sin resistencia, la …

  • led_bouton.py Python

    El clásico par LED/botón en CircuitPython: un botón entre D5 y GND enciende el LED rojo de la Feather. El pull-up interno sustituye la resistencia externa, y la inversión not bouton.value resuelve la…

  • entrees_num.py Python

    Cuatro botones o sensores digitales en D5, D6, D9, D10 monitorizados en bucle con cada cambio trazado por serie. El panel de depuración de todo montaje con varias entradas.

  • analogique_lumiere.py Python

    La entrada A0 de la Feather lee 0-3,3 V en 16 bits: con un divisor fotorresistencia / 10 kΩ, el script calcula el voltaje y decide día/noche. analogio devuelve un valor de 16 bits directamente, cómod…

  • servo_pwm.py Python

    Un micro-servo (SG90, MG90) en D5 barre de 0 a 180°: PWM 50 Hz, pulsos de 0,5-2,5 ms calculados sobre la escala de 16 bits de pulseio. La orden clásica del barrido radar, lista para recibir cualquier…

  • scanner_i2c.py Python

    Antes de escribir el driver de un sensor I2C, el bus debe responder: este script barre SCL/SDA de 0x08 a 0x77 y lista las direcciones presentes. El reflejo de cableado de todo proyecto CircuitPython …

  • ble_uart.py Python

    La Feather se convierte en terminal serie Bluetooth: el servicio NUS (Nordic UART) se anuncia, Adafruit Connect se conecta y los tick a 1 Hz llegan al teléfono. El fin del cable USB para proyectos a …

  • sommeil_alarme.py Python

    El nRF52840 cae a microamperios en sueño profundo y una pulsación en D5 lo despierta vía PinAlarm. El script distingue despertar de arranque, hace su trabajo útil y se re-duerme: el patrón tras los s…

  • logging_qspi.py Python

    Los 2 MB de flash QSPI expuestos como sistema de archivos forman un registrador autónomo: este script journaliza una medida analógica en CSV cada 10 s con marcas relativas. El archivo se recupera lue…

  • neopixel_arcenciel.py Python

    La lámpara ambiental universal: una rueda de colores calculada por fase (sin tabla) barre rojo-verde-azul en el NeoPixel embarcado. Base visual de todo proyecto: hora, temperatura o estado de red se …

Ejemplos y repositorios encontrados en línea