Arduino MKR WAN 1300

Arduino S.r.lMCU 8-32 bitarduino

⚡ Lo esencial en 60 segundos

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.

Foro (1 tema) →

AttrEspecificacionesverificado
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).✔
  • 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

  • Board-to-board LoRa remote LED control

    Control remoto de LED por LoRa entre placas — Concepto del tutorial oficial de Arduino para esta placa exacta: "Set up two Arduino MKR WAN 1300 to host a remote LED control system" . (unverified au 2026-10-13) Nodo de The Things Network — conectar a la red pú…

  • Serial chat over LoRaWAN

    Chat serie sobre LoRaWAN — el ejemplo insignia de la biblioteca LoraSendAndReceive : escriba en el monitor serie, el mensaje se envía a un servidor de red (p. ej. TTN) y los enlaces descendentes se devuelven . (unverified au 2026-10-13) Telemetría "módem tont…

  • Self-recovering field node (firmware updater project)

    Nodo de campo autorrecuperable (proyecto de actualización de firmware) — MKRWANFWUpdate_standalone / FWUpdaterBridge convierten un segundo Arduino en un programador para el firmware STM32 del módulo; el proyecto estándar de la primera hora para cada 1300 . (u…

  • More MKR projects

    Más proyectos MKR — la colección MKR de Arduino Project Hub (, enlazada desde la página de documentación de la placa). (unverified au 2026-10-13)

  • 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).

Biblioteca de código — ejemplos escritos para esta placa

  • emission-p2p.ino Arduino

    El enlace LoRa más simple con la MKR WAN 1300: un paquete de texto cada cinco segundos en modo punto a punto, sin infraestructura pasarela. El receptor es una segunda MKR WAN; el modo ACK confirma la…

  • reception-p2p.ino Arduino

    El receptor del enlace punto a punto: esta MKR WAN 1300 escucha el canal 868,1 MHz en SF7, imprime cada paquete con su RSSI y SNR y se reinicia sola si la radio señala un error. Imprescindible para v…

  • reglage-sp.ino Arduino

    El alcance LoRa se ajusta con el factor de propagación: este sketch emite el mismo mensaje de SF7 a SF12, treinta segundos por escalón. El receptor debe cambiar de SF con el emisor —o lanzar un recep…

  • meteo-lora.ino Arduino

    Estación meteorológica autónoma completa: el BME280 por I2C da temperatura, humedad y presión, y la MKR WAN 1300 las difunde por LoRa cada diez minutos. La trama compacta T;H;P cabe en 20 bytes, idea…

  • trame-crc.ino Arduino

    En radio, cualquier trama puede corromperse o perderse: este protocolo mínimo añade un id de estación, un número de serie y un CRC-8 a cada paquete LoRa de la MKR WAN 1300. Así el receptor descarta t…

  • relais-radio.ino Arduino

    Control remoto de un relé: la MKR WAN 1300 receptora lee las consignas ON/OFF por radio, pilota el pin 6 mediante un transistor y devuelve un acuse. Pulsar el botón del emisor manda sobre un equipo a…

  • scan-canaux.ino Arduino

    Antes de elegir tu canal LoRa, mide el entorno: este programa barre nueve canales EU868 y publica para cada uno el RSSI medio y mínimo. Un canal ruidoso (pasarelas vecinas, interferencias) se detecta…

  • cycles-sleep.ino Arduino

    La MKR WAN 1300 está hecha para nodos a pila: este ciclo despierta cada quince minutos, mide, emite una trama corta en SF9 y luego duerme módem y microcontrolador. Sin puerto serie ni LED, la corrien…

  • passerelle-usb.ino Arduino

    La pasarela única para la red de estaciones: esta MKR WAN 1300 hace de puente entre el aire LoRa y el puerto USB, reenviando cada trama con RSSI, SNR y marca de tiempo. Conectada a un Raspberry Pi o …

  • lora_logger.py Python

    En el ordenador, este script pyserial consume la pasarela LoRa, escribe cada trama en un CSV con marca de tiempo y muestra un histograma del RSSI en caracteres. Sigues en directo el alcance de las es…

Ejemplos y repositorios encontrados en línea