MakerLab
ArduinoArduino MKR WAN 1300

Arduino MKR WAN 1300: LoRa Connectivity for IoT Projects

A compact and powerful board designed for low-power, long-range wireless communication, ideal for IoT applications.

Arduino MKR WAN 1300

The Arduino MKR WAN 1300 is a microcontroller board developed by Arduino, specifically designed for Internet of Things (IoT) applications that require long-range, low-power wireless communication. It integrates a powerful microcontroller with a LoRa radio module, making it an excellent choice for projects that need to send small amounts of data over significant distances without relying on traditional Wi-Fi or cellular networks. This board is part of the Arduino MKR family, which focuses on providing versatile and connected solutions for makers and engineers.

At the heart of the MKR WAN 1300 is the Atmel SAMD21 Cortex-M0+ microcontroller. This 32-bit ARM processor offers a good balance of performance and low power consumption, making it suitable for battery-powered devices. The board also features an integrated Murata CMWX1ZZABZ module, which provides both LoRa and Class A LoRaWAN connectivity. This dual capability allows for flexible deployment in various LoRa-based networks, from private point-to-point links to public LoRaWAN networks.

Released around 2018, the MKR WAN 1300 was a significant step for Arduino in addressing the growing demand for IoT solutions. It bridges the gap between simple microcontroller boards and more complex, power-hungry connectivity modules. Its compact form factor, combined with its low-power capabilities and long-range radio, makes it particularly well-suited for environmental monitoring, asset tracking, smart agriculture, and other remote sensing applications where frequent data transmission over long distances is essential and power efficiency is paramount.

This board is ideal for makers, students, and embedded engineers who want to experiment with LoRa and LoRaWAN technologies without the complexity of managing separate radio modules and microcontrollers. Its Arduino compatibility means it can be programmed using the familiar Arduino IDE and a vast ecosystem of libraries, lowering the barrier to entry for developing sophisticated IoT projects. The focus on low power also makes it a prime candidate for projects intended to run on batteries for extended periods.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCAtmel SAMD21 Cortex-M0+
Architecture32-bit ARM Cortex-M0+
Clock speed48 MHz
Flash / Storage256 KB
RAM / SRAM32 KB
Operating voltage3.3V
Digital I/O pins22
Analog / ADC6 (10-bit)
PWM12
ConnectivityLoRa (433/868/915 MHz), LoRaWAN Class A
USBMicro USB (for programming and power)
Power input5V via Micro USB or VIN pin, Li-Po battery connector
Dimensions67.64mm x 25mm

Pinout & pin functions

PinFunction
3V3Power output (regulated 3.3V)
GNDGround
VINPower input (7-12V recommended)
D0 / RXSerial communication (UART RX)
D1 / TXSerial communication (UART TX)
D2Digital I/O
D3Digital I/O, PWM
D4Digital I/O
D5Digital I/O, PWM
D6Digital I/O, PWM
D7Digital I/O
D8Digital I/O
D9Digital I/O, PWM
D10 / SSDigital I/O, SPI Slave Select
D11 / MOSIDigital I/O, SPI Master Out Slave In
D12 / MISODigital I/O, SPI Master In Slave Out
D13 / SCKDigital I/O, SPI Serial Clock
A0Analog Input (ADC), Digital I/O
A1Analog Input (ADC), Digital I/O
A2Analog Input (ADC), Digital I/O
A3Analog Input (ADC), Digital I/O
A4 / SDAAnalog Input (ADC), Digital I/O, I2C Data
A5 / SCLAnalog Input (ADC), Digital I/O, I2C Clock
RESETReset pin
U.FL ConnectorFor external LoRa antenna

Wiring & circuit basics

Powering the Arduino MKR WAN 1300 can be done via its Micro USB port (typically 5V) or the VIN pin. The VIN pin accepts a wider voltage range, generally recommended between 7V and 12V, as the board contains an onboard voltage regulator to step this down to the 3.3V required by the SAMD21 microcontroller and its peripherals. It's crucial to note that all I/O pins operate at 3.3V logic levels. Connecting 5V devices directly to these pins can cause damage. If you need to interface with 5V components, use a logic level converter.

For a simple LED project, connect the anode (longer leg) of an LED to a PWM-capable digital pin, such as D3. Connect the cathode (shorter leg) of the LED to one end of a current-limiting resistor (e.g., 220-330 ohms). Connect the other end of the resistor to a GND pin on the Arduino. This setup ensures the LED receives the correct voltage and current, preventing damage to both the LED and the microcontroller. The resistor value can be adjusted to control the brightness.

When connecting I2C devices, such as sensors or displays, use the dedicated SDA and SCL pins, which are typically multiplexed with analog pins A4 and A5 respectively. Connect the VCC pin of the I2C device to the 3V3 pin on the Arduino, and the GND pin of the device to a GND pin on the Arduino. Then, connect the SDA pin of the device to A4 (SDA) and the SCL pin of the device to A5 (SCL). Ensure your I2C device is also a 3.3V compatible device, or use a logic level shifter.

Programming & getting started

The Arduino MKR WAN 1300 is primarily programmed using the Arduino IDE. After installing the IDE, you'll need to add the Arduino SAMD Boards package via the Board Manager and then select the 'Arduino MKR WAN 1300' from the board list. For LoRaWAN connectivity, you will typically use the Arduino-LMIC library, which handles the complex LoRaWAN protocol stack. Uploading your first sketch involves writing code to control the microcontroller, potentially read sensors, and send data via LoRaWAN, then clicking the Upload button in the IDE. Ensure the correct COM port is selected.

For more advanced users or specific applications, the board can also be programmed using PlatformIO, which offers a more robust development environment and integrated library management. While not officially supported for MicroPython or CircuitPython due to the SAMD21's architecture and memory constraints, the Arduino ecosystem provides extensive libraries and examples for leveraging the board's capabilities, including its LoRa radio and various communication protocols.

Project ideas

Remote Environmental MonitorBuild a weather station that sends temperature, humidity, and pressure data over LoRaWAN to a gateway. Uses A0-A5 for sensors and the LoRa module for transmission. Learns about sensor interfacing and long-range communication.
Asset TrackerCreate a small, battery-powered device that reports its GPS location via LoRaWAN. Uses a GPS module connected via UART and the LoRa module for data transmission. Teaches about GPS integration and power management.
Smart Agriculture NodeDevelop a soil moisture and light sensor node for farms. Connect soil moisture and light sensors to analog pins and transmit readings periodically using LoRaWAN. Focuses on low-power design and remote data collection.
LoRa Point-to-Point CommunicationSet up two MKR WAN 1300 boards to communicate directly without a LoRaWAN gateway. One board acts as a transmitter sending sensor data, the other as a receiver. Explores direct LoRa communication and basic data packet handling.
LoRaWAN Gateway MonitorWrite a sketch to monitor the status and received packets of a LoRaWAN gateway (if you have access to one). Uses the LMIC library to listen for network traffic. Teaches about network protocols and debugging.
Low-Power BeaconDesign a simple device that periodically wakes up, transmits a unique identifier via LoRaWAN, and goes back to deep sleep. Emphasizes extreme power saving techniques and understanding the SAMD21's sleep modes.

Buying tips & gotchas

When purchasing the Arduino MKR WAN 1300, be aware that it operates at 3.3V logic, so ensure any connected peripherals are compatible or use a logic level shifter. The LoRa module requires an external antenna connected via the U.FL connector; ensure you have a compatible antenna for your region's frequency band (e.g., 868 MHz for Europe, 915 MHz for North America). Avoid powering the board directly from a 5V source through the VIN pin, as this bypasses the onboard regulator and can lead to overvoltage. Common pitfalls include incorrect LoRaWAN network configuration (keys, AppEUI, DevEUI) and exceeding the duty cycle limitations of the LoRaWAN network. Accessories like Li-Po batteries, solar chargers, and various sensors (temperature, humidity, GPS) are highly recommended for IoT projects.