The most recent version of this page is a draft.DiffThis version (23 Jan 2024 03:56) was approved by Joyce Velasco.The Previously approved version (17 Jan 2024 06:47) is available.Diff

This is an old revision of the document!


LoRa Kit based on MAX32670 Microcontroller with SX1261 Radio Chip Sensor Node


The ADI LoRa reference design is an Arduino-like development platform based on the MAX32670 ultralow power microcontroller (MCU) with integrated power management for processing, control, and connectivity. The MCU system is based on the ARM Cortex-M4 processor, a collection of digital peripherals, embedded SRAM and flash memory, and an analog subsystem which provides clocking, reset, and power management capability. The MAX32670 features industry leading ultralow power, which makes it ideal for Internet of Things (IoT) applications.

The platform comes in an Arduino Uno form factor, with two PMOD connectors, and an ESP32 Dev Kit connector for easy-to-connect sensors and signal conditioning add-on modules. The on-board LoRa connectivity makes this board IoT-ready right out of the box. The solution is complete with working software and hardware, as well as software examples.

The base platform is accompanied with various Analog Devices add-on hardware but is also compatible with 3rd party hardware. A free programming and debugging tool called Maxim SDK is also provided by Analog Devices.

Kit Contents

  • Component Board:
    • MAX32670-SX-ARDZ Baseboard
  • Component Sensor Nodes:
    • EV-STRUCTURAL-ARDZ LoRa Node for Structural Monitoring
    • EV-FLOWMETER-ARDZ LoRa Node for Flow Rate Metering
    • EV-ADE9000SHIELDZ LoRa Node for Electric Metering
  • RAK5146 PiHAT Kit for LoRaWAN
  • Raspberry Pi 4 Model B
  • RPi4 Power Supply
  • MicroSD Card


  • SPI and I2C signals accessed through 0.1-inch headers
  • GPIOs and miscellaneous signals accessed through 0.1-inch headers
  • Board power provided by either external power source through terminal block or through cell battery (CR123A)
  • On-board SIMO regulator and LDO for IC and peripherals
  • Individual power measurement on all IC rails through jumpers
  • Two general-purpose LED and a reset pushbutton switch


  • Battery-Powered Medical Devices
  • Industrial Sensors
  • Optical Communication Modules
  • Secure Radio Modem Controller
  • Smart Sensor Controller
  • System Housekeeping Controller

Board Photo

Top View Bottom View

Block Diagram


  • MCU:
    • Arm Cortex-M4 Core with FPU up to 100 MHz
    • 384 kB Flash Memory with error correction
    • 160 kB SRAM (128 KB with ECC enabled), optionally preserved in lowest power modes
  • Security:
    • Available secure boot
    • Support cryptographic algorithms, including AES-128/192/256, 1024-bit DSA, 2048-bit (CRT) and secure boot loader
  • Power
    • Ultralow power Real Time Clock with integrated power switch
    • Average battery life: more than 10 years
  • LoRa Radio
    • Support FSK, GFSK, MSK, GMSK and LoRa and Long Range FHSS modulations
    • Programmable bit rate up to 62.5 kbps (LoRa) and 300 kbps (FSK)
    • Support of all major sub-GHz ISM bands from 150 MHz to 960 MHz
    • High sensitivity: down to -148 dBm
    • Transmission distance: up to 10 km to 15 km

Hardware Setup

Each sub-section contains a general description of the board, detailed description of the connectors, jumpers, and buttons (if any). It also provides links to the design support files (schematics, bill of materials, design projects, and technical documentation), as well as internal links to the example demo software projects.

MAX32670-SX-ARDZ LoRa Baseboard using MAX32670 and SX1261

The MAX32670-SX-ARDZ LoRa Baseboard consists of the MAX32670 high-reliability, ultralow power microcontroller based on Arm Cortex-M4 processor, and the LoRa RF transceiver module targeting SX1261.
In order to use this baseboard, all hardware settings such as the hardware peripheral connections, jumpers and UART switch configurations, power configurations, connectivity options, and the USB connectors and programming connections are provided in this page. Links to the schematics and the layout files are also available below.

Sensor Nodes

EV-FLOWMETER-ARDZ LoRa Node for Flow Rate Metering

The EV-FLOWMETER-ARDZ is an ultrasonic time-of-flight (ToF) flow meter that sends and receives ultrasound waves between piezoelectric transducers in both the upstream and downstream directions in the pipe. By measuring the TOF difference between the upstream and downstream wave travels, utilizing sophisticated digital signal processing techniques, a very accurate flow rate can be calculated.

The MAX35101 is the center of the heat/flow meter system. The MAX35101 integrates all the functions required for automatic ToF measurements, including the ultrasound pulse launching and detecting, TOF calculation, temperature measurement, and a real-time clock (RTC). The MAX35101 can work in various configurable automatic event timing modes, requiring very minimal interactivity from a host microcontroller, thus reducing the total power consumption of the system.

EV-ADE9000SHIELDZ LoRa Node for Electric Metering

The EV-ADE9000SHIELDZ is an Arduino shield compatible with Arduino Zero. The shield can be directly interfaced with current transformers and voltage leads. It enables quick evaluation and prototyping of energy and power quality measurement systems with the ADE9000. Arduino library and application examples are provided to simplify implementation of larger systems.

EV-STRUCTURAL-ARDZ LoRa Node for Structural Monitoring

The end node is EV-STRUCTURAL-ARDZ, which is a vibration sensor that uses the ADXL343 digital output MEMS accelerometer chip and ADIS16203, a programmable 360° inclinometer.

Aside from providing vibration data, it also has a digital temperature sensor using MAX30210 that gives the option to shut down sensitive machines and equipment for smart motor sensing application.

The sensor detects as well if the horizontal position of the sensor changes, which points towards a collapse of the structure where the sensor was deployed.

Software Setup

Tools and Drivers

This guide contains all the necessary information on how to download, install, and set up the software environment for the LoRa reference design and its add-on hardware. Information on the different USB modes and drivers needed is also provided.

Click to see more

This guide contains all the necessary information on how to download, install, and set up the software environment for the LoRa reference design and its add-on hardware. Information on the different USB modes and drivers needed is also provided.

Click to see more

The Maxim Micro Software Development Installer Kit (MaximSDK) Installer contains all the necessary tools to develop the firmware for Maxim microcontroller ICs, including Maxim® proprietary source codes, libraries, and examples dedicated to:

  • Board support packages (BSPs)
  • Validated hardware abstraction layer (HAL) source codes
  • Libraries
    • Integrated into the installer:
    • Free Crypto Library (FCL)
    • FreeRTOS
    • Lightweight TCP/IP stack (lwIP)
    • SD Card Library (SDHC)
  • Installed separately (NDA or SLA required):
    • EMV L1 Contact-Smart Card: Install as a plugin
    • NFC: Install as a plugin
    • UCL: Install as a plugin
  • Documentation
  • Wide range of examples ready to run on evaluation kits (EV kits)

For detailed information about the installation of the MaximSDK environment for Maxim® Microcontroller ICs, consult the Maxim Micro SDK (MaximSDK) Installation and Maintenance User Guide

Maxim SDK installers for different operating systems can be downloaded using below links:

For Linux OS, you may need to make this file executable. Use the command:

“chmod +x”

Setting Up the Gateway

There are many variants we can choose from when deciding what hardware we should use.
For this setup, we will be using Raspberry Pi 4 as the hardware and ChirpStack v4 for our gateway OS.

Click to see more

There are many variants we can choose from when deciding what hardware we should use.
For this setup, we will be using Raspberry Pi 4 as the hardware and ChirpStack v4 for our gateway OS.

Click to see more

Equipment Required

Before continuing, you need to gather all the necessary hardware and software tools and those are listed below.




Downloading the OS

Presumably we already have possession with a hardware, first thing to do is download the OS. On this writing, the OS version is 4.1.1.

SD Card Flashing

  1. Download Balena Etcher
  2. Click Flash from file from the option in the interface and navigate in your pc the location of the where the Chirpstack Gateway OS is located.
  3. Select target and choose the targeted microSD card drive
  4. Click Flash! to start the burning process of the image in the chosen SD card.
  5. Wait until it is done
After the first boot, the gateway might reboot automatically to apply some changes. The Full Image will set up the PostgreSQL database on its first boot. This could take a couple of minutes and during this time, the gateway will be less responsive.

Configure the Concentrator
To configure the concentrator, you need to set up the hardware for the gateway system by following these steps:

  1. Insert the burned SD card on the designated slot on the Raspberry Pi.
  2. Connect the RAK5146 PiHAT to the Raspberry Pi through the 40-pin connector.
  3. Connect the monitor using an HDMI cable through the mini HDMI connector found on the Raspberry Pi.
  4. Connect a USB keyboard and mouse to the RPi through the USB ports.
  5. Power on the RPi by plugging in a dedicated 5V power supply with Type C USB connector.

Follow these steps to configure the settings in the concentrator:

  1. in the RPI 4 terminal, enter sudo gateway-config in the command terminal.
  2. In the main menu, choose Setup LoRa concentrator shield in the menu.
  3. Choose RAK5146 (with GNSS).
  4. Choose AU915.
  5. Choose Channels 0 to 7 + 64.
  6. The Concentrator restarts and goes back to the main menu.
  7. Quit the main menu.

If you have properly configured your gateway and if you have installed the Full Image, then you are ready to use the ChirpStack LoRaWAN Network Server.

Connecting Gateway to the Internet

An Access-Point (AP) with Internet connection should be connected to the hardware via Ethernet connection. After your gateway has booted, it will use DHCP to obtain an IP address.

Establishing Wireless Access Point to the Gateway

By default, the ChirpStack Gateway OS will create an AP to which you can connect with the following settings:

name: ChirpStackAP-XXXXXX password: ChirpStackAP

Accessing the Gateway Web Interface

Once connected in the RPI, you can now connect to the web gateway interface by entering http://GATEWAY-IP-ADDRESS/ in your browser.

The default IP address of the gateway is, then you need to enter

Your browser might display a warning about a self-signed certificate. Click Proceed.

The default credentials are:

  • Username: admin
  • Password: admin

Connecting a Device

This section describes how to connect your LoRaWAN device with ChirpStack and how to validate that it can successfully activate and send data. At this point, it is assumed that you have a working ChirpStack environment with a connected gateway.


Before continuing, there are a couple things you need to know about your device. This information is usually provided by the device vendor.

  • DevEUI
  • LoRaWAN MAC version implemented by the device
  • Regional Parameters revision implemented by the device
  • OTAA only: Device root-keys (when no external join-server is used)

Log in to the ChirpStack Web Interface

The default credentials are:

  • Username: admin
  • Password: admin

Device Profile

Before you can add the device to ChirpStack, you have to create a device-profile, if you haven't done this already. In general, it is a good practice to create separate device-profiles for different types of devices. A device-profile contains the capabilities of your device.

For example, if it uses ABP or OTAA for activation, which LoRaWAN version and Regional Parameters revision is implemented by the device, etc. It can also be configured with a function to decode the payloads sent by the devices using the device-profile.

Creating a Device Profiles

After navigating to the gateway details page of a gateway, click the ‘Device profiles” under the Tenant.

Click on the “Add device profile”

Filled in the blank from the given table under the “General” tab and click Submit once done. For the Name, enter the desired sensor node name. The following shows the other configuration required to add a sensor node:

  • Region: AU915
  • Region Configuration: AU915 (channels 0-7 +64)
  • MAC Version: LoRaWAN 1.0.4
  • Regional parameters revision: A
  • ADR algorithm: Default ADR algorithm (LoRa only)
  • Expected uplink interval (sec): 10
  • Device-status request frequency (req/day): 8640


Devices are grouped by applications. For example, you could group your temperature sensors under one application and weather stations under another application.

Adding an Application

If you haven't created an application yet to which you want to add the device, click Applications, then click Create. Fill in the required fields and save the application.

Click on the Configuration: Provide the following information:

  • Name
  • Device EUI (EUI64) (Note: This information is usually provided by the device vendor.)
  • Device profile

Click on the OTAA keys and click Submit once done. Provide the Application key provided by the device vendor: For this demo, the application key is 2b7e151628aed2a6abf7158809cf4f3c


  1. After adding your LoRaWAN device to ChirpStack, validate that your device is able to activate (in case of OTAA) and send data.
  2. When clicking the device in the ChirpStack web interface, open in one window the Device data and in another window the LoRaWAN frames tab.
  3. Then turn on your device or trigger an uplink transmission. In case of an OTAA device, you should first see a JoinRequest followed by a JoinAccept message in the LoRaWAN frames tab.
  4. When the device sends its first data payload, you should also see a Join and Up event in the Device data tab.

Check the Gateway LoRa Frames

After navigating to the gateway details page of a gateway close to the device, click the LoRaWAN frames tab.

For OTAA devices, confirm that when the device tries to OTAA activate, you see a JoinRequest message followed by a JoinAccept message.

If you do not see a JoinRequest and JoinAccept, make sure that the device sends an OTAA request and that your gateway is correctly configured.

If you only see a JoinRequest message, this means that either the OTAA request is ignored or rejected by ChirpStack or that the gateway is rejecting the JoinAccept transmission. Continue with the Device LoRaWAN frames section.

Help and Support

This section aims to provide quick troubleshooting tips to resolve common pitfalls during hardware set up and running the software for the LoRa reference design.

Click to see common issues and solutions.

This section aims to provide quick troubleshooting tips to resolve common pitfalls during hardware set up and running the software for the LoRa reference design.

Click to see common issues and solutions.

Quick Solutions

There are many things that can go wrong with an ecosystem this complex, but if you are having issues getting the board or software working, here are a few simple things you can try before contacting Analog Devices.

Issue Troubleshooting Points to Consider
No Power Check the power Do you have the USB cable plugged in? What about the DC power jack? If you are using batteries, try replacing your batteries, and see if the board powers up.
The MAX3267 program is not working Power cycle the board Sometimes a flashed program doesn't run properly or can make it difficult to run the debugger. The first thing to try in this case, is to try a known good .HEX or .BIN program into flash (something with quick visible indicators works best).

Hardware, Software, and Documentation Questions

If you have any questions regarding the LoRa base platform, any of the add-on hardware or are experiencing any problems using the software or issues following any of the documentation, feel free to ask us a question via:

When asking a question, please take the time to give a detailed description of your problem such as:

  • the steps you have executed
  • the results you expected you would get
  • and the results you actually got

By providing this information, you will enable us to provide you precise and detailed answers in a timely manner.

Before asking questions, please take the time to check if somebody else already asked the same question. You might just find your question already answered.

End of Document

/srv/ · Last modified: 30 Jan 2024 08:07 by Joyce Velasco