Reputation: 3224
I have a RedBee RFID Reader. Its user documentation is only for windows, and I am on ArchLinux. The only time I have ever done serial communication over a USB port was for an Arduino and that was through their GUI environment so I never was exposed to the metal. So I have this RFID reader that you interface with via serial communication across a USB port. The baud rate is 9600
, the device is connected to /dev/bus/usb/004/004
. The output of ls -l /dev/bus/usb/004/004
is:
crwxrwxrwx 1 root root 189, 387 Mar 8 19:14 /dev/bus/usb/004/004
The output of lsusb is
Bus 004 Device 004: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-
Serial (UART) IC
Bus 004 Device 003: ID 0cf3:3005 Atheros Communications, Inc. AR3011 Bluetooth
...
The output of lsusb -s 004:004 -v
is:
Bus 004 Device 004: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0403 Future Technology Devices International, Ltd
idProduct 0x6001 FT232 USB-Serial (UART) IC
bcdDevice 6.00
iManufacturer 1 FTDI
iProduct 2 FT232R USB UART
iSerial 3 A900DGX9
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 90mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 2 FT232R USB UART
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Device Status: 0x0000
(Bus Powered)
Here is the output of dmsg | grep -i tty
[ 0.000000] console [tty0] enabled
[ 7.226118] systemd[1]: Starting system-getty.slice.
[ 7.226397] systemd[1]: Created slice system-getty.slice.
[ 10.535204] usb 4-1.7: FTDI USB Serial Device converter now attached to ttyUSB0
[ 6372.435916] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[ 7961.660760] usb 4-1.7: FTDI USB Serial Device converter now attached to ttyUSB0
[ 7964.716225] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[ 8282.582961] usb 4-1.7: FTDI USB Serial Device converter now attached to ttyUSB0
Things I have tried:
I have tried using putty's (compiled for linux) serial option to connect to /dev/bus/usb/004/004 but it responds with:
Unable to open connection to:
Unable to configure serial port
Upvotes: 2
Views: 5791
Reputation: 11
This way you can automatically detect which device you should use (replace FT232R_USB_UART with model) :
#!/bin/sh
PORT=""
for i in /dev/ttyUSB* ; do
if [ "x`udevadm info $i | grep 'ID_MODEL=FT232R_USB_UART'`" != "x" ] ; then
PORT=$i
fi
done
if [ "x$PORT" = "x" ] ; then
echo "No FT232R_USB_UART port found!" 1>&2
exit 1
fi
echo "PORT = $PORT"
Upvotes: 0
Reputation: 3224
The solution is to use dmesg | grep -i tty
to get the TTY the device has connected to. In my case I needed to connect to /dev/ttyUSB0
not /dev/bus/usb/004/004
.
Upvotes: 4