Connecting your LoPy to The Things Network in Australia

EDIT [2018-06-05]: I have updated the code with the Firmware 1.18.+ releases. The code is available at our Growing Data Foundation Github.

These notes are to assist Australian IoT enthusiasts to get started in connecting a LoPy to The Things Network as it is unfortunately (not yet) straight forward to make them work with the current AU-915 TTN Channel plans. As the initiator of the local Adelaide Community of The Things Network I have been experimenting with a number of devices to connect sensors to #TTNADL. One of my personal favourites is the Pycom LoPy as a nice middle-ground between capabilities and technical complexity.

The Things Network Adelaide

However I ran into a problem where the LoPy would not get a signal back from the TTN network when joining over OTAA even though the TTN Console ( the device showed as connected. With some friendly help from Jose Marcelino at the Pycom Forum this turned out to be an issue with the 915MHz frequency regions. Since there is no actual a standard governing which of the channels are used by TTN gateways, what is outlined here is what is implemented by most TTN communities down under (I know that at least ADL, BNE, SYD and WOL adhere to those). This is the typical Sub-band 2 (Channel 8-15) implementation of AU ISM 915 with TTN Gateways.

This channel plan is also implemented by the install script for the MultiTech Conduit Gateways which are currently the most common gateways installed across Australia (see

Channel# Direction Frequency MHz Bandwidth kHz Data rate
8 up 916.8 125 DR0 – DR3
9 up 917.0 125 DR0 – DR3
10 up 917.2 125 DR0 – DR3
11 up 917.4 125 DR0 – DR3
12 up 917.6 125 DR0 – DR3
13 up 917.7 125 DR0 – DR3
14 up 918.0 125 DR0 – DR3
15 up 918.2 125 DR0 – DR3
65 up 917.5 500 DR4
0 down 923.3 500 DR8 – DR13
1 down 923.9 500 DR8 – DR13
2 down 924.5 500 DR8 – DR13
3 down 925.1 500 DR8 – DR13
4 down 925.7 500 DR8 – DR13
5 down 926.3 500 DR8 – DR13
6 down 926.9 500 DR8 – DR13
7 down 927.5 500 DR8 – DR13

To set the LoPy unit up it needs to have the set frequency plan removed and the region specific frequency plan loaded (even though they were bought as 915Mhz units). I have created some quick Python code to set up the LoPy with the above channel structure as the default settings for those devices do not work. Note that you have to remove the default channel settings and add the correct ones before you can successfully register and send data.

Below is my adaptation of the LoPy LoraWAN example to work with TTN in Australia. Please note that the LoPy Lora class only accepts DR values from 1-7. Suggestions more than welcome.

Hope this helps other LoPy owners in Australia to connect to The Things Network. And if you are in Adelaide why don’t you come along to our OpenData and IoT Meetup ? Let’s build this thing together.