Mark-- To add to Ian's response, the HID POS Usage Tables ( http://www.usb.org/developers/hidpage/pos1_02.pdf) will help you decipher what the HID kernel module is telling you. Check out "Section 4 Weighing Devices (0x8D)" for the Report IDs, which will put context to the data that you receive from the HID driver.
I'm working on a similar project using a Dymo Pelouze 25 lb. Postal Scale. Best of luck! --Jared On Mon, Nov 3, 2014 at 2:44 PM, Ian Daniher <it.dani...@gmail.com> wrote: > If you haven't already, I'd start by generating large log files of the > scales interacting with the vendor-provided software. It's easy to do this > on Linux using https://www.kernel.org/doc/Documentation/usb/usbmon.txt. > > Also, you have a USB HID device, which is a shortpath used by many vendors > for "driverless" operation. Unfortunately this will make direct PyUSB > interface slightly obnoxious. I'd check out > http://pythonic-wisdom.blogspot.com/2009/07/usb-hid-with-linux-and-python.html > and continue the search from there, looking less at PyUSB and perhaps more > at the source of existing Python+USB+HID projects. > > BR, > Ian > > > > On Mon, Nov 3, 2014 at 2:34 PM, Mark McClure <markfmccl...@gmail.com> > wrote: > >> Wander and all users, >> >> Thank you for getting back to me. As you can tell, all of this is foreign >> to me since I'm a very novice programmer. When you say poll the USB POV, >> do you mean "read" data from the device? >> >> Here's what I tried as I removed jelly beans from a scale over 10 seconds: >> >> import sys >> import usb.core >> import usb.util >> import time >> >> dev = usb.core.find(idVendor = 0x0DBC, idProduct = 0x0005) >> if dev is None: >> raise ValueError('Device not found') >> >> dev.set_configuration() >> >> endpoint = dev[0][(0,0)][0] >> >> timestep = 0 >> >> while timestep <= 10: >> data = dev.read(endpoint.bEndpointAddress, >> endpoint.wMaxPacketSize) >> print(data) >> time.sleep(1) >> timestep += 1 >> >> >> The output was this: >> >> array('B', [0, 0, 87, 0, 0, 0, 0, 0]) >> array('B', [0, 0, 0, 0, 0, 0, 0, 0]) >> array('B', [0, 0, 98, 0, 0, 0, 0, 0]) >> array('B', [0, 0, 0, 0, 0, 0, 0, 0]) >> array('B', [0, 0, 98, 0, 0, 0, 0, 0]) >> array('B', [0, 0, 0, 0, 0, 0, 0, 0]) >> array('B', [0, 0, 98, 0, 0, 0, 0, 0]) >> array('B', [0, 0, 0, 0, 0, 0, 0, 0]) >> array('B', [0, 0, 98, 0, 0, 0, 0, 0]) >> array('B', [0, 0, 0, 0, 0, 0, 0, 0]) >> array('B', [0, 0, 96, 0, 0, 0, 0, 0]) >> >> But I don't have any idea what this means, except that I'm guessing that >> changes in weight data were not recorded. >> >> Has anyone worked on a device like this? Some sample code might really >> help me make sense of everything. >> >> On Mon, Nov 3, 2014 at 2:31 AM, Wander Lairson Costa < >> wander.lair...@gmail.com> wrote: >> >>> 2014-11-02 1:54 GMT-02:00 Mark McClure <markfmccl...@gmail.com>: >>> > Hello list: >>> > >>> > I have three A&D EJ-3000 scales that I want to simultaneously acquire >>> data >>> > from every 1 minute over 24-hr periods. All scales have a USB >>> interface. >>> > I've started working through the pyusb tutorial, but before I confuse >>> myself >>> > any further, I thought I'd ask if what I want to do is even possible? >>> Tech >>> > support at A&D told me that retrieving weight data from the scales >>> > automatically (i.e. without pushing the print button on the scales) >>> could >>> > not be done with USB because the interface was uni-directional. >>> Instead, >>> > they suggested that I switch to RS-232. Is this true, and if so why? >>> > >>> >>> Hi, >>> >>> It really depends on how the firmware behaves, from USB POV, you can >>> always poll the device for data each minute. But might be other >>> constraints that I am not aware of. >>> >>> > I printed the configuration of the scale after installing pyusb and >>> starting >>> > the tutorial. >>> > >>> > >>> > CONFIGURATION 1: 20 mA =================================== >>> > bLength : 0x9 (9 bytes) >>> > bDescriptorType : 0x2 Configuration >>> > wTotalLength : 0x2d (45 bytes) >>> > bNumInterfaces : 0x1 >>> > bConfigurationValue : 0x1 >>> > iConfiguration : 0x0 >>> > bmAttributes : 0x80 Bus Powered >>> > bMaxPower : 0xa (20 mA) >>> > INTERFACE 0: Human Interface Device ==================== >>> > bLength : 0x9 (9 bytes) >>> > bDescriptorType : 0x4 Interface >>> > bInterfaceNumber : 0x0 >>> > bAlternateSetting : 0x0 >>> > bNumEndpoints : 0x2 >>> > bInterfaceClass : 0x3 Human Interface Device >>> > bInterfaceSubClass : 0x0 >>> > bInterfaceProtocol : 0x1 >>> > iInterface : 0x0 >>> > ENDPOINT 0x81: Interrupt IN ========================== >>> > bLength : 0x7 (7 bytes) >>> > bDescriptorType : 0x5 Endpoint >>> > bEndpointAddress : 0x81 IN >>> > bmAttributes : 0x3 Interrupt >>> > wMaxPacketSize : 0x40 (64 bytes) >>> > bInterval : 0x4 >>> > ENDPOINT 0x2: Interrupt OUT ========================== >>> > bLength : 0x7 (7 bytes) >>> > bDescriptorType : 0x5 Endpoint >>> > bEndpointAddress : 0x2 OUT >>> > bmAttributes : 0x3 Interrupt >>> > wMaxPacketSize : 0x40 (64 bytes) >>> > bInterval : 0x4 >>> > >>> > Any guidance would be greatly appreciated. >>> > >>> >>> >>> -- >>> Best Regards, >>> Wander Lairson Costa >>> >>> >>> ------------------------------------------------------------------------------ >>> _______________________________________________ >>> pyusb-users mailing list >>> pyusb-users@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/pyusb-users >>> >> >> >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> pyusb-users mailing list >> pyusb-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/pyusb-users >> >> > > > ------------------------------------------------------------------------------ > > _______________________________________________ > pyusb-users mailing list > pyusb-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/pyusb-users > >
------------------------------------------------------------------------------
_______________________________________________ pyusb-users mailing list pyusb-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/pyusb-users