02/15/15
This documentation is intended to guide an Amateur Radio operator interested in High Frequency (HF) digital modes to get a US Interface Navigator device working with Linux.
Index:
NOTE:
Historical:
US Interface's Navigator's serial ports have unique identifiers that initially
made them not recognized by the Linux kernel. I personally worked with the
Linux kernel people and got support added years ago. If you'd like to
understand what was done to add support, read on. If not, you can skip this
section and go to the Checking the ALSA sound system
section.
Though you can manually associate one USB device with a given kernel module without
changes, you cannot specify more than one device at a time. A major bummer. To resolve this and recognize all six serial ports, We have to make a simple modification to the driver to recognize these new device IDs.
You will need to install the distro's kernel SRPM sources, expand and apply the distribution kernel patches, add the following lines and compile the sources:
Ok, the hard part is done! Let's move the drivers over to the proper place
You can also configure Linux to always name these serial ports the same way, every time. Read more about Determinstic Serial ports with Linux in my HamPacket documentation set.
Now that the Navigator is connected and it's serial ports found, let's check
on the sound system. Run the command cat /proc/asound/cards and make
sure it's output includes the Burr-Brown device:
The example above shows three devices on my system: device#0: the built-in Intel AC97 sound card, device#1: an Intel winmodem device, and device#2: the Navigator's Burr Brown USB sound system. Looks good! Now let's make sure we see the required playback and capture subsystems:
Before you start, I *highly* recommend that you turn up ALL the levels on both
the radio, the Navigator, and Fldigi to make sure you're getting audio input. If I would have done this, I would have saved myself 20 hours of useless troubleshooting! I recommend you do a few things. Turn ALL the knobs on the US Interface Navigator to 100%. On Fldigi, on the bottom left next to the WaterFall(WF) / FFT / SIG button, set the Upper Signal level to -20db and the signal range to 85 db. Finally, set the audio output level from the radio to be over-driven. For example, on my Yaesu FT-950, hold down the "AGC" button until AGC is off. Then turn the "AF gain" knob to 100%. Again, this is only for testing and We'll set the level properly in a moment.
With the /dev/ttyUSB* device numbers written down from above, start up Fldigi and let's configure it.
Notice the overdriven "yellow" waterfall.
That's good and we now know that the radio's output is making it into the
Navigator and being properly digitized.
Begin to fix the levels by re-enabling the AGC feature on your radio. On the FT-960, press the AGC button once (AUTO-Slow) and then turn the "AF Gain" knob to 100%. That should begin to bring the levels back into the proper range. Please note that you might need to adjust the "Ch1 IN" knob on the Navigator unit to bring the levels down enough. Still can't drop the level's low enough? See the Navigator Config section on how to enable additional attenuators. If the levels are too low with the "CH1 IN" knob being set to 100%, you might need to raise the levels via your radio's various settings.
With a properly adjusted input, it should look something like the following:
Next test, move the frequency knob around and makes sure Fldigi updates it's frequency display in the upper left-hand corner.
The final step is to test transmitting and setting the output levels and you're probably going to need external help. To set good signal levels, you need to set some sane levels in several places.
There is the the ANSI-style alsamixer which does give you numbers to set things by. You have to select the interface to adjust at the command line. For my setup, I would use: alsamixer -c 2 for the second sound card:
Regardless of the tool you use, I recommend to start with a level of 75%. Once you've set the level you want, you can use the command: alsactl store to save your levels. The command: alsactl restore will restore your settings.
Assuming that the Navigator config interface is on /dev/ttyUSB5, you can issue the following commands to initialize the interface and say, dim the LED's brightness:
Check out my complete US Interface Navigator read/write EEPROM script
Q: When I run the "usinterface-ident.sh script, the ttyUSB devices are all over the place. Why?
Q: Fldigi doesn't seem to be responding to any of the serial ports
A: From Appendix 6, you might not have the proper permissions to use the serial ports. Add your username to the "uucp" group in the /etc/group file. You must edit that file with root permissions and you'll need to log out, log back in, and try again.
You can find current versions of my US Interface Navigator scripts -- Here -- and some of the older ones -- Here --
Below is an example of one of my eariler versions:
2. Assumptions and Requirements
It's assumed that the reader of this documentation has the knowledge to compile programs from sources, is familiar with the Linux kernel sources, etc. It's beyond the scope of this documentation to instruct the user on how to bring these systems up.
Modifying and compiling the FTDI USB to serial kernel module
cd /usr/src/redhat/SRPMS
#The current CENTOS RPM at the time of this writing using a local mirror for me
wget http://mirror.centos.org/centos/5/updates/SRPMS/kernel-2.6.18-164.6.1.el5.src.rpm
rpm -ivh kernel-2.6.18-164.6.1.el5.src.rpm
cd /usr/src/redhat/SPECS
rpmbuild -vv -bc kernel-2.6.spec
#Make sure the tool shows a "+ exit 0" to ensure it complete OK
ln -s /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.i686/ /usr/src/linux
ln -s /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.i686/ /usr/src/kernels/`uname -r`
/*
* US Interface Navigator (http://www.usinterface.com/). Submitted by dranch@trinnet.net
*/
#define FTDI_USINT_CAT_PID 0xB810 /* US Interface Navigator CAT and 2nd PTT lines */
#define FTDI_USINT_WKEY_PID 0xB811 /* US Interface Navigator WKEY and FSK lines */
#define FTDI_USINT_RS232_PID 0xB812 /* US Interface Navigator RS232 and CONFIG lines */
{ USB_DEVICE(FTDI_VID, FTDI_USINT_CAT_PID) },
{ USB_DEVICE(FTDI_VID, FTDI_USINT_WKEY_PID) },
{ USB_DEVICE(FTDI_VID, FTDI_USINT_RS232_PID) },
cd /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.i686/
#clean up any cruft
make clean
#Make the new serial drivers
make M=drivers/usb/serial
4. Installing and loading the new FTDI USB to serial kernel module
cp /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.i686/drivers/usb/serial/ftdi_sio.ko /lib/modules/`uname -r`/updates
/sbin/depmod -a
NOTE: The Navigator is a USB "bus" powered device. It's recommended to give the device it's own USB port to get it the required power.
5. Checking the ALSA sound system
0 [I82801DBICH4 ]: ICH4 - Intel 82801DB-ICH4
Intel 82801DB-ICH4 with STAC9750,51 at irq 7
1 [Modem ]: ICH-MODEM - Intel 82801DB-ICH4 Modem
Intel 82801DB-ICH4 Modem at irq 7
2 [default ]: USB-Audio - USB Audio CODEC
Burr-Brown from TI USB Audio CODEC at usb-0000:00:1d.7-3.3.1, fu
Run the command: aplay -l:
**** List of PLAYBACK Hardware Devices ****
card 0: I82801DBICH4 [Intel 82801DB-ICH4], device 0: Intel ICH [Intel 82801DB-ICH4]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: I82801DBICH4 [Intel 82801DB-ICH4], device 4: Intel ICH - IEC958 [Intel 82801DB-ICH4 - IEC958]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Modem [Intel 82801DB-ICH4 Modem], device 0: Intel ICH - Modem [Intel 82801DB-ICH4 Modem - Modem]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: default [USB Audio CODEC ], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
Here, you can see "card 2" is the Navigator Burr-Brown playback device
Run the command: arecord -l:
**** List of CAPTURE Hardware Devices ****
card 0: I82801DBICH4 [Intel 82801DB-ICH4], device 0: Intel ICH [Intel 82801DB-ICH4]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: I82801DBICH4 [Intel 82801DB-ICH4], device 1: Intel ICH - MIC ADC [Intel 82801DB-ICH4 - MIC ADC]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: I82801DBICH4 [Intel 82801DB-ICH4], device 2: Intel ICH - MIC2 ADC [Intel 82801DB-ICH4 - MIC2 ADC]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: I82801DBICH4 [Intel 82801DB-ICH4], device 3: Intel ICH - ADC2 [Intel 82801DB-ICH4 - ADC2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Modem [Intel 82801DB-ICH4 Modem], device 0: Intel ICH - Modem [Intel 82801DB-ICH4 Modem - Modem]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: default [USB Audio CODEC ], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
Again, you can see "card 2" is the Navigator Burr-Brown capture device
6. Configuring the Yaesu FT-950
This section is incomplete but the Key thing to configure is to set Menu #51 (DATA LVL OUTPUT) to 100 on the FT950
6. Configuring Fldigi to use the Navigator
We've been messing around with Linux for long enough, lets get Fldigi running.
NOTE:
The following selections reflect my specific hardware setup with a single core i686 computer, a Yaesu FT-950 HF radio, and no other USB serial or USB sound cards connected. Please make sure you configure Fldigi with your own callsigns, name, QTH, and modify the hardware selections to reflect your own gear
More about WHY this is in a minute
The following settings offer the best performance for a Yaesu FT-950. They require that you change the serial settings on the radio to match
The Yaesu FT-950's serial CAT command for PTT actually only activates the *FRONT* microphone port and it doesn't activate the rear "DATA" jack port. The only way to get things operating properly is to use the US Navigator's "2nd PTT" port via the "Hardware PTT" feature on Fldigi. Your radio might be different so feel free to experiment.
7. Testing and using Fldigi with the Navigator
Ok, assuming the various US Interface Navigator cables are connected, the /dev/ttyUSB serial ports are correctly configured, etc., turn the speaker level on the radio (RF level on the FT-960) very low and turn on the radio! Assuming you followed the recommended maximum volume levels from above, you should see the classic FLDIGI interface with a saturated waterfall input:
8. Navigator's Config interface
The US Interface Navigator has several firmware settings the are configured
via the "CONFIG" serial port. Please see the Navigator's manuals for the
details on these various options but the short version is:
bit field Description Setting 0 CH.1 attenuator "0" for 15db attenuation or "1" for default:no attenuation 1 CH.2 attenuator "0" for 15db attenuation or "1" for default:no attenuation 2 RF attenuator "0" for 20db attenuation or "1" for default:no attenuation 3 WinKey PTT "0" for default:no PTT or "1" for WinKey PTT 4 LED brightness "0" for DIM or "1" for default:normal brightness 5 CAT LED behavior "0" for steady or "1" for default:on-access polling 6 FSK polarity "0" for reverse or "1" for default:normal polarity 7 FSK side tone "0" for no tone or "1" for default:tone 8 FSK PTT "0" for no PTT or "1" for default:PTT 9 FSK BAUD rate "1" for default:45.45, "2" for 75, or "3" for 100 baud 10 FSK stop bits "1" for default:1 bit, "2" for 1.5 bits, or " 3" for 2 bits
#Set the serial port to 1200 baud
stty -F /dev/ttyUSB5 speed 1200
#initialize the CONFIG port - do it twice
echo -e "KT\r" > /dev/ttyUSB5
echo -e "KT\r" > /dev/ttyUSB5
#DIM the LEDs
echo -e "KL11100111113\r" > /dev/ttyUSB5
#If you'd like to save these settings as the default
echo -e "KS\r" > /dev/ttyUSB5
us-navigator-command.sh
9. FAQ:
Q: The usinterface-ident.sh script doesn't run
A: Did you run chmod 755 usinterface-ident.sh to make it executable?
A: Sounds like the Navigator was reset and the Linux kernel re-enumerated the serial ports. Try disconnecting the Navigator from the USB chain and re-connecting it.
10. Appendix
kernel: usb 3-1: new full speed USB device using uhci_hcd and address 38
kernel: usb 3-1: configuration #1 chosen from 1 choice
kernel: hub 3-1:1.0: USB hub found
kernel: hub 3-1:1.0: 4 ports detected
kernel: usb 3-1.1: new full speed USB device using uhci_hcd and address 39
kernel: usb 3-1.1: configuration #1 chosen from 1 choice
kernel: input: Burr-Brown from TI USB Audio CODEC as /class/input/input7
kernel: input: USB HID v1.00 Device [Burr-Brown from TI USB Audio CODEC ] on usb-0000:1
kernel: usb 3-1.2: new full speed USB device using uhci_hcd and address 40
kernel: usb 3-1.2: configuration #1 chosen from 1 choice
kernel: usb 3-1.3: new full speed USB device using uhci_hcd and address 41
kernel: usb 3-1.3: configuration #1 chosen from 1 choice
kernel: usb 3-1.4: new full speed USB device using uhci_hcd and address 42
kernel: usb 3-1.4: configuration #1 chosen from 1 choice
kernel: usbcore: registered new driver snd-usb-audio
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 099: ID 0403:b812 Future Technology Devices International, Ltd
Bus 001 Device 095: ID 03eb:3301 Atmel Corp. at43301 4-Port Hub
Bus 001 Device 097: ID 0403:b810 Future Technology Devices International, Ltd
Bus 001 Device 096: ID 08bb:2906 Texas Instruments Japan
Bus 001 Device 098: ID 0403:b811 Future Technology Devices International, Ltd
T: Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 2.06
S: Manufacturer=Linux 2.6.18-128.1.10.el5 uhci_hcd
S: Product=UHCI Host Controller
S: SerialNumber=0000:00:1d.2
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
T: Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 2.06
S: Manufacturer=Linux 2.6.18-128.1.10.el5 uhci_hcd
S: Product=UHCI Host Controller
S: SerialNumber=0000:00:1d.1
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc=217/900 us (24%), #Int= 2, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 2.06
S: Manufacturer=Linux 2.6.18-128.1.10.el5 uhci_hcd
S: Product=UHCI Host Controller
S: SerialNumber=0000:00:1d.0
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 6
B: Alloc= 0/800 us ( 0%), #Int= 3, #Iso= 0
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 2.06
S: Manufacturer=Linux 2.6.18-128.1.10.el5 ehci_hcd
S: Product=EHCI Host Controller
S: SerialNumber=0000:00:1d.7
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=256ms
T: Bus=01 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 87 Spd=480 MxCh= 4
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=05e3 ProdID=0605 Rev= 6.0b
S: Product=USB2.0 Hub
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=256ms
T: Bus=01 Lev=02 Prnt=87 Port=02 Cnt=02 Dev#= 95 Spd=12 MxCh= 4
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=03eb ProdID=3301 Rev= 3.00
S: Product=Standard USB Hub
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 64mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=255ms
T: Bus=01 Lev=03 Prnt=95 Port=00 Cnt=01 Dev#= 96 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=08bb ProdID=2906 Rev= 1.00
S: Manufacturer=Burr-Brown from TI
S: Product=USB Audio CODEC
C:* #Ifs= 4 Cfg#= 1 Atr=80 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 0 Cls=01(audio) Sub=01 Prot=00 Driver=snd-usb-audio
I: If#= 1 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
I: If#= 1 Alt= 1 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=02(O) Atr=09(Isoc) MxPS= 192 Ivl=1ms
I: If#= 1 Alt= 2 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=02(O) Atr=09(Isoc) MxPS= 96 Ivl=1ms
I: If#= 1 Alt= 3 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=02(O) Atr=09(Isoc) MxPS= 96 Ivl=1ms
I: If#= 1 Alt= 4 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=02(O) Atr=09(Isoc) MxPS= 48 Ivl=1ms
I: If#= 1 Alt= 5 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=02(O) Atr=09(Isoc) MxPS= 96 Ivl=1ms
I: If#= 1 Alt= 6 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=02(O) Atr=09(Isoc) MxPS= 48 Ivl=1ms
I: If#= 2 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
I: If#= 2 Alt= 1 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=84(I) Atr=05(Isoc) MxPS= 196 Ivl=1ms
I: If#= 2 Alt= 2 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=84(I) Atr=05(Isoc) MxPS= 98 Ivl=1ms
I: If#= 2 Alt= 3 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=84(I) Atr=05(Isoc) MxPS= 180 Ivl=1ms
I: If#= 2 Alt= 4 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=84(I) Atr=05(Isoc) MxPS= 90 Ivl=1ms
I: If#= 2 Alt= 5 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=84(I) Atr=05(Isoc) MxPS= 132 Ivl=1ms
I: If#= 2 Alt= 6 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=84(I) Atr=05(Isoc) MxPS= 66 Ivl=1ms
I: If#= 2 Alt= 7 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=84(I) Atr=05(Isoc) MxPS= 92 Ivl=1ms
I: If#= 2 Alt= 8 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=84(I) Atr=05(Isoc) MxPS= 46 Ivl=1ms
I: If#= 2 Alt= 9 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=84(I) Atr=05(Isoc) MxPS= 68 Ivl=1ms
I: If#= 2 Alt=10 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=84(I) Atr=05(Isoc) MxPS= 34 Ivl=1ms
I: If#= 2 Alt=11 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=84(I) Atr=05(Isoc) MxPS= 34 Ivl=1ms
I: If#= 2 Alt=12 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=84(I) Atr=05(Isoc) MxPS= 17 Ivl=1ms
I: If#= 2 Alt=13 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=84(I) Atr=05(Isoc) MxPS= 18 Ivl=1ms
I: If#= 2 Alt=14 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=84(I) Atr=05(Isoc) MxPS= 9 Ivl=1ms
I: If#= 2 Alt=15 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=84(I) Atr=0d(Isoc) MxPS= 48 Ivl=1ms
I: If#= 2 Alt=16 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=84(I) Atr=0d(Isoc) MxPS= 24 Ivl=1ms
I: If#= 2 Alt=17 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=84(I) Atr=0d(Isoc) MxPS= 24 Ivl=1ms
I: If#= 2 Alt=18 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=84(I) Atr=0d(Isoc) MxPS= 12 Ivl=1ms
I: If#= 3 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
E: Ad=85(I) Atr=03(Int.) MxPS= 1 Ivl=10ms
T: Bus=01 Lev=03 Prnt=95 Port=01 Cnt=02 Dev#= 97 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0403 ProdID=b810 Rev= 5.00
S: Manufacturer=FTDI
S: Product=Navigator (CAT & 2nd PTT)
S: SerialNumber=00000000
C:* #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=ftdi_sio
E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=ftdi_sio
E: Ad=83(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
T: Bus=01 Lev=03 Prnt=95 Port=02 Cnt=03 Dev#= 98 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0403 ProdID=b811 Rev= 5.00
S: Manufacturer=FTDI
S: Product=Navigator (WKey & FSK)
S: SerialNumber=00000001
C:* #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=ftdi_sio
E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=ftdi_sio
E: Ad=83(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
T: Bus=01 Lev=03 Prnt=95 Port=03 Cnt=04 Dev#= 99 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0403 ProdID=b812 Rev= 5.00
S: Manufacturer=FTDI
S: Product=Navigator (RS232 & Config)
S: SerialNumber=00000002
C:* #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=ftdi_sio
E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=ftdi_sio
E: Ad=83(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
# ls -la /dev/ttyUSB*
ls: /dev/ttyUSB*: No such file or directory
kernel: usbcore: registered new driver usbserial
kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
kernel: usbcore: registered new driver usbserial_generic
kernel: drivers/usb/serial/usb-serial.c: USB Serial Driver core
kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for FTDI USB Serial Device
kernel: ftdi_sio 3-1.2:1.0: FTDI USB Serial Device converter detected
kernel: drivers/usb/serial/ftdi_sio.c: Detected FT2232C
kernel: usb 3-1.2: FTDI USB Serial Device converter now attached to ttyUSB0
kernel: ftdi_sio 3-1.2:1.1: FTDI USB Serial Device converter detected
kernel: drivers/usb/serial/ftdi_sio.c: Detected FT2232C
kernel: usb 3-1.2: FTDI USB Serial Device converter now attached to ttyUSB1
kernel: ftdi_sio 3-1.3:1.0: FTDI USB Serial Device converter detected
kernel: drivers/usb/serial/ftdi_sio.c: Detected FT2232C
kernel: usb 3-1.3: FTDI USB Serial Device converter now attached to ttyUSB2
kernel: ftdi_sio 3-1.3:1.1: FTDI USB Serial Device converter detected
kernel: drivers/usb/serial/ftdi_sio.c: Detected FT2232C
kernel: usb 3-1.3: FTDI USB Serial Device converter now attached to ttyUSB3
kernel: ftdi_sio 3-1.4:1.0: FTDI USB Serial Device converter detected
kernel: drivers/usb/serial/ftdi_sio.c: Detected FT2232C
kernel: usb 3-1.4: FTDI USB Serial Device converter now attached to ttyUSB4
kernel: ftdi_sio 3-1.4:1.1: FTDI USB Serial Device converter detected
kernel: drivers/usb/serial/ftdi_sio.c: Detected FT2232C
kernel: usb 3-1.4: FTDI USB Serial Device converter now attached to ttyUSB5
kernel: usbcore: registered new driver ftdi_sio
kernel: drivers/usb/serial/ftdi_sio.c: v1.4.3:USB FTDI Serial Converters Driver
crw-rw---- 1 root uucp 188, 0 Dec 5 11:25 /dev/ttyUSB0
crw-rw---- 1 root uucp 188, 1 Dec 5 11:25 /dev/ttyUSB1
crw-rw---- 1 root uucp 188, 2 Dec 5 11:25 /dev/ttyUSB2
crw-rw---- 1 root uucp 188, 3 Dec 5 11:25 /dev/ttyUSB3
crw-rw---- 1 root uucp 188, 4 Dec 5 11:25 /dev/ttyUSB4
crw-rw---- 1 root uucp 188, 5 Dec 5 11:25 /dev/ttyUSB5
#!/bin/bash
# 11/26/09
# written by dranch
#Set to 1 if you want verbose messages
VERBOSE=1
#Set to 1 if you want debugging messages printed
DEBUG=1
#Set any required PATHs to be distribution independent
LSMOD="/sbin/lsmod"
LSUSB="/sbin/lsusb"
#These are the US Interface Navigators USB IDs
USBCATID="0403:b810"
USBWKEYID="0403:b811"
USBRS232ID="0403:b812"
#-------------------------------------------------------------------------
# Mainline code
#-------------------------------------------------------------------------
#Load the modified FTDI module if required
if [ -z "`$LSMOD | grep ^ftdi_sio`" ]; then
echo -e "\n ftdi_sio module not loaded. You will be prompted for sudo \
if you're not already root"
sudo /sbin/modprobe ftdi_sio
fi
#Find the installed USB ID handles
##CAT and 2nd PTT
USBCATMAJ=`/sbin/lsusb | grep $USBCATID | awk '{print $2}' | sed 's/0*//'`
USBCATMIN=`/sbin/lsusb | grep $USBCATID | awk '{print $4}' | sed 's/0*//' | sed 's/://'`
##WKey & FSK
USBWKEYMAJ=`/sbin/lsusb | grep $USBWKEYID | awk '{print $2}' | sed 's/0*//'`
USBWKEYMIN=`/sbin/lsusb | grep $USBWKEYID | awk '{print $4}' | sed 's/0*//' | sed 's/://'`
##RS232 & Config
USBRS232MAJ=`/sbin/lsusb | grep $USBRS232ID | awk '{print $2}' | sed 's/0*//'`
USBRS232MIN=`/sbin/lsusb | grep $USBRS232ID | awk '{print $4}' | sed 's/0*//' | sed 's/://'`
echo -e "\nUS Interface Navigator:\n"
if [ $VERBOSE -eq 1 ]; then
#interface IDs - CAT and 2nd PTT
for ID in `ls /sys/class/usb_device/usbdev$USBCATMAJ.$USBCATMIN/device | grep ^[0-9]`; do
echo "Device ID: $USBCATID: bound TTY: `ls /sys/class/usb_device/usbdev$USBCATMAJ.$USBCATMIN/device/$ID | grep ttyUSB` : \
description: `cat /sys/class/usb_device/usbdev$USBCATMAJ.$USBCATMIN/device/$ID/interface`"
done
#interface IDs - WKey & FSK
for ID in `ls /sys/class/usb_device/usbdev$USBWKEYMAJ.$USBWKEYMIN/device | grep ^[0-9]`; do
echo "Device ID: $USBWKEYID: bound TTY: `ls /sys/class/usb_device/usbdev$USBWKEYMAJ.$USBWKEYMIN/device/$ID | grep ttyUSB` : \
description: `cat /sys/class/usb_device/usbdev$USBWKEYMAJ.$USBWKEYMIN/device/$ID/interface`"
done
#interface IDs - RS232 & Config
for ID in `ls /sys/class/usb_device/usbdev$USBRS232MAJ.$USBRS232MIN/device | grep ^[0-9]`; do
echo "Device ID: $USBRS232ID: bound TTY: `ls /sys/class/usb_device/usbdev$USBRS232MAJ.$USBRS232MIN/device/$ID | grep ttyUSB` : \
description: `cat /sys/class/usb_device/usbdev$USBRS232MAJ.$USBRS232MIN/device/$ID/interface`"
done
fi
echo -e "\ndone.\n\n"