@KurtE - @Paul gave me a heads up on his the T4.0 breakout boards. As far as MTP_Teensy is concerned, I guess it's still a moving target. Not trying to be pushy just curious is all
Not a problem... So am I (curious)...
Once we have reliable USB communications, there are some more moving parts to figure out and finalize (at least for this next release). How many of these that need to get done and what changes that will likely be made are things that Paul will have to decide. Some of the things I see include:
a) MSC migration into USBHost library: I believe is working well, but I did change the directory layout of this library to make it build using the newer library layout, where the sources go into src directory. Assuming that this is agreed to, then there are probably still some stuff that needs to be cleaned up, including the 2nd header file I added as was having issues with files that included both USBHost_t36.h and FS.h
Also some of the sources in sub-directories, maybe can be thinned out. That is how many of these files are needed for MSC to work here... That is an area that you for sure can help out on.
b) FS.h - Are there more enhancements we should do for this release. Again things like: File Pre-allocate, Information on preferred file operations (logical sector, cluster size), Some way to know what type of File system you are connected to. This might include information on like, is this (SD, LittleFS, or other) and is stored using (SPI, QSPI, RAM, MSC)...
c) MSC stuff... As I mentioned at some point probably merge into cores. But there are still lots of things to fix and extend, like:
1) Timeouts - When the host (Windows lets say) decides it waited to long for an operation to complete, it more or less crashes the USB connection. This happens mostly, when we are uploading files to places like LittleFS (Flash). So trying to minimize how often that happens, and potentially have code that reports back to PC before the operation fully completes and/or tries to pace the operations, to keep host ahppy.
2) Make Storage Index file more robust. For example suppose the chosen drive is an SD and you pull out the card... It can not write there so everything crashes. Maybe good if we work around it and maybe choose different drive or...
3) SD cards and handle card insertions and removals.
d) Notification/events How to let other sub-systems know that something changed.
You add3d a storage to MTP and your underlying code, creates a new file. How do you let MTP know that something changed as to let it notify host... Likewise suppose you have your SD shared out on MTP, and the user copies a new file to your storage. How does your sketch learn about what has changed.
Probably more things, that I forgot here, but maybe enough here to keep a few of us busy!