RS485 Communication Issue with MAX485 – Unable to Connect 28–32 Sensor Nodes

in a bus, bodes are connected in parallel. the more nodes you have the worse it gets. those pullup and pulldown resistors are just one example how things that look innocent at first, escalate when numbers grow.
same is with TVS diodes. when things are good, differential pair is operating at some 2.5V difference. at that voltage SMBJ36CA has capacitance of 1000-1100pF. when you add 32 of them in parallel, you get capacitive load of 33nF. that is basically a short circuit for changing signals. just look at the datasheet for signal degradation when the capacitive load is only 50pF. the sharp square edges are no more... which is no surprise for something advertised as "Low-Power, Slew-Rate-Limited".

so either you are to follow the datasheet to the letter (in this case no biasing resistors or TVS) or you need to be careful what you add.

if you are using biasing resistors (some may find it handy for diagnostics if bus is inactive and only tool at hand is DMM), make them really large and added once or twice, not 32 times.
if you are using TVS, use one specifically designed for this application. and be mindful of baud rate. test things slowly, then gradually increase baud rate till you start experiencing problems.
115kbps is a tall order on 100-150m even when using proper bus cable which you are not.
 

Thread Starter

akash.kumar123

Joined Jul 20, 2026
26
Found this at a company that makes RS485 nodes.
I am using MAX485 transceivers for RS-485 communication between ATmega328PB sensor nodes and an ATmega64A main controller.

When I connect 25 sensor nodes, I fail to receive data from 3–4 sensors. However, with 20–21 nodes, communication works properly. The total cable length for 25 nodes is approximately 78 m using CAT6 cable.

Could this issue be caused by bus loading, termination, bias resistors, baud rate or length of cat6 wire
 
RS485 drivers are meant to handle a 60Ω load, because a 120Ω line terminated at both ends is 60Ω.

You appear to have attempted distributed termination, that does work at low baud rates, with resistors equal to the characteristic impedance divided by twice the number of nodes, but not at 115k baud. 115 k baud needs 120Ω at each end.

by the way, with 2.2k pull ups on one line and 2.2k pull downs on the other, the driver sees 4.4k, not 2.2k.
those are not terminators, and i doubt he calculated anything.
terminating resistor in his schematics is R23 which can be switched on/off.
in normal setup only two would be used at the end of the bus which is equivalent of 60 ohms.
so lets assume that part if done as intended,
the problem is still that few dozens of R26 are in parallel, as are few dozens of R36 and few dozens of high capacitance TVS.
and the bus is operated at rate that exceeds recommendation for the lengths covered. and the cable is not even proper bus cable. for all we know it is UTP and RJ45 connections are not very good. they are meant for point to point connections, not daisy chaining 32 segments.
so it is not one issue, it is many...

removing all the unnecessary parts (R26, R36, D10) will dramatically change situation and this will likely work fine with all nodes connected and at at 115kbps.

1793196637791.png
 
Last edited:
Listen to what we are all saying. Remove the bias resistors from all the sensor boards. Remove all the TVS diodes. Apply terminating resistors at the ends only.
Reduce the baud to 9600 and test.
removing all the unnecessary parts (R26, R36, D10) will dramatically change situation and this will likely work fine with all nodes connected and at at 115kbps.
what part of this is not clear?

you have already acknowledged it, just need to act on it:
1793198080096.png
 
Last edited:
I looked in the data sheet and can't find any comments for the two 2.2k resistors. There should be, but it might just be me.
The A and B inputs might output +/-1uA. (from data sheet) This gives me the idea that 2.2meg resistor will pull A high and B low. Certainly, 220k will or 22k. Assuming there are resistors on every board.
I would cut then out for a test, then replace them with 10x or 100x higher a value. On the noteds not the master.
I think 2K2 is fine on the master and 22k to 220k on each node will be fine.
1793205051446.png
If you want a simple way to test this:
Connect the master, a very long wire, and one note. Then solder a 100 ohm resistor across R26 and R36 on the node. This will simulate adding 20 nodes onto the bus. Can you look at the bus with a scope. If adding 100 ohms drops the signal to 1/2 (at the node) then we probably know the answer.
 

wraujr

Joined Jun 28, 2022
267
As others mentioned, terminate with 120ohm at each end of the daisy chain.
Minimize stub length.
Must be daisy-chain topology, no starring or branches.
Remove SMBJ36CA as this is wrong.

1793226215826.png

This is fine, although MAX485 already has floating input protection.
1793226388135.png

If you must have TVS protection
You must use an asymmetrical dual-TVS array designed specifically for RS-485, such as the industry-standard SM712. It integrates two TVS diodes in a single package with reverse standoff voltagesprecisely matched to the RS-485 spec.
It must be used on every node in your daisy chain
1793226609292.png
 
Top