Hello,
You have to send the initialization code like
this: dev.ctrl_transfer(0x21,0x09,0,0x05,[96,9,0,0,3]).  After that, the
device will constantly send reports every .012 seconds.  Usually, these
reports contain no data and look like this: F0 00 00 00 00 00 00 00.  Every
so often, it will send a data point as a sequence of 11 messages.  I wasn't
able to completely decode these messages (and it would be great if someone
recognizes what they mean!), but this is an example, which means -1.4315 V
DC:

F1 31 00 00 00 00 00 00
F1 34 00 00 00 00 00 00
F1 B3 00 00 00 00 00 00
F1 31 00 00 00 00 00 00
F1 B5 00 00 00 00 00 00
F1 31 00 00 00 00 00 00
F1 31 00 00 00 00 00 00
F1 B0 00 00 00 00 00 00
F1 B5 00 00 00 00 00 00
F1 0D 00 00 00 00 00 00
F1 8A 00 00 00 00 00 00

The fourth digits of the first 5 messages give the digits of the voltage,
and I think the 9th message gives the sign (B5 negative, 31 positive), but
I don't know what the other messages mean.

-Libby


On Sun, Jul 21, 2013 at 5:35 PM, Ioakeim Tellidis <li...@e-noesis.com>wrote:

> Elizabeth,
> Why dont you update your code including the initialization code for your
> instrument? It may be usuful in the future if somebody try to search the
> list archives for help. Well, this is just a suggestion.
>
>
> On Fri, Jul 19, 2013 at 4:30 PM, Elizabeth Tolman 
> <etol...@princeton.edu>wrote:
>
>> Thank you all so much for your help!  I can now get the multimeter to
>> talk to me.  It turns out you have to send it a message before it will send
>> you reports.  I'm still working on the best way to understand and record
>> these reports, though, so I may need more help later, but for now things
>> are going well.
>>
>>
>> On Fri, Jul 19, 2013 at 4:35 AM, Xiaofan Chen <xiaof...@gmail.com> wrote:
>>
>>> On Thu, Jul 18, 2013 at 9:40 PM, Elizabeth Tolman <etol...@princeton.edu>
>>> wrote:
>>> >
>>> > I don't know if this is helpful or not, but I have another software
>>> > program that reads from this multimeter.  I can't look at the source
>>> code
>>> > because it's a .exe file, but I used USBlyzer to look at the requests
>>> it was
>>> > sending across the USB cable once it found the device.  I was thinking
>>> maybe
>>> > I could somehow replicate these commands.  Note that all this happened
>>> when
>>> > a different driver was installed (libusb 1.2.6.0 has you install a new
>>> > driver for the device you want to use).  This is screenshot of the most
>>> > important part; and I've attached the .ulz file of the whole exchange:
>>>
>>> You will have to carry out the revers engineering by yourself.
>>> And this is really not a pyusb or libusb-win32 problem. You have
>>> to understand the communication protocol before using pyusb.
>>>
>>> Since this is an HID device (bInterfaceClass:    3), you will find
>>> the USB HID spec useful, especially Chapter 7.
>>>
>>> You should read the HID spec here. It is quite useful,
>>> especially Chapter 7.
>>> http://www.usb.org/developers/devclass_docs/HID1_11.pdf
>>>
>>> Some cheat codes for you, from Linux USB developer
>>> Alan Stern. It might help you to translate HID report
>>> read/write to control IN/OUT transfer.
>>>
>>> HID device also uses Interrupt IN/OUT transfer.
>>>
>>>                 Standard device requests
>>>
>>> RQtype Req      Value           Index   Length
>>> ----------------------------------------------
>>>   0     1       dev-feat        0       0       Clear device feature
>>>   0     3       dev-feat        0       0       Set device feature
>>>   0     5       address         0       0       Set device address
>>>   0     9       config-value    0       0       Set configuration
>>>   1     b       altsetting      intf    0       Set interface
>>>   1     1       intf-feat       intf    0       Clear interface feature
>>>   1     3       intf-feat       intf    0       Set interface feature
>>>   2     1       ep-feat         ep      0       Clear endpoint feature
>>>   2     3       ep-feat         ep      0       Set endpoint feature
>>>  80     0       0               0       2       Get device status
>>>  80     6       descr-type/     0/      len     Get descriptor
>>>                 index           lang-ID
>>>  80     8       0               0       1       Get configuration
>>>  81     0       0               intf    2       Get interface status
>>>  81     a       0               intf    1       Get interface
>>> (altsetting)
>>>  82     0       0               ep      2       Get endpoint status
>>>
>>> Device features:        0 = self-powered, 1 = remote wakeup
>>> Interface features:     None
>>> Endpoint features:      0 = halt
>>> Descriptor types:       1 = device, 2 = config, 3 = string, (4 =
>>> interface,
>>>         5 = endpoint), 6 = device qualifier, 7 = other-speed config
>>>
>>>
>>>
>>>                 Hub class requests
>>>
>>> RQtype Req      Value           Index   Length
>>> ----------------------------------------------
>>>  20     1       hub-feat        0       0       Clear hub feature
>>>  20     3       hub-feat        0       0       Set hub feature
>>>  23     1       port-feat       sel/    0       Clear port feature
>>>                                 port
>>>  23     3       port-feat       sel/    0       Set port feature
>>>                                 port
>>>  a0     0       0               0       4       Get hub status
>>>  a0     6       2900            0       len     Get hub descriptor
>>>  a3     0       0               port    4       Get port status
>>>
>>> Hub features:   0 = hub local power, 1 = hub over current,
>>>                 10 = ch hub local power, 11 = ch hub over current
>>> Port features:  0 = connect, 1 = enable, 2 = suspend, 3 = over current,
>>>                 4 = reset, 8 = power, 9 = low speed, a = high speed,
>>>                 b = test mode, c = indicator,
>>>                 10 = ch connect, 11 = ch enable, 12 = ch suspend,
>>>                 13 = ch over current, 14 = ch reset
>>> Selector is used for port indicators
>>>
>>>
>>>
>>>                 HID class requests
>>>
>>> RQtype Req      Value           Index   Length
>>> ----------------------------------------------
>>>  21     9       report-type/ID  intf    len     Set report
>>>  21     a       duration/ID     intf    0       Set idle
>>>  21     b       proto           intf    0       Set protocol
>>>  81     6       descr-type/set  intf    len     Get class descriptor
>>>  a1     1       report-type/ID  intf    len     Get report
>>>  a1     2       0/ID            intf    1       Get idle
>>>  a1     3       0               intf    1       Get protocol
>>>
>>> Report type:            1 = input, 2 = output, 3 = feature
>>> Descriptor type:        21 = HID, 22 = Report, 23 = Physical
>>> Protocol:               0 = boot, 1 = report
>>>
>>> --
>>> Xiaofan
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> See everything from the browser to the database with AppDynamics
>>> Get end-to-end visibility with application monitoring from AppDynamics
>>> Isolate bottlenecks and diagnose root cause in seconds.
>>> Start your free trial of AppDynamics Pro today!
>>>
>>> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
>>> _______________________________________________
>>> pyusb-users mailing list
>>> pyusb-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/pyusb-users
>>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> See everything from the browser to the database with AppDynamics
>> Get end-to-end visibility with application monitoring from AppDynamics
>> Isolate bottlenecks and diagnose root cause in seconds.
>> Start your free trial of AppDynamics Pro today!
>>
>> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
>> _______________________________________________
>> pyusb-users mailing list
>> pyusb-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/pyusb-users
>>
>>
>
>
> ------------------------------------------------------------------------------
> See everything from the browser to the database with AppDynamics
> Get end-to-end visibility with application monitoring from AppDynamics
> Isolate bottlenecks and diagnose root cause in seconds.
> Start your free trial of AppDynamics Pro today!
> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
> _______________________________________________
> pyusb-users mailing list
> pyusb-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/pyusb-users
>
>
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
pyusb-users mailing list
pyusb-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pyusb-users

Reply via email to