USB Serial Port Adapters
From MobileRobots Research and Academic Customer Support
A USB-serial adapter allows a computer to communicate over an RS-232 serial connection through its USB port.
Since many such devices and/or their operating system drivers can be unreliable at transmitting data to/from the robot, SICK laser, or other devices correctly, we recommend always using a computer's built in serial port instead if possible. A USB-serial port should never be used to write to the controller's flash memory.
Contents |
Specifying Serial Port Device Name
Note that a USB serial device will appear in the operating system under a new device name. For example in Linux, most will appear as /dev/ttyUSB0. On Windows it may be a high COM number, such as COM6. To use these devices with ARIA, use the -robotPort command line argument to set it.
For example, to run ARIA's 'demo' program on Linux with the serial port /dev/ttyUSB0, run:
./demo -robotPort /dev/ttyUSB0
or
./demo -rp /dev/ttyUSB0
To run ARIA's 'demo' program on Windows with the serial port COM6, run:
demo.exe -robotPort COM6
or
demo.exe -rp COM6
To permanently set the command line argument as a default, set the port name in your robot's parameter file, edit /etc/Aria.args, or set the ARIAARGS system environment variable to include the argument and value (e.g. -robotPort /dev/ttyUSB0).
USB device permissions on Linux
On Linux, creation of the USB devices in /dev are managed by udev, including setting access permissions. For more on configuring udev, see Linux udev USB Device Permissions Configuration.
Symptoms of Communications Errors in ARIA
If there are data transmission problems with the robot, ARIA will print warnings similar to:
ArRobotPacketReceiver::receivePacket: bad packet, bad checksum
If there are data transmission problems with the SICK laser, ARIA will print warnings similar to:
ArSickPacketReceiver::receivePacket: bad packet, bad checksum ArSickPacketReceiver::receivePacket: wrong address (0x9 instead of 0x80)
or
ArLMS2xxPacketReceiver::receivePacket: bad packet, bad checksum ArLMS2xxPacketReceiver::receivePacket: wrong address (0x9 instead of 0x80)
You may also receive similar errors if there is an IRQ conflict -- see Serial Port Configuration.
Device Reports
Other customers have reported success or problems using the following devices. MobileRobots does not support or endorse any particular device. If you have trouble with your device, try locating updated drivers for it, or try a different device. Any device on this list may in fact work for you on your operating system, or with a different version of the device or its drivers.
If you have tried a USB serial port adapter, please let other users know whether it worked for you or not -- either by adding to this wiki or via the aria-users mailing list.
| Manufacturer | Model name or part number | Internal Chipset (if known) | Linux Driver | Reported to work in Linux? | Windows driver | Reported to work in Windows? | Notes |
|---|---|---|---|---|---|---|---|
| USBGEAR | U232-P9AP | Prolific "PL2303"? | ? | Probably | ? | Unknown | Also reported t work in Mac OSX |
| Edgeport or Digi Intl. | Edgeport/2c | ? | ? | Yes | ? | ? | |
| Keyspan | USA-49WLC | ? | ? | No? | ? | No? | |
| Aten | UC-232A | Prolific PL2303 | pl2303 | Yes | ATEN | Yes | |
| Bandridge | CPL421 | ? | ? | ? | ? | No | |
| Gearmo | FT4232HL 4 Port Professional Adapter | FTDI | Yes | Probably | Yes | Yes, if you reduce "latency timer" to 8ms in advanced device properties |
