Bug 1137 - Apparently Rigol DS1054Z USB support is broken
Summary: Apparently Rigol DS1054Z USB support is broken
Status: RESOLVED DUPLICATE of bug 1011
Alias: None
Product: libsigrok
Classification: Unclassified
Component: Driver: rigol-ds (show other bugs)
Version: unreleased development snapshot
Hardware: All All
: Normal normal
Target Milestone: ---
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-03-15 21:29 CET by Aleksander Alsekseev
Modified: 2018-03-20 17:45 CET (History)
1 user (show)



Attachments
full -l 5 log (477.42 KB, text/plain)
2018-03-20 17:45 CET, Uwe Hermann
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Aleksander Alsekseev 2018-03-15 21:29:30 CET
Rigol DS1054Z is listed as a supported device https://sigrok.org/wiki/Rigol_DS1054Z so I decided to test it.

The system is ArchLinux x64.

To access the device the following udev rules are added to /lib/udev/rules.d/991-local.rules:

```
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1ab1", ATTRS{idProduct}=="04ce", GROUP="wheel", MODE="660"
```

The device is connected via USB:
```
[358525.775155] usb 3-3: New USB device found, idVendor=1ab1, idProduct=04ce
[358525.775160] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[358525.775163] usb 3-3: Product: DS1000Z Series
[358525.775166] usb 3-3: Manufacturer: Rigol Technologies. 
```

sigrok-cli is capable to find it:

```
$ sigrok-cli -d rigol-ds --scan

The following devices were found:
rigol-ds - Rigol DS1104Z 00.04.04.SP3 with 4 channels: CH1 CH2 CH3 CH4
```

However sigrok-cli can't receive any data:

```
$ sigrok-cli -d rigol-ds --samples 1000
Failed to configure sample limit.
```

It doesn't matter in which mode the device is, the behavior doesn't change. More complicated commands complain about missing triggers support, missing support of continuous record, etc.

PulseView doesn't work either. If I start it with Rigol connected to USB it terminates immediately:

```
$ pulseview 
std::exception
$ echo $?
0
```

If Rigol is disconnected PulseView runs until I connect Rigol back and try to connect to it. Scan succeeds but the application terminates after an attempt to add the device:

```
$ pulseview 
Caught exception: not applicable
$ echo $?
1
```

It looks like PulseView tries to set a samplerate and fails. Same applies to sigrok-cli - according to the log everything works fine until it tries to limit the number of samples. As a result user can't work with this device from CLI or GUI.

Here is a verbose sigrok-cli output and libraries versions:

```
$ sigrok-cli -d rigol-ds --samples 1000 -l 5
sr: [00:00.000001] log: libsigrok loglevel set to 5.
sr: [00:00.000048] backend: libsigrok 0.6.0-git-e843992d/4:0:0 (rt: 0.6.0-git-e843992d/4:0:0).
sr: [00:00.000138] backend: Libs: glib 2.54.3 (rt: 2.54.3/5403:3), libzip 1.3.2, libserialport 0.1.1/1:0:1 (rt: 0.1.1/1:0:1), libusb-1.0 1.0.21.11156, libftdi 1.4.
sr: [00:00.000174] backend: Host: x86_64-pc-linux-gnu, little-endian.
sr: [00:00.000193] backend: SCPI backends: TCP, RPC, serial, USBTMC.
sr: [00:00.000240] backend: Sanity-checking all drivers.
sr: [00:00.000259] backend: Sanity-checking all input modules.
sr: [00:00.000268] backend: Sanity-checking all output modules.
sr: [00:00.000285] backend: Sanity-checking all transform modules.
srd: libsigrokdecode loglevel set to 5.
sr: [00:00.005357] scpi_usbtmc: Found USBTMC device (VID:PID = 1ab1:04ce, bus.address = 3.122).
sr: [00:00.005371] scpi: Opening USBTMC device usbtmc/3.122.
sr: [00:00.005431] usb: Found USB device (VID:PID = 1ab1:04ce, bus.address = 3.122).
sr: [00:00.005441] usb: Trying to open USB device 3.122.
sr: [00:00.005464] usb: Opened USB device (VID:PID = 1ab1:04ce, bus.address = 3.122).
sr: [00:00.005473] scpi_usbtmc: Interface 0 configuration 1.
sr: [00:00.005478] scpi_usbtmc: Interrupt EP 1
sr: [00:00.005483] scpi_usbtmc: Bulk IN EP 2
sr: [00:00.005487] scpi_usbtmc: Bulk OUT EP 3
sr: [00:00.005718] scpi_usbtmc: Device capabilities: SCPI, L4, T6, SR1, RL1, DT1
sr: [00:00.005748] scpi_usbtmc: Locking out local control.
sr: [00:00.006056] scpi_usbtmc: Successfully sent SCPI command: '*IDN?'.
sr: [00:00.006639] scpi: Got response: 'RIGOL TECHNOLOGIES,DS1104Z,DS1ZA191003529,00.04.04.SP3', length 54.
sr: [00:00.006663] scpi: Got IDN string: 'RIGOL TECHNOLOGIES,DS1104Z,DS1ZA191003529,00.04.04.SP3'
sr: [00:00.006714] scpi_usbtmc: Returning local control.
sr: [00:00.006918] usb: Closed USB device 3.122.
sr: [00:00.009432] hwdriver: Scan found 1 devices (rigol-ds).
sr: [00:00.009494] device: rigol-ds: Opening device instance.
sr: [00:00.009510] usb: Trying to open USB device 3.122.
sr: [00:00.009555] usb: Opened USB device (VID:PID = 1ab1:04ce, bus.address = 3.122).
sr: [00:00.009577] scpi_usbtmc: Interface 0 configuration 1.
sr: [00:00.009592] scpi_usbtmc: Interrupt EP 1
sr: [00:00.009609] scpi_usbtmc: Bulk IN EP 2
sr: [00:00.009627] scpi_usbtmc: Bulk OUT EP 3
sr: [00:00.009910] scpi_usbtmc: Device capabilities: SCPI, L4, T6, SR1, RL1, DT1
sr: [00:00.009943] scpi_usbtmc: Locking out local control.
sr: [00:00.010266] scpi_usbtmc: Successfully sent SCPI command: ':CHAN1:DISP?'.
sr: [00:00.010671] scpi: Got response: '1', length 1.
sr: [00:00.010764] scpi_usbtmc: Successfully sent SCPI command: ':CHAN2:DISP?'.
sr: [00:00.011143] scpi: Got response: '0', length 1.
sr: [00:00.011223] scpi_usbtmc: Successfully sent SCPI command: ':CHAN3:DISP?'.
sr: [00:00.011581] scpi: Got response: '0', length 1.
sr: [00:00.011644] scpi_usbtmc: Successfully sent SCPI command: ':CHAN4:DISP?'.
sr: [00:00.012124] scpi: Got response: '0', length 1.
sr: [00:00.012155] rigol-ds: Current analog channel state:
sr: [00:00.012175] rigol-ds: CH1 on
sr: [00:00.012192] rigol-ds: CH2 off
sr: [00:00.012210] rigol-ds: CH3 off
sr: [00:00.012224] rigol-ds: CH4 off
sr: [00:00.012305] scpi_usbtmc: Successfully sent SCPI command: ':TIM:SCAL?'.
sr: [00:00.012889] scpi: Got response: '5.0000000e-01', length 13.
sr: [00:00.012941] rigol-ds: Current timebase 0.5
sr: [00:00.013070] scpi_usbtmc: Successfully sent SCPI command: ':CHAN1:PROB?'.
sr: [00:00.013602] scpi: Got response: '1.000000e+01', length 12.
sr: [00:00.013695] scpi_usbtmc: Successfully sent SCPI command: ':CHAN2:PROB?'.
sr: [00:00.014318] scpi: Got response: '1.000000e+01', length 12.
sr: [00:00.014411] scpi_usbtmc: Successfully sent SCPI command: ':CHAN3:PROB?'.
sr: [00:00.014979] scpi: Got response: '1.000000e+01', length 12.
sr: [00:00.015055] scpi_usbtmc: Successfully sent SCPI command: ':CHAN4:PROB?'.
sr: [00:00.015564] scpi: Got response: '1.000000e+01', length 12.
sr: [00:00.015587] rigol-ds: Current probe attenuation:
sr: [00:00.015598] rigol-ds: CH1 10
sr: [00:00.015617] rigol-ds: CH2 10
sr: [00:00.015622] rigol-ds: CH3 10
sr: [00:00.015628] rigol-ds: CH4 10
sr: [00:00.015661] scpi_usbtmc: Successfully sent SCPI command: ':CHAN1:SCAL?'.
sr: [00:00.016237] scpi: Got response: '1.000000e+00', length 12.
sr: [00:00.016360] scpi_usbtmc: Successfully sent SCPI command: ':CHAN2:SCAL?'.
sr: [00:00.016899] scpi: Got response: '1.000000e+00', length 12.
sr: [00:00.017001] scpi_usbtmc: Successfully sent SCPI command: ':CHAN3:SCAL?'.
sr: [00:00.017420] scpi: Got response: '2.000000e+00', length 12.
sr: [00:00.017470] scpi_usbtmc: Successfully sent SCPI command: ':CHAN4:SCAL?'.
sr: [00:00.017949] scpi: Got response: '2.000000e+00', length 12.
sr: [00:00.017965] rigol-ds: Current vertical gain:
sr: [00:00.017969] rigol-ds: CH1 1
sr: [00:00.017977] rigol-ds: CH2 1
sr: [00:00.017984] rigol-ds: CH3 2
sr: [00:00.017991] rigol-ds: CH4 2
sr: [00:00.018035] scpi_usbtmc: Successfully sent SCPI command: ':CHAN1:OFFS?'.
sr: [00:00.018525] scpi: Got response: '6.000000e-02', length 12.
sr: [00:00.018579] scpi_usbtmc: Successfully sent SCPI command: ':CHAN2:OFFS?'.
sr: [00:00.019118] scpi: Got response: '-1.120000e+00', length 13.
sr: [00:00.019178] scpi_usbtmc: Successfully sent SCPI command: ':CHAN3:OFFS?'.
sr: [00:00.019627] scpi: Got response: '-3.600000e+00', length 13.
sr: [00:00.019705] scpi_usbtmc: Successfully sent SCPI command: ':CHAN4:OFFS?'.
sr: [00:00.020126] scpi: Got response: '-7.600000e+00', length 13.
sr: [00:00.020150] rigol-ds: Current vertical offset:
sr: [00:00.020174] rigol-ds: CH1 0.06
sr: [00:00.020184] rigol-ds: CH2 -1.12
sr: [00:00.020191] rigol-ds: CH3 -3.6
sr: [00:00.020199] rigol-ds: CH4 -7.6
sr: [00:00.020244] scpi_usbtmc: Successfully sent SCPI command: ':CHAN1:COUP?'.
sr: [00:00.020600] scpi: Got response: 'DC', length 2.
sr: [00:00.020661] scpi_usbtmc: Successfully sent SCPI command: ':CHAN2:COUP?'.
sr: [00:00.021060] scpi: Got response: 'DC', length 2.
sr: [00:00.021123] scpi_usbtmc: Successfully sent SCPI command: ':CHAN3:COUP?'.
sr: [00:00.021497] scpi: Got response: 'DC', length 2.
sr: [00:00.021578] scpi_usbtmc: Successfully sent SCPI command: ':CHAN4:COUP?'.
sr: [00:00.021998] scpi: Got response: 'DC', length 2.
sr: [00:00.022021] rigol-ds: Current coupling:
sr: [00:00.022046] rigol-ds: CH1 DC
sr: [00:00.022050] rigol-ds: CH2 DC
sr: [00:00.022057] rigol-ds: CH3 DC
sr: [00:00.022066] rigol-ds: CH4 DC
sr: [00:00.022139] scpi_usbtmc: Successfully sent SCPI command: ':TRIG:EDGE:SOUR?'.
sr: [00:00.022539] scpi: Got response: 'CHAN1', length 5.
sr: [00:00.022564] rigol-ds: Current trigger source CHAN1
sr: [00:00.022625] scpi_usbtmc: Successfully sent SCPI command: ':TIM:OFFS?'.
sr: [00:00.023043] scpi: Got response: '0.0000000e+00', length 13.
sr: [00:00.023067] rigol-ds: Current horizontal trigger position 0
sr: [00:00.023142] scpi_usbtmc: Successfully sent SCPI command: ':TRIG:EDGE:SLOP?'.
sr: [00:00.023546] scpi: Got response: 'RFAL', length 4.
sr: [00:00.023567] rigol-ds: Current trigger slope RFAL
sr: [00:00.023631] scpi_usbtmc: Successfully sent SCPI command: ':TRIG:EDGE:LEV?'.
sr: [00:00.024125] scpi: Got response: '1.700000e+00', length 12.
sr: [00:00.024152] rigol-ds: Current trigger level 1.7
Failed to configure sample limit.
```
Comment 1 Aleksander Alsekseev 2018-03-15 21:51:31 CET
I tried to use --frames as wiki suggests - turned out it doesn't work either:

```
$ sigrok-cli -d rigol-ds --frames 1 -O analog
FRAME-BEGIN
sr: rigol-ds: Received invalid data block header '��'.
sr: rigol-ds: Read error, aborting capture.
FRAME-END
g_variant_unref: assertion 'value->ref_count > 0' failed
```

Full -l 5 log: https://afiskon.ru/s/82/8c29ec4e41_rigol.log.txt
Comment 2 Uwe Hermann 2018-03-20 17:45:23 CET
Created attachment 398 [details]
full -l 5 log

Attaching -l 5 log to this bugreport so it doesn't get lost.
Comment 3 Uwe Hermann 2018-03-20 17:45:57 CET
This seems to be a duplicate of bug #1011, marking as such. Discussions/fixes will continue there.

*** This bug has been marked as a duplicate of bug 1011 ***