We have hardware in the field which communicates at a variety of different baud rates using RS-485/Modbus RTU (1200, 9600, through to 115200).
The firmware running on our device has a small bug in it, where the Modbus RTU response delay was fixed and calculated based on running at the 115200 baud. The issue went unnoticed until recently one of our customers began using the 1200 baud rate. It appears the 115200 response delay was adequate for everything down to 9600.
At the 1200 baud rate though, the first byte of the response packet is being missed (I'm assuming due to the time to takes to switch over from sending to receive at the 1200 baud). If a large packet is being requested things are ok (because the time it takes the device to put the packet together makes up for the lack of delay) although most packets are being corrupted.
Upgrading the firmware on these devices already in the field to use the correct/longer response delay is not an option unfortunately. Does anyone have any ideas as to how we can retrieve the full packets at the 1200 baud? (with the incorrect response delay that is currently causing 1 byte to be missed)
The only idea I could come up with was requesting an excessive amount of registers from the software with each request to cause the delay to increase.