piklab, PICKit 2 and libusb under 11.2

I am running 11.2 64 bit on a Dell Vostro machine.
I am unable to get piklab to connect to a PICKit 2 over USB.
I have created a file /etc/udev/rules.d/26-microchip.rules which contains the line:
ATTR{idVendor}==“04d8”, ATTR{idProduct}==“0033”, OWNER:=“root”, GROUP:=“users”,MODE:=“0660”

This gives a node /dev/bus/usb/006/002 with attributes crw-rw---- owner root group user. The device is rear/write to any member of the “users” group.

In piklab the dialogue “Configure Piklab” reached through the menu Programmer->Settings… on the Preogrammer Selection the Port Selection tab displays USB Connection:Error.

After much research I find that there may be problems with the libusb library under 11.2 so I try to see what is returned by lsusb. I enter the command:
sudo lsusb -v -s 006:002
this returns:

Bus 006 Device 002: ID 04d8:0033 Microchip Technology, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x04d8 Microchip Technology, Inc.
idProduct 0x0033
bcdDevice 0.02
iManufacturer 1 Microchip Technology Inc.
iProduct 2 PICkit 2 Microcontroller Programmer
iSerial 3 ?
bNumConfigurations 2
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 41
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 2 PICkit 2 Microcontroller Programmer
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 0.01
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 29
Report Descriptor: (length is 29)
Item(Global): Usage Page, data= 0x00 0xff ] 65280
(null)
Item(Local ): Usage, data= 0x01 ] 1
(null)
Item(Main ): Collection, data= 0x01 ] 1
Application
Item(Local ): Usage Minimum, data= 0x01 ] 1
(null)
Item(Local ): Usage Maximum, data= 0x40 ] 64
(null)
Item(Global): Logical Minimum, data= 0x00 ] 0
Item(Global): Logical Maximum, data= 0xff 0x00 ] 255
Item(Global): Report Size, data= 0x08 ] 8
Item(Global): Report Count, data= 0x40 ] 64
Item(Main ): Input, data= 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage Minimum, data= 0x01 ] 1
(null)
Item(Local ): Usage Maximum, data= 0x40 ] 64
(null)
Item(Main ): Output, data= 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 2
iConfiguration 4
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
cannot read device status, Broken pipe (32)

This shows that the udev mechanism appears to be finding the device and all the data is being collected but the last line looks ominous.

What does “cannot read device status, Broken pipe (32)” mean and where does it come from?
Is this the cause of the USB connection error?

Can anyone help please?

On Thu, 15 Jul 2010 10:56:02 GMT, pblewis
<pblewis@no-mx.forums.opensuse.org> wrote:

>
>I am running 11.2 64 bit on a Dell Vostro machine.
>I am unable to get piklab to connect to a PICKit 2 over USB.
>I have created a file /etc/udev/rules.d/26-microchip.rules which
>contains the line:
>ATTR{idVendor}==“04d8”, ATTR{idProduct}==“0033”, OWNER:=“root”,
>GROUP:=“users”,MODE:=“0660”
>
>This gives a node /dev/bus/usb/006/002 with attributes crw-rw---- owner
>root group user. The device is rear/write to any member of the “users”
>group.
>
>In piklab the dialogue “Configure Piklab” reached through the menu
>Programmer->Settings… on the Preogrammer Selection the Port Selection
>tab displays USB Connection:Error.
>
>After much research I find that there may be problems with the libusb
>library under 11.2 so I try to see what is returned by lsusb. I enter
>the command:
>sudo lsusb -v -s 006:002
>this returns:
>
>Bus 006 Device 002: ID 04d8:0033 Microchip Technology, Inc.
>Device Descriptor:
>bLength 18
>bDescriptorType 1
>bcdUSB 2.00
>bDeviceClass 0 (Defined at Interface level)
>bDeviceSubClass 0
>bDeviceProtocol 0
>bMaxPacketSize0 8
>idVendor 0x04d8 Microchip Technology, Inc.
>idProduct 0x0033
>bcdDevice 0.02
>iManufacturer 1 Microchip Technology Inc.
>iProduct 2 PICkit 2 Microcontroller Programmer
>iSerial 3 ?
>bNumConfigurations 2
<snip>
>Transfer Type Interrupt
>Synch Type None
>Usage Type Data
>wMaxPacketSize 0x0040 1x 64 bytes
>bInterval 1
>cannot read device status, Broken pipe (32)
>
>This shows that the udev mechanism appears to be finding the device and
>all the data is being collected but the last line looks ominous.
>
>What does “cannot read device status, Broken pipe (32)” mean and where
>does it come from?
>Is this the cause of the USB connection error?
>
>Can anyone help please?

On my oS 11.1 piklab was working (sort of) a couple months back. I
recently updated my usb sw and now i am getting the same error. I
presume that there may be some issue with the usb stack rather than
piklab.