How it enumerates will depend on the descriptors that you send to the system at 'startup' or 'restart'. When a USB device is plugged in the host detects its presence due to a pull up resistor on one of the data lines. The host then interrogates the device to determine what it is. All you have to do is: (1) make the host think the device is disconnected, (2) then reconnect it, and (3) finally pass the host a different set of descriptors. Steps 1 and 2 are easier to do in some USB implementations than others. Bob Ammerman RAm Systems -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist