Nouveau : le pare-feu IA surveille toute la plateforme et explique chaque incident en termes simples. Découvrez comment ça marche

Reply To: Eight meters on 30 m of RS-485 at 9600 baud: do I need termination, or is it something else?

Tyler, please don’t, eight 120 ohm resistors in parallel load the line to 15 ohm and nothing will talk.

Owen: at 9600 baud a bit lasts about 104 µs. On 30 m of cable a reflection goes up and back in well under a microsecond, so it has died out long before the receiver samples. Termination is about long cables and high baud rates, and you are nowhere near that. That’s David’s answer too.

What you’re missing is biasing. Between frames nobody drives the line, and an unbiased line floats near 0 V differential, so noise looks like start bits. That gives exactly the random, different-meter-each-time errors you see. Many cheap USB dongles have no bias resistors. Put them at the master end: about 680 ohm from A (+) to 5 V and 680 ohm from B (-) to GND. If you later add 120 ohm termination at both ends, bias is no longer optional at all.

Also, in this order:

  • Use twisted pair, and run a third wire as signal ground/common. Speaker cable has neither the twist nor the impedance.
  • Daisy-chain, no star. Short stubs at each meter.
  • In pymodbus, a response timeout of 1 s and one retry, and a short pause between meters.

On the Hermetry side, if a poll fails, send nothing for that meter in that round instead of a 0 or the old value. Then the chart has a small gap rather than a fake reading.

Solution acceptée♥ 3