Arduino MKR WiFi 1010
⚡ Lo esencial en 60 segundos
- main_mcu — Microchip SAMD21G18A — Arm Cortex-M0+ 32-bit, 48 MHz, 256 KB internal flash, 32 KB SRAM, no EEPROM; clocks 48 MHz + 32.768 kHz RTC (store page, SAMD21 family datasheet, boards.txt).
- radio — u-blox NINA-W102 module — 2.4 GHz Wi-Fi 802.11 b/g/n + Bluetooth® / Bluetooth® Low Energy; it is an ESP32-based module (Arduino's firmware for it is built on ESP-IDF) (store page, NINA-W10 datasheet, nina-fw).
- secure_element — Microchip ATECC508 (ECC508) crypto chip (store page, datasheet).
- gpio — 8 digital I/O pins at 3.3 V logic, 7 mA DC per pin; 13 PWM pins (0…8, 10, 12, 18/A3, 19/A4) — Wikipedia's table says 12 PWM, the store spec table says 13 (store page, Wikipedia).
- analog — 7 analog inputs (ADC configurable 8/10/12-bit), 1 analog output (DAC, 10-bit) (store page).
- digital_buses — 1× UART, 1× SPI, 1× I²C on the header, plus a second Eslov I²C extension connector (5-pin, 1.0 mm pitch: SDA, SCL, GND, +5 V, alarm pin) (store page, connector datasheet).
- En esta placa : 9 tutoriales · 10 código
La Arduino MKR WiFi 1010 es una placa de desarrollo compacta diseñada por Arduino S.r.l., con sede en Monza, Italia, que representa un punto de inflexión en la familia MKR al integrar conectividad inalámbrica avanzada y seguridad criptográfica en un formato reducido. Anunciada oficialmente el 12 de mayo de 2018 y lanzada al mercado en junio de ese mismo año, esta placa sigue estando activa y disponible para su compra, con un precio de referencia de 42,10 euros (IVA incluido) según la tienda oficial. Su diseño responde a la necesidad de crear dispositivos del Internet de las Cosas (IoT) que no solo se comuniquen, sino que lo hagan de manera segura y eficiente desde el punto de vista energético. El corazón de esta placa es el microcontrolador Microchip ATSAMD21G18A, un chip de 32 bits basado en la arquitectura Arm Cortex-M0+ que opera a una frecuencia de 48 MHz. Para quienes no estén familiarizados con estos términos, el Cortex-M0+ es un núcleo de procesamiento diseñado para ser extremadamente eficiente en consumo de energía, ideal para dispositivos que funcionan con baterías, mientras que los 48 MHz indican la velocidad a la que el procesador ejecuta instrucciones. Este microcontrolador cuenta con 256 KB de memoria flash para almacenar el programa y 32 KB de memoria RAM para el procesamiento temporal de datos. Es importante destacar que este chip no dispone de memoria EEPROM, un tipo de almacenamiento no volátil presente en placas Arduino más antiguas, por lo que los datos que deben persistir tras apagar el dispositivo deben guardarse en la memoria flash mediante emulación o en almacenamiento externo.
La verdadera estrella de la MKR WiFi 1010 es su módulo de radio u-blox NINA-W102. Este módulo no es simplemente un chip de radio, sino un sistema en módulo (SoM) basado en el potente ESP32, lo que significa que contiene su propio procesador y sistema operativo para gestionar las comunicaciones. Esto permite que la placa ofrezca conectividad Wi-Fi en la banda de 2.4 GHz (estándares 802.11 b/g/n) y Bluetooth de baja energía (BLE). Una característica distintiva y poco común en el mundo de los microcontroladores es que la MKR WiFi 1010 puede actuar tanto como cliente como host de Bluetooth Low Energy, permitiendo una flexibilidad única en la creación de redes de sensores o dispositivos controlados por teléfono móvil. Además, la placa incorpora un chip de seguridad dedicado, el Microchip ATECC508. Este componente se encarga de realizar operaciones criptográficas complejas, como el cifrado de datos y la gestión de certificados digitales, liberando al microcontrolador principal de esta carga y garantizando que la comunicación sea segura, un requisito fundamental para proyectos que interactúan con servicios en la nube como AWS IoT o Azure.
En cuanto a la interacción con el mundo físico, la placa ofrece 8 pines de entrada/salida digital que operan a una lógica de 3.3 voltios. Es crucial entender que, a diferencia de las placas Arduino basadas en chips AVR que suelen trabajar a 5 voltios, la MKR WiFi 1010 es estrictamente de 3.3 voltios y no tolera señales de 5 voltios, lo que requiere precaución al conectar sensores o actuadores antiguos. Cada pin puede suministrar un máximo de 7 mA de corriente, una cifra modesta que indica que no se deben conectar cargas pesadas como relés o motores directamente a estos pines; en su lugar, se deben utilizar transistores o drivers específicos. La placa dispone también de 7 entradas analógicas con un conversor analógico-digital (ADC) configurable a 8, 10 o 12 bits, y una salida analógica real de 10 bits a través de un DAC, lo que permite generar señales de voltaje continuo precisas, algo útil para controlar motores o generar tonos de audio. Para la comunicación con otros dispositivos, cuenta con buses estándar como UART, SPI e I2C, además de un conector especial llamado Eslov. Este puerto I2C de 5 pines permite conectar módulos de sensores que se auto-identifican, facilitando la expansión del sistema sin necesidad de reconfigurar el código manualmente.
La gestión de energía es otro de los puntos fuertes de esta placa. Puede alimentarse a través del puerto USB o mediante una entrada VIN que acepta voltajes regulados entre 5 y 6 voltios. Un detalle técnico importante es que la entrada VIN no es compatible con los 6-12 voltios sin regular que aceptan otras placas Arduino; alimentar la MKR WiFi 1010 con un voltaje incorrecto podría dañar el regulador interno. La placa incluye un circuito de carga para baterías de litio-polímero (Li-Po) de una sola celda (3.7 V), gestionado por el chip TI BQ24195L. Esto permite que la placa funcione de forma autónoma con una batería conectada al conector JST estándar. Cabe mencionar una peculiaridad del diseño: el LED indicador de encendido está conectado al riel de 5 voltios, no a la batería. Por lo tanto, si la placa funciona únicamente con batería, este LED permanecerá apagado por diseño, aunque el sistema esté operativo. El LED del usuario, controlable por software, se encuentra en el pin D6.
El entorno de desarrollo es el clásico de Arduino, utilizando el IDE oficial o la herramienta de línea de comandos arduino-cli con el núcleo SAMD. La programación se realiza a través del puerto USB nativo, que también soporta la función de host USB, permitiendo conectar periféricos como teclados o memorias USB, una función rara en placas de este tamaño. El módulo de radio NINA requiere un firmware específico que Arduino mantiene actualizado. Los usuarios deben ser conscientes de que este firmware es crítico para el funcionamiento de las librerías Wi-Fi y Bluetooth. Problemas comunes, como la imposibilidad de conectarse a redes o errores en conexiones seguras HTTPS, a menudo se resuelven actualizando el firmware del módulo NINA mediante la herramienta "Firmware Updater" del IDE. Aunque el módulo es reprogramable y permite ejecutar otros sistemas, como una versión ligera de Linux, hacerlo invalida la certificación de radiofrecuencia del dispositivo, lo que lo hace ilegal para su uso comercial o en entornos regulados.
La placa está pensada para proyectos de IoT seguros y conectados. Su integración con Arduino Cloud facilita la creación de paneles de control y el envío de datos a servidores sin necesidad de configurar manualmente servidores web. Ejemplos de uso incluyen el control remoto de electrodomésticos mediante servicios como IFTTT o Blynk, la monitorización de sensores industriales y la conexión segura a plataformas en la nube. A pesar de sus virtudes, existen limitaciones conocidas. El soporte para IP estática ha presentado errores históricos en versiones anteriores de la librería, y el consumo de memoria durante conexiones TLS repetidas ha sido objeto de correcciones en el firmware. Además, la ausencia de una definición oficial para CircuitPython o MicroPython en el microcontrolador principal limita las opciones de lenguajes de alto nivel, aunque el módulo NINA podría ejecutar MicroPython si se reprograma, perdiendo la certificación. En resumen, la MKR WiFi 1010 es una herramienta poderosa para desarrolladores que buscan un equilibrio entre tamaño, seguridad criptográfica y conectividad dual, siempre que se respeten sus limitaciones eléctricas y se mantenga su firmware actualizado.

Esquema de pines (pinout)

| Attr | Especificaciones | verificado |
|---|---|---|
main_mcu | Microchip SAMD21G18A — Arm Cortex-M0+ 32-bit, 48 MHz, 256 KB internal flash, 32 KB SRAM, no EEPROM; clocks 48 MHz + 32.768 kHz RTC (store page, SAMD21 family datasheet, boards.txt). | ✔ |
radio | u-blox NINA-W102 module — 2.4 GHz Wi-Fi 802.11 b/g/n + Bluetooth® / Bluetooth® Low Energy; it is an ESP32-based module (Arduino's firmware for it is built on ESP-IDF) (store page, NINA-W10 datasheet, nina-fw). | ✔ |
secure_element | Microchip ATECC508 (ECC508) crypto chip (store page, datasheet). | ✔ |
gpio | 8 digital I/O pins at 3.3 V logic, 7 mA DC per pin; 13 PWM pins (0…8, 10, 12, 18/A3, 19/A4) — Wikipedia's table says 12 PWM, the store spec table says 13 (store page, Wikipedia). | ✔ |
analog | 7 analog inputs (ADC configurable 8/10/12-bit), 1 analog output (DAC, 10-bit) (store page). | ✔ |
digital_buses | 1× UART, 1× SPI, 1× I²C on the header, plus a second Eslov I²C extension connector (5-pin, 1.0 mm pitch: SDA, SCL, GND, +5 V, alarm pin) (store page, connector datasheet). | ✔ |
external_interrupts | 10 (pins 0, 1, 4, 5, 6, 7, 8, 9, 16/A1, 17/A2) (store page). | ✔ |
usb | Full-Speed USB device and embedded host on the SAMD21 (store page). | ✔ |
power | USB or VIN 5 V (regulated 5–6 V max input; VIN is an input pin, feeding it disconnects USB power); automatic source switching with Li-Po charging circuit (single-cell 3.7 V, ≥1024 mAh; JST S2B-PH-SM4-TB battery connector); the charge/PMIC chip is the TI BQ24195L (core flag -DUSE_BQ24195L_PMIC, boards.txt); "5V" pin = unregulated input pass-through, "VCC" pin = 3.3 V regulator output (store page). | ✔ |
leds | ON LED tied to the 5 V rail (not to battery — stays dark on battery power, by design); user LED on D6 (LED_BUILTIN = 6); onboard directional RGB LED (store page). | ✔ |
mechanical | 61.5 × 25 mm, 32 g (store page). | ✔ |
- Fabricante: Arduino S.r.l. (Monza, Italia) (página de la tienda); MCU principal Microchip (Atmel) ATSAMD21G18A, módulo de radio u-blox NINA-W102, chip criptográfico Microchip ATECC508 (página de la tienda, Wikipedia — List of Arduino boards).
- Año: Anunciada el 12 de mayo de 2018 en "The MKR family gets bigger with two new IoT boards!" (Arduino Blog); lanzada en junio de 2018 según la tabla de placas de Wikipedia — List of Arduino boards and compatible systems.
- Estado: Activo — sigue a la venta en la tienda oficial (consultado el 2026-10-13, página de la tienda); Wikipedia la lista bajo "Official", no "Superseded" (Wikipedia).
- Precio: €42.10 IVA incluido en la tienda oficial, consultado el 2026-10-13 (página de la tienda).
- Variantes / placas relacionadas: MKR WiFi 1000 (WINC1500, solo WiFi, sin BLE), Nano 33 IoT (mismo concepto SAMD21 + NINA en formato Nano, sin conector de batería), Uno WiFi Rev2 ("the education version of the MKR WiFi 1010", ATmega4809 + NINA-W132) (página de la tienda, Wikipedia). Número de parte de la placa ABX00023 (datasheet de la placa).
+ Puntos fuertes
- IoT de doble procesador en formato pill-box: núcleo de aplicación Cortex-M0+ + coprocesador Wi-Fi/BLE basado en ESP32 + elemento seguro ECC508 por hardware — "secure communication is ensured through the Microchip® ECC508 crypto chip" (página de la tienda).
- *Host y cliente BLE en una plataforma de microcontrolador:* "can be both a Bluetooth® Low Energy and Bluetooth® client and host device. Something pretty unique in the world of microcontroller platforms" (página de la tienda, ArduinoBLE).
- TLS de primera clase: WiFiSSLClient con almacén de CA raíz; el firmware del módulo incluye un conjunto curado de certificados reconstruido a partir de la lista de CA raíz de Android (README de nina-fw).
- Wi-Fi + BLE en una placa de 61.5 × 25 mm con carga Li-Po — nodo seguro listo para batería nada más sacarlo de la caja (página de la tienda).
- Puerto I²C Eslov auto-identificable (I²C de 5 pines adicional con línea de alarma) para módulos de sensores acoplables (página de la tienda).
- Capacidad de host USB (host embebido Full-Speed en el SAMD21) — raro en las placas Arduino (página de la tienda).
- Placa Arduino Cloud nativa (página de docs).
- Hardware abierto: se publican archivos EAGLE, el PDF del esquema y un PDF de pinout (página de la tienda, esquema).
− Puntos débiles
- Wi-Fi requiere que el firmware NINA esté presente/compatible — los sketches que usan WiFiNINA fallan (a menudo connect → 255) en placas con firmware de módulo desactualizado; actualícelo vía el Firmware Updater del IDE 2 o SerialNINAPassthrough + esptool (README de nina-fw).
- Bugs de TLS/certificados en el firmware actual del módulo: issues abiertos reportan que downloadAndSaveFile devuelve éxito tras fallos de inicialización de certificados y fuga mapas de heap/flash en cada operación TLS, de modo que las conexiones HTTPS repetidas pueden agotar el heap de la NINA ("byte-identical in release 3.0.1 and current master") — nina-fw #135, #136, PR de corrección #149.
- IP estática históricamente rota: WiFi.config(ip, …) antes de WiFi.begin se ignoraba y DHCP se imponía de todos modos (WiFiNINA #5).
- Rareces del SoftAP: en modo AP la placa no era alcanzable por nombre de host / hostByName no resolvía en ese modo (WiFiNINA #92).
- Funciones de la librería dependientes de la versión del firmware del módulo: p. ej. server.accept degrada silenciosamente a available en firmwares antiguos (WiFiNINA PR #204).
- Regrabar la NINA anula la certificación RF — "BEWARE: this kind of hacking breaks the certification of your WiFiNINA module" (página de la tienda).
- Trampas de alimentación: el LED ON está en el rail de 5 V, así que una placa alimentada por batería funciona legítimamente con el LED apagado (FAQ); VIN acepta solo 5–6 V regulados — no es la entrada cruda de 6–12 V de los Arduino AVR (FAQ de la tienda).
- Límite de 7 mA por pin — mucho más bajo que en las placas AVR; las cargas de relé/bobina necesitan un transistor (página de la tienda).
- Lógica solo de 3.3 V — no tolera 5 V (tensión de funcionamiento de circuitos de 3.3 V, página de la tienda, Wikipedia).
- Sin EEPROM: los datos deben vivir en flash (p. ej. emulación estilo NVIC) o en almacenamiento externo (página de la tienda).
- Retour d'expérience expert expert — expert-arduino
- Petit retour d'experience sur la MKR WiFi 1010. C'est une carte solide pour l'IoT securisee, notamment grâce à la puce crypto ECC508 et au module NINA-W102 qui gere bien le Wi-Fi et le BLE. Par contre, attention aux pieges classiques. Si vous avez des erreurs de connexion (code 255), c'est presque … — expert-arduino
- Merci pour ces infos, c'est exactement ce que je cherchais. J'ai justement un souci avec le mode Access Point. Quand je configure la carte en SoftAP, mon smartphone ne la voit pas par son nom via hostByName, je suis oblige de taper l'IP en dur. Est-ce un bug connu ou une limitation materielle ? J'a… — maker-debut
- C'est bien un souci documente sur le tracker GitHub de la lib WiFiNINA (issue 92). En mode AP, la resolution de nom ne fonctionne pas comme en station. Pour ton projet, je te conseille de garder l'IP statique. Par ailleurs, si tu utilises des capteurs sur les ports I2C, sache qu'il y a un connecteu… — tech-hobby
Opiniones y proyectos de la comunidad
- Arduino Opla (MKR WiFi 1010) restarts when using the cloud forum.arduino.cc
- Arduino Cloud - MKR WiFi 1010 Add Device Issue forum.arduino.cc
- ArduinoCloud.getLocalTime() very inaccurate on MKR WiFi 1010 forum.arduino.cc
- Official docs page
- Store page (specs, FAQ, Eslov port, OSH files)
- Board datasheet ABX00023
- Schematic (v2.0) / EAGLE / pinout PDF
- Schematic (v2.0) / EAGLE / pinout PDF
- Schematic (v2.0) / EAGLE / pinout PDF
- SAMD21 family datasheet
- u-blox NINA-W10 datasheet
- ATECC508A datasheet
- SAMD core & board definition
- WiFiNINA library
- NINA module firmware & flashing
- NINA module firmware & flashing
- ArduinoBLE library
- Wikipedia board table (release date, silicon)
- Announcement post
- Community
- Wi-Fi requiere que el firmware NINA esté presente/compatible — los sketches que usan WiFiNINA fallan (a menudo connect → 255) en placas con firmware de módulo desactualizado; actualícelo vía el Firmware Updater del IDE 2 o SerialNINAPassthrough + esptool (README de nina-fw).
- Bugs de TLS/certificados en el firmware actual del módulo: issues abiertos reportan que downloadAndSaveFile devuelve éxito tras fallos de inicialización de certificados y fuga mapas de heap/flash en cada operación TLS, de modo que las conexiones HTTPS repetidas pueden agotar el heap de la NINA ("byte-identical in release 3.0.1 and current master") — nina-fw #135, #136, PR de corrección #149.
- IP estática históricamente rota: WiFi.config(ip, …) antes de WiFi.begin se ignoraba y DHCP se imponía de todos modos (WiFiNINA #5).
- Rareces del SoftAP: en modo AP la placa no era alcanzable por nombre de host / hostByName no resolvía en ese modo (WiFiNINA #92).
- Funciones de la librería dependientes de la versión del firmware del módulo: p. ej. server.accept degrada silenciosamente a available en firmwares antiguos (WiFiNINA PR #204).
- Regrabar la NINA anula la certificación RF — "BEWARE: this kind of hacking breaks the certification of your WiFiNINA module" (página de la tienda).
- Trampas de alimentación: el LED ON está en el rail de 5 V, así que una placa alimentada por batería funciona legítimamente con el LED apagado (FAQ); VIN acepta solo 5–6 V regulados — no es la entrada cruda de 6–12 V de los Arduino AVR (FAQ de la tienda).
- Límite de 7 mA por pin — mucho más bajo que en las placas AVR; las cargas de relé/bobina necesitan un transistor (página de la tienda).
- Lógica solo de 3.3 V — no tolera 5 V (tensión de funcionamiento de circuitos de 3.3 V, página de la tienda, Wikipedia).
- Sin EEPROM: los datos deben vivir en flash (p. ej. emulación estilo NVIC) o en almacenamiento externo (página de la tienda).
- Faire clignoter la LED utilisateur debutant Schéma : IMG-mkr-wifi-1010-debutant-1-mkrwifi-blink-led.svg — Vue de dessus de la MKR WiFi 1010 avec la LED utilisateur D6 (LED_BUILTIN), la LED ON sur le rail 5 V et la LED RGB directionnelle mises en évidence.
- Bouton et console série interactive debutant Schéma : IMG-mkr-wifi-1010-debutant-2-mkrwifi-bouton-console.svg — Bouton poussoir câblé entre la broche D2 et GND avec résistance de pull-up interne activée, liaison USB vers le moniteur série de l'ordinateur.
- Lire un capteur analogique et générer une tension avec le DAC debutant Schéma : IMG-mkr-wifi-1010-debutant-3-mkrwifi-capteur-analogique-dac.svg — Potentiomètre alimenté en 3,3 V relié à l'entrée A1 (ADC 12 bits) et sortie DAC A0 (10 bits) vers un multimètre, sur la MKR WiFi 1010.
- Scanner les réseaux WiFi et se connecter en station intermediaire Schéma : IMG-mkr-wifi-1010-intermediaire-1-mkrwifi-scan-wifi-sta.svg — MKR WiFi 1010 et son module NINA-W102 reliés sans fil à une box WiFi, liste de réseaux détectés avec puissances RSSI affichée dans le moniteur série.
- Récupérer une page web en HTTP simple intermediaire Schéma : IMG-mkr-wifi-1010-intermediaire-2-mkrwifi-http-get.svg — Requête HTTP GET émise par la MKR WiFi 1010 connectée en station vers un serveur distant sur le port 80, réponse affichée dans le moniteur série.
- Créer un périphérique Bluetooth LE piloté depuis le téléphone intermediaire Schéma : IMG-mkr-wifi-1010-intermediaire-3-mkrwifi-ble-peripheral.svg — MKR WiFi 1010 en périphérique BLE diffusant un service « Led » avec une caractéristique lisible et inscriptible, smartphone exécutant nRF Connect en rôle central.
- HTTPS avec validation de certificat racine avance Schéma : IMG-mkr-wifi-1010-avance-1-mkrwifi-https-certificats.svg — Poignée de main TLS entre le WiFiSSLClient de la MKR WiFi 1010 et un serveur HTTPS, le certificat du serveur étant vérifié contre le magasin de CA racines stocké dans le module NINA.
- Mettre à jour le firmware du module NINA avance Schéma : IMG-mkr-wifi-1010-avance-2-mkrwifi-firmware-nina.svg — Chaîne de mise à jour du firmware NINA : IDE Arduino 2 avec Firmware Updater, ou en manuel l'exemple SerialNINAPassthrough relayant l'USB vers esptool pour flasher le module ESP32.
- Fonctionner sur batterie LiPo et économiser l'énergie avance Schéma : IMG-mkr-wifi-1010-avance-3-mkrwifi-batterie-sommeil.svg — MKR WiFi 1010 alimentée par une batterie LiPo mono-élément via le connecteur JST, circuit de charge BQ24195L, LED ON éteinte sur batterie, cycle réveil par interruption externe vers le SAMD21 en sommeil.
Biblioteca de código — ejemplos escritos para esta placa
scan-wifi.inoArduinoconnexion-wpa2.inoArduinohttp-get.inoArduinoserveur-web-led.inoArduinohorloge-ntp.inoArduinoudp-diffusion.inoArduinoreconnexion-auto.inoArduinocheck-firmware.inoArduinohttp-post.inoArduinowifi_bridge.pyPython
Ejemplos y repositorios encontrados en línea
- arduino-libraries/WiFi101 github.com
- arduino/ArduinoCore-samd github.com
- arduino-libraries/ArduinoIoTCloud github.com
- joonazan/nina-fast-bluetooth github.com
- ellienguyendev/spotify-player-arduino-rfid github.com