Arduino MKR WiFi 1010

Arduino S.r.lMCU 32-bitarduino

⚡ Lo esencial en 60 segundos

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.

Foro (1 tema) →

AttrEspecificacionesverificado
main_mcuMicrochip 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).✔
radiou-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_elementMicrochip ATECC508 (ECC508) crypto chip (store page, datasheet).✔
gpio8 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).✔
analog7 analog inputs (ADC configurable 8/10/12-bit), 1 analog output (DAC, 10-bit) (store page).✔
digital_buses1× 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_interrupts10 (pins 0, 1, 4, 5, 6, 7, 8, 9, 16/A1, 17/A2) (store page).✔
usbFull-Speed USB device and embedded host on the SAMD21 (store page).✔
powerUSB 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).✔
ledsON 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).✔
mechanical61.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

  • Securely connecting an MKR WiFi 1010 to AWS IoT Core

    Conexión segura de un MKR WiFi 1010 a AWS IoT Core — guía oficial de Arduino ProjectHub: .arduino.cc/projecthub/Arduino_Genuino/securely-connecting-an-arduino-mkr-wifi-1010-to-aws-iot-core-a9f365 (unverified au 2026-10-13) Enchufe inteligente con MKR WiFi 101…

  • Temperature sensor to Azure IoT

    Sensor de temperatura a Azure IoT — .com/firedog1024/mkr1000-iotc (unverified au 2026-10-13) — código comunitario alojado en github, estado unverified verificado el 2026-10-13. Proyecto documentado en la ficha mkr-wifi-1010 (MCU de 32 bits); rol: profundizar …

  • Industrial use: Softeq's wireless conveyor controller

    Uso industrial: el controlador de cinta transportadora inalámbrica de Softeq — utiliza un MKR WiFi 1010 como caja de control BLE junto a un PLC Arduino Opta — caso de estudio del blog de Arduino (2026-04-03): .arduino.cc/2026-04-03/the-smart-conveyor-belt-fro…

  • Arduino IoT Cloud

    Arduino IoT Cloud — paneles con la placa: .arduino.cc/plans/ (unverified au 2026-10-13) — referencia alojada en la nube, estado no verificado verificado el 2026-10-13. Proyecto documentado en la ficha técnica mkr-wifi-1010 (MCU de 32 bits); rol: profundizar e…

  • 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.ino Arduino

    El reflejo inicial con una MKR WiFi 1010: escanear la banda de 2,4 GHz. Este sketch comprueba que el módulo WINC1500 está vivo, verifica la versión del firmware y lista cada red con potencia de señal…

  • connexion-wpa2.ino Arduino

    La conexión básica en WPA2-personal: este sketch arranca el WINC1500, asocia la placa a tu punto de acceso y espera la IP por DHCP. También imprime canal y RSSI, dos indicadores valiosos cuando el en…

  • http-get.ino Arduino

    Recuperar datos web con la MKR WiFi 1010: conectarse al punto de acceso, abrir un socket TCP en el puerto 80, hacer un GET a una API meteorológica gratuita y volcar la respuesta al puerto serie. La p…

  • serveur-web-led.ino Arduino

    La MKR WiFi 1010 se convierte en objeto conectado: aloja una página HTML ligera con dos enlaces que encienden o apagan un LED en el pin 6. Sin infraestructura cloud; la página se abre desde cualquier…

  • horloge-ntp.ino Arduino

    Reloj preciso para la MKR WiFi 1010: tras conectar, el sketch envía una petición NTP UDP/123 a pool.ntp.org y ajusta la librería Time, resincronizando cada hora. Las tramas de 48 bytes y el offset 19…

  • udp-diffusion.ino Arduino

    Varias MKR WiFi 1010 en la misma red pueden descubrirse sin servidor: este sketch difunde un anuncio cada cinco segundos en broadcast UDP e imprime los de las vecinas. La base de una red de sensores …

  • reconnexion-auto.ino Arduino

    Un objeto conectado debe sobrevivir al reinicio del router: este vigilante WiFi de la MKR WiFi 1010 detecta la pérdida de enlace, reintenta la conexión y tras un minuto de fallo reinicia el módulo WI…

  • check-firmware.ino Arduino

    Muchas desilusiones WiFi de la MKR WiFi 1010 vienen de un firmware WINC1500 demasiado antiguo: este sketch lee la versión, la compara con el mínimo de la librería WiFi101 e imprime el procedimiento d…

  • http-post.ino Arduino

    Telemetría local de la MKR WiFi 1010: cada minuto una lectura analógica sale como POST JSON hacia una API de tu red (Flask, Node, InfluxDB...). La plantilla exacta que esperan las bases de series tem…

  • wifi_bridge.py Python

    Cuando el WiFi embarcado falla, el puerto serie de la MKR WiFi 1010 es el plan B: este puente Python lee líneas clave:valor y las envía como JSON a cualquier colector. Un PC por USB basta para seguir…

Ejemplos y repositorios encontrados en línea