Arduino MKR WAN 1300

Arduino S.r.lMCU 8-32 bitarduino

⚡ L’essentiel en 60 secondes

L’Arduino MKR WAN 1300 est une carte de développement électronique conçue spécifiquement pour les applications de l’Internet des objets nécessitant une communication longue portée à très faible consommation. Lancée en 2017 par le fabricant italien Arduino, cette carte s’inscrit dans la famille MKR, reconnue pour son format compact et sa compatibilité avec les boucliers d’extension de type Arduino Uno. Elle a été pensée pour connecter des objets physiques à des réseaux LoRaWAN, une technologie de communication radio qui permet d’échanger des données sur plusieurs kilomètrès tout en préservant l’énergie des batteries. Il est important de noter qu’aujourd’hui, la carte est considérée comme obsolète et n’est plus commercialisée directement par Arduino, ayant été remplacée par le modèle MKR WAN 1310. Cependant, elle reste entièrement supportée par le logiciel Arduino, ce qui signifie que les projets existants peuvent continuer à fonctionner et que le code écrit pour cette carte reste valide.

Le cœur de cette carte est un microcontrôleur Microchip (anciennement Atmel) de référence SAMD21G18A. Pour comprendre ce composant, il faut savoir qu’il s’agit d’un processeur 32 bits basé sur l’architecture Arm Cortex-M0+. Cette architecture est optimisée pour les tâches simples et répétitives, offrant un excellent équilibre entre performance et économie d’énergie. Le processeur fonctionne à une fréquence de 48 MHz, ce qui est largement suffisant pour lire des capteurs, traiter des données simples et gérer les protocoles de communication. Il dispose de 256 Ko de mémoire flash pour stocker le programme utilisateur et de 32 Ko de mémoire vive pour les données temporaires. Contrairement à certains modèles plus anciens, ce microcontrôleur ne possède pas de mémoire EEPROM dédiée, une mémoire lente réservée à la sauvegarde de petits paramètrès, mais des alternatives logicielles existent pour simuler cette fonctionnalité si nécessaire.

La particularité majeure de la MKR WAN 1300 réside dans son module radio, qui est bien plus qu’une simple puce de transmission. Il s’agit d’un module Murata CMWX1ZZABZ, un système en boîtier qui intègre en réalité deux puces distinctes travaillant ensemble. La première est un transceiver LoRa Semtech SX1272, responsable de la modulation du signal radio. La seconde est un microcontrôleur STM32L0 qui exécute un firmware spécifique fourni par Arduino. Cette double architecture permet de décharger le microcontrôleur principal de la gestion complexe des protocoles radio. Le module communique avec le cœur de la carte via une interface SPI, un bus de données rapide, en utilisant des commandes de type « AT », similaires à celles utilisées par les anciens modems téléphoniques. Cette conception permet à la carte de gérer les subtilités du réseau LoRaWAN, comme l’adaptation du débit de données en fonction de la qualité du signal ou la gestion des fenêtrès de réception, sans que le programmeur n’ait à gérer ces détails bas niveau.

Sur le plan de la connectivité et de la sécurité, la carte est équipée d’une puce de sécurité matérielle Microchip ATECC508. Cet élément est crucial pour les applications IoT car il permet de stocker de manière sécurisée les clés de chiffrement nécessaires pour s’authentifier auprès des réseaux LoRaWAN publics ou privés, tels que The Things Network. La présence de cette puce garantit que les identifiants uniques de l’appareil ne peuvent pas être facilement extraits par un attaquant physique. L’antenne est connectée via un connecteur micro-UFL, ce qui offre la flexibilité de choisir l’antenne la plus adaptée à l’environnement d’installation, bien que le contenu exact de la boîte d’origine ne soit plus vérifiable suite à la disparition de la page produit officielle. La carte fonctionne en logique 3,3 volts et peut être alimentée soit par le port USB, soit par une entrée de tension continue de 5 volts sur la broche VIN. Il est à noter que, contrairement à sa successeure, la MKR WAN 1300 ne dispose pas de circuit de charge intégré pour les batteries au lithium-polymère, ce qui implique que les déploiements sur batterie nécessitent un module de gestion d’énergie externe.

L’écosystème logiciel autour de cette carte est riche et bien documenté. La programmation se fait via l’environnement Arduino IDE ou l’outil en ligne de commande arduino-cli, en utilisant le langage C/C++. Le chargement du programme se fait par USB grâce à un bootloader spécifique. Pour communiquer avec le réseau, la bibliothèque principale est la bibliothèque MKRWAN, qui fournit une interface simple pour envoyer et recevoir des paquets de données. Elle prend en charge les deux modes de connexion principaux au réseau LoRaWAN : OTAA, qui est le mode sécurisé recommandé, et ABP, plus simple mais moins sûr. Il est également possible d’utiliser la carte en mode point à point, sans réseau intermédiaire, pour communiquer directement entre deux cartes MKR WAN, une fonctionnalité utile pour les tests ou les réseaux privés isolés. Bien que la carte soit compatible avec CircuitPython pour les tâches générales d’entrée/sortie et de contrôle de LED, le support de CircuitPython ne permet pas d’accéder aux fonctionnalités LoRaWAN, qui restent exclusives à l’environnement Arduino C++.

Plusieurs défis techniques ont été documentés par la communauté des utilisateurs. L’un des plus fréquents concerne la gestion de la durée de vie des batteries et la consommation électrique. La carte impose une limitation stricte de transmission, empêchant l’envoi de plus d’un message toutes les deux minutes, une contrainte liée aux réglementations européennes sur les bandes de fréquences. Les utilisateurs doivent donc concevoir leurs applications en tenant compte de cette latence obligatoire. De plus, des problèmes de compatibilité entre les versions de la bibliothèque logicielle et le firmware du module radio ont été signalés, nécessitant souvent une mise à jour du firmware du module via un programme spécifique avant de pouvoir utiliser les dernières fonctions de la bibliothèque. Enfin, bien que la carte soit robuste, la documentation officielle précise que les spécifications exactes de consommation en veille ou la plage de température de fonctionnement n’étaient pas clairement définies sur les fiches techniques finales, ce qui invite à la prudence dans les environnements industriels extrêmes. Malgré ces points d’attention, la MKR WAN 1300 reste une référence pédagogique solide pour comprendre les fondements de la communication longue portée dans l’Internet des objets.

Forum (1 sujet) →

AttrSpecsvérifié
main_mcuMicrochip (Atmel) SAMD21G18A — Arm Cortex-M0+ 32-bit, 48 MHz (build.mcu=cortex-m0plus, build.f_cpu=48000000L, -D__SAMD21G18A__), 256 KB flash (upload.maximum_size=262144), 32 KB SRAM (upload.maximum_data_size=32768), no EEPROM (boards.txt, SAMD21 family datasheet hosted by Arduino). Arduino's product page says "Arm Cortex-M0 32-bit SAMD21 processor" (docs.arduino.cc hardware page); the core builds it as Cortex-M0+ (the SAMD21 is an M0+ part per the datasheet).✔
lora_radio_moduleMurata CMWX1ZZABZ-078 (docs.arduino.cc hardware page, module firmware README). The module is a System-in-Package combining a Semtech SX1272 LoRa transceiver with an STM32L0 MCU running Arduino's AT firmware — the firmware is an STM32 project ("System Workbench for STM32") derived from ST's I-CUBE-LRWAN stack (mkrwan1300-fw README); the STM32-inside-the-module is also visible in a maintainer issue titled "SPI transfer problem between SAM D21 and STM32 on MKRWAN1310" (issue #86). The SX1272 is Semtech's "Long Range, Low Power RF Transceiver 860–1000 MHz" (Semtech product page). Module datasheet (same CMWX1ZZABZ part, hosted by Arduino): PDF.✔
secure_elementMicrochip ATECC508 ("ECC508 crypto-chip") (docs.arduino.cc hardware page, ATECC508A datasheet via docs.arduino.cc — datasheet URL pattern from the 1310 page).✔
rf_interfacemicro-UFL antenna connector; the sibling 1310 ships a bundled pentaband antenna rated 2 dB gain for 433/868/915 MHz (1310 store page).✔
gpio_peripherals_mkr_form_factor_samd213.3 V logic, 1× UART, 1× SPI, 1× I²C; the identical-form-factor 1310 spec table lists 8 digital I/O, 13 PWM pins (0…8, 10, 12, 18/A3, 19/A4), 7 analog inputs (ADC 8/10/12-bit), 1 analog output (DAC, 10-bit), 7 mA DC per I/O pin, user LED on D6, 48 MHz + 32.768 kHz RTC clocks (1310 store page tech specs).✔
usbnative Full-Speed USB (device) on the SAMD21; bootloader PID 0x8053, application PID 0x0053, VID 0x2341 (boards.txt, CircuitPython board config).✔
powerUSB or VIN 5 V input, 3.3 V operating logic (MKR family design, 1310 store page).✔
mechanicalMKR family outline, 67.64 × 25 mm, ~32 g (1310 values, same outline — 1310 store page).✔
  • Fabricant : Arduino S.r.l. (Via Andrea Appiani 25, Monza, Italie) — détails du fabricant tels qu'indiqués pour la gamme MKR WAN (page boutique du MKR WAN 1310, même bloc fabricant) ; le support de la carte se trouve dans le dépôt officiel d'Arduino ArduinoCore-samd (mkrwan1300.name=Arduino MKR WAN 1300, boards.txt).
  • Année : 2017 — le README de la bibliothèque MKRWAN porte la mention "Copyright (C) 2017 Arduino AG" et le portage CircuitPython pour la carte date de 2017 (board.c).
  • Statut : Fin de vie / retiré de la boutique. Au 2026-10-13, les URLs boutique store.arduino.cc/products/arduino-mkr-wan-1300 et store.arduino.cc/mkr-wan-1300 redirigent toutes deux vers la page d'accueil de la boutique (vérifié par fetch), c'est-à-dire que la page produit a été supprimée ; la carte reste entièrement prise en charge côté logiciel (boards.txt, bibliothèque MKRWAN v1.1.2). La page Arduino du successeur qualifie la 1300 de "its predecessor" par rapport au MKR WAN 1310 (page boutique du MKR WAN 1310).
  • Prix :
  • Variantes : versions régionales pour les bandes LoRa EU868 et US915 (la bibliothèque reçoit la bande à l'exécution, par ex. modem.begin(EU868), exemple LoraSendAndReceive ; l'usage de US915 est discuté dans le ticket #100). Successeur : MKR WAN 1310 — même concept SAMD21 + Murata CMWX1ZZABZ + ECC508, avec en plus un chargeur de batterie, une Flash SPI de 2 MByte et une gestion d'alimentation améliorée (page boutique du 1310). Cartes MKR WAN sœurs dans le core : mkrwan1310 (boards.txt).

+ Points forts

  • LoRa / LoRaWAN sub-GHz dans un format MKR compatible shield Arduino Uno — la seule radio est le Murata CMWX1ZZABZ (à base de SX1272) ; il n'y a ni Wi-Fi ni Bluetooth sur cette carte (page hardware docs.arduino.cc).
  • Marge physique de la LoRa : PHY à étalement de spectrum à chirp dont les facteurs d'étalement arbitrent portée contre débit (0,3–27 kbit/s), budgets de liaison d'environ 155–170 dB, ~4,8 km en urbain / plus de 16 km en rural en visibilité directe selon le portail développeurs de Semtech (Wikipedia — LoRa).
  • Commutation régionale de bande à l'exécution — le firmware du module d'Arduino ajoute la "ability to switch band at runtime, not only at compile time" par rapport au firmware ST d'origine (README mkrwan1300-fw).
  • Élément de sécurité matériel (ATECC508) pour le stockage de clés/identifiants, partie du concept de sécurité de la famille MKR (page hardware docs.arduino.cc).
  • Deux CPU indépendants (SAMD21 + STM32L0 dans le module radio) qui discutent sur SPI avec un protocole AT — le module peut même être utilisé comme modem LoRa autonome dans d'autres projets (LoRaModem modem(Serial1) prend en charge le câblage UART de la puce Murata, exemple).
  • Mode LoRa brut de carte à carte (sans serveur réseau) : Arduino documente l'usage de deux MKR WAN 1300 pour un "remote LED control system" de point à point (page hardware docs.arduino.cc) ; voir aussi l'exemple DumbModemLoraSender (exemples).
  • End-device LoRaWAN classe A avec ADR, uplinks confirmés/non confirmés, lecture RSSI/SNR (AT+ADR, AT+CFM, AT+RSSI, AT+SNR) (liste AT).
  • Écosystème de shields MKR — même disposition de connecteurs que le reste de la famille MKR (page hardware docs.arduino.cc).

− Points faibles

  • joinOTAA signale des échecs fantômes — ticket de longue date : "joinOTAA in sketch 'LoRaSendAndReceive' and other examples from this lib gives false error 'Something went wrong…'" (ticket #139).
  • TX bloqué après 255 envois — "Problem with packet transmission after 255 sends" (catégorie de bug de débordement du compteur de trames) (ticket #141).
  • Décalage version bibliothèque/firmware — "Firmware version mismatch" quand une nouvelle bibliothèque MKRWAN rencontre un ancien firmware de module ; lancez toujours l'updater de firmware en premier (ticket #126, sketches d'updater ici).
  • Régression ABP — "joinABP not working since library update from 1.0.14 to 1.0.15" (ticket #85).
  • Confusion US915 — "Does this library really support US915?" et "No way to force US Sub-band #2 (channels 8–15) to join Helium network reliably" ; le tableau de débits a aussi été signalé comme centré sur l'UE (tickets #100, #140, #151).
  • Throttling TX impitoyable de 2 minutes : "independent of this setting, the modem will not allow sending more than one message every 2 minutes, this is enforced by firmware and can not be changed" (conception du duty cycle UE) (commentaire de l'exemple officiel).
  • Bug dans l'exemple d'updater de firmware — "Possible bug in arduino_read function of 'MKRWANFWUpdate_standalone' example sketch" (ticket #134).
  • API non documentée — l'usage de restart n'est pas documenté (ticket #132).
  • Pas de chargeur de batterie — le 1310 met en avant "a new battery charger" et une meilleure gestion d'alimentation comme correctifs par rapport à la 1300 ; prévoyez du matériel externe de batterie/charge pour les déploiements terrain de 1300 (page boutique du 1310).
  • Contention SPI sur la carte sœur (1310 uniquement, à surveiller si vous réutilisez du code) : "External SPI bus freezes when LoRa is enabled" (#101) et problèmes de transfert SPI SAMD21↔STM32 (#86).
  • Hub communautaire : catégorie officielle du forum pour la carte : forum.arduino.cc — MKR WAN 1300 (lien repris de la page docs de la carte).
  • Retour d'expérience expert expert — expert-arduino
    • Petit retour d'experience sur la MKR WAN 1300 maintenant qu'elle est delistee au profit de la 1310. Le format MKR est vraiment pratique et le module Murata CMWX1 fait le job en EU868 ou US915. Par contre, attention aux pieges connus. Le problème du compteur de trames qui bloque l'emission après 255… — expert-arduino
    • Merci pour ce resume clair. Je viens de recevoir ma 1300 pour un projet de suivi de niveau d'eau. Tu parles du compteur de trames, mais est-ce que le faux échec de joinOTAA est systematique ou ca depend de la config ? J'ai lu l'issue 139 mais je ne suis pas sur de comprendre si c'est un bug de la l… — maker_loi88
    • @maker_loi88 le faux échec de joinOTAA est frequent si tu ne geres pas les timeouts correctement, cf issue 139. Pour le throttle, ne cherche pas a le contourner, c'est grave en EU868. Si tu as besoin de plus de fiabilite et d'un chargeur LiPo integre, la 1310 est mieux, mais la 1300 reste fonctionn… — hacker_99

Retours et projets de la communauté

  • Board-to-board LoRa remote LED control

    Board-to-board LoRa remote LED control — Arduino's official tutorial concept for this exact board: "Set up two Arduino MKR WAN 1300 to host a remote LED control system" . (unverified au 2026-10-13) The Things Network node — connect to the public TTN network a…

  • Serial chat over LoRaWAN

    Serial chat over LoRaWAN — the library's flagship LoraSendAndReceive example: type at the Serial monitor, the message goes up to a network server (e.g. TTN) and downlinks are echoed back . (unverified au 2026-10-13) Point-to-point "dumb modem" telemetry — Dum…

  • Self-recovering field node (firmware updater project)

    Self-recovering field node (firmware updater project) — MKRWANFWUpdate_standalone / FWUpdaterBridge turn a second Arduino into a programmer for the module's STM32 firmware ; the standard first-hour project for every 1300 . (unverified au 2026-10-13)

  • More MKR projects

    More MKR projects — Arduino Project Hub's MKR collection (, linked from the board's docs page). (unverified au 2026-10-13)

  • joinOTAA signale des échecs fantômes — ticket de longue date : "joinOTAA in sketch 'LoRaSendAndReceive' and other examples from this lib gives false error 'Something went wrong…'" (ticket #139).
  • TX bloqué après 255 envois — "Problem with packet transmission after 255 sends" (catégorie de bug de débordement du compteur de trames) (ticket #141).
  • Décalage version bibliothèque/firmware — "Firmware version mismatch" quand une nouvelle bibliothèque MKRWAN rencontre un ancien firmware de module ; lancez toujours l'updater de firmware en premier (ticket #126, sketches d'updater ici).
  • Régression ABP — "joinABP not working since library update from 1.0.14 to 1.0.15" (ticket #85).
  • Confusion US915 — "Does this library really support US915?" et "No way to force US Sub-band #2 (channels 8–15) to join Helium network reliably" ; le tableau de débits a aussi été signalé comme centré sur l'UE (tickets #100, #140, #151).
  • Throttling TX impitoyable de 2 minutes : "independent of this setting, the modem will not allow sending more than one message every 2 minutes, this is enforced by firmware and can not be changed" (conception du duty cycle UE) (commentaire de l'exemple officiel).
  • Bug dans l'exemple d'updater de firmware — "Possible bug in arduino_read function of 'MKRWANFWUpdate_standalone' example sketch" (ticket #134).
  • API non documentée — l'usage de restart n'est pas documenté (ticket #132).
  • Pas de chargeur de batterie — le 1310 met en avant "a new battery charger" et une meilleure gestion d'alimentation comme correctifs par rapport à la 1300 ; prévoyez du matériel externe de batterie/charge pour les déploiements terrain de 1300 (page boutique du 1310).
  • Contention SPI sur la carte sœur (1310 uniquement, à surveiller si vous réutilisez du code) : "External SPI bus freezes when LoRa is enabled" (#101) et problèmes de transfert SPI SAMD21↔STM32 (#86).
  • Hub communautaire : catégorie officielle du forum pour la carte : forum.arduino.cc — MKR WAN 1300 (lien repris de la page docs de la carte).

Bibliothèque de code — exemples écrits pour cette carte

  • emission-p2p.ino Arduino

    Le lien LoRa le plus simple avec la MKR WAN 1300 : un paquet texte toutes les cinq secondes en mode point à point, sans infrastructure ni passerelle. Le récepteur est une seconde MKR WAN ; le mode AC…

  • reception-p2p.ino Arduino

    Le récepteur du lien point à point : cette MKR WAN 1300 écoute le canal 868,1 MHz en SF7, affiche chaque paquet avec son RSSI et son SNR, et se réinitialise toute seule si la radio signale une erreur…

  • reglage-sp.ino Arduino

    La portée LoRa se règle au facteur d'étalement : ce croquis émet le même message en SF7 puis SF12, trente secondes par palier. Le récepteur doit changer de SF avec l'émetteur — ou lancez un récepteur…

  • meteo-lora.ino Arduino

    Station météo autonome complète : le BME280 branché sur I2C fournit température, humidité et pression, la MKR WAN 1300 les diffuse en LoRa toutes les dix minutes. La trame compacte T;H;P tient en 20 …

  • trame-crc.ino Arduino

    En radio, toute trame peut être corrompue ou perdue : ce protocole minimal ajoute un identifiant de station, un numéro de série et un CRC-8 à chaque paquet LoRa de la MKR WAN 1300. Le récepteur écart…

  • relais-radio.ino Arduino

    Commande d'un relais 12 V à distance : la MKR WAN 1300 réceptrice lit les consignes ON/OFF arrivant par radio, pilote la broche 6 via un transistor, et renvoie un accusé de réception. Un geste simple…

  • scan-canaux.ino Arduino

    Avant de choisir son canal LoRa, mesurez l'environnement : ce programme balaie neuf canaux EU868 et publie pour chacun le RSSI moyen et minimal. Un canal bruyant (passerelles voisines, interférences)…

  • cycles-sleep.ino Arduino

    La MKR WAN 1300 est faite pour les nœuds sur pile : ce cycle se réveille toutes les quinze minutes, mesure, émet une trame courte en SF9, puis endort modem et microcontrôleur. Sans port série ni LED,…

  • passerelle-usb.ino Arduino

    Le récepteur unique du réseau de stations : cette MKR WAN 1300 fait le pont entre l'air LoRa et le port USB, en rejouant chaque trame avec RSSI, SNR et horodatage. Branchée sur un Raspberry Pi ou un …

  • lora_logger.py Python

    Côté ordinateur, ce script pyserial consomme la passerelle LoRa, écrit chaque trame dans un CSV horodaté et affiche un histogramme de RSSI en caractères. On suit en direct la portée des stations et l…

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