Hello TTN Community,
I’m encountering an issue in a deployment that uses Microchip RN2483 radios and Things Indoor Gateway Pro devices. The radios are set to max TX power and DR3, using OTAA.
Background
Our devices monitor freezers and require confirmed payloads to ensure that the server has received the messages. This is critical because, in the event of a power outage lasting several hours, the devices switch to a special mode to log the average, minimum, and maximum temperatures during the outage.
The Problem
At sites with multiple gateways, devices sometimes communicate with a far-away gateway instead of the nearest one. For example:
Nearest Gateway: ~20 meters away with strong RSSI (-74) and SNR (13.75).
Far Gateway: >100 meters away with weak RSSI (-114) and SNR (-4).
When a far-away gateway processes the uplink, the ACK often fails to reach the device, leading to reliability issues.
Logs
Communication with the Nearest Gateway:
{
"name": "as.up.data.forward",
"time": "2025-01-03T20:50:46.332528067Z",
"identifiers": [
{
"device_ids": {
"device_id": "2433-06-0091",
"application_ids": {
"application_id": "multipurpose-monitor"
},
"dev_eui": "-------------",
"join_eui": "-----------------",
"dev_addr": "2609569A"
}
}
],
"data": {
"@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationUp",
"end_device_ids": {
"device_id": "2433-06-0091",
"application_ids": {
"application_id": "multipurpose-monitor"
},
"dev_eui": "-----------",
"join_eui": "--------------",
"dev_addr": "2609569A"
},
"correlation_ids": [
"gs:uplink:01JGPYYM77QHB4Z8D8RJ832NCH"
],
"received_at": "2025-01-03T20:50:46.327268136Z",
"uplink_message": {
"session_key_id": "AZJtbi6lePOKMlDWMcVuRA==",
"f_port": 12,
"f_cnt": 23742,
"frm_payload": "MCw1MzIsMzA4OzAyMDAyMTAyMDAyMDAyMDAyMTAyMDAyMDAyMDAyMDswMTkwMTkwMTkwMTkwMTkwMTkwMTkwMTkwMTkwMTk7MDswOzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOw==",
"decoded_payload": {
"node_payload": {
"ch1": [
20,
21,
20,
20,
20,
21,
20,
20,
20,
20
],
"ch2": [
19,
19,
19,
19,
19,
19,
19,
19,
19,
19
],
"ch3": "00000000000000000000000000000000000000000000000000",
"details": {
"battery": 532,
"duration": 308,
"is_summation": 0
},
"env": {
"humid": 0,
"temp": 0
}
}
},
"rx_metadata": [
{
"gateway_ids": {
"gateway_id": "ttn-managed-002",
"eui": "------------------"
},
"timestamp": 1050163735,
"rssi": -74,
"signal_rssi": -74,
"channel_rssi": -74,
"snr": 13.75,
"uplink_token": "---------------------------------",
"received_at": "2025-01-03T20:50:45.207886390Z"
}
],
"settings": {
"data_rate": {
"lora": {
"bandwidth": 125000,
"spreading_factor": 7,
"coding_rate": "4/5"
}
},
"frequency": "905100000",
"timestamp": 1050163735
},
"received_at": "2025-01-03T20:50:46.120018772Z",
"confirmed": true,
"consumed_airtime": "0.230656s",
"network_ids": {
"net_id": "000013",
"ns_id": "EC656E0000000102",
"tenant_id": "-----------",
"cluster_id": "nam1",
"cluster_address": "nam1.cloud.thethings.industries",
"tenant_address": "----------------"
}
}
},
"correlation_ids": [
"gs:uplink:01JGPYYM77QHB4Z8D8RJ832NCH"
],
"origin": "ip-10-22-7-103.us-west-1.compute.internal",
"context": {
"tenant-id": "------"
},
"visibility": {
"rights": [
"RIGHT_APPLICATION_TRAFFIC_READ"
]
},
Communication with the Far-Away Gateway:
{
"name": "as.up.data.forward",
"time": "2025-01-03T14:55:40.765581583Z",
"identifiers": [
{
"device_ids": {
"device_id": "2433-06-0091",
"application_ids": {
"application_id": "multipurpose-monitor"
},
"dev_eui": "--------------------",
"join_eui": "0000000000000000",
"dev_addr": "2609569A"
}
}
],
"data": {
"@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationUp",
"end_device_ids": {
"device_id": "2433-06-0091",
"application_ids": {
"application_id": "multipurpose-monitor"
},
"dev_eui": "-----------------",
"join_eui": "0000000000000000",
"dev_addr": "2609569A"
},
"correlation_ids": [
"gs:uplink:01JGPAME0DCX3R2DSA8PTXW85K"
],
"received_at": "2025-01-03T14:55:40.762624502Z",
"uplink_message": {
"session_key_id": "AZJtbi6lePOKMlDWMcVuRA==",
"f_port": 12,
"f_cnt": 23675,
"frm_payload": "MCw1MzEsMzA4OzAyMTAyMDAyMTAyMTAyMTAyMTAyMjAyMDAyMjAyMTswMTkwMTkwMTkwMTkwMTkwMTkwMTkwMTkwMTkwMTk7MDswOzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOw==",
"decoded_payload": {
"node_payload": {
"ch1": [
21,
20,
21,
21,
21,
21,
22,
20,
22,
21
],
"ch2": [
19,
19,
19,
19,
19,
19,
19,
19,
19,
19
],
"ch3": "00000000000000000000000000000000000000000000000000",
"details": {
"battery": 531,
"duration": 308,
"is_summation": 0
},
"env": {
"humid": 0,
"temp": 0
}
}
},
"rx_metadata": [
{
"gateway_ids": {
"gateway_id": "client-02",
"eui": "-----------"
},
"timestamp": 3255658627,
"rssi": -114,
"channel_rssi": -114,
"snr": -4,
"uplink_token": "-----------------------------------",
"received_at": "2025-01-03T14:55:40.480805518Z"
}
],
"settings": {
"data_rate": {
"lora": {
"bandwidth": 125000,
"spreading_factor": 7,
"coding_rate": "4/5"
}
},
"frequency": "903900000",
"timestamp": 3255658627
},
"received_at": "2025-01-03T14:55:40.558372056Z",
"confirmed": true,
"consumed_airtime": "0.230656s",
"network_ids": {
"net_id": "000013",
"ns_id": "EC656E0000000102",
"tenant_id": "-----",
"cluster_id": "nam1",
"cluster_address": "nam1.cloud.thethings.industries",
"tenant_address": "--------------------------"
}
}
},
"correlation_ids": [
"gs:uplink:01JGPAME0DCX3R2DSA8PTXW85K"
],
"origin": "ip-10-22-15-96.us-west-1.compute.internal",
"context": {
"tenant-id": "--------"
},
"visibility": {
"rights": [
"RIGHT_APPLICATION_TRAFFIC_READ"
]
},
"unique_id": "01JGPAME6XT2VC4HEP2F06NSJ6"
}
What I’ve Tried/Considered
Ensuring the nearest gateway is optimally positioned.
Reviewing network server configurations to prioritize closer gateways.
Exploring ways to ignore far-away gateways for specific devices (but this doesn’t seem possible).
Questions
Has anyone encountered similar issues with confirmed payloads in multi-gateway setups?
Is there a way to configure gateways or devices to prefer the nearest gateway or to ignore far-away gateways?
Any suggestions for improving ACK reliability in this scenario?
Thank you for your time and insights!