Navspark UART/USB bridge

I created a program on the Navspark to send characters at 150 microsecond intervals and then received them on a PC. Below is a histogram of how long it took between characters:

Serial Character gap

The red boxes are how long it took for the UART/USB bridge to send one character in response to a USB poll, the green boxes are when the UART/USB bridge returned two characters. This is measured by a "realtime" userland process, which can have scheduling delays and adds its own error. The times at 350 microseconds and longer are grouped together, as are the times at 50 microseconds and shorter.

You can see that there's a spike at 120-129 microseconds, as well as 250-259 microseconds. I believe this is from the nature of USB, since the clocking in USB is controlled by the host (PC) not the device (UART/USB bridge on the Navspark).