Windows Insider Preview slow USB throughput

Status
Not open for further replies.

yeahtuna

Well-known member
Starting out around build 14342, I've noticed that Windows 10 seems to be buffering rawhid messages from my Teensy devices and processing them at a much slower rate then they arrive. Has anyone else noticed anything like this?
 
I'm on the mainline Win10 - I've seen rawhid to be iffy and odd - nothing like the reliablility of Serial. IDE SerMon doesn't seem to do it at all and even TYQT misses the start of a session. Mostly when doing TeensyTransfer, or the next build after when I forgot to go back to Serial.

Maybe your use it as a direct rawhid consumer - TeensyTransfer.exe takes a couple minutes to reliably transfer 13.3MB to a Teensy writing it to flash.

For debugging ? Have you tried TYQT? If you can document/demo what you find, Koromix might see a solution for TYQT. A build was offered for my nebulous observations, but I use rawhid so little I cannot confirm what I was seeing to know if it was fixed. I'm not tied to rawhid and use Serial for debug spew. I'm stuck using IDE SerMon for a bit, but both seem to catch data at 20K-27K chars/second before losses showed up from somewhere in my last test - though long after I expected them as it was really uncontrolled amounts of data

On my main PC I hesitate to go to Insider Preview. But now that my desktop has fresh larger SSD+HDD I'm ready to go from Win_7 to Win_10 on that and will opt for the IP builds in coming days. I can actually time the TeensyTransfers then on both.
 
My development machine is regular windows 10 and my devices perform flawlessly there. But I also have two other machines currently running build 14372 and both are seeing issues.

The devices are actually MIDI / rawhid composite devices. No problems with the MIDI interface, but the rawhid is definitely acting up. Packets are not being dropped, but they are arriving late. Seems like they are buffered and feed to my application much slower rate then they are arriving into the computer.
 
Oh that's sad news. Windows 10 was so far the first version Microsoft's ever published with USB working really well.
 
Is there any channel to provide feedback to Microsoft that whatever they did on the "Insider Preview" has a USB buffering issue relative to the mainstream Win10 ?
 
Updated my development machine to the anniversary update and rawhid is working as expected. I guess it's just an issue for y systems that went the insider route.
 
Starting out around build 14342, I've noticed that Windows 10 seems to be buffering rawhid messages from my Teensy devices and processing phenq at a much slower rate then they arrive. Has anyone else noticed anything like this?

It works perfectly on my machine. Don't know why you are experiencing such problems.
 
Last edited:
I am having the same slow USB issues on my Windows10 box and it is up to date and I don't believe I was/am using the insider preview. Let me know if redoing the USB portion works.
 
Hello.
(first post here but longtime lurker).
A little background. I'm a big fan of rawhid. I used it with 32u4 based boards (such as sparkfun pro micros), and I've switched to teensy LCs. I use them for custom flight sim hardware (Not xplane thou,so I use custom C# code to interface to the sim).
Anyways, Yes, I have noticed a big performance hit, which may or may or may not be rawhid related.
I need to send small packets (64 bytes) every 10-15 ms to the teensy-LC.Since I'm driving needle gauges (with steppers and/or DC motors), and the data comes from the flight sim "real time") I need the stream to be reliable and packets need to be received in order (otherwise the needles jump!!).
What began to happen with windows 10.
First of all, I noticed serial monitor was "lagging" every few second.(even without any actual rawhid comm, just for example try looping an analogRead as first line into setup() ).
I began simple tracing with printf and what I get is this:

usb delay.jpg

basically, average time between packets is 15ms which is fine, but there is a packet loss, for about 700 ms, every 4-4.5 seconds.
A usb debug with message analyzer shows this:

trace analyze.jpg

and of course this happens every 4-4.5 seconds...
If I understand correcly, then, every 4 seconds the device is "silently" getting reenumerated in a transparent manner.

any ideas ?
 
NEVERMIND.
Dumb error on my part.
I've been using a custom entry in the menu which has serial emu, rawhid and a joystick, but was using same endpoint number for both rawhid_rx and joystick.
 
Starting out around build 14342, read more I've noticed that Windows 10 seems to be buffering rawhid messages from my Teensy devices and processing Don't know why you are experiencing such problems. It works perfectly on my machine.
 
Last edited:
I finally found a solution to this problem

This issue shows up on my Surface Pro 3 running Win10 x64 quite reliably. I suspect it's a side affect of aggressive power management.

Anyways, here's the solution:

Create and start the fastest multimedia timer you can, and have it point to an empty callback function. Problem solved.

Rob
 
Status
Not open for further replies.
Back
Top