nRF52840-MDK (id boards.json: nrf52840-mdk)

MakerDiarySoMlinux

⚡ Lo esencial en 60 segundos

La placa de desarrollo nRF52840-MDK, fabricada por MakerDiary, se presenta como una solución de hardware de código abierto y bajo costo diseñada para prototipar dispositivos conectados. Su nombre, "Micro Development Kit", refleja su filosofía: ofrecer una plataforma completa y accesible para desarrolladores que desean trabajar con tecnologías inalámbricas de vanguardia sin necesidad de invertir en kits de evaluación más costosos. El corazón de esta tarjeta es el sistema en un chip (SoC) nRF52840 de Nordic Semiconductor. Para entender su potencia, es útil desglosar qué significa este componente. Un SoC integra el procesador, la memoria y los periféricos en un único circuito, lo que permite crear dispositivos pequeños y eficientes energéticamente. En este caso, el procesador es un Arm Cortex-M4 con una unidad de punto flotante (FPU) que opera a 64 MHz. La FPU es crucial porque permite al chip realizar cálculos matemáticos complejos, como los necesarios para el procesamiento de señales o algoritmos de aprendizaje automático ligero, de manera mucho más rápida que un procesador sin esta unidad. Además, la placa cuenta con 1 MB de memoria flash para almacenar el programa y 256 KB de RAM para el manejo de datos temporales, lo que ofrece un equilibrio generoso entre capacidad de almacenamiento y velocidad de ejecución para aplicaciones de Internet de las Cosas (IoT).

Uno de los aspectos más destacados de la nRF52840-MDK es su capacidad de radio multiconexión. Esto significa que un solo chip puede comunicarse mediante varios protocolos inalámbricos diferentes, todos operando en la banda de frecuencia de 2.4 GHz. Esta banda es popular porque no requiere licencia para su uso en la mayoría de los países y permite tasas de transferencia de datos relativamente altas. Los protocolos admitidos incluyen Bluetooth Low Energy (BLE), Bluetooth Mesh, Thread, Zigbee, ANT y protocolos propietarios de 2.4 GHz. Aunque la placa fue comercializada inicialmente como compatible con Bluetooth 5, las especificaciones actuales de Nordic indican soporte para Bluetooth 5.4, lo que garantiza compatibilidad con las últimas versiones del estándar. La potencia de transmisión es de +8 dBm, lo que proporciona un alcance significativo para aplicaciones domésticas o industriales ligeras. Para asegurar la seguridad de las comunicaciones, el chip incorpora un subsistema de cifrado de hardware llamado CryptoCell 310 junto con la tecnología Arm TrustZone. Esto permite manejar claves criptográficas y operaciones de seguridad de forma aislada del procesador principal, protegiendo los datos sensibles contra ataques físicos y de software, una característica esencial para proyectos como llaves de seguridad FIDO2.

En cuanto a la interfaz de usuario y la programación, la placa integra un depurador DAPLink. Esto elimina la necesidad de comprar un programador externo separado. DAPLink permite programar la tarjeta simplemente arrastrando y soltando un archivo de firmware en una unidad USB que aparece en el ordenador, similar a como se copian archivos a una memoria USB. Además, expone un puerto serie virtual (CDC) para ver los mensajes de depuración y un canal de depuración CMSIS-DAP para usar herramientas avanzadas. Un detalle técnico interesante es la topología USB: la placa utiliza un concentrador USB de alta velocidad de Microchip. Esto permite que el puerto USB-C de la tarjeta sirva simultáneamente para alimentar la placa, comunicarse con el depurador y, crucialmente, exponer el controlador USB nativo del propio nRF52840. Esto facilita el desarrollo de aplicaciones que requieren que el dispositivo sea reconocido directamente como un dispositivo USB por el ordenador, como ratones, teclados o adaptadores de radio. La conectividad física se realiza a través de dos cabeceras de 18 pines, de las cuales se pueden utilizar hasta 24 pines GPIO (Entradas/Salidas de Propósito General). Los GPIO son los pines físicos que permiten conectar sensores, actuadores o otros componentes electrónicos, permitiendo que el microcontrolador interactúe con el mundo exterior.

La flexibilidad de antena es otro punto fuerte. La placa viene con una antena de chip integrada en la propia tarjeta, lo que es ideal para prototipos compactos. Sin embargo, también incluye un conector U.FL, que permite conectar una antena externa para mejorar el alcance o la robustez de la señal en entornos difíciles. Esta selección entre antena interna y externa es una característica rara en placas de este rango de precio. Además, la placa incorpora una memoria flash externa QSPI de 8 MB (64 Mbit). Esta memoria adicional es vital para aplicaciones que requieren almacenar grandes cantidades de datos, como registros de sensores (data logging), o para gestionar actualizaciones de firmware sobre la marcha (OTA), donde se necesita espacio para guardar la nueva versión del software antes de instalarla. La alimentación es gestionada por un regulador de 3.3 V con una capacidad de pico de 1 A, y la placa acepta voltajes de entrada entre 1.7 V y 5.5 V, lo que la hace compatible con diversas fuentes de alimentación, incluidas baterías de litio, aunque es importante notar que la placa no incluye un circuito de carga de batería integrado.

El ecosistema de software admitido es amplio y diverso, reflejando la naturaleza abierta del proyecto. Los desarrolladores pueden utilizar el SDK nRF5 de Nordic, el sistema operativo en tiempo real Zephyr (que incluye soporte oficial para esta placa), el nRF Connect SDK, OpenThread para redes Thread, y sistemas como Apache Mynewt o RIOT OS. También hay soporte para lenguajes modernos como Rust, mediante una crate comunitaria, y TinyGo. Sin embargo, es importante señalar que no existe un núcleo oficial de Arduino para esta placa específica, aunque existen núcleos comunitarios para otros chips nRF52840 que podrían funcionar con ajustes. Del mismo modo, no hay una compilación oficial de CircuitPython para esta placa, por lo que los usuarios que busquen una experiencia de programación por scripts sencilla en Python podrían necesitar considerar otras alternativas o portar ellos mismos el código. La documentación y los recursos están disponibles bajo licencia MIT, incluyendo esquemáticos completos, archivos de diseño de la placa y diagramas de pines, lo que fomenta la transparencia y permite a los usuarios modificar o adaptar el hardware según sus necesidades.

A pesar de sus muchas virtudes, la placa presenta algunos desafíos documentados por la comunidad. Algunos usuarios han reportado problemas de enumeración USB en ciertos sistemas operativos, especialmente en versiones antiguas de Windows o macOS, donde la unidad DAPLink puede no aparecer correctamente. Además, dado que el repositorio de GitHub no ha recibido actualizaciones significativas desde 2021, algunos ejemplos de código pueden no ser compatibles con las versiones más recientes de los sistemas operativos en tiempo real como Zephyr o las bibliotecas de OpenThread, que han evolucionado rápidamente. Por ejemplo, los ejemplos de Bluetooth pueden requerir ajustes en la configuración de la dirección MAC o en los identificadores de dispositivo USB. También se ha señalado que el procedimiento para cambiar a la antena externa no está detallado exhaustivamente en la documentación inicial, lo que puede requerir consultar el esquema eléctrico. Finalmente, aunque la placa es robusta, los usuarios deben tener cuidado al flashear el bootloader UF2 en la variante de dongle USB, ya que un proceso incorrecto podría dejar el dispositivo inoperativo. En resumen, la nRF52840-MDK es una herramienta poderosa y económica para expertos y entusiastas que valoran el código abierto y la flexibilidad de hardware, siempre que estén dispuestos a navegar por un ecosistema de software que, aunque rico, requiere atención a la compatibilidad de versiones.

Foro (1 tema) →

AttrEspecificacionesverificado
cpuArm Cortex-M4 with FPU @ 64 MHz — Nordic comparison table ("64 MHz Arm Cortex-M4 with FPU") and PlatformIO (Frequency 64MHz) (, ). No GPU.✔
memory1 MB flash + 256 KB RAM (both sources above; also the board wiki).? sin verificar
radio_2_4_ghz_multiprotocolBluetooth Low Energy (board marketed "Bluetooth 5" in 2018; Nordic's current table lists the family as BT 5.4), Bluetooth Mesh, Thread / Zigbee / IEEE 802.15.4, ANT, 2.4 GHz proprietary (wiki + Nordic table). TX power +8 dBm — MakerDiary's own nRF52840 product descriptions: "2.4 GHz Transceiver with +8 dBm TX Power" (makerdiary.com/products.json, fetched 2026-10-14).? sin verificar
securityArm TrustZone + CryptoCell 310 hardware crypto subsystem (board wiki; "TrustZone® Cryptocell 310 Security Subsystem" in MakerDiary's product feed).? sin verificar
peripheralson-chip USB 2.0 Full-speed device controller, NFC-A tag, QSPI and High-Speed SPI, PWM/PDM/I2S, 12-bit ADC + COMP (Nordic table "ADC, Comp"; wiki).? sin verificar
gpioNordic's table lists 48 GPIOs for the nRF52840 (package-dependent, QFN48 / WLCSP).? sin verificar
supply_voltage1.7 v? sin verificar
temperature−40 °C to +85 °C (Nordic table).? sin verificar
debuggerintegrated DAPLink — MSC drag-and-drop programming, CDC virtual COM port, HID/WEBUSB-HID CMSIS-DAP debug channel.? sin verificar
usb_topologyMicrochip USB 2.0 Hi-Speed 2-port hub controller, downstream port 1 → DAPLink, downstream port 2 → nRF52840 native USB (the SoC enumerates directly — key for USB dongle/ble-usb applications). Reversible USB 3.1 Type-C connector.? sin verificar
external_flashultra-low-power 64-Mbit (8 MB) QSPI FLASH.? sin verificar
antennaon-board 2.4 GHz chip antenna, with U.FL connector selectable for an external antenna (antenna selection for custom applications).? sin verificar
user_i_oprogrammable user button, RGB LED, IF Boot/Reset button.? sin verificar
power3.3 V regulator with 1 A peak output, VBUS & VIN power-path management.? sin verificar
mechanicalbreadboard-friendly dual 18-pin headers; 50 × 23 × 13 mm with headers soldered (wiki).? sin verificar
sensorsnone on-board — the hardware feature list contains no environmental or motion sensor (wiki, 2026-10-14).? sin verificar
  • Fabricante: MakerDiary (Shenzhen), hardware de código abierto; repositorio con licencia MIT, "Copyright (c) 2019 makerdiary.com" (, consultado el 2026-10-14).
  • Año: el repositorio de GitHub makerdiary/nrf52840-mdk se creó el 2018-07-06; las primeras incidencias se abrieron a principios de 2019 (API created_at: 2018-07-06T01:52:11Z, consultado el 2026-10-14). Los anuncios de venta minorista (Seeed p-3079, Amazon B07MPPHY5B) datan de la ventana 2018–2019 ( "available on the following channels").
  • Estado (2026-10-14): Activo / actual. Listado en el feed de la tienda propia de MakerDiary (consultado el 2026-10-14) como "nRF52840-MDK IoT Development Kit" a €29.90, junto con el nRF52840 MDK USB Dongle (PCBA) a €12.99 y w/ Case a €19.90.
  • Precio de lanzamiento:
  • Variantes: - nRF52840-MDK V1.0 — la placa con cabeceras documentada aquí (única revisión de hardware publicada; la tabla Hardware Resource de la wiki solo lista V1.0, ). - nRF52840 MDK USB Dongle (PCBA y w/Case) — factor de forma de llavero USB, se envía con un gestor de arranque UF2, antena integrada, comercializado para Bluetooth 5.4 / mesh / Thread / Zigbee / ANT y como sniffer BLE/802.15.4 con Wireshark (, consultado el 2026-10-14). - Placas hermanas nRF52840 del mismo fabricante (no MDK): nRF52840 Connect Kit, nRF52840 M.2 Module / Developer Kit, Pitaya Go (feed de la tienda, 2026-10-14). La antigua nRF52832-MDK (V1/V2) es la predecesora de la serie 51 .

+ Puntos fuertes

  • Depurador totalmente integrado a bajo precio — DAPLink (MSC+CDC+CMSIS-DAP) tras un hub Microchip USB HS, por lo que el propio controlador USB del nRF52840 también queda expuesto; los DK de Nordic cuestan varias veces más (€29.90 frente a los precios de los DK de Nordic, feed de la tienda 2026-10-14).
  • Flexibilidad de antena: antena integrada a bordo más U.FL para una antena externa, seleccionables — raro en este rango de precio.
  • Flash QSPI externa de 64 Mbit para staging de OTA / registro de datos (wiki).
  • Seguridad por hardware: TrustZone + CryptoCell 310 (wiki) — usada por el proyecto de autenticador OpenSK FIDO2 en la familia MDK .
  • Código abierto: repositorio con licencia MIT con descargas del esquema, archivo de placa, PDF de pinout y STEP 3D de V1.0 (wiki Hardware Resource).
  • Multiprotocolo: BLE 5, Bluetooth Mesh, Thread, Zigbee, ANT, propietario de 2.4 GHz desde una placa de €30 (wiki); la placa hermana USB-dongle también funciona como sniffer Wireshark BLE/802.15.4 (wiki del dongle).
  • Apta para protoboard, cabeceras duales de 18 pines, 50 × 23 mm (wiki).

− Puntos débiles

  • Fallos de enumeración USB: "USB port not recognized" (#53, 2022) y "Board and DAPLink does not show up at all on Mac" (#37, 2020) — la unidad DAPLINK nunca aparece en algunos anfitriones.
  • Peculiaridades de macOS: "nRF connect does not recognise 'makerdiary' device on MacOS" (#47).
  • Obsolescencia de ejemplos/cadena de herramientas: el repositorio se envió por última vez el 2021-05-28 (API de GitHub, consultado el 2026-10-14); "bluetooth peripherial_hr sample not compiling" (#55) contra Zephyr 3.5+; "Documentation no longer accurate now that the nrf528xx have moved to openthread/ot-nrf528xx" (#52); "The example HEX file is invalid." (#45); "script failed when doing zephyr test" (#42).
  • La flash no persiste: "after make flash the code is not uploaded on board" (#31); los hex de SoftDevice+app deben fusionarse con mergehex antes del arrastre y suelta (nota de getting-started) — una variante frecuente autoinfligida de esto.
  • Lagunas en ejemplos BLE/USB: "MAC address is 00:00:00:00:00:00" en hci_usb (#57); "USB_DEVICE_VID not set" (#56).
  • Rareza de I²C: "Peculiar i2c issue" (#44).
  • Uso de antena externa poco documentado: "How to use external antenna?" (#51) — la vía U.FL existe pero el procedimiento de selección es escueto en la documentación.
  • OpenOCD con el DAPLink a bordo: el mantenedor del BSP de Rust "was unable to get this working with the openocd that ships with ubuntu 18.04" y migró a J-Link ( README).
  • Variante USB Dongle — riesgo de inutilización: grabar el hex del gestor de arranque UF2 a través de la unidad DAPLINK puede dejar el dongle en mal estado ("Bricked device", Nordic DevZone, ).
  • Windows < 10 necesita el controlador de serie Arm Mbed para el puerto CDC (getting-started).
  • Sin soporte oficial de Arduino/CircuitPython (ver Sistemas; la página de placa de CircuitPython devuelve 404).
  • Retour d'expérience expert expert — expert-microcontroleur
    • Je reviens vers vous avec un retour d'experience sur la nrf52840-mdk. C'est une carte très interessante pour son prix, surtout grace au debugger DAPLink integre et la possibilite d'utiliser soit l'antenne embarquée soit un port U.FL. Le SoC nRF52840 avec 1MB de flash est très solide. Par contre, at… — expert-microcontroleur
    • Merci pour ce retour. Je confirme le point sur MacOS. J'ai passe deux soirees a essayer de faire reconnaitre la carte par nRF Connect sans succes, comme decrit dans l'issue 47. C'est frustrant car le hardware a l'air correct. Est-ce que quelqu'un a reussi a compiler les exemples de developpement re… — hobbyiste_ble
    • Pour les problèmes de compilation, il faut souvent mettre à jour manuellement les modules Zephyr ou le SDK, car les exemples ne suivent pas. Concernant l'USB, si le hub Microchip pose problème, essayez de brancher la carte sur un port differents ou sans hub externe si possible. Malgre ces soucis de… — dev_embedded_fr

Opiniones y proyectos de la comunidad

  • OpenSK FIDO2 security key

    Clave de seguridad OpenSK FIDO2 — el autenticador FIDO2 de código abierto de Google se ejecuta en el (unverified au 2026-10-13) — interno alojado en sitio interno, estado en vivo verificado el 2026-10-13. Proyecto documentado en la ficha nrf52840-mdk (SoM); r…

  • Fallos de enumeración USB: "USB port not recognized" (#53, 2022) y "Board and DAPLink does not show up at all on Mac" (#37, 2020) — la unidad DAPLINK nunca aparece en algunos anfitriones.
  • Peculiaridades de macOS: "nRF connect does not recognise 'makerdiary' device on MacOS" (#47).
  • Obsolescencia de ejemplos/cadena de herramientas: el repositorio se envió por última vez el 2021-05-28 (API de GitHub, consultado el 2026-10-14); "bluetooth peripherial_hr sample not compiling" (#55) contra Zephyr 3.5+; "Documentation no longer accurate now that the nrf528xx have moved to openthread/ot-nrf528xx" (#52); "The example HEX file is invalid." (#45); "script failed when doing zephyr test" (#42).
  • La flash no persiste: "after make flash the code is not uploaded on board" (#31); los hex de SoftDevice+app deben fusionarse con mergehex antes del arrastre y suelta (nota de getting-started) — una variante frecuente autoinfligida de esto.
  • Lagunas en ejemplos BLE/USB: "MAC address is 00:00:00:00:00:00" en hci_usb (#57); "USB_DEVICE_VID not set" (#56).
  • Rareza de I²C: "Peculiar i2c issue" (#44).
  • Uso de antena externa poco documentado: "How to use external antenna?" (#51) — la vía U.FL existe pero el procedimiento de selección es escueto en la documentación.
  • OpenOCD con el DAPLink a bordo: el mantenedor del BSP de Rust "was unable to get this working with the openocd that ships with ubuntu 18.04" y migró a J-Link ( README).
  • Variante USB Dongle — riesgo de inutilización: grabar el hex del gestor de arranque UF2 a través de la unidad DAPLINK puede dejar el dongle en mal estado ("Bricked device", Nordic DevZone, ).
  • Windows < 10 necesita el controlador de serie Arm Mbed para el puerto CDC (getting-started).
  • Sin soporte oficial de Arduino/CircuitPython (ver Sistemas; la página de placa de CircuitPython devuelve 404).

Biblioteca de código — ejemplos escritos para esta placa

  • led_blink.c C

    El hola mundo de bajo nivel del nRF52840: el LED parpadea escribiendo directamente en los registros GPIO, sin SDK ni configuración de reloj. Entender OUTSET/OUTCLR y PIN_CNF es la base de todo lo dem…

  • bouton_gpiote.c C

    En lugar de escrutar el botón en bucle, GPIOTE genera una interrupción por flanco de bajada y despierta la CPU: el bucle principal duerme en WFE entre pulsaciones. El patrón económico por defecto en …

  • console_uart.c C

    La consola serie va por el UART conectado al depurador de la MDK: printf ligero, eco de los caracteres recibidos, contador de tick. La primera herramienta de depuración de cualquier proyecto nRF, sin…

  • adc_saadc.c C

    El SAADC del nRF52840 mide con la referencia interna de 0,6 V y ganancia fraccionaria: al dividir la batería LiPo entre dos, se leen 0-3,3 V en el pin y se reconstruyen 0-6,6 V. Base de toda vigilanc…

  • pwm_fade.c C

    El PWM por hardware del nRF52840 produce la respiración sin intervención de la CPU: una secuencia de dos valores reproducida 40 veces por paso de intensidad. El LED P0.06 sube y baja suavemente a 25 …

  • ble_nus.c C

    El BLE es la razón de ser del nRF52840: este programa difunde un nombre, expone el Nordic UART Service y envía tramas de texto a la app nRF Connect. La plantilla de arranque de cualquier objeto conec…

  • system_off.c C

    El nRF52840 baja a unos microamperios en System Off: solo un pin configurado en SENSE puede volver a encender el chip. Este programa se apaga tras un destello de LED y despierta con el botón: la base…

  • watchdog.c C

    El WDT del nRF52840 reinicia el chip si el firmware no "alimenta" su canal a tiempo: bucles congelados, bloqueos y fallos software se convierten en reinicios automáticos. Imprescindible en una caja s…

  • nvcu_storage.c C

    El controlador NVMC permite escribir la flash de aplicación sin SoftDevice: este sketch persiste un contador y una calibración en la última página, borrada y reescrita en cada guardado. Ideal para me…

  • app_timer_rtc.c C

    El contador RTC de 32,768 kHz sigue corriendo durante el sueño: app_timer programa una callback a 1 Hz sin bloquear nunca la CPU, que espera en WFE. Es el reloj de servicio de todo programa nRF52840 …

Ejemplos y repositorios encontrados en línea