usb-serial adapters

Dec 24, 2023 Last reply: 2 years ago 37 Replies

Are there any usb-serial adapters that folks find particularly satisfactory? I've been using pl2303 and ft232 devices for a while, but wonder if there are other, newer types worth considering. The main requirement is decent open-source compatibility. RTS/CTS would be nice but not really necessary.



Attrition has taken the last of my spares and if there's something better it would be good to know.



Thanks for reading and any guidance.



bob prohaska


I mainly use CP210x and FT232R. Some CH340 sneaked into my electronic sediments and they appear identical and (at least the first generation) cannot be changed to e.g. have own serial numbers in their USB information.

FT232R comes with a random serial number, unless it is a fake. The FT232 tool allows some interesting configurations like inverting some lines, the chip has a clock output, some lines can be abused for bit wiggling, but the presence of those fakes on the market sucks.

CP2102 comes with an empty serial number, but it can be changed in their EEPROM.

I gave away all but one papoy using CH340, so it now is an individual here.

Related:

formatting link

Crivens I prefer to keep an old laptop with serial ports and cd/dvd drive.

... and what does one use RS232/RS485 for nowadays? I did use it a while ago for driving a display at a distance but I2C with some long wire drivers is now much easier in terms of availability of hardware and so on. I've dropped RS232 sort of serial completely.

I do a lot of embedded systems work from macOS, Linux, and Windows hosts, including Raspberry Pis.

Over the years the FTDI adapters have *always* worked. I recently tried a modern 4 wire 3v3 unit on Windows and it failed. The unit used a now obsolete Prolific chip. I don't have the time or inclination to track down the exact chip in use. Quality is cheaper in the long term, especially if I am charging for my time.

Stephen

The last time I had serial as opposed to USB was a legacy printer that I drove from some networked box that had parallel and serial on it.

Before that it was a modem back in the noughties, till ADSL turned up..

In article (Dans l'article) <um9b57$2ivcm$ snipped-for-privacy@dont-email.me, The Natural Philosopher snipped-for-privacy@invalid.invalid wrote (écrivait) :

USB = universal SERIAL bus...

Embedded programming.

OK, to be pedantic, it's more often at 5V or 3V3 logic levels than RS-232, but if we just think of it as serial, it's widespread.

David

Not much use for modern stuff, where it's all 'TTL' RS232, ie 5v or 3.3v voltage levels, rather than +/-12V as you get on a DB9.

FT23x would be my top recommendation, since they're bulletproof. CP210x is fine MCPxxx is fine too PL2303 is ok CH340 is cheap'n'nasty

And that's assuming they're genuine and not knockoffs.

formatting link
some more info

Theo

You just need a level converter like this circuit, which I can confirm works well for interfacing a RPi Zero's UART to a PC RS-232 serial port that's a few decades its senior:

formatting link
It's equally handy for hooking up 5v-only USB adapters to the Pis, which use 3.3v.

Good to know. I take it that includes on Linux, where I always worry about driver problems for more obscure USB devices? Hence I sought out a FT23x-based adapter when I recently bought a second one.

USB = Universal serial BUS.

As opposed to RS232 etc.

But this thread is about serial adapters which allow one to use RS232 from a USB connector. I2C is serial as well but when someone says just 'serial' it's usually taken to mean RS232/RS485.

Is it really? I have a number of RPis and a couple of Beaglebone Blacks but, as I said earlier, I stopped using RS-232 serial quite a while ago. It was just getting harder and harder to actually find hardware that used it. For example I did use it for a while to drive a remote LCD display but the RS-232 capable backpacks are now difficult to find whereas I2C backpacks are plentiful and cheap as chips.

I2C bus is also addressable so one can have lots of devices on a single bus.

Many embedded widgets, including RPi 5 by default and other RPis if you configure it so, have a TTL serial port lurking on the board somewhere, by which you can get the boot messages and maybe a recovery console. It is often not labelled, but the likes of OpenWRT have details of how to find them for a lot of home router hardware.

This is also Modbus, a serial port using RS485 differential signalling, which is very common for talking to industrial stuff.

Theo

I'm using usb-serial adapters to let one Pi connect to the serial console of another. The scheme is to ssh from a workstation to the Pi holding the USB-serial adapter and keeping a console window open on the Pi at the serial end. Up to now I've used a mix of pl2303 and ft232 adapters. A couple of years ago the ft232's seemed to hold connections better than the pl2303's, but lately I've been seeing overnight disconnects of the ssh sessions on the ft232 setups. The pl2303 links seem relatively unchanged. These are just 3 wire connections, TX, RX and GND.

This is with FreeBSD, not RasPiOS, but I wondered if there were alternatives preferred within the Raspberry Pi community. Guess not.

It looks like that page hasn't been updated since 2021. Absent more recent news I'll probably stick with pl2303. They're cheap and for the moment better-behaved than ft232.

Thanks for writing!

bob prohaska

But that's already there, you don't need a USB to RS232 adapter to use it. ... or are you saying that you have another RPi that you're using to talk to it?

Yes, I've sort of looked at that because it's closely related to CANbus, however will a standard USB to 'serial' adapter talk to it?

You use a USB to TTL UART adapter to talk to it from a machine with USB. That could be a Pi or your laptop, depending on what you want to do.

One use for a Pi Zero or similar is as a simple debug tool to talk to random devices via software driving GPIO - might be UART, I2C or JTAG - and then either plugged into your PC as a USB gadget (network) device, or connected via wifi. In that case the Pi is being your (unconventional) USB to UART (or wifi to UART) adapter.

You need one with an RS485 rather than an RS232 transceiver, but those are easily available.

The Modbus-RTU framing is a nightmare, depending of timing between incoming characters.

Avoid it if ever possible.

I was forced to make code for Modbus-RTU, and during testing it became clear that none of the PC Modbus programs had timings compliant with the Modbus specifications.

Hmm add breakout wiring and a selection of connectors (maybe a DB25 and adaptors) and you have a universal serial interface for the universal serial bus. Throw in a little external circuitry and you could even handle

12v and 20ma current loop.

If you have a 3D printer, that serial port is also a useful way to connect an OctoPrint instance to it. I have a CM4 (in a suitable carrier) dangling off the motherboard in my printer by a 4-wire cable that carries 5V power and the two serial lines. It's much more convenient to send a file to OctoPrint and tell it to start printing than to have to move the printer's SD card over to your computer, write a file to it, put it back in the printer, and select the file on the printer's control panel to begin printing.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required