Hi,

I am having problems reading from a usb nfc device that acts like a
keyboard. If I plug the device into my linux computer and scan a nfc tag,
it outputs it out as if a keyboard was typing the keys:

$: 2352481416


However when I try to isolate the device to capture output with pyusb I am
unable to read anything from the device. In the code I posted below it just
continually prints "[]", never reading any data. When I use ipython to read
with a specified timeout (endpoing.read(129, 5000)), it always times out
despite triggering a tag in the mean time.

One thing I noticed is the iInterface number is 4, instead of 0, but I am
not sure how to use that info.


Device info lsusb -v:

Bus 002 Device 009: ID 08ff:0009 AuthenTec, Inc.
>
> Device Descriptor:
>
>   bLength                18
>
>   bDescriptorType         1
>
>   bcdUSB               1.10
>
>   bDeviceClass            0 (Defined at Interface level)
>
>   bDeviceSubClass         0
>
>   bDeviceProtocol         0
>
>   bMaxPacketSize0         8
>
>   idVendor           0x08ff AuthenTec, Inc.
>
>   idProduct          0x0009
>
>   bcdDevice            0.08
>
>   iManufacturer           1 深圳市思远创智能设备有限公司
>
> http://www.sycreader.com
>
>   iProduct                2 (error)
>
>   iSerial                 3 REV_0008
>
>   bNumConfigurations      1
>
>   Configuration Descriptor:
>
>     bLength                 9
>
>     bDescriptorType         2
>
>     wTotalLength           34
>
>     bNumInterfaces          1
>
>     bConfigurationValue     1
>
>     iConfiguration          0
>
>     bmAttributes         0xa0
>
>       (Bus Powered)
>
>       Remote Wakeup
>
>     MaxPower              100mA
>
>     Interface Descriptor:
>
>       bLength                 9
>
>       bDescriptorType         4
>
>       bInterfaceNumber        0
>
>       bAlternateSetting       0
>
>       bNumEndpoints           1
>
>       bInterfaceClass         3 Human Interface Device
>
>       bInterfaceSubClass      1 Boot Interface Subclass
>
>       bInterfaceProtocol      1 Keyboard
>
>       iInterface              4 RFID Reader With Keyboard
>
>         HID Device Descriptor:
>
>           bLength                 9
>
>           bDescriptorType        33
>
>           bcdHID               1.10
>
>           bCountryCode           33 US
>
>           bNumDescriptors         1
>
>           bDescriptorType        34 Report
>
>           wDescriptorLength      63
>
>          Report Descriptors:
>
>            ** UNAVAILABLE **
>
>       Endpoint Descriptor:
>
>         bLength                 7
>
>         bDescriptorType         5
>
>         bEndpointAddress     0x81  EP 1 IN
>
>         bmAttributes            3
>
>           Transfer Type            Interrupt
>
>           Synch Type               None
>
>           Usage Type               Data
>
>         wMaxPacketSize     0x0008  1x 8 bytes
>
>         bInterval               8
>
> Device Status:     0x0000
>
>   (Bus Powered)
>
>
>

Python code:

import sys
>
> import usb.core
>
> import usb.util
>
>
>> VENDOR_ID = 0x08ff
>
> PRODUCT_ID = 0x0009
>
>
>> device = usb.core.find(idVendor=VENDOR_ID, idProduct=PRODUCT_ID)
>
>
>> if device.is_kernel_driver_active(0):
>
>     try:
>
>         device.detach_kernel_driver(0)
>
>     except usb.core.USBError as e:
>
>         sys.exit("Could not detatch kernel driver: %s" % str(e))
>
>
>> try:
>
>     device.set_configuration()
>
>     device.reset()
>
> except usb.core.USBError as e:
>
>     sys.exit("Could not set configuration: %s" % str(e))
>
>
>> endpoint = device[0][(0, 0)][0]
>
>
>> data = []
>
>
>> while 1:
>
>     try:
>
>         print data
>
>         data += endpoint.read(endpoint.wMaxPacketSize)
>
>         print "NEVER PRINTS"
>
>     except usb.core.USBError as e:
>
>         print e
>
>
>>
------------------------------------------------------------------------------
Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
• 3 signs your SCM is hindering your productivity
• Requirements for releasing software faster
• Expert tips and advice for migrating your SCM now
http://p.sf.net/sfu/perforce
_______________________________________________
pyusb-users mailing list
pyusb-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pyusb-users

Reply via email to