Setting up Multitech Conduit Gateway for TTN

The lora-network-server script uses

mts-io-sysfs show lora/eui 2> /dev/null

to get the EUI.

1 Like

Hi all!

You guys helped out a ton, especially the post from robbo was very valuable. Unfortunately, it’s not working yet.

I don’t have an mDot yet, only the gateway. I’m simulating messages with mosquitto_pub, and it seems like they’re being received (I see “Note: LoRa packet” in the packet forwarder log). However, nothing is forwarded to TTN, I get 0% ACK and (after sending some messages) a CRC_FAIL of 100%.

I used tcpdump to see that there is some UDP traffic going to TTN, once every 12 seconds or so, and a package coming back as well. So that’s good I suppose!

A typical log entry:

##### 2015-11-20 19:49:24 GMT #####
### [UPSTREAM] ###
# RF packets received by concentrator: 0
# CRC_OK: 0.00%, CRC_FAIL: 0.00%, NO_CRC: 0.00%
# RF packets forwarded: 0 (0 bytes)
# PUSH_DATA datagrams sent: 0 (0 bytes)
# PUSH_DATA acknowledged: 0.00%
### [DOWNSTREAM] ###
# PULL_DATA sent: 2 (0.00% acknowledged)
# PULL_RESP(onse) datagrams received: 0 (0 bytes)
# RF packets sent to concentrator: 0 (0 bytes)
# TX errors: 0
##### END #####
WAlgw_receive:1428: FIFO content: Pkts: 1 fe 2 Stat: 7 Size: 6d
lgw_receive:1443: [5 17]
Note: LoRa packet
RNING: [down] ignoring invalid packet

##### 2015-11-20 19:49:44 GMT #####
### [UPSTREAM] ###
# RF packets received by concentrator: 1
# CRC_OK: 0.00%, CRC_FAIL: 100.00%, NO_CRC: 0.00%
# RF packets forwarded: 0 (0 bytes)
# PUSH_DATA datagrams sent: 0 (0 bytes)
# PUSH_DATA acknowledged: 0.00%
### [DOWNSTREAM] ###
# PULL_DATA sent: 1 (0.00% acknowledged)
# PULL_RESP(onse) datagrams received: 0 (0 bytes)
# RF packets sent to concentrator: 0 (0 bytes)
# TX errors: 0
##### END #####
WARNING: [down] ignoring invalid packet
WARNING: [down] ignoring invalid packet

Anyone have any idea what it could be? I am not sure what to set for network and passphrase in lora-network-server.conf for example, does it matter? Or is it simply not possible to send and receive with a gateway, and should I wait for my mDot?

Does someone perhaps have an example global_conf.json for EU?

That’s just data being received that might or might not be a valid packet. Stat: 7 actually is a CRC error (valid packets have stat 5) so no valid data has been received.

Packets with CRC errors are (rightly) not forwarded.

For TTN you need to use the instructions to make it a forwarder (step 3 in robbos message). The MultiTech software does not allow multiple servers so you will not be able to use the network server on the device. (If you want send to multiple servers, check my message [70] to get the poly_packet_forwarder, the package contains a valid example config for use in the EU)

You got it, the gateway will not receive packets it is sending so you need a node to receive data.

A sample EU config for the MultiTech software:

{
"SX1301_conf" : 
{
	"chan_FSK" : 
	{
		"bandwidth" : 250000,
		"datarate" : 50000,
		"enable" : true,
		"freq_deviation" : 25000,
		"if" : 100000,
		"radio" : 0
	},
	"chan_Lora_std" : 
	{
		"bandwidth" : 250000,
		"enable" : true,
		"if" : -200000,
		"radio" : 0,
		"spread_factor" : 7
	},
	"chan_multiSF_0" : 
	{
		"enable" : true,
		"if" : -400000,
		"radio" : 0
	},
	"chan_multiSF_1" : 
	{
		"enable" : true,
		"if" : -200000,
		"radio" : 0
	},
	"chan_multiSF_2" : 
	{
		"enable" : true,
		"if" : 0,
		"radio" : 0
	},
	"chan_multiSF_3" : 
	{
		"enable" : true,
		"if" : -400000,
		"radio" : 1
	},
	"chan_multiSF_4" : 
	{
		"enable" : true,
		"if" : -200000,
		"radio" : 1
	},
	"chan_multiSF_5" : 
	{
		"enable" : true,
		"if" : 0,
		"radio" : 1
	},
	"chan_multiSF_6" : 
	{
		"enable" : true,
		"if" : 200000,
		"radio" : 1
	},
	"chan_multiSF_7" : 
	{
		"enable" : true,
		"if" : 400000,
		"radio" : 1
	},
	"radio_0" : 
	{
		"enable" : true,
		"freq" : 868500000
	},
	"radio_1" : 
	{
		"enable" : true,
		"freq" : 869500000
	}
},
"gateway_conf" : 
{
	"forward_crc_disabled" : true,
	"forward_crc_error" : false,
	"forward_crc_valid" : true,
	"gateway_ID" : "<YOUR ID HERE>",
	"keepalive_interval" : 12,
	"push_timeout_ms" : 120,
	"serv_port_down" : 1700,
	"serv_port_up" : 1700,
	"server_address" : "54.229.214.112",
	"stat_interval" : 20,
	"synch_word" : 52
}
}

A valid config is actually generated by lora-network-server in /var/run/lora (apart from the server address and ports) if you start it with the configuration for EU as described on the MultiTech Website (steps 4-7)

Appreciate the help. I suppose I need to wait for my node to arrive then. Everything else looks good, so looking forward to it!

Hi there, I’m getting results appear in the Node bit of the API - http://thethingsnetwork.org/api/v0/nodes/02011E01/ but there is no entry for my gateway (008000000000A052) in the Gateway bit of the API.

Any idea what I am missing?

I have an mlinux Conduit with an MTAC-LORA-868 card.

Thanks, Mark

@mark: this sounds like the same problem I had with my DIY gateway: Setting up your first gateway

My gateway wasn’t sending geo-info, and because of that, it didn’t show up in the list.

Ah, yes using gps_pkt_fwd makes it appear in the Gateways , thanks :slight_smile:

For info gps_pkt_fwd has different params to basic_pkt_fwd - it doesn’t accept -l logfile, so you need to strip that bit out of /etc/init.d/lora-network-server where it uses the start-stop daemon to launch pkt_fwd.

Follow-up question - how do I configure or display the logitude and latitude? Mine are coming out blank. http://thethingsnetwork.org/api/v0/gateways/008000000000A052/

I just filled them in in the global_conf.json file

See this message for Configuring longitude and latitude

Fantastic - thanks both for your help - all working nicely now :slight_smile:

Just my 2cts
Would be good if someone knowledgeable could turn this thread into a manual like the one described for Kerlink in the Wiki tree?

Here you are: http://thethingsnetwork.org/wiki/Installing-your-Multitech-mLinux-Conduit

1 Like

@markstanley
Just looked at your write-up. Thank you for creating it, however two remarks (I do not want to start modifying your work right away):

  • Have you read my messages concerning the difference in (correctly) received packets between gps_pkt_fw and basic_pkt_fwd? If you want to be shown active on TTN I strongly suggest you try my build of poly_pkt_fwd for the MultiTech. Otherwise stay on basic_pkt_fwd if you want reliable packet reception and forwarding and do not need to be shown active.
    (poly_pkt_fwd is a ‘drop in’ replacement for basuc_pkt_fwd with regards to the command line arguments)
  • Not everyone with a MultiTech gateway will have mdots, as a result not everyone needs to sign-up @ mbed. Also people without an MultiTech gateway might use mdots, so may-be it would be better to split it into two pages?
1 Like

@kersing - sorry to say but I haven’t got poly_pkt_fwd working here. I installed this one: https://github.com/kersing/packet_forwarder/raw/master/multitech-bin/poly-packet-forwarder_2.1-r1_arm926ejste.ipk

Logfile:
*** Poly Packet Forwarder for Lora Gateway ***
Version: 2.1.0
*** Lora concentrator HAL library version info ***
Version: 3.1.0; Options: ftdi;


INFO: Little endian host
INFO: found global configuration file /var/config/lora/global_conf.json, parsing
INFO: /var/config/lora/global_conf.json does contain a JSON object named SX1301_
WARNING: Data type for lorawan_public seems wrong, please check
WARNING: Data type for clksrc seems wrong, please check
INFO: lorawan_public 0, clksrc 0
INFO: no configuration for tx gain lut 0
INFO: no configuration for tx gain lut 1


INFO: no configuration for tx gain lut 15
INFO: Configuring TX LUT with 0 indexes
WARNING: Failed to configure concentrator TX Gain LUT

@markstanley You need to use the example global_conf.json included as the newer versions of the software made more settings configurable. Alternatively the GitHub repo has example data for both 868 and 915 MHz setups.

Thanks @kersing
I downloaded https://github.com/kersing/packet_forwarder/blob/master/poly_pkt_fwd/global_conf_multitech-eu868.json and used that as the basis for my global_conf.json.

You are right, there is a LOT more in here!

So my gateway is working again, this time using poly_pkt_fwd. Many thanks.

I can update the wiki to use poly_pkt_fwd instead. Gps_pkt_fwd worked fine for me but if I understand the various bits in the forum correctly, the gps_pkt_fwd is not reliable, whereas poly_pkt_fwd is more reliable. Is this correct?

While setting up the gateway I noticed the number of packets received successfully decreased over time when running gps_pkt_fwd. The number was constant while running basic_pkt_fwd. See the this thread for details on the subject. Feel free to verify my findings or even better disprove them.

As I wanted status updates for TTN I decided to compile poly_pkt_fwd. It has the added advantage of being able to connect to both TTN and iot.semtech.com, allowing to (successfully) test OTAA and sending packets to the node as well. (It would also allow connecting to the stack running on the MultiTech, however as I haven’t found sufficient documentation on how to use it I’ve disabled the connection to localhost for now.)

1 Like

Ok, thanks for the explanation. I updated the wiki page yesterday to use poly_pkt_fwd, and I’ll keep an eye on reliability on my conduit.

Many thanks again for your help.

1 Like

@kersing Thank you for writing the updated poly_pkt_fwd!

I am in the process of trying to get it to work without any luck so far. Before I start again from scratch I thought I would ask for help. My configuration is as follows:

  1. I have installed your poly-packet-forwarder_2.1-r1_arm926ejste.ipk
  2. I have updated my /var/config/lora/global_conf.json based on your https://github.com/kersing/packet_forwarder/blob/master/poly_pkt_fwd/global_conf_multitech-us915.json
  3. I have edited /etc/init.d/lora-network-server to run poly_pkt_fwd

My log file shows the following:

root@mathworks1:~# /etc/init.d/lora-network-server restart
Stopping lora-network-server: OK
Found lora card MTAC-LORA-915
Starting lora-network-server: OK
root@mathworks1:~# tail -f /var/log/lora-pkt-fwd.log
INFO: Beacon is disabled
INFO: Monitor is disabled
INFO: Platform configured to "MultiTech"
INFO: Contact email configured to "my@email.com"
INFO: Description configured to "MathWorks01"
INFO: Successfully contacted server 54.229.214.112
INFO: [main] Starting the concentrator
INFO: [main] concentrator started, radio packets can now be received.
INFO: [down] Thread activated for all server 54.229.214.112
INFO: [up] Thread activated for all servers.

    ##### 2016-01-05 16:34:09 GMT #####
    ### [UPSTREAM] ###
    # RF packets received by concentrator: 0
    # CRC_OK: 0.00%, CRC_FAIL: 0.00%, NO_CRC: 0.00%
    # RF packets forwarded: 0 (0 bytes)
    # PUSH_DATA datagrams sent: 0 (0 bytes)
    # PUSH_DATA acknowledged: 0.00%
    ### [DOWNSTREAM] ###
    # PULL_DATA sent: 3 (0.00% acknowledged)
    # PULL_RESP(onse) datagrams received: 0 (0 bytes)
    # RF packets sent to concentrator: 0 (0 bytes)
    # TX errors: 0
    ### [GPS] ###
    # Invalid gps time reference (age: 1452011649 sec)
    # Manual GPS coordinates: latitude 42.29956, longitude -71.35191, altitude 20 m
    ##### END #####

Here are my issues:

  1. I do not see my gateway at: http://thethingsnetwork.org/api/v0/gateways/

  2. I can no longer send messages to the api: http://thethingsnetwork.org/api/v0/nodes/02013E00/

  3. I am receiving CRC errors now:

     ##### 2016-01-05 17:12:09 GMT #####
     ### [UPSTREAM] ###
     # RF packets received by concentrator: 1
     # CRC_OK: 0.00%, CRC_FAIL: 100.00%, NO_CRC: 0.00%
     # RF packets forwarded: 0 (0 bytes)
     # PUSH_DATA datagrams sent: 1 (221 bytes)
     # PUSH_DATA acknowledged: 0.00%
     ### [DOWNSTREAM] ###
     # PULL_DATA sent: 3 (0.00% acknowledged)
     # PULL_RESP(onse) datagrams received: 0 (0 bytes)
     # RF packets sent to concentrator: 0 (0 bytes)
     # TX errors: 0
     ### [GPS] ###
     # Invalid gps time reference (age: 1452013929 sec)
     # Manual GPS coordinates: latitude 42.29956, longitude -71.35191, altitude 20 m
     ##### END #####
    

and even when I appear to receive valid messages:

##### 2016-01-05 17:18:10 GMT #####
### [UPSTREAM] ###
# RF packets received by concentrator: 1
# CRC_OK: 100.00%, CRC_FAIL: 0.00%, NO_CRC: 0.00%
# RF packets forwarded: 1 (30 bytes)
# PUSH_DATA datagrams sent: 2 (473 bytes)
# PUSH_DATA acknowledged: 0.00%
### [DOWNSTREAM] ###
# PULL_DATA sent: 3 (0.00% acknowledged)
# PULL_RESP(onse) datagrams received: 0 (0 bytes)
# RF packets sent to concentrator: 0 (0 bytes)
# TX errors: 0
### [GPS] ###
# Invalid gps time reference (age: 1452014290 sec)
# Manual GPS coordinates: latitude 42.29956, longitude -71.35191, altitude 20 m
##### END #####

They do not end up at the api.

Any help would be much appreciated.

Hi @robbo,

It seems you are using an old IP address, please use 54.72.145.119 instead. See also this discussion. And it would be nice if @kersing can adjust the configuration on Github