Chord 2qute and my DOP challenge

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
It is very possible the high USB IRQ rate of 8000 is the cluprit, I have suspected that from the beginning. Is it really the cause (high IRQ rate -> dropouts)?

Which machine/architecture shows you the high/low rates? I do not think it is related to the network card. Though IF the networking card and sound card share same USB controller (some arm board?), I can imaging the soundcard IRQ rate starves the network card.

IMO if we can cut the IRQ rate, your problem will be solved.
 
I really had it in my mind, as I had all these problems starting with my odroid C1+.
It gave me max 10 min of joy, and I have tons of hiccups when playing DOP.

IMO if we can cut the IRQ rate, your problem will be solved.

Think you're absolutely right here. Remember the problems also are present when I play directly from my SSD drive , not network at all.

Right now I'm playing on my antient Lenovo Netbook with a N450 Atom processor (it's extremely underpowered) on the LINUX 4.12.5 kernel
released last week. Only played for 20 min , not hiccups so far.
 
Last edited:
Hi Again.

My new ASROCK H110TM-ITX r2.0 Motherboard with an Intel i5-7600T has this same 8000/irqs sec issue.

It's getting harder and harder to use Linux as a streaming platform. I know for sure that there is more DAC as mine which are having these issues.

Same irq rate under both squeezelite and MPD. The funny thing is that now the irqs starts when squeezelite i just loaded, not even sending music to the DAC.

Frustration is rising very rapidly :)
 
Is it the same USB DAC as with that arm board? If so, we should get more details and renew the stalled report at [alsa-devel] Problem with DoP mode in Chord 2qute USB audio . Two cases (arm and amd64) is a much stronger argument. IMO the USB controller in that DAC does something nonstandard and the linux usb driver overreacts.

If you want to help solving this issue, we can send the new report.
 
hi.

Testing right now, but it's pretty much the worst scenario I have tried in a long time.

I haven't used my ARM board in a long time, (due to DSD problems) but it's the same DAC as running Almost perfect on my 7 years old laptop.

Its the Chord 2qute. Have also tested it big brother Hugo2 which have the exact same problems.

I know this is very new hardware, but from suppliers which have been here in a long time. Hopefully it should be of more interest to see it as a problem/issue.

Have a question. How do i switch USB speed down to 12mbit, could not find any thing about this. Running on ubuntu 17.4 server ???

Thanks Michael.
 
I haven't used my ARM board in a long time, (due to DSD problems) but it's the same DAC as running Almost perfect on my 7 years old laptop.

Its the Chord 2qute. Have also tested it big brother Hugo2 which have the exact same problems.

We have to summarize the cases:

1) which kernel version and hardware does the DAC run OK on? What IRQ rate does it have in the correct case?

2) which kernel version and hardware does the DAC run at 8k IRQs/s?

3) which DACs have been tested? (USB IDs please)

Have a question. How do i switch USB speed down to 12mbit, could not find any thing about this.

You can try unloading the USB2 driver FedoraForum.org - View Single Post - How can I force the kernel to use USB1.1 instead of USB2.0 Host controller
 
First I'm using the same kernel on my 7 years old MSI laptop as I do on the new asROCK board <b>Linux ubuntu 4.10.0-19-generic</b> So.

Ubuntu server 17.04 Linux ubuntu 4.10.0-19-generic
MSI 7 years old laptop
IRqs is about 365 pr sec.
Works quite stable, but once in a while it does the same but okay.

Ubuntu server 17.04 Linux ubuntu 4.10.0-19-generic
H110TM-ITX r2.0 Motherboard with an Intel i5-7600T
IRqs is about 8000 pr sec.
Play from network is quite unstable, but when I play from RAM /dev/shm is get better, but again not as good as my old laptop.

Same Dac Chord 2Qute.

lsusb -v
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.00
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 3
bMaxPacketSize0 9
idVendor 0x1d6b Linux Foundation
idProduct 0x0003 3.0 root hub
bcdDevice 4.10
iManufacturer 3 Linux 4.10.0-19-generic xhci-hcd
iProduct 2 xHCI Host Controller
iSerial 1 0000:00:14.0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 31
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 12
bMaxBurst 0
Hub Descriptor:
bLength 12
bDescriptorType 42
nNbrPorts 4
wHubCharacteristic 0x000a
No power switching (usb 1.0)
Per-port overcurrent protection
bPwrOn2PwrGood 10 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
bHubDecLat 0.0 micro seconds
wHubDelay 0 nano seconds
DeviceRemovable 0x00
Hub Port Status:
Port 1: 0000.02a0 5Gbps power Rx.Detect
Port 2: 0000.02a0 5Gbps power Rx.Detect
Port 3: 0000.02a0 5Gbps power Rx.Detect
Port 4: 0000.02a0 5Gbps power Rx.Detect
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 15
bNumDeviceCaps 1
SuperSpeed USB Device Capability:
bLength 10
bDescriptorType 16
bDevCapabilityType 3
bmAttributes 0x02
Latency Tolerance Messages (LTM) Supported
wSpeedsSupported 0x0008
Device can operate at SuperSpeed (5Gbps)
bFunctionalitySupport 3
Lowest fully-functional device speed is SuperSpeed (5Gbps)
bU1DevExitLat 10 micro seconds
bU2DevExitLat 512 micro seconds
Device Status: 0x0001
Self Powered

Bus 001 Device 003: ID 03f0:0024 Hewlett-Packard KU-0316 Keyboard
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x03f0 Hewlett-Packard
idProduct 0x0024 KU-0316 Keyboard
bcdDevice 1.30
iManufacturer 1 CHICONY
iProduct 2 HP Basic USB Keyboard
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 1 Keyboard
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 65
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 10
Device Status: 0x0000
(Bus Powered)

Bus 001 Device 002: ID 245f:1213
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x245f
idProduct 0x1213
bcdDevice 1.89
iManufacturer 1 Chord Electronics Ltd
iProduct 2 2Qute
iSerial 3 413-001
bNumConfigurations 2
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 176
bNumInterfaces 3
bConfigurationValue 1
iConfiguration 2 2Qute
bmAttributes 0x40
(Missing must-be-set bit!)
Self Powered
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
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 0x0200 1x 512 bytes
bInterval 0
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 1
bInterfaceCount 2
bFunctionClass 1 Audio
bFunctionSubClass 0
bFunctionProtocol 32
iFunction 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 32
iInterface 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 2.00
bCategory 1
wTotalLength 72
bmControl 0x00
AudioControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 10 (CLOCK_SOURCE)
bClockID 41
bmAttributes 0x03 Internal programmable Clock
bmControls 0x07
Clock Frequency Control (read/write)
Clock Validity Control (read-only)
bAssocTerminal 0
iClockSource 2 2Qute
AudioControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 11 (CLOCK_SELECTOR)
bUnitID 40
bNrInPins 1
baCSourceID( 0) 41
bmControls 0x03
Clock Selector Control (read/write)
iClockSelector 2 2Qute
AudioControl Interface Descriptor:
bLength 17
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 42
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bCSourceID 40
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
bmControls 0x0000
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 18
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 10
bSourceID 42
bmaControls( 0) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 1) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 2) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
iFeature 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 43
wTerminalType 0x0301 Speaker
bAssocTerminal 0
bSourceID 10
bCSourceID 40
bmControls 0x0000
iTerminal 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 0
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 42
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 0
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 32
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x05 EP 5 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 8
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 7
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 2
iConfiguration 2 2Qute
bmAttributes 0x40
(Missing must-be-set bit!)
Self Powered
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
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 0x0200 1x 512 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 1 Single TT
bMaxPacketSize0 64
idVendor 0x1d6b Linux Foundation
idProduct 0x0002 2.0 root hub
bcdDevice 4.10
iManufacturer 3 Linux 4.10.0-19-generic xhci-hcd
iProduct 2 xHCI Host Controller
iSerial 1 0000:00:14.0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 12
Hub Descriptor:
bLength 11
bDescriptorType 41
nNbrPorts 10
wHubCharacteristic 0x000a
No power switching (usb 1.0)
Per-port overcurrent protection
TT think time 8 FS bits
bPwrOn2PwrGood 10 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
DeviceRemovable 0x00 0x00
PortPwrCtrlMask 0xff 0xff
Hub Port Status:
Port 1: 0000.0100 power
Port 2: 0000.0503 highspeed power enable connect
Port 3: 0000.0100 power
Port 4: 0000.0303 lowspeed power enable connect
Port 5: 0000.0100 power
Port 6: 0000.0100 power
Port 7: 0000.0100 power
Port 8: 0000.0100 power
Port 9: 0000.0100 power
Port 10: 0000.0100 power
Device Status: 0x0001
Self Powered



modprobe -r ehci_hcd
modprobe: FATAL: Module ehci_hcd is builtin.
 
This kernel boot parameter gives we a greater stability.

cat /proc/cmdline

BOOT_IMAGE=/boot/vmlinuz-4.10.0-19-generic root=UUID=a6f56bb1-fe87-4738-a77d-dbed563fffc0 ro consoleblank=0 i8042.noaux i8042.nokbd i8042.noloop i8042.nomux i8042.nopnp hpet=force x2apic_phys clocksource=hpet

Will report after a couple of days, but something gets better :)
 
Last edited:
First I think the manufactor Chord really doesn't care. They have their Windows/MAC user which is fine for them.
If I wasn't so happy with it I'll just has bought another one. Again it only affects DSD, which I haven't got a lot of. Sadly it doesn't work stable on DSD.

I have a little tweak I'll try when I get it, and after that just enjoy the music, even if it doesn't solve this issue...
 
Don't know how much in this thread you're read, but I actually have a 7 years old laptop which runs , 6-8 times more stable when performing DSD. Same kernel same software...

That is really what scares me, as it's also very hardware dependent, not only a Chord issue. It comes back to irqs pr seconds, this is the real issue, that we know for sure :)
 
First of all.
That already rather poor shared USB/ethernet implementation on a PI is all but
optimal for a streamer with USB DAC attached. There'll be permanent two-way traffic on the same bus. That's one reason why I prefer I2S-HATs for PI.

Using the onboard Wifi might even be better than using the ethernet port.

Then you need to look at the power side. Many USB DACs feed their
input stage via USB to be able to offer galvanic isolation with just one power supply.
The PI power rails are not that stable either. Especially if shared with external devices.

Have you tried a powered HUB or one of these active USB filter gadgets?
I don't run my USB DACs without any of these USB filters/regenerators/reclockers.

Regarding "same software"

To have the same SW on both of your platforms is a false assumption. For sure there's different firmware, there are different drivers, asf. asf.
And then it's a complete different architecture.
E.g. On Intel IRQs are spread over all CPUs. On the PI they all pretty much run on CPU 0. And there are numerous more differences and things what
is done better by even a 10 year old Intel platform.

Bottom line. People who go for RPI should know about its widely known limitations.
And that's actually the fun part of the PI.
The real fun is to make things happen with that crappy $35 device. ;)

And buying a DAC that comes with all but a mainstream USB stack implementation is another big risk - especially if you run Linux systems.
And then you're not even willing to write them a simple mail... :rolleyes:
 
Hello Michaelvv

I have now registered to this forum just to tell you that I have the same problem, also located in Denmark (But unrelated :))

My 2Qute dropps during DSD playback on linux devices.

I have tried RP2b and Asus Tinker Board.
Both when I am running with DietPi/Roon Bridge and also the same through Rune and Volumio.

First I thought this problems was related to the ETH sharing the USB bus on Pi and Tinkerboard, so I bought SoTM SMS-200 and guess what!.. Same issue..

I really hope something good comes our way.
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.