Hi guys, I've done some more debugging -- first, here's an extract from the trace log: [enumeration trimmed] > SET_CONFIGURATION(1) > BULK_WRITE(09 11) > BULK_WRITE(0B 80 64) < BULK_READ(64 bytes) = 0xFE > BULK_WRITE(09 00) (application ends here) > SET_CONFIGURATION(1) > BULK_WRITE(09 11) > BULK_WRITE(0B 80 64) < BULK_READ(64 bytes) = [timed out] Now, on Windows, that second SET_CONFIGURATION request just doesn't happen. On Linux, libusb *always* sends a SET_CONFIGURATION req when you call usb_set_configuration(), even if the device is already set to the specified configuration. This isn't normally an issue, and AIUI there's nothing in the USB spec that says this is incorrect. What actually happens on the Microchip stack is that the endpoints end up disabled -- the OUT endpoint will accept data from the host (and ACK it), but the IN endpoint NAKs everything. For extra bonus points, you can't even send a SET_CONFIGURATION(0) followed by a SET_CONFIGURATION(n) -- that is, put the device into the Addressed state and wake it up again. That locks the stack up as well. Trapping the code with the ICD2 after the problem occurs leads me to suspect that the stack isn't re-enabling the endpoints correctly. For instance, this expression in ProcessIO() evaluates to TRUE when data is available, but after the second SET_CONFIGURATION, it evaluates to FALSE and ProcessIO() assumes there's no data available: //Check if the endpoint has received any data from the host. if(!USBHandleBusy(USBGenericOutHandle)) { // ... USB OUT packet handling code goes here ... } Has anyone seen anything even remotely like this going on with the Microchip stack? I'm probably going to pull the thing apart some time next week and debug it in greater detail, but for now I'd love to know if there are any known issues with Framework 2.5b that aren't in the README... Thanks, -- Phil. piclist@philpem.me.uk http://www.philpem.me.uk/ -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist