Thanks for your reply, Robert.
I didn’t realize that USB serial interfaces don’t use the 8250 driver. I don’t know precisely what chipset the devices (Signalhound model VSG25A) are using. They are using the cdc_acm driver and addressed as ttyACMx.
I don’t believe the USB bus is saturated. All that we’re doing as a test is to opening 8 connections simultaneously - no data traffic. It fails on the 7th one with an Input/Output error.
I am struggling to find any information on how to increase the limit of these ttyACMx devices.
See below for system output.
Error we receive when trying to connect to 8 devices simultaneously.
root@beaglebone:~# python3 /home/pi/eight_sh_connection.py
Connected to 1
Connected to 2
Connected to 3
Connected to 4
Connected to 5
Connected to 6
Traceback (most recent call last):
File “/usr/local/lib/python3.7/dist-packages/serial/serialposix.py”, line 322, in open
self.fd = os.open(self.portstr, os.O_RDWR | os.O_NOCTTY | os.O_NONBLOCK)
OSError: [Errno 5] Input/output error: ‘/dev/ttyACM6’
Listing of ports, lsusb, dmesg, messages file output
root@beaglebone:/home/pi# ls -l /dev/ttyACM*
crw-rw---- 1 root dialout 166, 0 Nov 11 12:22 /dev/ttyACM0
crw-rw---- 1 root dialout 166, 1 Nov 11 12:22 /dev/ttyACM1
crw-rw---- 1 root dialout 166, 2 Nov 11 12:22 /dev/ttyACM2
crw-rw---- 1 root dialout 166, 3 Nov 11 12:22 /dev/ttyACM3
crw-rw---- 1 root dialout 166, 4 Nov 11 12:22 /dev/ttyACM4
crw-rw---- 1 root dialout 166, 5 Nov 11 12:22 /dev/ttyACM5
crw-rw---- 1 root dialout 166, 6 Nov 11 12:22 /dev/ttyACM6
crw-rw---- 1 root dialout 166, 7 Nov 11 12:22 /dev/ttyACM7
root@beaglebone:/home/pi# lsusb
Bus 001 Device 012: ID 2817:0101
Bus 001 Device 011: ID 2817:0101
Bus 001 Device 009: ID 2817:0101
Bus 001 Device 007: ID 2817:0101
Bus 001 Device 004: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 010: ID 2817:0101
Bus 001 Device 008: ID 2817:0101
Bus 001 Device 006: ID 2817:0101
Bus 001 Device 005: ID 2817:0101
Bus 001 Device 003: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@beaglebone:/home/pi# lsusb -v
Bus 001 Device 012: ID 2817:0101
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 2 Communications
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x2817
idProduct 0x0101
bcdDevice 1.00
iManufacturer 1 Signal Hound
iProduct 2 VSG25A
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0042
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 2 Abstract (modem)
bInterfaceProtocol 1 AT-commands (v.25ter)
iInterface 0
CDC Header:
bcdCDC 1.20
CDC ACM:
bmCapabilities 0x02
line coding and serial state
INVALID CDC (Union): 04 24 06 00
CDC Call Management:
bmCapabilities 0x00
bDataInterface 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x000a 1x 10 bytes
bInterval 2
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 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
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
can’t get device qualifier: Resource temporarily unavailable
can’t get debug descriptor: Resource temporarily unavailable
Device Status: 0x0000
(Bus Powered)
From dmesg:
[ 2.715626] usb 1-1.3.1: new full-speed USB device number 5 using musb-hdrc
[ 2.841023] usb 1-1.3.1: New USB device found, idVendor=2817, idProduct=0101, bcdDevice= 1.00
[ 2.841040] usb 1-1.3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2.841048] usb 1-1.3.1: Product: VSG25A
[ 2.841055] usb 1-1.3.1: Manufacturer: Signal Hound
…
[ 56.656651] cdc_acm 1-1.3.1:1.0: ttyACM0: USB ACM device
[ 56.667108] cdc_acm 1-1.3.2:1.0: ttyACM1: USB ACM device
[ 56.689276] cdc_acm 1-1.4.1:1.0: ttyACM2: USB ACM device
[ 56.730413] cdc_acm 1-1.3.3:1.0: ttyACM3: USB ACM device
[ 56.737469] cdc_acm 1-1.4.2:1.0: ttyACM4: USB ACM device
[ 56.757647] cdc_acm 1-1.3.4:1.0: ttyACM5: USB ACM device
[ 56.765354] cdc_acm 1-1.4.3:1.0: ttyACM6: USB ACM device
[ 56.792679] cdc_acm 1-1.4.4:1.0: ttyACM7: USB ACM device
[ 56.803869] usbcore: registered new interface driver cdc_acm
[ 56.803886] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters