MakerLab
ArduinoArduino MKR FOX 1200

Arduino MKR FOX 1200: Low Power IoT with LoRaWAN

A compact microcontroller board designed for low-power, long-range wireless communication using LoRaWAN technology.

Arduino MKR FOX 1200

The Arduino MKR FOX 1200 is a specialized board within the Arduino MKR family, specifically engineered for the burgeoning Internet of Things (IoT) market that requires long-range, low-power wireless connectivity. Released around 2017, it bridges the gap between simple microcontrollers and dedicated IoT modules by integrating a powerful microcontroller with a LoRa radio transceiver. This makes it an ideal choice for applications where devices need to communicate over significant distances without relying on traditional Wi-Fi or cellular networks, and where battery life is a critical concern.

At the heart of the MKR FOX 1200 is the Atmel SAMD21 Cortex-M0+ microcontroller. This 32-bit ARM microcontroller is known for its efficiency, low power consumption, and robust set of peripherals, making it suitable for embedded applications. It provides ample processing power for managing sensor data, controlling actuators, and handling the complex protocols required for LoRaWAN communication, all while maintaining a small footprint and low energy usage.

The board's standout feature is the Murata CMWX1ZZABZ module, which combines a Semtech SX1276 LoRa transceiver with a STMicroelectronics STM32WB55 wireless MCU. This integrated module allows the MKR FOX 1200 to communicate using the LoRaWAN protocol, a popular choice for IoT networks due to its long range, low power consumption, and ability to operate in unlicensed spectrum bands. This positions the MKR FOX 1200 as a powerful tool for makers and engineers looking to develop smart agriculture sensors, environmental monitoring stations, asset trackers, and other remote IoT devices.

The MKR FOX 1200 is best suited for makers, students, and embedded engineers who are interested in exploring long-range, low-power wireless communication. Its ease of use, typical of the Arduino ecosystem, combined with the advanced LoRaWAN capabilities, allows for rapid prototyping of IoT solutions. While it requires an understanding of wireless protocols and potentially the LoRaWAN network infrastructure, the Arduino IDE and extensive libraries simplify the development process, making it accessible for those transitioning from simpler microcontroller projects.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCAtmel SAMD21 Cortex-M0+ (32-bit ARM) with Murata CMWX1ZZABZ LoRa module
Architecture32-bit ARM Cortex-M0+
Clock speed48 MHz
Flash / Storage256 KB Flash (on SAMD21)
RAM / SRAM32 KB SRAM (on SAMD21)
Operating voltage3.3V
Digital I/O pins22 GPIO
Analog / ADC6 Analog inputs (12-bit ADC)
PWM12 PWM pins
ConnectivityLoRaWAN (Semtech SX1276 transceiver)
USBMicro-USB connector for programming and power
Power input5V via Micro-USB, or VIN pin (7-12V recommended, regulated to 3.3V)
Dimensions67.64mm x 25mm

Pinout & pin functions

PinFunction
3.3VPower output (regulated)
GNDGround
VINPower input (7-12V recommended)
RSTReset pin
A0Analog Input / Digital I/O
A1Analog Input / Digital I/O
A2Analog Input / Digital I/O
A3Analog Input / Digital I/O
A4Analog Input / Digital I/O, I2C SDA
A5Analog Input / Digital I/O, I2C SCL
D0 (RX)Digital I/O, UART RX
D1 (TX)Digital I/O, 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
D10Digital I/O, SPI MOSI
D11Digital I/O, SPI SCK
D12Digital I/O, SPI MISO
D13Digital I/O, SPI CS
LED_BUILTINOnboard LED, connected to D13
SW0User Button 0
SW1User Button 1

Wiring & circuit basics

The Arduino MKR FOX 1200 operates at 3.3V logic levels. Connecting devices designed for 5V logic directly to its GPIO pins can cause damage. Always use level shifters if you need to interface with 5V components. Powering the board can be done via the Micro-USB port, which typically supplies 5V. Alternatively, the VIN pin can accept a wider voltage range (7-12V recommended), which is then regulated down to 3.3V by the onboard regulator. Ensure your power supply can provide sufficient current, especially when the LoRa radio is active, which can draw more power than typical microcontroller operations.

For a simple LED indicator, connect an LED's anode (longer leg) to a digital GPIO pin (e.g., D3) and its cathode (shorter leg) through a current-limiting resistor (typically 220-330 ohms for a standard LED) to a GND pin. This setup allows the microcontroller to control the LED by setting the GPIO pin HIGH or LOW.

When connecting I2C devices like sensors (e.g., a BME280 environmental sensor), use the dedicated I2C pins: A4 for SDA and A5 for SCL. Connect the sensor's VCC to the board's 3.3V pin and its GND to a GND pin. Ensure the sensor also operates at 3.3V logic levels. If the sensor requires a higher voltage or outputs 5V logic, a bidirectional logic level converter will be necessary between the sensor and the Arduino's I2C pins.

Programming & getting started

The primary toolchain for the Arduino MKR FOX 1200 is the Arduino IDE. After installing the IDE, you need to add the Arduino SAMD Boards support package via the Boards Manager. Then, select the 'Arduino MKR FOX 1200' from the Boards menu. To upload your first sketch (e.g., a simple blink sketch), connect the board to your computer via Micro-USB. Select the correct COM port and click the Upload button. For LoRaWAN specific functionality, you will need to install the appropriate LoRaWAN libraries, such as the Arduino-LMIC library, and configure it with your network credentials (App EUI, App Key).

More advanced users might consider PlatformIO, which offers a more integrated development experience with features like advanced code completion, unit testing, and support for various frameworks and libraries, including specific LoRaWAN stacks. The process involves setting up a PlatformIO project, selecting the correct board and framework, and then compiling and uploading the code through the IDE.

Project ideas

Remote Weather StationBuild a device to measure temperature, humidity, and pressure and transmit the data wirelessly over LoRaWAN to a gateway. Uses analog pins for sensors, digital pins for control, and the LoRa radio. Teaches sensor interfacing and long-range wireless communication.
Asset TrackerCreate a small, battery-powered tracker that reports its GPS location periodically using LoRaWAN. Requires a GPS module connected via UART or I2C, and the LoRa radio. Teaches GPS data handling and power management for mobile IoT.
Smart Agriculture Sensor NodeDeploy sensors in a field to monitor soil moisture, light levels, and temperature, transmitting data to a central hub. Uses analog inputs for soil moisture, digital pins for other sensors, and the LoRa radio. Focuses on environmental sensing and remote data collection.
LoRaWAN Node Status MonitorDevelop a project that monitors the battery voltage of a remote LoRaWAN node and transmits this status. Uses an analog pin to read battery voltage (with a voltage divider), and the LoRa radio. Teaches voltage measurement and status reporting.
LoRaWAN Gateway InterfaceWhile not directly on the MKR FOX 1200, this project involves setting up a LoRaWAN gateway and then using the MKR FOX 1200 to send data to it, learning about the full LoRaWAN stack. Uses the LoRa radio and programming for network interaction.
Low-Power Environmental MonitorDesign a device that wakes up periodically, reads sensor data (e.g., air quality), sends it via LoRaWAN, and then goes back to deep sleep. Focuses on minimizing power consumption using the SAMD21's low-power modes and the efficient LoRa radio.

Buying tips & gotchas

When purchasing the Arduino MKR FOX 1200, ensure you are buying the official board to guarantee compatibility and support. Be aware that LoRaWAN requires a network infrastructure; you'll either need access to a public LoRaWAN network (like The Things Network) or set up your own gateway. Common pitfalls include incorrect LoRaWAN key configurations (App EUI, App Key) which prevent network connection, and exceeding the 3.3V logic level, which can damage the board. Accessories like small solar panels with charge controllers can extend the battery life for remote deployments, and various sensors compatible with 3.3V logic are readily available.