Arduino MKR WAN 1300
⚡ Lo esencial en 60 segundos
- main_mcu — Microchip (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_module — Murata 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_element — Microchip ATECC508 ("ECC508 crypto-chip") (docs.arduino.cc hardware page, ATECC508A datasheet via docs.arduino.cc — datasheet URL pattern from the 1310 page).
- rf_interface — micro-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_samd21 — 3.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).
- usb — native Full-Speed USB (device) on the SAMD21; bootloader PID 0x8053, application PID 0x0053, VID 0x2341 (boards.txt, CircuitPython board config).
- En esta placa : 9 tutoriales · 10 código
La Arduino MKR WAN 1300 es una placa de desarrollo compacta diseñada para conectar dispositivos electrónicos a redes de bajo consumo y largo alcance, conocidas como LoRaWAN. Lanzada en 2017, esta tarjeta representa una solución accesible para entusiastas y profesionales del Internet de las Cosas (IoT) que buscan enviar datos pequeños, como lecturas de sensores, a través de distancias considerables sin depender de infraestructuras celulares o Wi-Fi tradicionales. Aunque actualmente ha sido retirada del catálogo oficial de Arduino y sustituida por el modelo MKR WAN 1310, la 1300 sigue siendo plenamente funcional y admitida por el software oficial, lo que la convierte en una opción viable para proyectos educativos o prototipos existentes. Su diseño sigue el formato "MKR", una variante reducida de las placas Arduino UNO, lo que permite utilizar escudos y accesorios compatibles con esta familia, manteniendo una huella física pequeña de aproximadamente 67,6 por 25 milímetros.
El corazón de la placa es el microcontrolador Microchip SAMD21G18A, un chip de 32 bits basado en la arquitectura Arm Cortex-M0+. Para quien no esté familiarizado con estos términos, el Cortex-M0+ es un procesador eficiente diseñado para tareas que no requieren una potencia de cálculo extrema pero sí un consumo energético muy bajo, ideal para dispositivos que funcionan con baterías. Este microcontrolador opera a una frecuencia de reloj de 48 MHz, lo que significa que puede ejecutar 48 millones de ciclos básicos por segundo, y cuenta con 256 KB de memoria flash para almacenar el código del programa y 32 KB de memoria RAM para el procesamiento temporal de datos. Es importante notar que esta placa no incluye memoria EEPROM tradicional, una característica común en las familias SAMD, por lo que los datos que deben persistir tras apagar el equipo deben guardarse en la memoria flash mediante librerías específicas o en dispositivos externos.
La verdadera especialidad de la MKR WAN 1300 reside en su módulo de radiofrecuencia, el Murata CMWX1ZZABZ-078. Este componente es un sistema en paquete que integra un transceptor LoRa Semtech SX1272 y un segundo microcontrolador, un STM32L0, que gestiona la comunicación por radio. Esta arquitectura de doble procesador permite que la placa principal se concentre en la lógica de la aplicación mientras el módulo de radio se encarga de las complejidades de la modulación de señal y la gestión de la red LoRaWAN. La tecnología LoRa utiliza un esquema de modulación llamado "chirp spread spectrum", que permite alcanzar grandes distancias con una potencia de transmisión mínima. En entornos urbanos, esto puede traducirse en coberturas de varios kilómetros, mientras que en zonas rurales con línea de visión despejada, las distancias pueden superar los 15 kilómetros. La placa está disponible en variantes para las bandas de frecuencia de 868 MHz (Europa) y 915 MHz (Estados Unidos), y el firmware del módulo permite cambiar entre estas bandas en tiempo de ejecución, ofreciendo flexibilidad para el desarrollo internacional.
Para garantizar la seguridad de los datos transmitidos, la placa incorpora un elemento criptográfico seguro Microchip ATECC508. Este chip dedicado se encarga de almacenar de forma protegida las claves de cifrado y las credenciales necesarias para autenticar el dispositivo en la red, evitando que información sensible sea extraída fácilmente del microcontrolador principal. La conexión a la antena se realiza mediante un conector micro-UFL, un estándar compacto que requiere el uso de una antena externa adecuada para la banda de frecuencia seleccionada. Cabe destacar que, a diferencia de su sucesora, la MKR WAN 1300 no incluye un cargador de batería integrado para baterías de litio, por lo que los usuarios que deseen implementar soluciones autónomas deben diseñar o añadir su propio circuito de carga y gestión de energía externa.
En cuanto a la programación, la placa se utiliza principalmente con el entorno de desarrollo de Arduino (IDE) o la herramienta de línea de comandos arduino-cli. El código se escribe en C++ y se compila para la arquitectura SAMD. La comunicación con la placa se realiza a través de un puerto USB nativo, lo que simplifica la instalación de controladores en la mayoría de los sistemas operativos modernos. Para interactuar con la red LoRaWAN, se utiliza la librería oficial MKRWAN, que proporciona una interfaz sencilla para unirse a la red, enviar mensajes y recibir datos. Esta librería abstrae los comandos AT complejos que el microcontrolador STM32 del módulo de radio entiende, permitiendo al programador centrarse en la lógica de la aplicación. Por ejemplo, funciones como modem.begin inician el módulo, modem.joinOTAA gestiona la autenticación segura en la red y modem.endPacket envía los datos.
Además del ecosistema de Arduino, la placa es compatible con CircuitPython, una versión de Python optimizada para microcontroladores. Esto permite a los principiantes o a quienes prefieren la sintaxis de Python experimentar con los pines de entrada/salida y el control básico de la placa sin necesidad de compilar código C++. Sin embargo, es crucial entender que CircuitPython no incluye soporte nativo para la pila de red LoRaWAN; para comunicaciones de radio, es necesario utilizar el núcleo de Arduino. La placa ofrece una variedad de pines de entrada/salida digital y analógica, así como interfaces de comunicación estándar como I2C, SPI y UART, lo que facilita la conexión de sensores y otros periféricos. Por ejemplo, se pueden conectar sensores de temperatura y humedad a través del bus I2C y enviar sus lecturas periódicamente a través de la red LoRa.
A pesar de sus virtudes, los usuarios deben ser conscientes de algunas limitaciones y problemas conocidos documentados por la comunidad. Uno de los más destacados es la restricción estricta de la tasa de transmisión: el firmware del módulo impone un límite de un mensaje cada dos minutos, independientemente de la configuración del software, debido a las regulaciones de ciclo de trabajo en la banda de 868 MHz. Esto significa que la placa no es adecuada para aplicaciones que requieran transmisión de datos en tiempo real o frecuente. Asimismo, ha habido reportes históricos de errores en la librería relacionados con la función de unión a la red (joinOTAA) que podían devolver falsos errores, o problemas de compatibilidad entre versiones de la librería y el firmware del módulo, lo que subraya la importancia de mantener el firmware del módulo actualizado utilizando los ejemplos de actualización proporcionados por Arduino.
En resumen, la Arduino MKR WAN 1300 es una herramienta educativa y de prototipado sólida para explorar las tecnologías de red de área amplia de bajo consumo. Su combinación de un microcontrolador eficiente, un módulo de radio LoRa robusto y un elemento de seguridad hardware la hace ideal para proyectos de monitoreo ambiental, agrícola o urbano donde la distancia y la autonomía son prioritarias sobre la velocidad de transmisión. Aunque su discontinuación marca el fin de su producción, su soporte continuo y la abundancia de recursos comunitarios la mantienen como una plataforma relevante para aprender sobre IoT inalámbrico y las complejidades de la comunicación de bajo ancho de banda.

Esquema de pines (pinout)

| Attr | Especificaciones | verificado |
|---|---|---|
main_mcu | Microchip (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_module | Murata 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_element | Microchip ATECC508 ("ECC508 crypto-chip") (docs.arduino.cc hardware page, ATECC508A datasheet via docs.arduino.cc — datasheet URL pattern from the 1310 page). | ✔ |
rf_interface | micro-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_samd21 | 3.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). | ✔ |
usb | native Full-Speed USB (device) on the SAMD21; bootloader PID 0x8053, application PID 0x0053, VID 0x2341 (boards.txt, CircuitPython board config). | ✔ |
power | USB or VIN 5 V input, 3.3 V operating logic (MKR family design, 1310 store page). | ✔ |
mechanical | MKR family outline, 67.64 × 25 mm, ~32 g (1310 values, same outline — 1310 store page). | ✔ |
- Fabricante: Arduino S.r.l. (Via Andrea Appiani 25, Monza, Italia) — detalles del fabricante tal como figuran para la línea MKR WAN (página de tienda del MKR WAN 1310, mismo bloque de fabricante); el soporte de la placa reside en el oficial de Arduino ArduinoCore-samd (mkrwan1300.name=Arduino MKR WAN 1300, boards.txt).
- Año: 2017 — el README de la librería MKRWAN lleva "Copyright (C) 2017 Arduino AG" y el puerto de CircuitPython para la placa data de 2017 (board.c).
- Estado: Fin de vida / retirado de la tienda. El 2026-10-13 las URLs de la tienda store.arduino.cc/products/arduino-mkr-wan-1300 y store.arduino.cc/mkr-wan-1300 redirigen ambas a la página de inicio de la tienda (verificado por fetch), es decir, la página del producto ha sido eliminada; la placa sigue plenamente admitida por software (boards.txt, MKRWAN library v1.1.2). La propia página de la sucesora de Arduino llama al 1300 "its predecessor" en relación con el MKR WAN 1310 (MKR WAN 1310 store page).
- Precio:
- Variantes: versiones regionales para las bandas LoRa EU868 y US915 (la librería recibe la banda en tiempo de ejecución, p. ej. modem.begin(EU868), ejemplo LoraSendAndReceive; el uso de US915 se discute en el issue #100). Sucesora: MKR WAN 1310 — mismo concepto SAMD21 + Murata CMWX1ZZABZ + ECC508, más un cargador de batería, 2 MByte de SPI Flash y control de energía mejorado (1310 store page). Placas hermanas MKR WAN en el core: mkrwan1310 (boards.txt).
+ Puntos fuertes
- LoRa / LoRaWAN sub-GHz en un footprint MKR compatible con shield de Arduino Uno — la única radio es la Murata CMWX1ZZABZ (basada en SX1272); no hay Wi-Fi o Bluetooth en esta placa (docs.arduino.cc hardware page).
- Margen físico de LoRa: PHY de chirp-spread-spectrum con factores de propagación que intercambian alcance vs. tasa de datos (0.3–27 kbit/s), presupuestos de enlace de ~155–170 dB, ~4.8 km urbanos / 16+ km rurales en línea de vista según el portal de desarrolladores de Semtech (Wikipedia — LoRa).
- Conmutación regional de banda en tiempo de ejecución — el firmware de módulo de Arduino añade la "ability to switch band at runtime, not only at compile time" sobre el firmware stock de ST (mkrwan1300-fw README).
- Elemento seguro por hardware (ATECC508) para almacenamiento de claves/credenciales, parte del concepto de seguridad de la familia MKR (docs.arduino.cc hardware page).
- Dos CPUs independientes (SAMD21 + STM32L0 en el módulo de radio) hablando sobre SPI con un protocolo AT — el módulo incluso puede usarse como módem LoRa autónomo en otros proyectos (LoRaModem modem(Serial1) soporta el cableado UART del chip Murata, example).
- Modo LoRa puro placa a placa (sin network server): Arduino documenta usar dos MKR WAN 1300 para un "remote LED control system" punto a punto (docs.arduino.cc hardware page); vea también el ejemplo DumbModemLoraSender (examples).
- End-device LoRaWAN Clase A con ADR, uplinks confirmados/no confirmados, lectura de RSSI/SNR (AT+ADR, AT+CFM, AT+RSSI, AT+SNR) (AT list).
- Ecosistema de shields MKR — mismo layout de conectores que el resto de la familia MKR (docs.arduino.cc hardware page).
− Puntos débiles
- joinOTAA informa falsos fallos — issue de larga data: "joinOTAA in sketch 'LoRaSendAndReceive' and other examples from this lib gives false error 'Something went wrong…'" (issue #139).
- TX se bloquea tras 255 envíos — "Problem with packet transmission after 255 sends" (bug de la clase de desbordamiento del contador de tramas) (issue #141).
- Desajuste versión librería/firmware — "Firmware version mismatch" cuando una librería MKRWAN nueva se encuentra con un firmware de módulo viejo; ejecute siempre primero el actualizador de firmware (issue #126, updater examples here).
- Regresión de ABP — "joinABP not working since library update from 1.0.14 to 1.0.15" (issue #85).
- Confusión con US915 — "Does this library really support US915?" y "No way to force US Sub-band #2 (channels 8–15) to join Helium network reliably"; la tabla de data-rate también fue señalada como centrada en la UE (issues #100, #140, #151).
- Throttle de TX duro de 2 minutos: "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" (diseño de duty cycle de la UE) (official example comment).
- Bug del ejemplo actualizador de firmware — "Possible bug in arduino_read function of 'MKRWANFWUpdate_standalone' example sketch" (issue #134).
- API no documentada — el uso de restart no está documentado (issue #132).
- Sin cargador de batería — la 1310 anuncia "a new battery charger" y mejor gestión de energía como correcciones frente al 1300; prevea hardware externo de batería/carga para despliegues de campo del 1300 (1310 store page).
- Contención de SPI en placa hermana (solo 1310, ojo si reutiliza código): "External SPI bus freezes when LoRa is enabled" (#101) y problemas de transferencia SPI SAMD21↔STM32 (#86).
- Hub comunitario: categoría oficial del foro para la placa: forum.arduino.cc — MKR WAN 1300 (enlace tomado de la página de documentación de la placa).
- 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
Opiniones y proyectos de la comunidad
- How to put MKR WAN 1300 into dumb mode and use LMIC library? forum.arduino.cc
- Sketches stopped uploading on MKR WAN 1300 after running in SPI slave mode forum.arduino.cc
- Mkr wan 1300 - zero readings when powered by battery forum.arduino.cc
- Starting LoRa Failed with MKR WAN 1300 forum.arduino.cc
- MKR WAN 1300 vs 1310 forum.arduino.cc
- docs.arduino.cc/hardware/mkr-wan-1300
- content.arduino.cc/assets/hw_MKRWAN1300.zip
- SAMD21 family datasheet (DS40001882)
- Murata CMWX1ZZABZ type-ABZ datasheet (Arduino-hosted)
- Semtech SX1272 product page
- ATECC508A datasheet
- ArduinoCore-samd boards.txt
- arduino-libraries/MKRWAN
- reference
- examples
- arduino/mkrwan1300-fw
- AT command list
- ports/atmel-samd/boards/arduino_mkr1300
- Arduino forum — MKR WAN 1300 category
- The Things Network
- Wikipedia — LoRa
- LoRa Alliance
- joinOTAA informa falsos fallos — issue de larga data: "joinOTAA in sketch 'LoRaSendAndReceive' and other examples from this lib gives false error 'Something went wrong…'" (issue #139).
- TX se bloquea tras 255 envíos — "Problem with packet transmission after 255 sends" (bug de la clase de desbordamiento del contador de tramas) (issue #141).
- Desajuste versión librería/firmware — "Firmware version mismatch" cuando una librería MKRWAN nueva se encuentra con un firmware de módulo viejo; ejecute siempre primero el actualizador de firmware (issue #126, updater examples here).
- Regresión de ABP — "joinABP not working since library update from 1.0.14 to 1.0.15" (issue #85).
- Confusión con US915 — "Does this library really support US915?" y "No way to force US Sub-band #2 (channels 8–15) to join Helium network reliably"; la tabla de data-rate también fue señalada como centrada en la UE (issues #100, #140, #151).
- Throttle de TX duro de 2 minutos: "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" (diseño de duty cycle de la UE) (official example comment).
- Bug del ejemplo actualizador de firmware — "Possible bug in arduino_read function of 'MKRWANFWUpdate_standalone' example sketch" (issue #134).
- API no documentada — el uso de restart no está documentado (issue #132).
- Sin cargador de batería — la 1310 anuncia "a new battery charger" y mejor gestión de energía como correcciones frente al 1300; prevea hardware externo de batería/carga para despliegues de campo del 1300 (1310 store page).
- Contención de SPI en placa hermana (solo 1310, ojo si reutiliza código): "External SPI bus freezes when LoRa is enabled" (#101) y problemas de transferencia SPI SAMD21↔STM32 (#86).
- Hub comunitario: categoría oficial del foro para la placa: forum.arduino.cc — MKR WAN 1300 (enlace tomado de la página de documentación de la placa).
- Faire clignoter la LED utilisateur debutant Schéma : IMG-mkr-wan-1300-debutant-1-mkrwan-clignotement-led.svg — carte MKR WAN 1300 avec la LED utilisateur et le câble micro-USB en évidence
- Bouton poussoir et console série debutant Schéma : IMG-mkr-wan-1300-debutant-2-mkrwan-bouton-console.svg — bouton poussoir câblé entre la broche 2 et la masse sur breadboard
- Lire un capteur analogique avec l'ADC 12 bits debutant Schéma : IMG-mkr-wan-1300-debutant-3-mkrwan-capteur-analogique.svg — potentiomètre relié à l'entrée analogique A1 et à l'alimentation 3,3 V
- Démarrer le module radio et rejoindre un réseau LoRaWAN intermediaire Schéma : IMG-mkr-wan-1300-intermediaire-1-mkrwan-scan-module-join.svg — module LoRa Murata et jointe OTAA vers une passerelle LoRaWAN
- Envoyer des données capteur vers un serveur (uplink) intermediaire Schéma : IMG-mkr-wan-1300-intermediaire-2-mkrwan-uplink-lorawan.svg — capteur BME280 en I2C et uplink binaire vers le serveur réseau
- Commander une LED par downlink LoRaWAN intermediaire Schéma : IMG-mkr-wan-1300-intermediaire-3-mkrwan-downlink-led.svg — LED pilotée par downlink LoRaWAN depuis le serveur réseau
- Canal sécurisé : OTAA, MIC et élément ATECC508 avance Schéma : IMG-mkr-wan-1300-avance-1-mkrwan-lien-securise.svg — lien sécurisé OTAA/AES avec élément ATECC508 en évidence
- Mettre à jour le firmware du module radio (piège de désynchronisation) avance Schéma : IMG-mkr-wan-1300-avance-2-mkrwan-update-fw-module.svg — mise à jour du firmware du module via un second Arduino programmateur
- Sommeil profond du SAMD21 pour nœud sur batterie avance Schéma : IMG-mkr-wan-1300-avance-3-mkrwan-sommeil-bas-courant.svg — SAMD21 en sommeil profond avec RTC, batterie et microampèremètre
Biblioteca de código — ejemplos escritos para esta placa
emission-p2p.inoArduinoreception-p2p.inoArduinoreglage-sp.inoArduinometeo-lora.inoArduinotrame-crc.inoArduinorelais-radio.inoArduinoscan-canaux.inoArduinocycles-sleep.inoArduinopasserelle-usb.inoArduinolora_logger.pyPython
Ejemplos y repositorios encontrados en línea
- arduino-libraries/MKRWAN github.com
- arduino/ArduinoCore-samd github.com
- gonzalocasas/arduino-mkr-wan-1300 github.com
- tdjohnson/mkr1300gps github.com