ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

Since both the arbotix and create are using FTDI chips, id suggest using a udev rule to assign a new dev entry for each: /dev/arbotix /dev/create or something similar based on the FTDI serial #s.

Here's what I use to differentiate my create from my arduino (you'll have to change this, but you can use the basics for reference):

SUBSYSTEM=="tty", KERNEL=="ttyUSB[0-9]*", ATTRS{manufacturer}=="FTDI", ATTRS{product}=="FT232R USB UART", SYMLINK+="arduino"

SUBSYSTEM=="tty", KERNEL=="ttyUSB[0-9]*", ATTRS{manufacturer}=="FTDI", ATTRS{product}=="US232R", SYMLINK+="create"

This gives me /dev/create and /dev/arduino dev entries, even thos they use similar FTDI ICs. I was lucky enough that their product descriptions varried, you may find that they are the same product but have different serials.

Since both the arbotix and create are using FTDI chips, id suggest using a udev rule to assign a new dev entry for each: /dev/arbotix /dev/create or something similar based on the FTDI serial #s.

Here's what I use to differentiate my create from my arduino (you'll have to change this, but you can use the basics for reference):

SUBSYSTEM=="tty", KERNEL=="ttyUSB[0-9]*", ATTRS{manufacturer}=="FTDI", ATTRS{product}=="FT232R USB UART", SYMLINK+="arduino"

SUBSYSTEM=="tty", KERNEL=="ttyUSB[0-9]*", ATTRS{manufacturer}=="FTDI", ATTRS{product}=="US232R", SYMLINK+="create"

This gives me /dev/create and /dev/arduino dev entries, even thos they use similar FTDI ICs. I was lucky enough that their product descriptions varried, you may find that they are the same product but have different serials.

Update: If you want to differentiate by their ID_SERIAL, it should be something like this:

SUBSYSTEM=="tty", KERNEL=="ttyUSB[0-9]*", 
ENV{ID_VENDOR}=="FTDI", ENV{ID_SERIAL}=="FTDI_FT232R_USB_UART_A400C1Q6", 
SYMLINK+="create" 

SUBSYSTEM=="tty", KERNEL=="ttyUSB[0-9]*", 
ENV{ID_VENDOR}=="FTDI", ENV{ID_SERIAL}=="FTDI_FT232R_USB_UART_A2001nbT", 
SYMLINK+="arbotix"

Stick that in a text file called 70-myrobot.rules or something similar and stick it /etc/udev/rules.d/

Note: This is just an example and in reality you'll actually have to figure out which serial is attached to which device. Start with one being unplugged, use udevadm to match the serial. Then fix the rule accordingly. The one I provided you has a 50/50 shot of being correct ;-)

Since both the arbotix and create are using FTDI chips, id I'd suggest using a udev rule to assign a new dev entry for each: /dev/arbotix /dev/create or something similar based on the FTDI serial #s.

Here's what I use to differentiate my create from my arduino (you'll have to change this, but you can use the basics for reference):

SUBSYSTEM=="tty", KERNEL=="ttyUSB[0-9]*", ATTRS{manufacturer}=="FTDI", ATTRS{product}=="FT232R USB UART", SYMLINK+="arduino"

SUBSYSTEM=="tty", KERNEL=="ttyUSB[0-9]*", ATTRS{manufacturer}=="FTDI", ATTRS{product}=="US232R", SYMLINK+="create"

This gives me /dev/create and /dev/arduino dev entries, even thos though they use similar FTDI ICs. I was lucky enough that their product descriptions varried, you may find that they are the same product but have different serials.

Update: If you want to differentiate by their ID_SERIAL, it should be something like this:

SUBSYSTEM=="tty", KERNEL=="ttyUSB[0-9]*", 
ENV{ID_VENDOR}=="FTDI", ENV{ID_SERIAL}=="FTDI_FT232R_USB_UART_A400C1Q6", 
SYMLINK+="create" 

SUBSYSTEM=="tty", KERNEL=="ttyUSB[0-9]*", 
ENV{ID_VENDOR}=="FTDI", ENV{ID_SERIAL}=="FTDI_FT232R_USB_UART_A2001nbT", 
SYMLINK+="arbotix"

Stick that in a text file called 70-myrobot.rules or something similar and stick throw it /etc/udev/rules.d/

Note: This is just an example and in reality you'll actually have to figure out which serial is attached to which device. Start with one being unplugged, use udevadm to match the serial. Then fix the rule accordingly. The one I provided you has a 50/50 shot of being correct ;-)