We are using LPC4357 and using NXP USB ROM driver for HID communication. The output report we send from the host arrives via EP OUT rather than control out. So, when a host sends output report, at the device side set_report function doesn’t get called instead HID_Ep_Hdlr gets called. The throughput for set and get report (we send 64 bytes output report and get 64 bytes input report – our program echoes) is around 500 milliseconds . When we send 100 output report and get 100 input reports it takes 55 seconds. Feature report size is 255 and sending 10 - 500 bytes feature report and getting 500 bytes response takes less than second. Feature reports are sent and received via control out and input. In both cases we echo back. We segment and desegment feature reports so that we can send 500 bytes at a time which is much more complicated. Do you have any idea why the throughput for EP OUT is so low? Is there any way to receive output report via control out so that set_report gets called for output report?