I currently have a problem with the Modbus RTU communication via RS485 on RevPI Connect+.
Internal Serial Number: 012337B763E3D385
Host: Linux RevPi62003 4.19.95-rt38-v7 #1 SMP PREEMPT RT Fri, 03 Dec 2021 13:31:50 +0000 armv7l GNU/Linux
Modbus communication is not reinititated after restarting the revPI. The service pimodbus-master.service is ENABLED, but after a restart we observe the following error of the daemon:
Dec 29 11:05:32 RevPi62003 systemd: Started Revolution Pi Modbus master.
Dec 29 11:05:32 RevPi62003 piModbusMaster: piModbusMaster started
Dec 29 11:05:32 RevPi62003 piModbusMaster: Modbus connection failed: No such file or directory
I believe the revPI is trying to access the device (/dev/ttyRS485) too early, therefore the service is crashing since it has not been initialized. I have resolved the problem by restarting the modbus service manually but I don´t think this is intended behaviour
As a permanent solution I have added 'ExecStartPre=/bin/sleep 5' to '/lib/systemd/system/pimodbus-master.service' right after the ExecStart section, which makes the service wait for 5 seconds and attempts the start afterwards. This works without a problem but I believe it should be fixed in the upstream repos.