Arduino MKR WiFi 1010
⚡ L’essentiel en 60 secondes
- 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).
- Sur cette fiche : 9 tutoriels · 10 codes
L'Arduino MKR WiFi 1010 est une carte de développement électronique conçue spécifiquement pour les applications de l'Internet des Objets (IoT), se distinguant par sa compacité et ses capacités de communication sans fil avancées. Annoncée en mai 2018 et disponible depuis juin de la même année, cette carte reste active et commercialisée par le fabricant italien Arduino S.r.l. Elle s'inscrit dans la famille MKR, reconnue pour ses formats réduits adaptés aux projets portables ou intégrés dans des espaces restreints. Avec des dimensions de seulement 61,5 millimètrès sur 25 millimètrès et un poids plume de 32 grammes, elle offre une solution robuste pour le prototypage et le déploiement de nœuds de capteurs autonomes. Le prix actuel sur la boutique officielle est de 42,10 euros toutes taxes comprises, bien que le prix de lancement initial de 2018 ne soit pas spécifié dans les sources consultées.
Le cœur de cette carte repose sur une architecture double processeur, une approche qui sépare les tâches de calcul de celles de la communication radio. Le microcontrôleur principal est un Microchip ATSAMD21G18A, un circuit intégré fonctionnant avec une architecture Arm Cortex-M0+ sur 32 bits, cadencé à 48 MHz. Pour les non-initiés, cela signifie que la carte possède une puissance de traitement suffisante pour gérer des logiques complexes, tout en restant très économe en énergie grâce à cette fréquence modérée. Il dispose de 256 Ko de mémoire flash pour stocker le programme et de 32 Ko de mémoire vive (SRAM) pour les données temporaires. Il est important de noter que ce microcontrôleur ne possède pas de mémoire EEPROM, une mémoire non volatile traditionnelle sur les cartes Arduino classiques ; les développeurs doivent donc utiliser la mémoire flash ou un stockage externe pour sauvegarder des données après une coupure de courant. La logique des broches fonctionne en 3,3 volts, ce qui est une tension plus basse que les 5 volts habituels des anciennes cartes Arduino, nécessitant une attention particulière lors de la connexion à des périphériques anciens.
La connectivité est assurée par un module radio u-blox NINA-W102, qui est en réalité un module basé sur la puce ESP32. Ce module gère à la fois le Wi-Fi (norme 802.11 b/g/n sur la bande 2,4 GHz) et le Bluetooth Low Energy (BLE). Cette dualité permet à la carte de se connecter à des réseaux locaux pour envoyer des données sur Internet, tout en pouvant interagir directement avec des smartphones ou d'autres appareils via Bluetooth. Une caractéristique notable est la capacité du module à agir à la fois comme client et hôte Bluetooth, une fonctionnalité rare sur les plateformes à microcontrôleur. De plus, la carte intègre une puce de sécurité matérielle Microchip ATECC508. Ce composant dédié permet de gérer le chiffrement et l'authentification sans solliciter le processeur principal, garantissant ainsi des communications sécurisées, notamment via le protocole TLS, essentiel pour les échanges de données sensibles avec le cloud.
En termes d'interfaces physiques, la carte offre une flexibilité remarquable compte tenu de sa taille. Elle met à disposition 8 broches numériques d'entrée/sortie, dont 13 peuvent générer un signal PWM (modulation de largeur d'impulsion), utile pour contrôler la luminosité d'une LED ou la vitesse d'un moteur. Il y a également 7 entrées analogiques et une sortie analogique réelle (DAC), permettant de lire des capteurs variés et de générer des signaux électriques continus. La carte inclut un connecteur Eslov, un port I2C spécifique à 5 broches qui permet de brancher des modules capteurs compatibles qui s'identifient automatiquement, simplifiant grandement le câblage. Un point technique crucial concerne la consommation de courant par broche, limitée à 7 milliampères. Cette valeur est bien inférieure à celle des cartes AVR traditionnelles ; il est donc impératif d'utiliser des transistors pour commander des charges puissantes comme des relais ou des bobines, sous peine d'endommager la carte.
L'alimentation est un autre aspect clé de l'expérience utilisateur. La carte peut être alimentée par le port USB ou par une entrée VIN qui accepte une tension régulée entre 5 et 6 volts. Attention, contrairement à d'autres modèles, l'entrée VIN ne tolère pas les tensions brutes plus élevées (comme 9 ou 12 volts). Pour une autonomie totale, la carte intègre un circuit de charge pour batterie Li-Po (lithium-polymère) de 3,7 volts, géré par une puce TI BQ24195L. Il est possible de brancher directement une batterie via un connecteur JST. Une subtilité à connaître est que la LED « ON » est connectée au rail de 5 volts ; elle s'éteint donc lorsque la carte fonctionne uniquement sur batterie, ce qui est normal et non un défaut. La carte dispose également d'une LED utilisateur sur la broche D6 et d'une LED RGB directionnelle pour le débogage visuel.
Le développement logiciel se fait via l'environnement Arduino IDE ou l'outil en ligne de commande arduino-cli, utilisant le cœur SAMD. La programmation s'effectue via le port USB natif. Il est possible de reprogrammer le firmware du module radio NINA pour activer des fonctionnalités avancées ou corriger des bugs, notamment liés à la gestion des certificats TLS ou à la stabilité des connexions Wi-Fi. Cependant, cette manipulation annule la certification radio du module, une information importante pour les produits finis destinés à la vente. La carte est entièrement compatible avec Arduino Cloud, permettant une configuration rapide des tableaux de bord et des alertes. Enfin, bien que des projets communautaires existent, il n'y a pas de support officiel pour MicroPython ou CircuitPython sur cette carte spécifique, le développement étant principalement orienté vers le langage C/C++ d'Arduino. La documentation open-source, incluant les schémas et les fichiers de conception, est largement disponible, encourageant la communauté à comprendre et à modifier le matériel.

Schéma de brochage (pinout)

| Attr | Specs | vérifié |
|---|---|---|
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). | ✔ |
- Fabricant : Arduino S.r.l. (Monza, Italie) (page boutique) ; MCU principal Microchip (Atmel) ATSAMD21G18A, module radio u-blox NINA-W102, puce de chiffrement Microchip ATECC508 (page boutique, Wikipedia — Liste des cartes Arduino).
- Année : annoncée le 12 mai 2018 dans « The MKR family gets bigger with two new IoT boards ! » (Arduino Blog) ; sortie en juin 2018 selon le tableau des cartes de Wikipedia — Liste des cartes Arduino et systèmes compatibles.
- Statut : Actif — toujours référencé à la vente sur la boutique officielle (consulté le 2026-10-13, page boutique) ; Wikipedia la classe sous « Official », pas « Superseded » (Wikipedia).
- Prix : 42,10 € TTC sur la boutique officielle, consulté le 2026-10-13 (page boutique).
- Variantes / cartes associées : MKR WiFi 1000 (WINC1500, WiFi uniquement, sans BLE), Nano 33 IoT (même concept SAMD21 + NINA au format Nano, sans connecteur batterie), Uno WiFi Rev2 (« the education version of the MKR WiFi 1010 », ATmega4809 + NINA-W132) (page boutique, Wikipedia). Référence de carte ABX00023 (datasheet de la carte).
+ Points forts
- IoT double processeur dans un boîtier pilule : cœur applicatif Cortex-M0+ + coprocesseur Wi-Fi/BLE à base d'ESP32 + élément sécurisé ECC508 matériel — « secure communication is ensured through the Microchip® ECC508 crypto chip » (page boutique).
- *Hôte et client BLE sur une plateforme microcontrôleur :* « can be both a Bluetooth® Low Energy and Bluetooth® client and host device. Something pretty unique in the world of microcontroller platforms » (page boutique, ArduinoBLE).
- TLS de premier plan : WiFiSSLClient avec magasin d'AC racines ; le firmware du module embarque un faisceau de certificats sélectionné, reconstruit à partir de la liste des AC racines d'Android (README nina-fw).
- Wi-Fi + BLE sur une seule carte de 61,5 × 25 mm avec charge Li-Po — nœud sécurisé prêt pour la batterie dès la sortie de boîte (page boutique).
- Port I²C auto-identifiant Eslov (I²C 5 broches supplémentaire avec ligne d'alarme) pour modules capteurs à enclencher (page boutique).
- Capacité hôte USB (hôte embarqué Full-Speed sur le SAMD21) — rare sur les cartes Arduino (page boutique).
- Natif pour Arduino Cloud (page docs).
- Matériel libre : fichiers EAGLE, PDF du schéma et PDF de brochage sont publiés (page boutique, schéma).
− Points faibles
- Le Wi-Fi exige que le firmware NINA soit présent/compatible — les sketches utilisant WiFiNINA échouent (souvent connect → 255) sur les cartes dont le firmware du module est ancien ; mettez à jour via le Firmware Updater de l'IDE 2 ou SerialNINAPassthrough + esptool (README nina-fw).
- Bogues TLS/certificats dans le firmware actuel du module : des issues ouvertes signalent que downloadAndSaveFile renvoie un succès après des échecs d'initialisation des certificats et fuit des mappings heap/flash à chaque opération TLS, si bien que des connexions HTTPS répétées peuvent épuiser le heap de la NINA (« byte-identical in release 3.0.1 and current master ») — nina-fw #135, #136, PR de correctif #149.
- IP statique historiquement cassée : WiFi.config(ip, …) avant WiFi.begin était ignoré et DHCP gagnait quand même (WiFiNINA #5).
- Particularités SoftAP : en mode AP, la carte n'était pas joignable par nom d'hôte / hostByName ne résolvait pas dans ce mode (WiFiNINA #92).
- Fonctions de bibliothèque dépendant de la version du firmware du module : par exemple server.accept se dégrade silencieusement en available sur les anciens firmwares (WiFiNINA PR #204).
- Reflasher la NINA annule la certification RF — « BEWARE: this kind of hacking breaks the certification of your WiFiNINA module » (page boutique).
- Pièges d'alimentation : la LED ON est sur la rampe 5 V, donc une carte alimentée sur batterie fonctionne légitimement LED éteinte (FAQ) ; VIN n'accepte que du 5–6 V régulé — ce n'est pas l'entrée brute 6–12 V des Arduino AVR (FAQ boutique).
- Limite de pilotage de 7 mA par broche — bien inférieure à celle des cartes AVR ; les charges de type relais/bobine nécessitent un transistor (page boutique).
- Logique 3,3 V uniquement — non tolérant 5 V (tension de service du circuit 3,3 V, page boutique, Wikipedia).
- Pas d'EEPROM : les données doivent résider dans la flash (par ex. émulation de type NVIC) ou un stockage externe (page boutique).
- 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
Retours et projets de la communauté
- 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
- Le Wi-Fi exige que le firmware NINA soit présent/compatible — les sketches utilisant WiFiNINA échouent (souvent connect → 255) sur les cartes dont le firmware du module est ancien ; mettez à jour via le Firmware Updater de l'IDE 2 ou SerialNINAPassthrough + esptool (README nina-fw).
- Bogues TLS/certificats dans le firmware actuel du module : des issues ouvertes signalent que downloadAndSaveFile renvoie un succès après des échecs d'initialisation des certificats et fuit des mappings heap/flash à chaque opération TLS, si bien que des connexions HTTPS répétées peuvent épuiser le heap de la NINA (« byte-identical in release 3.0.1 and current master ») — nina-fw #135, #136, PR de correctif #149.
- IP statique historiquement cassée : WiFi.config(ip, …) avant WiFi.begin était ignoré et DHCP gagnait quand même (WiFiNINA #5).
- Particularités SoftAP : en mode AP, la carte n'était pas joignable par nom d'hôte / hostByName ne résolvait pas dans ce mode (WiFiNINA #92).
- Fonctions de bibliothèque dépendant de la version du firmware du module : par exemple server.accept se dégrade silencieusement en available sur les anciens firmwares (WiFiNINA PR #204).
- Reflasher la NINA annule la certification RF — « BEWARE: this kind of hacking breaks the certification of your WiFiNINA module » (page boutique).
- Pièges d'alimentation : la LED ON est sur la rampe 5 V, donc une carte alimentée sur batterie fonctionne légitimement LED éteinte (FAQ) ; VIN n'accepte que du 5–6 V régulé — ce n'est pas l'entrée brute 6–12 V des Arduino AVR (FAQ boutique).
- Limite de pilotage de 7 mA par broche — bien inférieure à celle des cartes AVR ; les charges de type relais/bobine nécessitent un transistor (page boutique).
- Logique 3,3 V uniquement — non tolérant 5 V (tension de service du circuit 3,3 V, page boutique, Wikipedia).
- Pas d'EEPROM : les données doivent résider dans la flash (par ex. émulation de type NVIC) ou un stockage externe (page boutique).
- 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.
Bibliothèque de code — exemples écrits pour cette carte
scan-wifi.inoArduinoconnexion-wpa2.inoArduinohttp-get.inoArduinoserveur-web-led.inoArduinohorloge-ntp.inoArduinoudp-diffusion.inoArduinoreconnexion-auto.inoArduinocheck-firmware.inoArduinohttp-post.inoArduinowifi_bridge.pyPython
Exemples et dépôts trouvés en ligne
- 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