Hi,
I am trying to interface raspberry pi with a custom HID device via USB. I
am using PYUSB for this. But once I run my program i get a timeout error.

Here is my program:

import os
import sys
import time


import usb.core
import usb.util

packet_len = 64

# packet request function
def pack_request(*arguments):
    packet = [0x0] * packet_len
    i = 0
    for arg in arguments:
        packet[i] = arg
        i+=1
    return ''.join([chr(c) for c in packet])

def show_result(bytes):
    sys.stdout.write("Result:")
    sys.stdout.write(''.join(['%d ' % abyte for abyte in bytes]))


def main():
    dev = usb.core.find(idVendor = 0x04d8, idProduct = 0xf2a6)

    if dev is None:
        raise ValueError('Device not found')

    #dev.set_configuration()

    if dev.is_kernel_driver_active(0):
        reattach = True
        dev.detach_kernel_driver(0)

    cfg = dev.get_active_configuration()
    intf = cfg[(0,0)]

    ep =  usb.util.find_descriptor(
        intf,
        # match the first OUT endpoint
        custom_match = \
        lambda e: \
            usb.util.endpoint_direction(e.bEndpointAddress) == \
            usb.util.ENDPOINT_OUT)

    assert ep is not None

    raw = pack_request(0x00, 0x81)

    dev.write(1, raw, 100)

    bytes = dev.read(0x81,packet_len, 10000)
    show_result(bytes)

    #print(bytes)

if __name__ == '__main__':
    main()


and Here is the error:

pi@raspberrypi:~/Documents $ sudo python multispec_usbcode_jan21.py
Traceback (most recent call last):
  File "multispec_usbcode_jan21.py", line 66, in <module>
    main()
  File "multispec_usbcode_jan21.py", line 58, in main
    dev.write(1, raw,100)
  File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 878, in
write
    self.__get_timeout(timeout)
  File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py",
line 778, in intr_write
    timeout)
  File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py",
line 856, in __write
    _check(retval)
  File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py",
line 552, in _check
    raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno 110] Operation timed out

Please let me know how to get around this?

Thanks,
Chhavi
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
pyusb-users mailing list
pyusb-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pyusb-users

Reply via email to