I ordered a USB to TTL Cable to control two Sabertooth 2×25 motor controllers as part of the Robot project.
I plugged it into a Windows PC, and used ‘RoboRealm’ to control the motors via the COM port that appeared. Worked perfectly. Motors, controller, USB to TTL and virtual COM port – excellent.
I then plug the cable into my Linux board and guess what, no driver claims it and I have every standard USB Serial module compiled. AVIT Research’s website also gives no help on Linux support.
The device shows up under lsusb as:
Bus 002 Device 002: ID 10c4:818b Cygnal Integrated Products, Inc.
The solution was luckily simple. After prising open the cable and doing some research, the ‘cp2101′ driver is the one that we want. I’m using 2.6.27.6 but this should work for any cp2101 version.
From your kernel source directory, edit drivers/usb/serial/cp2101.c and within the VID/PID section, add:
and if you prefer, here’s the diff:
The driver now claims the device and presents a /dev/ttyUSB0 which I can send bytes to with outb()
*phew*. That was easy.
Tags: 10c4:818b, 2.6.27.6, AVIT Research, com port, cp2101, cygnal integrated products, diff, Linux, Linux robot, lsusb, motor controllers, roborealm, Robot, sabertooth, usb to serial, usb to ttl, virtual com port