Arduino MKR WiFi 1010

Arduino S.r.lMCU 32-bitarduino

⚡ L’essentiel en 60 secondes

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.

Forum (1 sujet) →

AttrSpecsvérifié
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).✔
  • 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é

  • Securely connecting an MKR WiFi 1010 to AWS IoT Core

    Securely connecting an MKR WiFi 1010 to AWS IoT Core — official Arduino ProjectHub guide: .arduino.cc/projecthub/Arduino_Genuino/securely-connecting-an-arduino-mkr-wifi-1010-to-aws-iot-core-a9f365 (unverified au 2026-10-13) Smart plug with MKR WiFi 1010 + IFT…

  • Temperature sensor to Azure IoT

    Temperature sensor to Azure IoT — .com/firedog1024/mkr1000-iotc (unverified au 2026-10-13) — code communautaire hébergé sur github, statut unverified vérifié le 2026-10-13. Projet documenté dans la fiche mkr-wifi-1010 (MCU 32-bit) ; rôle : approfondir la pris…

  • Industrial use: Softeq's wireless conveyor controller

    Industrial use: Softeq's wireless conveyor controller — uses an MKR WiFi 1010 as the BLE control box next to an Arduino Opta PLC — Arduino Blog case study (2026-04-03): .arduino.cc/2026-04-03/the-smart-conveyor-belt-from-softeq-uses-arduino-for-a-robust-wirel…

  • Arduino IoT Cloud

    Arduino IoT Cloud — dashboards with the board: .arduino.cc/plans/ (unverified au 2026-10-13) — référence hébergé sur cloud, statut unverified vérifié le 2026-10-13. Projet documenté dans la fiche mkr-wifi-1010 (MCU 32-bit) ; rôle : approfondir la prise en mai…

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

    Le premier réflexe avec une MKR WiFi 1010 : scanner la bande 2,4 GHz. Ce croquis vérifie la présence du module WINC1500, contrôle la version du firmware, puis liste chaque réseau avec sa puissance de…

  • connexion-wpa2.ino Arduino

    La connexion de base en WPA2-personal : ce croquis démarre le WINC1500, associe la carte à votre point d'accès et attend l'obtention de l'adresse IP par DHCP. Il affiche aussi canal et RSSI, deux ind…

  • http-get.ino Arduino

    Récupérer des données web avec la MKR WiFi 1010 : connexion au point d'accès, ouverture d'une socket TCP sur le port 80, requête GET vers une API météo gratuite, puis vidange de la réponse sur le por…

  • serveur-web-led.ino Arduino

    La MKR WiFi 1010 devient un objet connecté : elle héberge une page HTML-lite avec deux liens qui allument ou éteignent une LED sur la broche 6. Aucune infrastructure cloud — la page s'ouvre depuis n'…

  • horloge-ntp.ino Arduino

    Horloge précise pour la MKR WiFi 1010 : après la connexion, le croquis envoie une requête NTP UDP/123 vers pool.ntp.org et règle la bibliothèque Time, avec resynchronisation horaire. Les trames de 48…

  • udp-diffusion.ino Arduino

    Plusieurs MKR WiFi 1010 sur le même réseau peuvent se découvrir sans serveur : ce croquis diffuse une annonce toutes les cinq secondes en broadcast UDP et affiche celles des voisines. La base d'un ré…

  • reconnexion-auto.ino Arduino

    Un objet connecté doit survivre au redémarrage de la box : ce tuteur WiFi de la MKR WiFi 1010 détecte la perte de liaison, retente la connexion, et après une minute d'échec réinitialise matériellemen…

  • check-firmware.ino Arduino

    Beaucoup de déconvenues WiFi de la MKR WiFi 1010 viennent d'un firmware WINC1500 trop ancien : ce croquis lit la version, la compare au minimum requis par la bibliothèque WiFi101, et affiche la procé…

  • http-post.ino Arduino

    Télémétrie locale de la MKR WiFi 1010 : chaque minute, une mesure analogique part en JSON POST vers une API de votre réseau (Flask, Node, InfluxDB…). Le gabarit exact de ce qu'attendent les bases de …

  • wifi_bridge.py Python

    Quand le WiFi embarqué est en défaut, le port série de la MKR WiFi 1010 devient le plan B : ce pont Python lit les lignes clé:valeur et les poste en JSON vers n'importe quel collecteur. Un PC branché…

Exemples et dépôts trouvés en ligne