Bug 1110 - Can't connect to UT61C with USB interface cable
Summary: Can't connect to UT61C with USB interface cable
Status: RESOLVED WORKSFORME
Alias: None
Product: libsigrok
Classification: Unclassified
Component: Driver: uni-t-dmm (show other bugs)
Version: unreleased development snapshot
Hardware: x86 Linux
: Normal normal
Target Milestone: ---
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-01-07 04:18 CET by Joel Holdsworth
Modified: 2020-07-30 06:56 CEST (History)
1 user (show)



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Joel Holdsworth 2018-01-07 04:18:28 CET
When I connect the UT61C cable to my PC, it comes up with the expect PID/VID, but sigrok-cli fails to configure the baud-rate correctly:

---------------------

$ sigrok-cli -d uni-t-ut61c:conn=1a86.e008  --continuous -l 5                                                             
sr: [00:00.000001] log: libsigrok loglevel set to 5.                                                                                           
sr: [00:00.000052] backend: libsigrok 0.6.0-git-7c517d02/4:0:0 (rt: 0.6.0-git-7c517d02/4:0:0).                
sr: [00:00.000081] backend: Libs: glib 2.54.1 (rt: 2.54.1/5401:1), libzip 1.1.2, libserialport 0.1.1/1:0:1 (rt: 0.1.1/1:0:1), libusb-1.0 1.0.21.11156.
sr: [00:00.000093] backend: Host: x86_64-pc-linux-gnu, little-endian.                                 
sr: [00:00.000099] backend: SCPI backends: TCP, RPC, serial, USBTMC.                                                                                                                                                                        
sr: [00:00.000134] backend: Sanity-checking all drivers.                                                               
sr: [00:00.000154] backend: Sanity-checking all input modules.                                                  
sr: [00:00.000164] backend: Sanity-checking all output modules.                                                                   
sr: [00:00.000176] backend: Sanity-checking all transform modules.                                                               
srd: libsigrokdecode loglevel set to 5.                                                                                                               
sr: [00:00.006733] hwdriver: sr_config_list(): key 2147418112 (NULL) sdi (nil) cg NULL -> [uint32 20000]                         
sr: [00:00.006828] usb: Found USB device (VID:PID = 1a86:e008, bus.address = 1.23).                                                            
sr: [00:00.006843] hwdriver: Scan found 1 devices (uni-t-ut61c).                                                                                      
sr: [00:00.006860] device: uni-t-ut61c: Opening device instance.                                            
sr: [00:00.006866] usb: Trying to open USB device 1.23.                                                        
sr: [00:00.006913] usb: Opened USB device (VID:PID = 1a86:e008, bus.address = 1.23).                                                                                                                 
sr: [00:00.006943] session: Using thread-default main context.                                                                                     
sr: [00:00.006949] session: Starting.                                                                          
sr: [00:00.006952] hwdriver: uni-t-ut61c: Starting acquisition.                                                                                        
sr: [00:00.006956] std: uni-t-ut61c: Sending SR_DF_HEADER packet.                                                                                             
sr: [00:00.006963] session: Running transform module 'nop'.                                                                                            
sr: [00:00.006966] transform/nop: Received packet of type 10000, passing on unmodified.               
sr: [00:00.006971] session: bus: Received SR_DF_HEADER packet.                                                                                                               
cli: Received SR_DF_HEADER.                                                                                                                                                                                 
Press any key to stop acquisition.                                                                                                                                                                   
sr: [00:00.033400] uni-t-dmm: Sending initial HID feature report.                                                                                                                                      
sr: [00:00.033437] uni-t-dmm: HID init = 0x60 0x09 0x00 0x00 0x03 (2400 baud)                                                                                                      
sr: [00:00.033665] uni-t-dmm: HID feature report error: LIBUSB_ERROR_PIPE.                                                                                                                               
sr: [00:00.033675] uni-t-dmm: HID chip init failed: -1.                                                                                                                                                                                  
sr: [00:00.033685] session: fd_source_finalize: key 0xffffffffffffffff                                                                                                                                                   
sr: [00:00.033706] session: Stopped.                                                                                                                                               
sr: [00:00.033734] hwdriver: Cleaning up all drivers.  


---------------------

Here is the lsusb output:

---------------------

$ lsusb -v -d 1a86:e008

Bus 001 Device 025: ID 1a86:e008 QinHeng Electronics HID-based serial adapater
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x1a86 QinHeng Electronics
  idProduct          0xe008 HID-based serial adapater
  bcdDevice           12.00
  iManufacturer           1 (error)
  iProduct                2 (error)
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           41
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          4 (error)
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      37
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               5
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               5
Device Status:     0x58a0
  (Bus Powered)

---------------------
Comment 1 Joel Holdsworth 2018-01-07 20:02:15 CET
gsi_ pointed out the script in README.device:

#!/bin/bash
for dat in /sys/bus/usb/devices/*; do
  if test -e $dat/manufacturer; then
    grep "WCH.CN" $dat/manufacturer > /dev/null && echo auto > ${dat}/power/level && echo 0 > ${dat}/power/autosuspend
  fi
done


I tried running this script as root on Ubuntu with Linux 4.13.0, but problem persists.
Comment 2 Gerhard Sittig 2018-02-04 17:04:25 CET
Joel, does the USB reset approach work for you?  Others report that the above 
suspend method stopped working for them on recent distros.

See littleyoda on 2018-01-07 on IRC
20:57 <littleyoda> For  my unit-t-ut61d I have to use the tool usbreset. 
20:57 <littleyoda> https://marc.info/?l=linux-usb&m=121459435621262&q=p3 
20:57 <littleyoda> And I'm using the following shell-script to start usbreset
20:57 <littleyoda> https://pastebin.com/qDU460NA

More context on usbreset is in the Ubuntu Forum/Wiki IIRC.
Comment 3 Gerhard Sittig 2019-12-21 19:48:20 CET
Ping. Worth a retry. The project switched from custom logic on top of libusb 
to the hidapi library. Which may have improved portability and the ability to 
access devices which were not accessible before.
Comment 4 Gerhard Sittig 2020-07-30 06:56:32 CEST
Closing as works-for-me since it does here. Haven't used the extra script 
for years now.