I ran the usbhost mouse test program and it builds and it works with my DELL keyboard
including having an HP mouse plugged into one of the USB ports on the keyboard.
Do you feel like this is a reasonably stable point to publish 1.40, as far as Teensy 3.6 USB Host is concerned?
Sort of interesting, that when I do the upload now, the Teensy app launches but does not come up to the top of window chain,
That's the way it's always been intended to work. I'm really not sure why it was ever bringing itself above other windows. There's nothing I've done in the code to make that happen, but it is built on top of the wxWidgets toolkit. There's a ton of code in wxWidgets!
The one major structural change on the Windows size is how teensy_reboot runs. Long ago, Arduino would run teensy_post_compile and then also run teensy_reboot. But recent versions of Arduino made running 2 programs after compile much harder. Rather than patching Arduino, I added a "-reboot" option to teensy_post_compile to make it run teensy_reboot. So clicking Verify in Arduino doesn't use the -reboot option, and clicking Upload does.
Originally I used used ShellExecute() to run teensy_reboot. It worked, but it turns out running teensy_reboot that way causes its stderr output to go nowhere. Any errors or other stuff it tries to print never ends up in the Arduino console. Apparently Windows doesn't have any way to run another program and have it inherit stdin, stdout, stderr like Linux & Mac and all traditional Unix systems do. Or if it can do so, I don't know how.
With this latest beta, I changed teensy_post_compile to run teensy_reboot with CreateProcess(). Windows does have a
way to create pipes that can be inherited and connected to stdin, stdout, stderr. The biggest difference here is that teensy_post_compile doesn't end when teensy_reboot begins. It has to sit there and wait, and read the pipe to get whatever teensy_reboot prints to stderr, and then send it to its own stderr so Arduino gets the messages.
I can't see why the way these console-only utilities are run would affect the Teensy Loader GUI. But both of them to open localhost connections to Teensy Loader to get status info. Maybe that's affecting things somehow?
Teensy Loader also got some changes, but that was mostly on the Linux side to use libudev, and adding the counterfeit warning message.