After the most recent firmware update to RUT9M_R_GPL_00.07.04.3, my RUT951 ModBus register address 23 (GSM Operator Name) fails to read and passes back an 0x83 error code with exception code 0x04. With the previous firmware, reading this register worked fine, but reading register address 139 (WAN IP address) failed in the same way. This register address 139 is now working fine and returning 11.0.0.0.
I’m accessing the ModBus using Ruby code (modbus-cli) and the debug output when running the modbus read command shows the bytes sent to the router and the bytes returned, which was what enabled me to see the 0x83/0x04 error code and exception code.
I have tried reading single registers in the range 23 to 38 as well as various-sized blocks of registers up to the full 16. The same error occurs in all cases.
Anyone have any ideas on how to debug this further? WIthout access to the source code of the router firmware, I can’t see how to get any further, and since I bought the router from a retailer and not direct from Teltonika, I can’t use Telonika’s help service.
The particular register that fails isn’t a big deal, but what concerns me is that if there is a bug in the firmware, it may cause a different register to fail on a future update, as I’ve already seen with the previous firmware version failing on the WAN IP address register.
I have been able to successfully get both, operator’s name and WAN IP address by reading register addresses 23 (number 24) and 139 (number 140). This was on the 07.04.4 FW version.
Could you try restoring the device to factory defaults and see if the issue persists?
EDIT:
Are you using a GPL firmware? Does the issue occur on the release firmware?
I did a reset to factory defaults, from the WebUI connected from my laptop over Ethernet. After the reboot I logged back into the WebUI using the default password, and reset the password to its previous value. I then went to the services section and enabled ModBus.
From my Raspberry Pi4, I ran the code which reads the ModBus registers. Same result as with the 04.4 firmware: the code reads all the registers except 23, which gave the same error as before the reset to factory defaults.
I then restored the router settings from my backup. Same result when accessing the ModBus, as expected.
This problem has been resolved in firmware release 00.07.04.5. I updated to this firmware today, and all the registers that my Ruby code reads are now reading without exceptions.