Free tool
RS-485 bus planner
Check an RS-485 bus before you wire it: cable length against baud rate, unit loads, stub length, termination and fail-safe bias against the RS-485 spec, with Modbus addresses and timing for Tstep-087 drives and TIO-0808 cards.
Check the highlighted fieldsThe results below are for the last valid inputs.
- Total unit load
- 7.58 of 32 UL
- Longest run at 115200 bit/s
- 868 m
- Silent interval t3.5
- 1.75 ms
- Driver DC load
- 55.3 Ω
All 9 checks pass
Checklist
- PassLength vs data rate40 m × 115200 bit/s = 4.61 × 10⁶ m·bit/s, inside the 10⁸ guideline. The longest run recommended at this rate is 868 m. The 10⁸ figure is a design guideline, not part of the standard.
- PassRate every device supportsTstep-087 and TIO-0808 run at 19200 or 115200 bit/s, chosen by DIP switch (S8 on the Tstep-087, BAUD on the TIO-0808). Set every device to 115200 bit/s.
- PassUnit loads7.58 UL of the 32 UL limit: master 1 UL, Tstep-087 × 3 at 1.64 UL each, TIO-0808 × 1 at 1.64 UL each. A Tstep-087 or TIO-0808 counts 1 UL for its ST3485E transceiver (assumed: the unit load is not given in the documents) plus 0.644 UL for its on-board 20 kΩ bias resistors.
- PassStub lengthLongest stub 0.1 m, inside the 0.198 m limit for a 10 ns edge (rise time × 0.66 c ÷ 10). Rise time assumed 10 ns, an edge that is not slew-rate limited: the documents name the ST3485E transceiver on the Tstep-087 and TIO-0808 but not its edge rate, and the master's is unknown. Enter a datasheet figure under Assumptions.
- PassTermination120 Ω at both ends of a 120 Ω cable: 0 % of each edge reflects. Tstep-087: jumper JP4 puts R65 across A and B, and the schematic gives R65 as 33 Ω, not 120 Ω. Leave JP4 open unless you have checked the fitted part, and terminate with an external resistor.
- PassDriver DC loadThe driver sees 55.3 Ω: termination 60 Ω ∥ bias path 1.01 kΩ ∥ receivers 2.4 kΩ (5 UL). RS-485 drivers are specified to give at least 1.5 V into 54 Ω.
- PassFail-safe biasIdle A − B = 271 mV, above the 200 mV a receiver needs to hold a defined idle state. Sources: 560 Ω to 5 V and 560 Ω to 0 V at the master; the on-board 20 kΩ pull-up and pull-down of each of the 4 Tiny Controls nodes; 60 Ω of termination. Largest E24 value giving at least 250 mV here: 560 Ω from A to 5 V and from B to 0 V at the master (271 mV).
- PassModbus addressesTstep-087 × 3: addresses 1–3 (DIP switches S4–S7, all off is 1); TIO-0808 × 1: address 17 (switches AD0–AD2, all off is 17). Every slave needs its own address: two on one address answer together and corrupt both replies.
- PassModbus silent intervalAbove 19200 bit/s Modbus fixes t3.5 at 1.75 ms and t1.5 at 0.75 ms rather than scaling them with the rate. The Tstep-087 and TIO-0808 end a frame on a 3 ms gap timer at either rate: send each frame in a single write, and leave at least 5 ms between frames as the Tstep-087 manual advises.
How it is worked out
Each check follows TIA/EIA-485 or a common design rule, and says which. Figures about Tiny Controls devices come from their schematics, firmware and manuals. Where those documents say nothing, the tool assumes a figure and says so in the check.
Length and data rate
TIA/EIA-485 allows a trunk of up to 1200 m. How far a given rate will go depends on cable loss, so designers use a rule of thumb: length in metres times rate in bit/s should stay under 10⁸. It is a guideline, not part of the standard. At 115200 bit/s it gives 868 m. At 9600 bit/s the 1200 m limit comes first.
Lmax = min(1200 m, 10⁸ ÷ rate)
Unit loads
One driver can serve 32 unit loads (UL). One UL is a receiver drawing no more than 1 mA with its input at +12 V and 0.8 mA with it at −7 V, about 12 kΩ. A 1/8 UL receiver lets 256 share a bus. Bias resistors fitted on a node load the bus too, so the tool holds them to the same test and adds the result to the node's count.
bias UL = the largest of (12 − Vrail) ÷ Rup ÷ 1 mA, (Vrail + 7) ÷ Rup ÷ 0.8 mA,
12 ÷ Rdown ÷ 1 mA, 7 ÷ Rdown ÷ 0.8 mA
20 kΩ from A to 3.3 V: (3.3 + 7) ÷ 20 kΩ = 0.515 mA → 0.644 UL
total UL = master + Σ count × (transceiver UL + bias UL) pass ≤ 32 UL
Stubs
A stub is the wire from the trunk to a transceiver. Once its round trip is a noticeable part of an edge's rise time, the reflection from its open end distorts the edge. The usual rule keeps a stub under a tenth of the distance an edge travels while it rises. The fastest driver on the bus sets the limit. With no rise time entered, the tool assumes 10 ns, an edge without slew-rate limiting, which allows about 0.2 m. A slew-limited transceiver has slower edges and allows longer stubs, so enter its datasheet figure if you use one.
Lstub ≤ tr × VF × c ÷ 10 VF = 0.66 (assumed), c = 299 792 458 m/s 10 ns × 0.66 × 299 792 458 m/s ÷ 10 = 0.198 m pass, otherwise warn
Termination
A resistor equal to the cable's impedance, Z0, across A and B at each physical end absorbs an edge instead of sending it back. The reflection coefficient says how much comes back from a mismatched terminator. Terminating one end leaves the other end open, and that end reflects everything, so one end is a warning at best. An unterminated line can still work when it is short enough for its reflections to die out early in each bit.
Γ = (RT − Z0) ÷ (RT + Z0) pass |Γ| ≤ 10 %, warn ≤ 25 %, otherwise fail unterminated: tprop = L ÷ (VF × c) pass 2 × tprop ≤ tr electrically short warn 10 × tprop ≤ bit time ÷ 10 rings out in five round trips fail otherwise
Driver DC load
The driver sees the terminators, the bias path from the supply through the pull-ups, across the pair and down through the pull-downs, and every receiver, all in parallel. RS-485 drivers are specified to give at least 1.5 V into 54 Ω, so the tool warns below that.
Rload = 1 ÷ ( ends ÷ RT + 1 ÷ (Rup,par + Rdown,par) + UL ÷ 12 kΩ ) pass ≥ 54 Ω
Fail-safe bias
Between every request and reply no driver is enabled, and only resistors hold the line. Receivers switch at ±200 mV and can output anything between those thresholds, so noise on an unbiased idle bus reads as false start bits and corrupts the next frame. The tool treats every pull-up on A, including the ones fitted on the nodes, as a source to its own rail, and every pull-down on B as a path to 0 V, then solves the two line voltages with the terminators between them.
GA = Σ 1 ÷ Rup IA = Σ Vrail ÷ Rup GB = Σ 1 ÷ Rdown GT = ends ÷ RT VA = IA ÷ (GA + GT − GT² ÷ (GB + GT)) VB = VA × GT ÷ (GB + GT) Vidle = VA − VB pass ≥ 200 mV One pull-up, one pull-down and the terminators alone: Vidle = V × RT,par ÷ (Rup + RT,par + Rdown) 5 V, 560 Ω, 60 Ω: 5 × 60 ÷ (560 + 60 + 560) = 254 mV
The recommended value is the largest E24 resistor, fitted equally from A to the supply and from B to 0 V at the master, that gives at least 250 mV: the 200 mV threshold plus 25 % for resistor tolerance, supply droop and the receivers' own input current, which the calculation leaves out.
Modbus silent interval
Modbus RTU marks the end of a frame with silence, not a character. Up to 19200 bit/s the gap scales with the rate. Above it the specification fixes the gap, and the TIO-0808 firmware's framing notes quote the same 1.75 ms. The specification counts 11 bits a character, since RTU without parity is meant to use two stop bits. The Tstep-087 and TIO-0808 use 8N1, 10 bits, so 10 is the default here.
t3.5 = 3.5 × bits per character ÷ rate rate up to 19200 bit/s t3.5 = 1.75 ms, t1.5 = 0.75 ms rate above 19200 bit/s 19200 bit/s, 8N1: 3.5 × 10 ÷ 19200 = 1.82 ms
The Tstep-087 and TIO-0808 find the end of a frame with a 3 ms gap timer at either rate. Send each frame in a single write, so it has no pause inside it, and leave at least 5 ms between frames, as the Tstep-087 manual advises.
Worked example
The page opens on a master and four slaves on 40 m of 120 Ω twisted pair at 115200 bit/s: three Tstep-087 drives and a TIO-0808 card, daisy-chained with 0.1 m stubs, 120 Ω at both ends, and 560 Ω bias to 5 V at the master.
- Length: 40 × 115200 = 4.61 × 10⁶, well inside 10⁸. The longest run at this rate is 868 m.
- Unit loads: 1 + 4 × (1 + 0.644) = 7.58 UL of 32.
- Stubs: 0.1 m against a 0.198 m limit.
- Fail-safe bias: 560 Ω to 5 V in parallel with four 20 kΩ to 3.3 V is 504 Ω to 4.83 V. The pull-downs make 504 Ω to 0 V, and the terminators 60 Ω. 4.83 × 60 ÷ (504 + 60 + 504) = 271 mV. Without the nodes' own resistors it would be 254 mV.
- Driver DC load: 60 Ω ∥ 1.01 kΩ ∥ 2.4 kΩ = 55.3 Ω, just above 54 Ω.
- Addresses: the drives on 1, 2 and 3, the card on 17.
- Silent interval: 1.75 ms, fixed above 19200 bit/s.
Wiring an RS-485 bus
Why termination and biasing matter
A cable is a transmission line. An edge that reaches the end of one is reflected unless a resistor equal to the cable's impedance absorbs it, and the reflection rings back and forth across the bits that follow. Terminators belong at the two physical ends of the trunk and nowhere else: every extra one lowers the load the driver sees and the idle voltage the bias can hold. Termination also creates the idle problem, because 60 Ω across the pair pulls A and B together. That is why a terminated bus needs bias resistors of a few hundred ohms, where tens of kilohms hold an unterminated one.
Daisy chain, not star
An RS-485 bus is one line with two ends. Run the cable from device to device, into one pair of terminals and out again, so each stub is only the board trace. A star has as many ends as it has arms, every arm reflects, and two terminators cannot sit at all of them. Where a device must hang off the trunk, keep its stub inside the limit above.
Common reference
RS-485 is differential, but each receiver still needs both lines within −7 V to +12 V of its own 0 V. Devices on separate supplies can sit further apart than that. Carry signal common with the pair, as the Tstep-087 and TIO-0808 manuals ask, rather than trusting the earth between cabinets to do it.
Shielding
Use shielded twisted pair near drives, motors and their cables. Earth the shield at one point, usually the master or the cabinet entry, so interference drains to earth without a loop current flowing along the shield between two earths. If the shield also carries signal common, which the Tiny Controls manuals allow, connect it at every device but still earth it at one point only.
What the tool knows about Tiny Controls devices
| Fact | Tstep-087 | TIO-0808 | Source |
|---|---|---|---|
| Transceiver | ST3485E on 3.3 V | ST3485E on 3.3 V | Board schematics |
| On-board bias | 20 kΩ from A (D+) to 3.3 V, 20 kΩ from B (D−) to 0 V | The same | Board schematics |
| On-board terminator | Jumper JP4 in series with R65 across A and B; R65 is given as 33 Ω | None on the schematic | Board schematics |
| Baud rate | 19200 or 115200 bit/s, DIP switch S8 | 19200 or 115200 bit/s, BAUD switch | Firmware and manuals |
| Character format | 8N1 | 8N1 | Firmware |
| Addresses | 1–16, switches S4–S7 | 17–24, switches AD0–AD2 | Firmware and manuals |
| Transmit direction | Switched by the drive | Switched by the card | Firmware and manuals |
| End of frame | 3 ms gap timer; leave 5 ms between frames | 3 ms gap timer | Firmware and manuals |
| Unit load | Not given. The tool assumes 1 UL for the transceiver and adds 0.644 UL worked out from the bias resistors. | Assumption | |
| Edge rate | Not given. The tool assumes 10 ns unless you enter a figure. | Assumption | |
Assumptions and limits
- Every cable has a velocity factor of 0.66. A faster cable allows slightly longer stubs.
- The master is one transceiver at the start of the trunk, and its bias resistors sit there too.
- Bias and load are DC figures. Cable resistance, receiver input current and any fail-safe circuit inside a transceiver are left out.
- A generic device's rise time is assumed to be 10 ns, and it has no bias resistors of its own.
- The grades for terminator mismatch (10 % and 25 %) and for an unterminated line (five round trips inside a tenth of a bit) are this tool's rules of thumb, not the standard's.
Related products
- Tstep-087-485 stepper driver
- TIO-0808 RS-485 module
- TUSB-485 USB to RS-485 dongle, to make a PC the master