MakerLab
ArduinoArduino MKR WAN 1310

Arduino MKR WAN 1310: LoRa Connectivity for IoT Projects

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

Arduino MKR WAN 1310

The Arduino MKR WAN 1310 is a powerful yet compact microcontroller board designed for the Internet of Things (IoT). It integrates a microcontroller with a LoRa radio module, enabling long-range, low-power wireless communication. This makes it an excellent choice for projects that need to send small amounts of data over significant distances, such as environmental monitoring, asset tracking, and smart agriculture, without relying on traditional Wi-Fi or cellular networks.

At its core, the MKR WAN 1310 features the SAMD21 Cortex-M0+ microcontroller, a 32-bit ARM processor known for its low power consumption and efficient performance. This is paired with the Murata CMWX1ZZABZ module, which combines a Semtech SX1276 LoRa transceiver with a SiP (System-in-Package) that includes a Wi-Fi and Bluetooth 4.2 radio. This combination allows for flexible connectivity options, though the primary focus of this board is LoRaWAN.

Positioned within the Arduino MKR family, the WAN 1310 stands out for its dedicated LoRa capabilities, differentiating it from boards like the MKR WiFi 1010 or MKR GSM 1400. It was released around 2019 as an evolution of the earlier MKR WAN 1300, offering improved battery management and a more robust design. This board is suited for makers, students, and embedded engineers who want to experiment with or deploy LPWAN (Low-Power Wide-Area Network) solutions.

The board is designed with power efficiency in mind, featuring a LiPo battery connector and sophisticated power management circuits, including a battery charging system. This allows for battery-powered deployments where mains power is unavailable. Its small form factor and robust connectivity make it a practical choice for real-world IoT deployments where reliability and range are paramount.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCMicrochip SAMD21 (ARM Cortex-M0+) + Murata CMWX1ZZABZ (SiP with Semtech SX1276 LoRa transceiver, Wi-Fi, Bluetooth)
Architecture32-bit ARM Cortex-M0+
Clock speed48 MHz
Flash / Storage256 KB Flash
RAM / SRAM32 KB SRAM
Operating voltage3.3V
Digital I/O pins22
Analog / ADC6 (12-bit)
PWMAll digital pins capable of PWM
ConnectivityLoRaWAN (868 MHz / 915 MHz / 433 MHz depending on region), Wi-Fi 802.11 b/g/n, Bluetooth 4.2
USBMicro USB connector for programming and power
Power input5V via Micro USB, 3.7V LiPo battery via JST connector
Dimensions67.64mm x 25mm

Pinout & pin functions

PinFunction
3V33.3V power output
GNDGround
VBATBattery voltage input/output
RSTReset pin
D0 (RX1)Serial communication RX (UART1)
D1 (TX1)Serial communication TX (UART1)
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 (SS)Digital I/O, SPI Slave Select
D11 (MOSI)Digital I/O, SPI Master Out Slave In
D12 (MISO)Digital I/O, SPI Master In Slave Out
D13 (SCK)Digital I/O, SPI Serial Clock
A0Analog input, ADC (also Digital I/O)
A1Analog input, ADC (also Digital I/O)
A2Analog input, ADC (also Digital I/O)
A3Analog input, ADC (also Digital I/O)
A4 (SDA)Analog input, ADC, I2C Data (also Digital I/O)
A5 (SCL)Analog input, ADC, I2C Clock (also Digital I/O)
USBMicro USB connector (power and data)
LiPo Connector3.7V LiPo battery connector

Wiring & circuit basics

The Arduino MKR WAN 1310 operates at a logic level of 3.3V. Connecting 5V devices directly to its GPIO pins can cause permanent damage. When interfacing with 5V components, a logic level converter is necessary. Powering the board can be done via the Micro USB port, which supplies 5V, or directly through the LiPo battery connector (typically 3.7V). The board includes a battery charging circuit, allowing you to charge a connected LiPo battery when powered via USB.

For safe operation, ensure that any external power supply connected to the 5V pin (if available, though not a primary input on this board) or Vin does not exceed the recommended voltage range. The board has onboard voltage regulators to manage power for the microcontroller and peripherals. When powering the board via USB, it can typically draw up to 500mA from the port, but for demanding applications or battery charging, a dedicated power supply or a sufficiently rated battery is recommended.

A simple example circuit is connecting an LED. Connect the anode (longer leg) of an LED to a digital pin (e.g., D3) through a current-limiting resistor (typically 220-330 ohms for a standard LED). Connect the cathode (shorter leg) of the LED to a GND pin. This setup allows you to blink the LED using digital output commands. For an I2C sensor like a BME280, connect its VCC to the 3V3 pin, GND to a GND pin, SDA to the A4 (SDA) pin, and SCL to the A5 (SCL) pin. Remember to enable the I2C pull-up resistors if the sensor doesn't have them onboard.

Programming & getting started

The primary toolchain for the Arduino MKR WAN 1310 is the Arduino IDE. After installing the IDE, you'll need to add the board support package for the 'Arduino SAMD Boards' and then select 'Arduino MKR WAN 1310' from the Boards menu. For LoRaWAN functionality, you will typically use the Arduino-LMIC library or similar libraries provided by Arduino. To upload your first program (e.g., a simple sketch to blink an LED), connect the board to your computer via the Micro USB port, select the correct COM port, and click the Upload button.

For more advanced use cases or alternative environments, PlatformIO with VS Code offers excellent support, integrating various libraries and build systems. While the SAMD21 supports MicroPython and CircuitPython, official board support for the MKR WAN 1310's specific LoRa and radio peripherals might require custom builds or specific community efforts. The built-in Wi-Fi and Bluetooth can also be programmed using the Arduino IDE and relevant libraries.

Project ideas

Long-Range Weather StationMonitor temperature, humidity, and pressure using sensors connected to the ADC and I2C pins. Transmit data wirelessly via LoRaWAN to a gateway for remote access, learning about sensor integration and LPWAN communication.
GPS Asset TrackerIncorporate a GPS module connected via UART and a LoRa module to send location data periodically. This project teaches about GPS data parsing, power management for mobile devices, and long-distance tracking.
Smart Irrigation SystemUse soil moisture sensors connected to ADC pins and a LoRa module to report field conditions. The system can alert users when watering is needed, demonstrating IoT for agriculture and remote monitoring.
Remote Sensor NetworkDeploy multiple MKR WAN 1310 boards across a large area to collect data from various sensors (e.g., light, sound, motion). Transmit data to a central LoRaWAN network server, understanding distributed sensing and network architecture.
LoRaWAN Node with Fallback Wi-FiDevelop a device that primarily uses LoRa for low-power, long-range communication but can switch to Wi-Fi for faster data uploads when in range of a known network. This project explores dual-mode connectivity and power-saving strategies.
Low-Power Environmental MonitorDesign a battery-powered device to measure air quality (e.g., CO2, VOCs) and transmit readings over LoRaWAN. This project emphasizes efficient coding, hardware selection for low power, and battery life optimization.

Buying tips & gotchas

When purchasing the Arduino MKR WAN 1310, ensure you are buying from a reputable source to avoid counterfeit or non-functional units. Be aware that the LoRa frequency band (e.g., 868 MHz in Europe, 915 MHz in North America) is region-specific, and the board's firmware must be configured for the correct band. Common pitfalls include incorrect LoRaWAN network setup (gateway and network server configuration) and exceeding the 3.3V logic level. Accessories that enhance its usability include compatible LiPo batteries, small solar panels for extended battery life, and weatherproof enclosures for outdoor deployments. Libraries like Arduino-LMIC are essential for LoRaWAN communication.