Reviewing include/usb.h and include/usbdescritors.h, there are 2 versions of usb_string_descriptor usb_device_descriptor usb_endpoint_descriptor usb_interface_descriptor Any subtle reason for this ? I will start working on the fix. Tom