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