I am trying to connect to an Airmar 200WX and not having much luck finding the /dev mount point of the sensor.

I have the sensor plugged in on boot and dmesg displays the following:

[    1.150836] udevd[99]: starting version 175
[    1.157625] usb 1-1: new full-speed USB device number 2 using musb-hdrc
[    1.276745] usb 1-1: ep0 maxpacket = 8
[    1.277966] usb 1-1: default language 0x0409
[    1.284552] usb 1-1: udev 2, busnum 1, minor = 1
[    1.284575] usb 1-1: New USB device found, idVendor=0403, idProduct=cc60
[    1.284587] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    1.284598] usb 1-1: Product: AIRMAR USB<=>RS485 SerialConverter
[    1.284608] usb 1-1: Manufacturer: FTDI
[    1.284618] usb 1-1: SerialNumber: FTXGZX9O
[    1.285085] usb 1-1: usb_probe_device
[    1.285103] usb 1-1: configuration #1 chosen from 1 choice
[    1.285220] usb 1-1: adding 1-1:1.0 (config #1, interface 0)
[    1.290343] hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
[    1.290390] hub 1-0:1.0: port 1 enable change, status 00000103

So it looks like it is connected. I have read elsewhere that dmesg should display a mount point. It clearly does not and I have tried all the obvious serial connections (/dev/ttyUSB0, /dev/ttyUSB1, /dev/ttyAMA0, /dev/ttyAMA1).

I can also see the device under lsusb:

Bus 001 Device 002: ID 0403:cc60 Future Technology Devices International, Ltd 

Not dismayed by this, I tried writing a udev rule in the hopes it would capture the device as it is connected and mount it for me.


SUBSYSTEM=="tty", ATTRS{idVendor}=="0403",ATTRS{idProduct}=="cc60", ATTRS{serial}=="FTXGZX9O", SYMLINK+="airmar"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403",ATTRS{idProduct}=="cc60", ATTRS{serial}=="FTXGZX9O", MOD="0666", GROUP="ttyusb"

But this did not work either.

I then tried to see if I could use udevadm info -q all to identify more parameters for the device, but I could not find an obvious match in tree /sys/bus/.

I also don't know if there is anything I should do to prepare the Raspberry Pi for this type of serial connection.

Any help would be greatly appreciated!

  • You haven't tried ls /dev with it unplugged and then ls /dev with it plugged in and then comparing the two outputs...? – Patrick Cook Apr 13 '16 at 5:24
  • I feel like there should be a better way to go about it, but yeah, I have. There's no difference. – James Taylor Apr 13 '16 at 5:25
  • Basically my question boils down to: what other steps can I take if the device shows up in dmesg, but isn't mounted properly? – James Taylor Apr 13 '16 at 13:33
  • Do you know that your device is Linux compatible? That’s a weather station multi sensor. In general when you plug a new device into a Linux computer it either is already configured for you with a driver in the default kernel or you may have to do some or a lot more work to make it compatible. – T. M. Jan 13 '19 at 10:20

I suspect the problem might be custom VID/PID assigned to the device preventing the default FTDI driver module from being associated with the device correctly. As far as I know there are two ways of telling the module about the new VID/PID (other than recompiling it):

  • Running modprobe in a udev rule to pass the extra parameters to the module: ...RUN+="/sbin/modprobe -q ftdi-sio product=0xcc60 vendor=0x0403"

  • Adding the new VID/PID to sysfs with a line like echo 0403 cc60 > /sys/bus/usb-serial/drivers/ftdi-sio/new_id. You could do this with udev as well or using a boot script or maybe using an entry in /etc/tmpfiles.d/

FTDI have a Technical Note (TN101) about the first method but I don't think it works since the driver module was updated to use the sysfs method in 2013.


Looks like the device just exposes a USB serial port. You will need to identify which serial dev node i.e. /dev/ttyS0, /dev/ttyS1 etc. The dev nodes are likely to be there all the time regardless of the device being connected.

Here is a post about how to id an active serial port dev node in Linux https://unix.stackexchange.com/questions/125183/how-to-find-which-serial-port-is-in-use

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.