Trouble using rs485 and Modbus on reComputer R1000

Hi everyone!

I’m using a reComputer R1000 v1.0 and trying to read Modbus sensors via RS485. I followed the official Seeed guide on [How to use RS485 and Modbus with reComputer R1000], and chose the Kernel module solution (r1000v1_rs485_autoflow).

The module seems to load correctly:

dmesg | grep rs485

[ 2.699642] r1000v1_rs485_autoflow: loading out-of-tree module taints kernel.

[ 2.702282] workqueue: name exceeds WQ_NAME_LEN. Truncating to: r1000v1_rs485_autoflow_worker_q

[ 2.734670] r1000v1_rs485_autoflow: RS-485 interface has been hooked successfully
However, I’m occasionally getting timeout errors while polling Modbus registers using mbpoll. This happens intermittently, even when polling once every second or slower, and across different baud rates (4800, 9600). Here’s the test loop I’m using:

while true; do
mbpoll -a 3 -b 9600 -P none -t 4 -r 1 -c 5 /dev/ttyAMA2
sleep 0.2
sleep 1
done

– Polling slave 3… Ctrl-C to stop)

– Polling slave 3… Ctrl-C to stop)

Read output (holding) register failed: Connection timed out

^C— /dev/ttyAMA2 poll statistics —

9 frames transmitted, 6 received, 3 errors, 33.3% frame loss

I’ve confirmed baud rate, parity, stop bits, and slave ID are correct. The sensor usually responds, but occasionally I get “Connection timed out”, even with sufficient delay between requests.

Has anyone experienced similar timeout issues using the kernel-based RS485 solution on the R1000 v1.0?

Is this related to GPIO direction control timing, buffering, or bus state?

Any tips on improving stability or additional kernel module configurations would be greatly appreciated.

Thanks in advance!