Serial Timing Calculator
From baud, parity and stop bits: character time, Modbus RTU 3.5- and 1.5-character times, request/response time, polling cycle and minimum response timeout.
Formulas
- Bits per character = start 1 + data (7/8) + parity (0/1) + stop (1/2)
- Character time = bits ÷ baud · 9600 bps 8E1: 11 ÷ 9600 = 1.146 ms
- t1.5 = 1.5 × character time, t3.5 = 3.5 × character time (up to 19200 bps)
- Transmission time = bytes × character time
- Transaction = request + slave processing + response + t3.5 + master gap
An RTU receiver treats a gap longer than 1.5 characters inside a frame as an error, and 3.5 characters of silence as the end of the frame. So a sender sends the bytes back to back and waits at least t3.5 between frames.
Timing by baud rate (8E1, 11 bits)
| Baud | Char time | t1.5 | t3.5 | Bytes/s | FC03 ×10 transaction* |
|---|---|---|---|---|---|
| 1200 | 9.167 ms | 13.75 ms | 32.083 ms | 109 | 334.583 ms |
| 2400 | 4.583 ms | 6.875 ms | 16.042 ms | 218 | 167.292 ms |
| 4800 | 2.292 ms | 3.438 ms | 8.021 ms | 436 | 83.646 ms |
| 9600 | 1.146 ms | 1.719 ms | 4.01 ms | 872 | 41.823 ms |
| 19200 | 572.9 µs | 859.4 µs | 2.005 ms | 1745 | 20.911 ms |
| 38400 | 286.5 µs | 750 µs | 1.75 ms | 3490 | 11.203 ms |
| 57600 | 191 µs | 750 µs | 1.75 ms | 5236 | 8.052 ms |
| 115200 | 95.5 µs | 750 µs | 1.75 ms | 10472 | 4.901 ms |
* Request 8 + response 25 bytes + t3.5 with zero slave processing time — a lower bound. Real devices add processing time. Bold cells are the fixed values recommended by the specification.
RTU frame length by function
| Function | Request bytes | Normal response bytes | Quantity limit |
|---|---|---|---|
| 01/02 read coils/inputs | 8 | 5 + ⌈N ÷ 8⌉ | 2000 |
| 03/04 read registers | 8 | 5 + 2N | 125 |
| 05/06 write single | 8 | 8 (echo) | 1 |
| 0F write multiple coils | 9 + ⌈N ÷ 8⌉ | 8 | 1968 |
| 10 write multiple registers | 9 + 2N | 8 | 123 |
What response timeout should I use?
The specification leaves the response timeout to the application and notes it is typically 1 s to several seconds at 9600 bps, with a turnaround delay after a broadcast (address 0) of typically 100–200 ms. The «minimum response timeout» here is the theoretical floor — slave processing plus response transmission — so set the real value with the device's documented response time and any USB adapter latency added, with room to spare.
FAQ
How many bytes per second at 9600 bps?
With 11-bit characters (8E1 or 8N2) at most 9600 ÷ 11 ≈ 872 bytes; with 8N1 (10 bits) 960 bytes. In practice processing time between request and response and the t3.5 silence between frames make it less.
How long is the Modbus RTU 3.5-character time?
About 4.01 ms at 9600 bps and 2.005 ms at 19200 bps with 11-bit characters. Above 19200 bps the specification recommends a fixed 1.75 ms.
How long does a polling cycle over 10 devices take?
Enter 10 in «Transactions per cycle» and the device's documented response time (or a measured one) as slave processing time. Processing time often exceeds transmission time, so raising the baud rate may help less than expected.
Real request/response timestamps and gaps are visible in the traffic log of PortDock Modbus Master.