Hello Libby,
I don't know your device, but I suspect it is using BCD for the lower
nibble and some other info in the upper one.
Another hint the most significant bit could be a parity bit...
More samples could be helpfull...
BR, Jacques-D.
for h in ("31","34","b3","31","b5","31","31","b0","b5","0d","8a"):
... "{:2s} {:04b} {:04b}".format(h, int(h,16)>>4, int(h,16)&15 )
...
'31 0011 0001'
'34 0011 0100'
'b3 1011 0011'
'31 0011 0001'
'b5 1011 0101'
'31 0011 0001'
'31 0011 0001'
'b0 1011 0000'
'b5 1011 0101'
'0d 0000 1101'
'8a 1000 1010'
The last 2 lines could be "OD"/"0A": "CR/LF"
On 28. 07. 13 23:15, Elizabeth Tolman wrote:
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
<mailto: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 <mailto: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 <mailto:xiaof...@gmail.com>> wrote:
On Thu, Jul 18, 2013 at 9:40 PM, Elizabeth Tolman
<etol...@princeton.edu <mailto: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
<mailto: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
<mailto: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
<mailto: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
------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent
caught up. So what steps can you take to put your SQL databases under
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
pyusb-users mailing list
pyusb-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pyusb-users