Thursday, January 7, 2010

Rigol DS1052E Oscilloscope and Linux - Part 1

I just received a new piece of test equipment today, a Rigol DS1052E oscilloscope from Saelig.  After powering it on and connecting one probe, I decided to see if I could interface with it in Linux.  I've done some interfacing with test equipment in Linux before using USB-to-GPIB interfaces, but this instrument has serial and raw USB.

Trusty Google has yet to provide me any information about this combination, so I decided to start by plugging the scope into my Ubuntu machine.  dmesg output and more after the break.




[65794.781221] usb 2-6.3: new full speed USB device using ohci_hcd and address 6
[65794.909328] usb 2-6.3: configuration #1 chosen from 1 choice
[65794.984233] usbtmc 2-6.3:1.0: can't read capabilities
[65794.984312] usbcore: registered new interface driver usbtmc


That error doesn't look promising, however it may be benign. Here's the lsusb output:

Bus 002 Device 006: ID 1ab1:0588
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x1ab1
idProduct 0x0588
bcdDevice 1.00
iManufacturer 1 Rigol Technologies
iProduct 2 DS1000 SERIES
iSerial 3 DS1K00005888
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 39
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 2mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 254 Application Specific Interface
bInterfaceSubClass 3 Test and Measurement
bInterfaceProtocol 1 TMC
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 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
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 1
Device Status: 0x0001
Self Powered


There is very little information about this usbtmc driver available. There's a python library available from OpenMoko SVN.

I tried installing that, however it only gives an error when I try one of the examples.  It may be related to that "can't get capabilities" error.

There is apparently an Agilent usbtmc driver in addition to the mainline Linux kernel one, I will try that later, as I need to go run errands now.  Stay tuned!

No comments:

Post a Comment