Unreliable USB Serial on Groov RIO + Node Red

I am getting unreliable serial data at low baud rates using USB-Serial adaptor connected to Groov Rio with Node red.

I have 1 adaptor connected to Groov, and 1 connected to laptop.

Generally, the lower the baud, the more error there is. These tests send the same message, same direction, only change is baud.

115200: S: testing R: testing
57600: S: testing R: testing
38400: S: testing R: testing
19200: S: testing R: tesving (or other single character error)
9600: S testing R: (garbage and framing error)

this is same response if I use screen on the groov over ssh.

Looping both back into laptop works perfectly for all baud rates.

Unfortunately I need to match existing system of 8N1 which is not working at all.

Is there anything else I can do here? Should I get a scope out and see what is going on? Seems unnecessary for such a simple thing.

side question, what is difference between /dev/ttyUSB0 and /dev/ttySer0? Both seem to work (at 115200 at least)

/dev/ttyUSB0 and /dev/ttySer0 are the same. /dev/ttySer0 is a symbolic link to /dev/ttyUSB0. When a device gets connected to the USB port a UDEV rule automatically creates a symbolic link.

Here is a link on how a udev rule is created for a serial usb device: How udev rules can help us to recognize a usb-to-serial device over /dev/tty interface - DEV Community . The built in udev rule is probably something similar but keeps consistent naming for Codesys and so forth.

I have tried two adaptors that exhibit the same error response.

These same two have been in my bag for years and never given any issue.

I have just bought a “Gearmo” branded adaptor as listed in the manual and it should be here in a few days. Not hopeful however.

As for the problems with the serial communication it could be a number of things. The fact that the higher baud rates work says that the timing between the two devices are within tolerance. Clock speed differences can cause some errors with RS232 or 485.

Have you tried a different cable? How is the cable wired? is it a straight through cable or a Null Modem cable. If you have access to an oscilloscope you can check for signal integrity and timing. It could be some funky issues with signal grounding as well. Is the RIO power supply grounded?

standard serial cable with null model adapter between. all of the typical serial issues I would expect to be worse at high speed… power supply is grounded and connected to same outlet as the laptop.

I guess i will scope the communication while waiting for the “approved” adaptor

I have a 9600 baud power meter hooked up for over a year and have never seen any issues.
I recall testing some 300 baud gear that a customer supplied way back in the early RIO days and never had a hint of a problem there…

Also this is the first time hearing about this sort of problem. I will ask around some, but suspect that its something going on locally as @reevesjj suggests vs an issue with Node-RED or RIO.

I have to admit, it sounds odd that it works on the laptop, but not on the RIO, but suspect a ground loop is offsetting things.

It is sort of funny, I send “testing” 5 times and receive:

tesving
tesving
vesting
vesving
tesviog

I will get a scope tomorrow

Have you looked at your flow control settings and make sure they match on both ends?

1 Like

not a flow control issue. disable (auto? on node) on both ends

Unsurprisingly there is big variation between adaptors. I have 5 of various origins and only 1 works what I would consider as “good”

Good is a white no-name with a 6 inch usb cable type
Bad is a “gearmo” FTDI-LED

good at 9600, nice and square -5v/+5v

2 Likes

bad at 9600:
This would show garbled data because that peak to +5 volts is very short and sometimes missed

PL2303 based devices don’t work at all since they have -11v/+2v signal

I expect these deficiencies are exacerbated by going adaptor-adaptor, instead of typical usage of connecting to a piece of equipment. It could be they are relying on the other receiver to help pull signal up to +5v.

I probably wouldn’t notice this if I installed directly instead of trying to setup a simulation at the desk first…

2 Likes

Yeah the RS232 standard +3 to +15 volts is a 0 (mark) and -3 to -15 volts is a 1 (space): You were barely out of spec on a pretty generous voltage range. It looks like there is an issue with how the PL2303 devices was trying to bias it’s circuit to common. I am willing to bet it has something with the charge pump circuit in the adapters expecting a real ground somewhere. I wander if you bind the pin 5 of the DB9 cable to chassis ground if it would improve things.

just retested with a second “gearmo” brand, connected to a blueheat serial server and it failed

don’t know what to think now… Maybe I will just avoid all this and use the serial server with node-red over tcp.

I tested 6 different usb adaptors I gathered, various makes and styles, this is the best. don’t bother with anything from amazon.

aside from industrial gear which also works well obviously

So, just to be clear, this got your low baud rate device up and running?