TIP: How to stop CQRlog from switching rig-control when USB-tty chips are the same.

4 posts / 0 new
Last post
on5hb's picture
TIP: How to stop CQRlog from switching rig-control when USB-tty chips are the same.

Hi there,

I have been fighting 2 tranceivers, the Icom IC-7300 and the Yeasu FT991A, they use the same USB-UART and as such they switch /dev/ttyUSBx all the time.

So create a file like this; nano /etc/udev/rules.d/40-ttyusb.rules

SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="IC-7300 03011067", SYMLINK+="icom"
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea70", ATTRS{serial}=="00E3DAB0", SYMLINK+="yeasu"

Insert something like above and you find the exact parameters with this command:

udevadm info --name=/dev/ttyUSB0

It will show you:

ID_SERIAL_SHORT=IC-7300_03011067 => {serial}
ID_VENDOR_ID=10c4 => {idVendor}
ID_MODEL_ID=ea60 => {idProduct}

As seen above, the symbolic link is made like /dev/icom and that is what you put in rt/tx control instead of /dev/ttyUSB0

No matter when, where or later you plug the radio, it will know the device and create the symlink.

You can see it being created buy running: ls /dev/*

It should show the symlink name, in my case icom and yeasu. If it doesn't show them, reboot and check again.

Hopefully it helps others as I was gowing nuts over switching tranceivers :-)

Bas - ON5HB.

TIP: How to stop CQRlog from switching rig-control when USB-tty

Thanks for info, Bas!

Udev symlink is the "good old way" to separate devices and catch them no matter to what port they are plugged.
I have symlink /dev/icom7300 for my rig.

If you use new Hamlib (4.0 or up) you can also use long device names.
You will find them from /dev/serial/by-id
My icom shows up there as /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_IC-7300_03003483-if00-port0

That does not need any symlinking to separate devices from /dev/serial/by-id


on5hb's picture
If I take your way of doing

If I take your way of doing it.....it shows...

Hi Saku,

Well it presents the same problem, my devices list as:

bas@workstation:~/Bureaublad$ ls /dev/serial/by-id

How do you know what is what? This is 2 tranceivers. But they list as 3.....

I find my way better, as you can also backup the rule and it works again.


Greetings, Bas. ON5HB

TIP: How to stop CQRlog from switching rig-control when USB-tty

Hi Bas!
Form your listing you can clearly see what is icom rig. Bridge controller is different type (CP2102) and it even identifies itself as IC-7300.

With Yaesu you should consult your rig manual to see what are the two ports there. As you can see there are interface 1 (if00) and interface 2 (if01).
With quick Googling it seems that first port (-if00-) could be the CAT port. What is he other port should be found from manual.

So the main purpose, to clear out what port belongs to what rig can be very easily seen. Just like with symlinking, but without doing any changes to linux udev setup and without need of backup that.

But if you see symlinking easier to understand and use so do it.

I also use symlinking but it is from so far from past that there were not /dev/serial/by-in change and I have been too lazy to change that. (Do not touch working system!)