Good afternoon! I have purchased:
- 1 x kerlink Wirnet iStation (LoRaWAN GW): Wirnet iStation - Kerlink
- 1 x Microchip RN2903 based Wireless Board (LoRa node): RN2903 - Wireless Modules
Also, I have a local ChirpStack server (supose it is on mychirpstackserver.com_) already configured with a Network and Application server to receive connections from my GW.
Could you please provide me the following configuration files for my GW?
/etc/lorad/lorad.json -> The one that is referenced in /etc/default/lorad file (CONFIGURATION_FILE var).
/etc/lorafwd.toml -> The one that is referenced in /etc/default/lorafwd file (CONFIGURATION_FILE var).
I got a little Arduino program running on my node to shoot some packages to my App Server through my GW, but after following the corresponding documentation I cannot get this working as expected.
So, could you please provide me a sample for the files lorad.json and lorafwd.toml, so I can compare them with my files and see what’s wrong?
Thanks a lot! Any help will be appreciated!
Edit: Here are the two files I am using right now. I think there’s something wrong with them, because from my node side I see a lot of rejected packages by timeout and sometimes because the channel is bussy.
lorad.json
{
"SX1301_conf": {
"lorawan_public": true,
"clksrc": 1,
"clksrc_desc": "radio_1 provides clock to concentrator for most devices except MultiTech. For MultiTech set to 0.",
"antenna_gain": 0,
"antenna_gain_desc": "antenna gain, in dBi",
"radio_0": {
"enable": true,
"type": "SX1257",
"freq": 917200000,
"rssi_offset": -166.0,
"tx_enable": true,
"tx_freq_min": 915000000,
"tx_freq_max": 928000000
},
"radio_1": {
"enable": true,
"type": "SX1257",
"freq": 917900000,
"rssi_offset": -166.0,
"tx_enable": false
},
"chan_multiSF_0": {
"desc": "Lora MAC, 125kHz, all SF, 916.8 MHz",
"enable": true,
"radio": 0,
"if": -400000
},
"chan_multiSF_1": {
"desc": "Lora MAC, 125kHz, all SF, 917.0 MHz",
"enable": true,
"radio": 0,
"if": -200000
},
"chan_multiSF_2": {
"desc": "Lora MAC, 125kHz, all SF, 917.2 MHz",
"enable": true,
"radio": 0,
"if": 0
},
"chan_multiSF_3": {
"desc": "Lora MAC, 125kHz, all SF, 917.4 MHz",
"enable": true,
"radio": 0,
"if": 200000
},
"chan_multiSF_4": {
"desc": "Lora MAC, 125kHz, all SF, 917.6 MHz",
"enable": true,
"radio": 1,
"if": -300000
},
"chan_multiSF_5": {
"desc": "Lora MAC, 125kHz, all SF, 917.8 MHz",
"enable": true,
"radio": 1,
"if": -100000
},
"chan_multiSF_6": {
"desc": "Lora MAC, 125kHz, all SF, 918.0 MHz",
"enable": true,
"radio": 1,
"if": 100000
},
"chan_multiSF_7": {
"desc": "Lora MAC, 125kHz, all SF, 918.2 MHz",
"enable": true,
"radio": 1,
"if": 300000
},
"chan_Lora_std": {
"desc": "Lora MAC, 500kHz, SF8, 917.5 MHz",
"enable": true,
"radio": 0,
"if": 300000,
"bandwidth": 500000,
"spread_factor": 8
},
"chan_FSK": {
"desc": "disabled",
"enable": false
},
"tx_lut_0": {
"desc": "TX gain table, index 0",
"pa_gain": 0,
"mix_gain": 8,
"rf_power": -6,
"dig_gain": 0
},
"tx_lut_1": {
"desc": "TX gain table, index 1",
"pa_gain": 0,
"mix_gain": 10,
"rf_power": -3,
"dig_gain": 0
},
"tx_lut_2": {
"desc": "TX gain table, index 2",
"pa_gain": 0,
"mix_gain": 12,
"rf_power": 0,
"dig_gain": 0
},
"tx_lut_3": {
"desc": "TX gain table, index 3",
"pa_gain": 1,
"mix_gain": 8,
"rf_power": 3,
"dig_gain": 0
},
"tx_lut_4": {
"desc": "TX gain table, index 4",
"pa_gain": 1,
"mix_gain": 10,
"rf_power": 6,
"dig_gain": 0
},
"tx_lut_5": {
"desc": "TX gain table, index 5",
"pa_gain": 1,
"mix_gain": 12,
"rf_power": 10,
"dig_gain": 0
},
"tx_lut_6": {
"desc": "TX gain table, index 6",
"pa_gain": 1,
"mix_gain": 13,
"rf_power": 11,
"dig_gain": 0
},
"tx_lut_7": {
"desc": "TX gain table, index 7",
"pa_gain": 2,
"mix_gain": 9,
"rf_power": 12,
"dig_gain": 0
},
"tx_lut_8": {
"desc": "TX gain table, index 8",
"pa_gain": 1,
"mix_gain": 15,
"rf_power": 13,
"dig_gain": 0
},
"tx_lut_9": {
"desc": "TX gain table, index 9",
"pa_gain": 2,
"mix_gain": 10,
"rf_power": 14,
"dig_gain": 0
},
"tx_lut_10": {
"desc": "TX gain table, index 10",
"pa_gain": 2,
"mix_gain": 11,
"rf_power": 16,
"dig_gain": 0
},
"tx_lut_11": {
"desc": "TX gain table, index 11",
"pa_gain": 3,
"mix_gain": 9,
"rf_power": 20,
"dig_gain": 0
},
"tx_lut_12": {
"desc": "TX gain table, index 12",
"pa_gain": 3,
"mix_gain": 10,
"rf_power": 23,
"dig_gain": 0
},
"tx_lut_13": {
"desc": "TX gain table, index 13",
"pa_gain": 3,
"mix_gain": 11,
"rf_power": 25,
"dig_gain": 0
},
"tx_lut_14": {
"desc": "TX gain table, index 14",
"pa_gain": 3,
"mix_gain": 12,
"rf_power": 26,
"dig_gain": 0
},
"tx_lut_15": {
"desc": "TX gain table, index 15",
"pa_gain": 3,
"mix_gain": 14,
"rf_power": 27,
"dig_gain": 0
}
},
"gateway_conf": {
"server_address": "router.au.thethings.network",
"serv_port_up": 1700,
"serv_port_down": 1700,
"servers": [ {
"server_address": "router.au.thethings.network",
"serv_port_up": 1700,
"serv_port_down": 1700,
"serv_enabled": true
} ]
}
}
lorafwd.toml:
# The LoRa forwarder configuration file.
#
# This configuration file is formatted using the TOML v0.5.0 language:
# https://github.com/toml-lang/toml/blob/master/versions/en/toml-v0.5.0.md
[ gateway ]
# The gateway identifier. Used to identify the gateway inside the network. This
# identifier is 64 bits long. It could be expressed in hexadecimal for better
# readability.
#
# Type: integer
# Example: 1194684 or 0x123abc or 0o4435274 or 0b100100011101010111100
# Default: 0
#
#id = 0xFFFFFFFFFFFFFFFF
[ filter ]
# Whether or not an uplink message with a valid CRC will be forwarded.
#
# Type: boolean
# Example: false
# Default: true
#
#crc.valid = true
# Whether or not an uplink message with an invalid CRC will be forwarded.
#
# Type: boolean
# Example: true
# Default: false
#
#crc.invalid = false
# Whether or not an uplink message without CRC will be forwarded.
#
# Type: boolean
# Example: true
# Default: false
#
#crc.none = false
# Whether or not a LoRaWAN downlink will be forwarded as an uplink message.
#
# Type: boolean
# Example: true
# Default: false
#
#lorawan.downlink = false
# If defined, only uplink messages with devaddr matching this netid will be forwarded
#
# Type: string - CIDR notation
# Example: "0x24000000/7"
# Default: "" - Empty
#
#lorawan.netid = "0x24000000/7"
[ database ]
# Whether or not a persistent database will store the incoming messages until
# they will be sent and acknowledged.
#
# Type: boolean
# Example: true
# Default: false
#
#enable = true
# The maximum number of messages allowed to be stored in the database. When
# full the newest message will replace the oldest one.
#
# Type: integer
# Example: 20000
# Default: 200
#
#limit.messages = 200
# The minimum delay between two database fetch. To allow incoming messages
# to be aggregated before to be sent.
#
# Type: integer (in milliseconds)
# Example: 1000
# Default: 100
#
#delay.cooldown = 1000
[ gwmp ]
# The internet host where the gateway should connect. The node can be either a
# fully qualified domain name or an IP address (IPv4 or IPv6).
#
# Type: string
# Example: "myhost.example.com" or "123.45.67.89" or "2001:db8::1234"
# Default: "localhost"
#
#Descomentar y activar segun corresponda JOSE
node = "chirpstack.usinatandil.com.ar"
#node = "thethings.meshed.com.au"
# The GWMP services can be a service name (see services(5)) or an integer and,
# in this case, refers to a network port.
# The service where the gateway should push uplink messages.
#
# Type: string or integer
# Example: "https" or 1234
# Default: 0
#
service.uplink = 1700
# The service where the gateway should pull downlink messages.
#
# Type: string or integer
# Example: "https" or 1234
# Default: 0
#
service.downlink = 1700
# The heartbeat period. Used to keep the firewall open.
#
# Type: integer (in seconds)
# Example: 30
# Default: 10
#
#period.heartbeat = 10
# The statistics period. Used to send statistics.
#
# Type: integer (in seconds)
# Example: 10
# Default: 30
#
#period.statistics = 30
# The number of timed out messages which will automatically trigger a network
# socket restart. Used to monitor the connection.
#
# Type: boolean or integer (false = 0 = disabled) (true = 10)
# Example: 3
# Default: true
#
#autorestart = false
# The maximum datagram size for uplink messages. The datagram includes the GWMP
# header and payload.
#
# Type: integer
# Example: 50000
# Default: 20000
#
#limit.datagram = 65507
# The endpoint to control the LoRa daemon. Used to request statistics.
#
# Type: string
# Example: "tcp://localhost:3333"
# Default: "ipc:///var/run/lora/lorad"
#
#lorad.control = "ipc:///var/run/lora/lorad"
[ api ]
# The API use ZeroMQ as transport layer. More informations about ZeroMQ
# endpoints format can be found here:
#
# http://api.zeromq.org/4-2:zmq-connect
# The endpoints for the uplink channel. Used to receive uplink messages.
#
# Type: string or array of strings
# Example: "tcp://localhost:1111"
# Default: "ipc:///var/run/lora/uplink"
#
#uplink = [ "ipc:///var/run/lora/uplink", "tcp://localhost:1111" ]
# The endpoints for the downlink channel. Used to send downlink messages.
#
# Type: string or array of strings
# Example: "tcp://localhost:2222"
# Default: "ipc:///var/run/lora/downlink"
#
#downlink = [ "ipc:///var/run/lora/downlink", "tcp://localhost:2222" ]
# The endpoints for the control channel. Used to receive control request.
#
# Type: string or array of strings
# Example: "tcp://eth0:4444"
# Default: "ipc:///var/run/lora/lorafwd"
#
#control = [ "ipc:///var/run/lora/lorafwd", "tcp://eth0:4444" ]
# The filters for the uplink channel. Used to subscribe to uplink messages.
#
# The filters can handle raw binary (by using unicode) or keywords. The special
# empty filter ("") subscribe to all incoming messages.
#
# Keywords are case-insensitive and are one of these:
# - "lora"
# - "gfsk" or "fsk"
# - "event" (for ease of use, lorafwd always subscribe to event messages)
#
# Type: string or array of strings
# Example: [ "\u000A", "keyword" ]
# Default: ""
#
#filters = [ "lora", "gfsk" ]
Thanks again!