Question, wiring of RS485 and use of virtual serial ports/USB

Hi All, Hopefully somebody can help, I am new to coms.

If I am testing a RS485 device ( say battery flowmeter, 2 wire ) and am trying check that I am receiving packets, what are the best tools to do this. I have a RS485 to USB connector with a virtual port driver however I have heard that some devices don’t like this and require a laptop with dedicated serial port. Also connecting the RS485 wires, one end has the standard RXD+ and RXD- however the device contains UpA,DownA, UpB and Down B.

Any helpful links or answers would be appreciated.


Getting any serial interface to run is a project. It is NEVER plug and play, unless a common vendor supplies both ends, which is rarely the case. Be prepared for lots of experimentation. (it’s why I like Ethernet protocols, as opposed to protocols using the 232/485 transport layer.)

UpA, DownA, UpG and DownB (characteristic of 4 wire RS-485) is new terminolgoy to me. I wonder is this is the vendor’s first effort at communications?

4 wire RS-485 is for full duplex operation, but 99% of applications do not have the software application level to support full duplex (two devices can talk and listen simultaneously). If one device is half duplex (2 wire RS-485), then you need to jumper the 4-wire end to make it 2-wire.

Most of the time, (+) is jumpered to (+) and (-) jumpered to (-) to create half duplex (only device talks at a time, all others listen).

I would try

  • UpA jumpered to UpB and
  • DownA jumpered to DownB

Although labels like A and B have (+) and (-) polarities, labeling varies from vendor to vendor, there is no “standard”.

So make your jumpering, then try to connect one end to the other. Hopefully one end has blinkie LEDs to indicate activity. If there is no activity then try swapping the lines on one end. Connecting the driver lines backwards will not damage the drivers, but they won’t work. This is a very common problem, even when both ends are labeled A/B or Rx-/Tx-, that is, the mismatch between polarity even though the labeling is common.

2-wire is a misnomer. All 2-wire RS-485 should be 3 wire - 2 driver lines plus a signal reference ground. But many vendors fail to provide a signal ground and usually assume that the case ground will work. Sometimes it does, sometimes it doesn’t or sometimes it creates a ground loop that stops all communication. So if there’s a signal ground connect it and use it.

RS-485 should be terminated at its ends (for a multidrop network at the end nodes, for 2 devices, at each device) with a resistor across the driver terminals, typically 120 ohms. Experience shows that short distance, low baud rate networks will run without termination resistance, but it violates good practice.

The drivers should biased at one point with a bias resistor to +Vcc and another to signal ground. Access to +Vcc and signal ground can be problematic, though.

The serial settings on both devices need to be identical (baud rate, word bits, parity, stop bits).

I use USB/485 converters that use the FTDI chipset, because FTDI registers with Microsoft and the drivers always install in Windows. The cheap knock-offs might or might not work well. My time is worth the price of an FTDI chipset. Caveat emptor.

With an FTDI chipset, it is the protocol that notices whether there is a native RS-232 COM port or not because of timing issues and packet integrity. If you get intermittent comm with lots of errors, it might be the absence of an integral RS-232 port, or it could just be lousy, poorly tested application software, which is far more common than anything else.

There a couple good guides to implementing RS-485:

B+B SmartWorx RS-422-and-RS-485-Applications-eBook/RS422-RS485-Application-Guide-Ebook at

or Samson’s “Serial Data Transmission” at

(When the URL’s change over time, search for the title)

Carl thank you. I appreciate your time spent responding above.

Transporter Detect (CD) this control sign is utilized when a modem advises a PC that it has distinguished a bearer that the PC can use for information transmission. Get Data (RXD) this line is utilized for information transmission between two sources.