LimeSDR and USB3

I’m having problems with the LimeSDR under USB3 on Linux and Windows 10. At the moment I’m limited to 10Mhz for widows and 12Mhz for Linux using USB2. It looks like a USB initialization problem. I’m seeing the following in my system logs under Linux:

[ 3274.394280] usb 6-2: new SuperSpeed USB device number 2 using xhci_hcd
[ 3274.411852] usb 6-2: LPM exit latency is zeroed, disabling LPM.
[ 3274.412853] usb 6-2: New USB device found, idVendor=1d50, idProduct=6108
[ 3274.412857] usb 6-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3274.412860] usb 6-2: Product: LimeSDR-USB
[ 3274.412862] usb 6-2: Manufacturer: Myriad-RF
[ 3274.412864] usb 6-2: SerialNumber: 0009060B00462017
[ 3275.498919] usb 5-2: new high-speed USB device number 2 using xhci_hcd
[ 3275.700776] usb 5-2: New USB device found, idVendor=1d50, idProduct=6108
[ 3275.700780] usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3275.700783] usb 5-2: Product: LimeSDR-USB
[ 3275.700785] usb 5-2: Manufacturer: Myriad-RF
[ 3275.700787] usb 5-2: SerialNumber: 0009060B00462017
[ 3279.612425] usb 6-2: can't set config #1, error -110

What is odd here is the double registering of the divice for usb 6-2 and 5-2, and the error -110 at the end. Assuming the error code is a standard error value, that would be ETIMEDOUT.

The PC I’m using should be able to more than handle much wider bandwidth than 12Mhz of USB2. I just need to get the card recognized.

Any thoughts, ideas, magic incarnations?

-Freeman, N5FPP

Freeman,

For Windows, I’m assuming that you installed the Cypress drivers for USB 3.0 support, right? Also, recheck using LimeSuiteGUI and perform the Connect, and then use the Device Info feature from the modules to see if your Lime is running USB 3.0 or not (you can also do this from Linux using LimeSuiteGUI, too). If you only see USB 2.0, then you’re either plugged into a USB 2.0 port (no offense, it’s happened to me A LOT) or you have no USB 3.0 resources that the Lime can see. Just reload the driver for USB 3.0 and see if it corrects itself.

Keep us all advised - 73 de Marty, KN0CK

None taken Marty, I appreciate the reminder. Fortunately, the ports on the front of my PC were easily separated since I built the machine myself. Unfortunately, if I plug into either USB3 plug I get the same response.

Is there a known good URL to pull the latest Cypress driver from? What are you using?

-Freeman, N5FPP

Freeman,

This thread ------> LimeSDR under SDR-Console

Download the zip file and within it are the Cypress USB 3.0 drivers and other goodies.

Keep us tuned in…

73 de Marty, KN0CK

Grr, I just tried plugging it into my ODroid-XU4 and it initialized just fine. This suggests its the USB3 chipset it self.

Anyone using the LimeSDR with a USB3 PCI card?

-Freeman, N5FPP

Yes, Windows 10, PCIe, no problems.

https://www.amazon.co.uk/gp/product/B00B6ZCNGM/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1

Freeman,

I am, too - just load the drivers for Win10 and either 64-bit or 32-bit as appropriate for your system (usually 64-bit). It’ll work.

73 de Marty, KN0CK

Hi @n5fpp,

Could you post device info dialog (from LimeSuiteGUI) screen shot, please.

@Zack, here is the device info window. This is currently under Ubuntu 16.10 running the latest code from github.

-Freeman, N5FPP

Have you tried different USB cables?

@hTo137 The only USB3 cables I have are the supplied cables that came with my two LimeSDR boards and my wife’s cable that came with her Samsung G-6. I get the same behavior out of both boards using all of the cables.

-Freeman

This is odd. I’m seeing two devices when plugged into the USB3 port for ID 1d50:6108 (OpenMoko, Inc.). This jives with the system log. Both ports in the log show as xhci_hcd, which they should, but why two? Would someone with a Linux box confirm they are seeing the same in the logs and with ‘lsusb’?

Bus 002 Device 010: ID 0738:a215 Mad Catz, Inc. 
Bus 002 Device 009: ID 0738:2215 Mad Catz, Inc. 
Bus 002 Device 008: ID 0451:2046 Texas Instruments, Inc. TUSB2046 Hub
Bus 002 Device 007: ID 046d:082c Logitech, Inc. 
Bus 002 Device 006: ID 0471:0815 Philips (or NXP) eHome Infrared Receiver
Bus 002 Device 005: ID 0955:0007 NVidia Corp. 
Bus 002 Device 004: ID 046d:c32b Logitech, Inc. 
Bus 002 Device 003: ID 046d:c06b Logitech, Inc. G700 Wireless Gaming Mouse
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 009 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 010 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 005: ID 1d50:6108 OpenMoko, Inc.  <---------
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 007: ID 1d50:6108 OpenMoko, Inc.  <---------
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 03f0:ba02 Hewlett-Packard PhotoSmart 8100 series
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 007: ID 0b05:179c ASUSTek Computer, Inc. 
Bus 001 Device 006: ID 046d:0a29 Logitech, Inc. H600 [Wireless Headset]
Bus 001 Device 005: ID 046d:c531 Logitech, Inc. C-U0007 [Unifying Receiver]
Bus 001 Device 003: ID 0fde:050a Oregon Scientific 
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Not sure if it will help diagnose the problem, but here is the full verbose dump for lsusb for LimeSDR while plugged into the USB3 port…

-Freeman, N5FPP

pascal@tsunami <67> lsusb -d 1d50: -v

Bus 006 Device 005: ID 1d50:6108 OpenMoko, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 9
idVendor 0x1d50 OpenMoko, Inc.
idProduct 0x6108
bcdDevice 0.00
iManufacturer 1 (error)
iProduct 2 (error)
iSerial 3 (error)
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 70
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 4
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 15
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 15
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x0f EP 15 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x8f EP 15 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 0
Device Status: 0xc8c0
(Bus Powered)
Debug Mode

Bus 005 Device 007: ID 1d50:6108 OpenMoko, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x1d50 OpenMoko, Inc.
idProduct 0x6108
bcdDevice 0.00
iManufacturer 1 Myriad-RF
iProduct 2 LimeSDR-USB
iSerial 3 0009060B00462017
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 46
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 4
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x0f EP 15 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x8f EP 15 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 22
bNumDeviceCaps 2
USB 2.0 Extension Device Capability:
bLength 7
bDescriptorType 16
bDevCapabilityType 2
bmAttributes 0x00000002
Link Power Management (LPM) Supported
SuperSpeed USB Device Capability:
bLength 10
bDescriptorType 16
bDevCapabilityType 3
bmAttributes 0x00
wSpeedsSupported 0x000e
Device can operate at Full Speed (12Mbps)
Device can operate at High Speed (480Mbps)
Device can operate at SuperSpeed (5Gbps)
bFunctionalitySupport 3
Lowest fully-functional device speed is SuperSpeed (5Gbps)
bU1DevExitLat 0 micro seconds
bU2DevExitLat 0 micro seconds
Device Status: 0x0000
(Bus Powered)

Hi @n5fpp,

Everything (Firmware as well as Gateware versions) is OK here. So, the issue is not in the board.

Nope, there should be only one device.
What Mother Board are you using?

I’m running on an Asus Rampage IV Extreme. At the time it was one of the first very high end overclocking motherboards that had USB 3. It could be it was too early with USB 3. This is the first USB3 device that I have used that has not been recognized.

I noticed in the ‘lsusb -t’ output that earliest device (assuming the numbering increments) is seen as a USB 3.0 device (the bcdUSB value) while some of the fields are marked as “(error)” - specifically iManufacturer, iProduct, and iSerial. I wonder if it fails to be enumerated correctly (the error -110 - ETIMEOUT), and then retries as a USB 2 device. The second device does show bcdUSB as 2.10 and finds all the fields that failed before.

I assume the Cypress chip handles the USB handshaking, and I would have to look at the code there for the cause of the timeout. I’m wondering if I can resolve the timeout or increase the timeout length in the xhci_hcd driver.

-Freeman, N5FPP

@n5fpp could well be. I lost a lot of time trying to debug issues when using an older Thinkpad which was probably one of the first to have USB 3.0, which simply went away when I used more recent hardware.

@andrewback, as an alternative I have one of the PCIx USB boards that @SimonG4ELI pointed out above ordered, it should be here by the end of the week. Hopefully that resolves the problem without digging into code.

You have the latest USB updates for your mobo? https://www.asus.com/Motherboards/RAMPAGE_IV_EXTREME/HelpDesk_Download/

@SimonG4ELI I got my USB3 card in the mail today. It appears to be working. Below are the best settings I could get to work with gqrx. Anyone using anything different with gqrx?

@csete, Below is the output from htop on my 12 core hyperthreaded PC. The loads look a bit high, and I’m surprised to see so many gqrx processes running. Is this normal? This is with the settings above.