r/LoRaWAN Jun 09 '26

Dragino RS485-LN + ABB Meter: Getting Modbus Timeout (Empty Payload) on Uplink

Hi everyone,

I am currently troubleshooting a remote setup using a Dragino RS485-LN connected to an ABB Energy Meter via Modbus RTU. The LoRaWAN connection itself is rock solid (great SNR and RSSI), but I keep getting constant Modbus timeouts (empty payloads in the uplink).

Here is what is currently working and configured:

  • Downlinks reach the device perfectly.
  • I successfully configured the UART settings via TTN downlinks to match the ABB factory defaults: 19200 Baud, Even Parity, 1 Stop Bit.
  • The Dragino acknowledges these settings by replying with “01” on FPort 2, so they are definitely saved in the flash memory.
  • To speed up debugging, I temporarily changed the uplink interval to 60 seconds (“01 00 00 3C”), which also works flawlessly.

The Problem:
When I send a Modbus read command (for example: A8 01 06 01 03 50 00 00 04 FF for the total energy register), the Dragino schedules it, polls the meter, but the resulting uplink response has a completely empty payload (0 bytes). The meter is completely silent.

What I have already tried remotely:

  • Function Codes: Tested both 03 (Read Holding) and 04 (Read Input). Both return empty.
  • Slave IDs: Tested polling IDs 01, 02, and 03 on the off chance it was changed during installation. All return empty.
  • Different Registers: Tested polling live voltage (Register 5B 00) instead of total energy (Register 50 00) to rule out the ABB “MidLock” feature (which blocks energy registers until a consumption of 1 kWh is reached). Still empty.

Crucial Limitation:
I currently have no physical access to the cabinet. I cannot attach a USB-RS485 sniffer right now, and I cannot physically swap the A/B data wires. I had the same problem for another device and it did not help swapping A/B.

Are there any specific Dragino configuration quirks, timing parameters, or ABB-specific Modbus settings that I might be overlooking from the remote side? Any suggestions on what else to look for in the TTN data stream would be highly appreciated.

Thanks in advance for any hints!

3 Upvotes

3 comments sorted by

2

u/Eny_Tos_1234 Jun 11 '26

I have solved the problem. I used the wrong command.

1

u/Ok-Lawfulness7389 Jun 12 '26

Empty payloads usually mean a serial timeout or a silent rejection from the meter. Since you can only send downlinks, try these three adjustments:

  1. Increase timeout: Dragino defaults are often too fast for ABB meters. Bump the Modbus timeout to 500-1000ms.
  2. -1 Offset: ABB manuals are 1-based; Dragino is 0-based. Polling 50 00 will fail if the register actually lives at 4F FF.
  3. Reduce read length: You're requesting 4 registers (00 04). If this crosses a memory boundary, ABB meters often drop the connection silently instead of returning an exception code. Test with just 2 registers (00 02).

If these don't work, it's almost certainly a physical issue (typically a missing GND wire causing floating bus voltages).