Arduino MKR WAN 1310

Arduino S.r.lMCU 8-32 bitarduino

⚡ L’essentiel en 60 secondes

L'Arduino MKR WAN 1310 est une carte de développement compacte, conçue spécifiquement pour les applications de l'Internet des objets (IoT) nécessitant une communication sans fil longue portée et une faible consommation d'énergie. Intégrée dans le format standard de la famille MKR, cette carte se distingue par son absence de Wi-Fi ou de Bluetooth au profit d'une technologie radio LoRa et LoRaWAN. Le LoRa est une modulation de signal qui permet d'échanger des données sur de très longues distances, pouvant atteindre plusieurs kilomètrès en milieu rural, tout en consommant très peu d'énergie. Cela la rend idéale pour des capteurs déployés dans des zones éloignées, comme l'agriculture de précision, la surveillance environnementale ou la gestion des infrastructures urbaines, où le changement de batterie est coûteux ou difficile. Lancée en 2019, la carte est actuellement en vente mais affichée comme « épuisée » sur la boutique officielle d'Arduino, bien que son support logiciel reste totalement actif et maintenu.

Le cœur de la carte est un microcontrôleur Microchip SAMD21G18A, un circuit basé sur l'architecture Arm Cortex-M0+ cadencé à 48 MHz. Pour le néophyte, le microcontrôleur agit comme le cerveau de la carte, exécutant le code que vous écrivez pour lire les capteurs ou commander des actionneurs. Ce processeur dispose de 256 Ko de mémoire Flash pour stocker le programme et de 32 Ko de RAM pour les données temporaires. Une particularité importante de cette carte est la présence d'un second processeur intégré au module radio Murata CMWX1ZZABZ-078. Il s'agit d'un microcontrôleur STM32L0 qui gère la complexité du protocole LoRaWAN via un firmware dédié, permettant au SAMD21 principal de rester simple et économe en énergie. Cette architecture à deux cerveaux communique via des commandes AT, une méthode standardisée pour piloter des modules radio. Le module radio lui-même utilise la puce transceiver Semtech SX1276, capable de fonctionner sur plusieurs bandes de fréquences, notamment 868 MHz en Europe et 915 MHz aux États-Unis. Un avantage majeur de la version 1310 par rapport à sa prédécesseuse, la MKR WAN 1300, est la possibilité de changer cette bande de fréquence directement dans le code au moment de l'exécution, sans avoir à reprogrammer le firmware du module radio.

L'un des points forts de la MKR WAN 1310 est sa gestion optimisée de l'alimentation, pensée pour fonctionner sur batterie. La carte intègre un circuit de charge pour batteries Li-Ion ou Li-Po (modèle TI BQ24195L), acceptant des batteries d'une capacité minimale de 1024 mAh. Grâce à des modes de veille profonds, la consommation de la carte peut descendre jusqu'à 104 microampères lorsqu'elle est correctement configurée, ce qui est extrêmement faible et permet une autonomie de plusieurs années. Le module radio lui-même consomme très peu en veille, autour de 1,5 microampère. Il est important de noter que la carte est alimentée en 5 volts via le port USB ou la broche VIN, mais fonctionne en interne à 3,3 volts. La LED témoin d'alimentation ne s'allume que lorsque la carte est connectée à une source externe ; elle reste éteinte en fonctionnement sur batterie, un détail utile à connaître pour le diagnostic.

En termes de connectivité et d'extension, la carte offre un jeu d'entrées/sorties (GPIO) adapté au format MKR. Elle dispose de 8 broches numériques, dont 13 peuvent générer des signaux PWM (pour contrôler la luminosité d'une LED ou la vitesse d'un moteur), et 7 entrées analogiques pour lire des capteurs variés. Une particularité intéressante est le port Eslov, un connecteur à 5 broches qui permet de brancher des modules capteurs intelligents qui s'identifient automatiquement auprès de la carte, simplifiant grandement le câblage. Pour la sécurité des données, la carte intègre une puce de sécurité matérielle ATECC508, capable de stocker des clés cryptographiques de manière protégée, ce qui est crucial pour authentifier l'appareil sur un réseau LoRaWAN. De plus, une mémoire Flash externe de 2 Mo est présente, offrant un espace pour stocker des données localement avant leur transmission ou pour mettre à jour la configuration à distance.

La programmation de la carte se fait via l'environnement Arduino IDE ou en ligne de commande, en utilisant le langage C/C++. La bibliothèque principale, MKRWAN, fournit une interface simple pour rejoindre un réseau LoRaWAN, envoyer des paquets de données et recevoir des commandes. Il est essentiel de noter que les nouvelles cartes peuvent nécessiter une mise à jour du firmware du module radio via un exemple fourni, pour éviter des erreurs de compatibilité. La carte est conçue pour fonctionner avec des réseaux LoRaWAN publics ou privés, comme The Things Network, permettant d'envoyer des données vers le cloud Arduino ou d'autres plateformes. Cependant, il faut garder à l'esprit certaines limitations réglementaires, comme la restriction stricte du devoir de cycle en Europe, qui empêche le module d'envoyer plus d'un message toutes les deux minutes. Enfin, bien que la carte soit robuste, le module radio Murata utilisé est sujet à des risques de disponibilité dans la chaîne d'approvisionnement, et la carte ne supporte pas CircuitPython, restant exclusivement dédiée à l'écosystème Arduino.

Forum (1 sujet) →

AttrSpecsvérifié
main_mcuMicrochip (Atmel) SAMD21G18A — Arm Cortex-M0+ 32-bit at 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, 32.768 kHz RTC clock (boards.txt, SAMD21 family datasheet, store tech specs). Arduino's own product blurb says "Arm Cortex-M0 32-bit SAMD21" (docs.arduino.cc hardware page); the store spec table and the datasheet say Cortex-M0+ — the core builds it as cortex-m0plus.✔
no_gpu(microcontroller board).? non vérifié
lora_radio_moduleMurata CMWX1ZZABZ-078 (docs.arduino.cc hardware page, firmware README). Per Murata's datasheet (hosted by Arduino, spec number BP-ABZ-C): Main ICs = STM32L (STM32L072/L082 family) + Semtech SX1276, "Supported Frequencies: 868 MHz, 915 MHz" (Murata CMWX1ZZABZ datasheet, PDF). The STM32L0 runs Arduino's AT-command firmware; the SX1276 is Semtech's "LoRa Connect Transceiver, 137 MHz to 1020 MHz" (Semtech product page). - 1310 vs 1300 radio differentiation: the SX1272 (in the MKR WAN 1300's documentation) is Semtech's 860–1000 MHz part (Semtech SX1272 page), while the SX1276 covers the much wider 137–1020 MHz range (Semtech SX1276 page) — consistent with the 1310's advertised 433/868/915 MHz carrier options (store tech specs). Note the sources conflict across the product line: Arduino's own DumbModemLoraSender example comment still says "the SX1272 chip (part of Murata module)" (example source), while the Murata datasheet Arduino hosts for the 1310 says SX1276, and the module firmware ships both sx1272 and sx1276 drivers (firmware repo tree).✔
secure_elementMicrochip ATECC508 crypto chip (store tech specs, ATECC508A datasheet).✔
on_board_storage2 MByte external flash ("2MByte SPI Flash" in the overview; "QSPI Flash Memory 2MByte (external)" in the spec table) for data logging and OTA/config storage (store page).✔
battery_chargerTI BQ24195L PMIC — the core compiles the 1310 variant with -DUSE_BQ24195L_PMIC (boards.txt, TI product page). Supported batteries: rechargeable Li-Ion or Li-Po, 1024 mAh minimum; battery connector JST S2B-PH-SM4-TB(LF)(SN), mating JST PHR-2 (store tech specs & FAQ).✔
gpio_mkr_form_factor_3_3_v_logic8 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), 8 external interrupts (0, 1, 4, 5, 6, 7, 8, 16/A1, 17/A2), 1 UART, 1 SPI, 1 I²C, 7 mA DC per I/O pin, LED_BUILTIN = 6 (store tech specs, pinout diagram PDF).✔
extra_i_c_eslov_port5-pin 1.0 mm-pitch connector (SDA, SCL, GND, +5 V, alarm pin) for self-identifying I²C modules; suggested mating connector SHR-05V-S-B (store page "Additional I2C Port", connector datasheet).✔
rfmicro-UFL antenna connector; bundled pentaband antenna rated 2 dB gain, carrier 433/868/915 MHz (store tech specs & FAQ).✔
usbFull-Speed USB device and embedded host on the SAMD21 (store tech specs); bootloader PID 0x8059, app PID 0x0059, VID 0x2341 (boards.txt).✔
powerUSB or VIN, board supply 5 V (Vin pin is an input, "5V to maximum 6V", disconnects USB power when used); circuit operating voltage 3.3 V; the LED-ON LED tracks the 5 V rail, not battery, so battery-only operation leaves it dark (store FAQ).✔
consumptionboard-level "as low as 104 µA" when properly configured (store page "Improved Battery Power"). Module-level figures from the Murata datasheet: TX 47 mA typ @14 dBm, 128 mA typ @20 dBm (PA_BOOST), and low-power modes of 1.40–1.65 µA (STM32L0 Stop/Standby + SX1276 Sleep) (Murata datasheet pp. 6–7).✔
mechanical67.64 × 25 mm, 32 g (store tech specs).✔
certificationsCE, FCC, UKCA, ISED/IC, RCM, MIC, GB4943, RoHS, REACH, WEEE declarations listed (store page).✔
  • Manufacturer: Arduino S.r.l., Via Andrea Appiani 25, Monza (MB), IT 20900 — bloc fabricant sur la page officielle de la boutique (store.arduino.cc/products/arduino-mkr-wan-1310). Le support de la carte se trouve dans le dépôt officiel d'Arduino ArduinoCore-samd (mkrwan1310.name=Arduino MKR WAN 1310, boards.txt).
  • Year: 2019 — la carte a été intégrée à ArduinoCore-samd en avril–mai 2019 (commits « MKRWAN1310: start integration » 2019-04-19, « Mark mkrfox1200 and mkrwan1310 as very low power » 2019-04-19, retrait temporaire 2019-05-16 et réajout 2019-05-31, historique des commits de boards.txt).
  • Status: Fiche active, rupture de stock. Le 2026-10-13, la page officielle de la boutique est en ligne mais affiche « Sold out » ; le support logiciel est à jour (carte présente dans le master de boards.txt, bibliothèque MKRWAN v1.1.2).
  • Price: 49,00 € (TTC) tel qu'affiché le 2026-10-13 (page boutique).
  • Variants: un seul SKU ; la bande LoRa régionale est sélectionnée logiciellement à l'exécution (par ex. modem.begin(EU868) ou US915, exemple LoraSendAndReceive) ; la boutique indique « Working region EU/US (confirmed) » (page boutique). Prédécesseur : MKR WAN 1300 — la page du 1310 elle-même présente le 1300 comme « its predecessor » et les améliorations comme « a new battery charger, a 2MByte SPI Flash, and improved control of the board's power consumption » (page boutique). Id. de carte sœur dans le core : mkrwan1300 (boards.txt).

+ Points forts

  • LoRa / LoRaWAN sub-GHz dans le format MKR compatible shields — la seule radio est le Murata CMWX1ZZABZ ; pas de Wi-Fi ni Bluetooth (page hardware docs.arduino.cc).
  • Marge PHY LoRa : spectre à étalement de chirps avec des facteurs d'étalement arbitrant portée vs débit de données (0,3–27 kbit/s), budgets de liaison d'environ 155–170 dB, environ 4,8 km en zone urbaine / 16+ km en rural en visibilité directe selon le LoRa Development Portal (Wikipédia — LoRa).
  • Refonte centrée batterie vs le 1300 : chargeur Li-Ion/Li-Po BQ24195L, plancher configuré à 104 µA, flag core -DVERY_LOW_POWER (page boutique, boards.txt).
  • Flash embarquée 2 Mo permettant l'enregistrement local de données et la livraison OTA de config/scripts, avec les identifiants conservés dans l'élément sécurisé ATECC508 (page boutique « On-board Storage »).
  • Changement de bande régionale à l'exécution (AT+BAND, modem.begin(EU868|US915|AS923|…))) au lieu d'un firmware compilé par région (README firmware, exemple).
  • Mode LoRa brut « dumb modem » : le module peut être piloté sans la pile LoRaWAN sur SPI1 avec LORA_IRQ_DUMB comme chip-select ; arduino-LoRa ≥ 0.5.0 prend en charge le MKR WAN 1300/1310 immédiatement (exemple DumbModemLoraSender, arduino-LoRa).
  • End-device LoRaWAN de classe A avec OTAA/ABP, ADR, uplinks confirmés/non confirmés, lecture RSSI/SNR (liste AT).
  • Port d'extension I²C auto-identifiant Eslov (5 broches, ligne d'alarme) — même concept que les modules capteurs de la gamme MKR (page boutique).
  • Deux CPU sur une carte (SAMD21 + STM32L0 dans la radio) dialoguant en AT-sur-SPI ; le module peut aussi être utilisé seul dans d'autres projets via le câblage LoRaModem modem(Serial1) (exemple).

− Points faibles

  • Inadéquation firmware/bibliothèque sur cartes neuves — « Firmware version mismatch » quand une bibliothèque MKRWAN neuve rencontre un ancien firmware de module ; exécuter d'abord l'exemple de mise à jour du firmware (issue #126, exemples updater).
  • Faux échecs de joinOTAA — « joinOTAA … gives false error 'Something went wrong' » dans les exemples officiels (issue #139).
  • TX bloqué après 255 envois — bug de classe du compteur de trames, « Problem with packet transmission after 255 sends » (issue #141).
  • Liaison SPI entre le SAMD21 et le STM32 du module défaillante spécifiquement sur le 1310 — issue du mainteneur intitulée « SPI transfer problem between SAM D21 and STM32 on MKRWAN1310 » (issue #86).
  • Régression ABP — « joinABP not working since library update from 1.0.14 to 1.0.15 » (issue #85).
  • Aspérités US915 — « Does this library really support US915 ? » et difficulté à forcer la sous-bande 2 US pour des jointures Helium fiables (issue #100).
  • Throttle TX dur de 2 minutes (conception duty-cycle EU) : « 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 » (commentaire d'exemple officiel).
  • Risque supply-chain du module : la propre page produit Murata du module CMWX1ZZABZ n'est plus accessible (404 le 2026-10-13) et la carte elle-même est « Sold out » à la boutique Arduino (page boutique).
  • Pas de CircuitPython / pas de Wi-Fi ni BT — connectivité LoRaWAN uniquement et outillage Arduino-C++ uniquement (voir Systems).
  • Retour d'expérience expert expert — expert-arduino
    • Bonjour à tous, je débute avec la MKR WAN 1310 pour un projet de suivi de température en extérieur. J'ai suivi le tuto officiel pour la connexion OTAA sur un réseau local, mais je bloque systématiquement. La fonction joinOTAA renvoie une erreur quelque chose a mal tourne, alors que mes clés sont co… — maker-loi
    • Salut, ce souci de faux échec avec joinOTAA est effectivement documenté dans l'issue 139 du dépôt MKRWAN. Avant de modifier ton code, vérifie impérativement la version du firmware de ton module Murata. Sur les cartes neuves, il y a souvent un décalage entre la librairie récente et le firmware préin… — expert-arduino
    • Je confirme le point sur le firmware, ça m'a fait perdre une après-midi. Par contre, je rencontre un autre souci plus insidieux : après environ 255 transmissions réussies, ma carte ne peut plus rien envoyer, sans aucune erreur explicite dans le moniteur série. J'ai vu que c'est un bug connu lié au … — gadget-hunter

Retours et projets de la communauté

  • Join The Things Network with the MKR WAN

    Join The Things Network with the MKR WAN — official Arduino tutorial (1300/1310 line): register on TTN, OTAA-join, view uplinks . (unverified au 2026-10-13) LoRa Button Press — official Arduino board-to-board tutorial: wireless button events between two MKR W…

  • Community projects on Arduino Project Hub

    Community projects on Arduino Project Hub — searchable MKR WAN 1310 project collection . (unverified au 2026-10-13) — référence hébergé sur create, statut unverified vérifié le 2026-10-13. Projet documenté dans la fiche mkr-wan-1310 (MCU 8-32 bit) ; rôle : ap…

  • Official example sketches

    Official example sketches — LoraSendAndReceive (LoRaWAN OTAA send/receive), FirstConfiguration , FWUpdaterBridge , MKRWANFWUpdate_standalone , DumbModemLoraSender (raw LoRa) . (unverified au 2026-10-13)

  • Inadéquation firmware/bibliothèque sur cartes neuves — « Firmware version mismatch » quand une bibliothèque MKRWAN neuve rencontre un ancien firmware de module ; exécuter d'abord l'exemple de mise à jour du firmware (issue #126, exemples updater).
  • Faux échecs de joinOTAA — « joinOTAA … gives false error 'Something went wrong' » dans les exemples officiels (issue #139).
  • TX bloqué après 255 envois — bug de classe du compteur de trames, « Problem with packet transmission after 255 sends » (issue #141).
  • Liaison SPI entre le SAMD21 et le STM32 du module défaillante spécifiquement sur le 1310 — issue du mainteneur intitulée « SPI transfer problem between SAM D21 and STM32 on MKRWAN1310 » (issue #86).
  • Régression ABP — « joinABP not working since library update from 1.0.14 to 1.0.15 » (issue #85).
  • Aspérités US915 — « Does this library really support US915 ? » et difficulté à forcer la sous-bande 2 US pour des jointures Helium fiables (issue #100).
  • Throttle TX dur de 2 minutes (conception duty-cycle EU) : « 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 » (commentaire d'exemple officiel).
  • Risque supply-chain du module : la propre page produit Murata du module CMWX1ZZABZ n'est plus accessible (404 le 2026-10-13) et la carte elle-même est « Sold out » à la boutique Arduino (page boutique).
  • Pas de CircuitPython / pas de Wi-Fi ni BT — connectivité LoRaWAN uniquement et outillage Arduino-C++ uniquement (voir Systems).
  • Clignoter la LED embarquée D6 debutant Schéma : IMG-mkr-wan-1310-debutant-1-mkrwan1310-clignotement-led.svg — La carte MKR WAN 1310 vue de dessus, câble micro-USB branché, LED D6 (broche 6) entourée d'un halo.
  • Bouton poussoir et console série debutant Schéma : IMG-mkr-wan-1310-debutant-2-mkrwan1310-bouton-console-serie.svg — Bouton poussoir câblé entre la broche 1 et GND sur une MKR WAN 1310, moniteur série à l'écran.
  • Lire un capteur analogique (potentiomètre) debutant Schéma : IMG-mkr-wan-1310-debutant-3-mkrwan1310-capteur-analogique.svg — Potentiomètre alimenté en 3,3 V, curseur relié à A0 d'une MKR WAN 1310, valeurs affichées sur le traceur série.
  • Première configuration du module LoRa intermediaire Schéma : IMG-mkr-wan-1310-intermediaire-1-mkrwan1310-premiere-config-lora.svg — MKR WAN 1310 reliée à un ordinateur, antenne micro-UFL vissée, flèche vers le module Murata CMWX1ZZABZ et la mise à jour du firmware.
  • LoRa point à point sans réseau (dumb modem) intermediaire Schéma : IMG-mkr-wan-1310-intermediaire-2-mkrwan1310-lora-point-a-point.svg — Deux MKR WAN 1310 échangeant des paquets LoRa en mode direct, ondes radio entre les antennes, aucun routeur ni passerelle au centre.
  • Rejoindre The Things Network (OTAA) intermediaire Schéma : IMG-mkr-wan-1310-intermediaire-3-mkrwan1310-otaa-the-things-network.svg — MKR WAN 1310 envoyant un uplink LoRaWAN vers une antenne de passerelle puis le cloud The Things Network, clés OTAA représentées par des cadenas.
  • Uplinks confirmés robustes et duty cycle avance Schéma : IMG-mkr-wan-1310-avance-1-mkrwan1310-uplink-confirme-robuste.svg — File d'attente de messages sur une MKR WAN 1310, horloge de duty cycle 2 minutes, flèches ACK/retour vers la passerelle et réémissions.
  • Capteur I²C sur port Eslov et journalisation flash avance Schéma : IMG-mkr-wan-1310-avance-2-mkrwan1310-eslov-capteur-i2c.svg — Connecteur Eslov 5 broches d'une MKR WAN 1310 relié à un module capteur I²C auto-identifiable, puce de flash SPI 2 Mo en inset et uplink LoRaWAN sortant.
  • Sommeil bas courant et réveil sur interruption avance Schéma : IMG-mkr-wan-1310-avance-3-mkrwan1310-sommeil-bas-courant.svg — MKR WAN 1310 sur batterie Li-Po endormie, icône lune, broche 16/A1 en pointillés reliée à un bouton de réveil, jauge 104 µA.

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

  • join-otaa.ino Arduino

    La première connexion LoRaWAN de la MKR WAN 1310 : provisionnement des trois identifiants (Device EUI, App EUI, App Key), puis jointure OTAA avec huit tentatives sur 30 secondes. Le serveur valide la…

  • uplink-confirme.ino Arduino

    La transmission fiable en LoRaWAN : la MKR WAN 1310 envoie deux octets de capteur sur le port 2 en mode confirmé et attend l'acquittement MAC du serveur. En cas d'échec, la trame est simplement reten…

  • downlink.ino Arduino

    Un nœud LoRaWAN se pilote à distance : cette MKR WAN 1310 écoute le port 8 et change sa propre période d'envoi quand le serveur lui envoie un octet. Le pattern de configuration à distance qui évite d…

  • activation-abp.ino Arduino

    L'ABP saute l'étape de jointure : l'adresse et les clés de session sont écrites à la main dans la MKR WAN 1310 et le serveur. Utile sur un réseau privé ou pour déboguer rapidement, mais sans rotation…

  • suivi-adr.ino Arduino

    L'ADR est le réglage énergie/portée automatique de LoRaWAN : activé sur la MKR WAN 1310, le serveur réduit progressivement SF et puissance quand la liaison est bonne. Ce croquis affiche le data rate …

  • classe-c.ino Arduino

    Pour un actionneur sur secteur, la class C divise la latence descendante : la MKR WAN 1310 écoute RX2 en continu et applique une consigne serveur en quelques secondes. Le courant de veille passe à ~2…

  • noeud-batterie.ino Arduino

    Le déploiement réel sur pile : la session LoRaWAN survivant au deepSleep, la MKR WAN 1310 se contente d'un uplink toutes les trente minutes sans re-join. Sur deux AA NiMH, le budget tient plusieurs m…

  • diagnostic-join.ino Arduino

    Quand le join LoRaWAN échoue, les causes sont toujours les mêmes : ce programme de diagnostic énonce les vérifications, tente trois jointures longues puis énumère les pistes classées. Un réflexe à av…

  • ttn_fetch.py Python

    Côté serveur, ce script Python interroge l'API The Things Network v3 pour récupérer les derniers uplinks d'une MKR WAN 1310 : horodatage, RSSI vu par la passerelle et charge utile base64. La brique d…

  • test-couverture.ino Arduino

    Valider une couverture LoRaWAN avant un déploiement : cette MKR WAN 1310 émet une trame identifiant+compteur toutes les trente secondes pendant un trajet. En croisant la trace série (heure d'émission…

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