Low Cost LoRaWan Field Tester

When deploying a LoRaWan network, we need to verify what is the coverage. Eventually before deploying a Hotspot for Helium network we need to find the best place to reach as much peers as possible. A field tester is a simple, mobile, tool to help you decide the best location and monitor the coverage in a zone.

There are many different existing solutions on the market, I have used some of them in the past like the Adeunis field tester. The problem of the existing device is usually the price and the absence of backend application to report the network seen signal. The solutions are usually around 200 – 400€ and I was looking for making something less expensive for makers and hotspot owners.

Thanks to the Seeed Wio Terminal, a low cost Arduino like terminal with a cool TFT screen and buttons, it makes it a nice platform to make a LoRaWan Field tester with a good UI.

Access the project

This project has been released open-source, you can find it on my Github repository Wio LoRaWan Field Tester.


The solution involved different components:

  • The WioTerminal, sending the communication and displaying the results
  • The gateways / Hotspot receiving the traffic
  • The network server relaying the traffic to the application server and enriching with the network signal informations
  • The application server, building the downlink message for returning the network signal information to the Wio Terminal.

If we take a look in detail of the communications, we get:

In this schema, there is also an integration message for the uplink (6) but it is not proceeded by backend. The Field tester also scan for downlink until it gets nothing or the expected last communication report so you can have multiple uplink (6) consecutively.

As another precision, as we can have some retries due to ack loss but received by the backend, we can have multiple downlink (7) for a single sequence ID. In a such case, the last one is kept. You can see the value changing on the screen.


Hardware parts

The hardware needed to build the LoRaWan field tester is the following:

  • 1x Wio Terminal ($29) on seeed
  • 1x RFM95 LoRaWan module ($3) on aliexpress
  • 1x 868 / 915 antenna ($0,5-$3) on aliexpress / mouser …
  • 1x LiPo battery ($2) on aliexpress
  • 1x LiPo connector ($0.1) on aliexpress

Basically the total parts cost is about $35.


The basic version of the schematic is the following. With this DiY version you can power the circuit with an USB-C power bank connected to the USB-C Wio terminal connector.

Minimal schematics to make the Field tester working with a Wio Terminal

Basically, you don’t need to connect all the 40 pins, you can restrict to pin 1 – 24. This is a simple and working version of the LoRaWan field tester. A more advanced version with gerber files is available on the github project (or coming soon).

Required Software

You need to have an Arduino environment and the following packages and library installed

  • Wio Terminal toolchain
  • MCCI LoRaWAN LMIC library (by IBM, Matthjs Kooljman…) version 3.3.0
  • FlashStorage by Various version 1.0.0

You also need to setup the LMIC library for your corresponding radio-zone by going to Document/Arduino/libraries/MCCI_LoRaWAN_LMIC_library/project_config directory and edit lmic_project_config.h file:

// Select your radio zone and coutry
//#define CFG_eu868 1
#define CFG_us915 1
//#define CFG_au915 1
#define CFG_sx1276_radio 1

Create device credentials and integration

For HELIUM network

At first you need to create an Integration go to this menu and select HTTP type of integration. The fill the form like the following:

Create an integration for LoRaWAN field tester

The URL to provide is https://dev.disk91.com/fieldtester/helium/v3 type is POST. You can use the backend, no problem. After setting this, you can click on “add integration”.

Then you need to create a LABEL and attach the integration to it. So go to LABEL menu and Add Label button.

Set a name for the label like “Disk91 field tester” then select the integration previously created in the Attachments list.

Then you can click on Add Label & Manage button.

Now we need to make in important setting: we need to tell the console to buy all the messages coming from the hotspot and not only one. By default only one of the messages is considered so you can’t know the number of hotspots receiving the message or the min and max RSSI when only one is obtained. This will have a consequence, for each of the messages, you won’t pay a single DC but one per hotspot. (you also pay for downlinks and acks)

For making this setting, you need to click on Label Settings button in the label management page, then click on Packets tab and select unlimited packets. Once done, Apply Changes.

These configuration prepared, now you can register you device. Go to Devices from the main menu and click on Add Device.

Add device in Helium console

you need to set a name to the device. You don’t need at this step to use the Dev EUI, App EUI, App key, we will get it from another way more easier for our settings.

What you need to do is to link the device with the Label we have created. So in the Attach label box, type the first letters of the label name and select it from the list.

Then click on submit.

Your device is now ready for being used. We will later have to configure the Dev EUI / App EUI and App key into the device to make it connected to the network. For getting the IDs in the right format to be copied and past in the key file, you just need to go to the device screen :

Get the device credentials from helium console

By clicking on the double arrows you see on the screen capture, you display the byte array in a format you can easily copy and past into the configuration file. You can do the same for the App Key once you have clicked on the eye icon. The helium setup is now done.

The things network configuration

To be updated sooner


The project itself have some configuration settings you must performed:

Edit file config.h if you want to modify the configuration:

//#define DEBUG                       // enable logs on serial

#define WITH_SPLASH         1         // Enable splash screen
#define WITH_SPLASH_HELIUM  1         //   display helium logo
#define WITH_SPLASH_TTN     1         //   display TTN logo

Edit the key.h file to put you own credentials

#define __DEVEUI { 0x7B, 0xC9, 0xFF, 0x47, 0xE6, 0x49, 0x41, 0xA7 }
#define __APPEUI { 0xD3, 0x77, 0x5B, 0x2C, 0x39, 0x93, 0x58, 0x20 }
#define __APPKEY { 0xE5, 0xC1, 0xD9, 0x44, 0xB4, 0x0D, 0x5D, 0x1C, 0x8B, 0xFB, 0x14, 0x8B, 0x1E, 0x8C, 0x2C, 0xA5 }

Don’t ask… these keys has been invalidated. The keys are all in the msb order.

Now, you can compile and Upload.

Using it

The way to use it is described more in details in the LoRaWan Field Test, Github project page So just to make is simple, here are the way the different button can be used for setting up the device:

easily change the LoRaWan field tester settings from the Wio terminal buttons

25 thoughts on “Low Cost LoRaWan Field Tester

  1. Hi Paul, what should I check to fix / figure out why my Field Tester never sees more than 1 hotspot.
    Device does connect to Console – I have the device connected to an Integration point as decribed on this web page – I have All Packets enabled – I have a Label created but dont think in the new Conole this is relevant.

    I have a data only gateway (LPS8) and another active hotspot in my apartment.and see at least 2 other hotspots (3 in total) but only 1 hotspot registers on the Field Tester or on Console.

    • This is a long time bug with Helium. It seems to apply for Europe and less for USA. Only one is reported whatever the label configuration is. Sometime you get two, not much more.

      • Thank you so much for the quick reply. On that point, I am a little surprised as with a T-beam board I am getting up to 6 hotspots (at the Console), or is this different to Field Tester?

        Is Helium working on this bug? 🙂

      • Really ? that is interesting. I never get more than 2 with any devices.
        Please continue this discussion on DM (twitter or Discord) … more convenient than blog comment area

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.