I have an RS-485 input / output from a solar charge controller (SCC) and would like to read the output in two locations, while maintaining its input from one, or hopefully both of those locations (see pic below) everything will be contained within less than a metre square, so distances are not an issue:

Here's the setup - I have an Epever Tracer-BN solar charge controller in place and it has an RJ45 connector on the bottom, which gives data output and accepts some inputs to allow configuration and make read requests of the SSC. There is a proprietary bit of kit to display the output and allow me to change some setting on the SSC, but I would also like to be able to perform the same functions on a mobile app, so need to duplicate the signal to a Raspberry Pi.

basic setup

The SSC only has one connector, and the supplied cable for that is an RS-485 with RJ45 connectors on it that looks like this:

SCC RS485 cable

I can connect to the Raspberry Pi using pins 3&5 or 4&6 into an adapter (link). Can I split the cable by connecting the remaining pair (4&6 or 3&5) into the proprietary monitor, or is this likely to cause problems, for instance because the signal will be... weaker? in some way broken?

I get that this is not a set of hardware that many people are probably intimately familiar with, but I am entirely unfamiliar with any of this stuff and I reckon that anyone who has a good working knowledge of the way these cables and information happens will be able to make a better judgement call / best guess than I can! I'm worried that there might be general problems associated with splitting a cable in the way I suggest.

I am particularly concerned because all the hardware I can find on the internet to do this apparently simple job is exorbitantly expensive, which makes me think that actually it is a very complex thing to do and I must be missing something. All the similar projects for specifically solar setups do not split the RS485 cable so again, I worry that there may be some reason why doing so is impossible.

Any thoughts or advice would be extremely welcome! The basic question I am asking is "do you think this will work, or do you foresee some potential problems I will encounter trying to split this cable?"


migrated from serverfault.com Dec 19 '18 at 11:38

This question came from our site for system and network administrators.

  • \$\begingroup\$ This is effectively unanswerable without knowing the behavior of the software. You can spy on unsolicited or reply data sent to the other device, but to request your own replies you would need to not collide with requests from that so you would need to predict it's behavior, or learn if the occasional collision can be tolerated. \$\endgroup\$ – Chris Stratton Dec 19 '18 at 14:36
  • \$\begingroup\$ I had not considered the software at all... so you mean it may work, but it may be that if I go to the shed and use the MT50 monitor to send changes to the charge controller, the data feed to the Raspberry Pi may be interrupted and vice versa? If that is the case then I may as well install a switch... \$\endgroup\$ – High Plains Grifter Dec 23 '18 at 21:37

I wonder if you could try something like this ethernet splitter to split the signal, though as you say it will probably halve the output voltages, and depending on the requirements of your instruments that might cause issues. These cost ones of dollars, so you might as well give it a shot! Apologies if the proprietary monitor doesn't take a standard RJ-45 cable...

Ethernet Splitter

  • \$\begingroup\$ I'm hesitant to use an ethernet splitter in case there are impedance matching passives in there that are inappropriate for the OP's case. Do you have a link to an example device? \$\endgroup\$ – Reinderien Dec 19 '18 at 14:18
  • 1
    \$\begingroup\$ Ethernet can't be split like that unless different pairs are routed to each side. And this would not "halve the output voltages" \$\endgroup\$ – Chris Stratton Dec 19 '18 at 14:38

RS-485 is meant to be divided between nodes in a daisy-chained fashion with no stubs. Effectively, looking at your diagram, one of those three arrows needs to be shortened to a zero or near-zero length, and then you will have a daisy chain.

Another requirement is termination. Check on your adapters, because "good" adapters will have selectable termination. If it's on, resistors will be connected to match the impedance of the cable at the end of the chain, and if it's off, the resistors will be disconnected so that the device can exist in the middle of the chain.

If you fail to do the two things above, the maximum speed of your transmission will be affected, and you will get signal reflections. The degree to which those affect your signal will vary based on length, bit rate, and the quality of your RS-485 transceivers.

@ChrisStratton's advice above also needs to be taken into account. If the protocol is usually of a uni-directional (SSC to listeners) nature, it should be relatively safe to add multiple listeners. If the protocol is strongly bi-directional, and if the software has no tolerance for collision avoidance or collision recovery, then your data will be corrupt no matter how well the hardware side of the line is set up.

  • \$\begingroup\$ are you saying that I should go "through" (e.g.) the Raspberry Pi, producing a new signal from the Pi that can be supplied to the monitor? \$\endgroup\$ – High Plains Grifter Dec 19 '18 at 16:07
  • \$\begingroup\$ If what you're asking is whether the Pi needs two transceivers, then no. You should be able to get away with one transceiver where each of its terminal block inputs has two wires in it - going in both directions of the daisy chain. \$\endgroup\$ – Reinderien Dec 19 '18 at 16:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.