Here it is. Note: this is a fairly old USB drive, wouldn't worry too much about it...

It's formatted as partition type $06 (FAT16) with a cluster size of 128KB and I currently have the cluster buffer set to a max of 32KB. I did that because FAT32 with 16KB cluster size gets you 64GB+. But since we're testing, I probably should be looking at the extremes, too.

If you want to test it out, you can change the MAX_CLUSTER_SIZE constant to a max of 128KB and the "boms_cluster_buff" buffer size to MAX_CLUSTER_SIZE and it should enumerate.

Only needs 2 pins (instead of 4 for uSD). That can be a big advantage...

Did you mean USB vs SPI ?
USB needs 2 COGs I think, but yes, it can run on just 2 pins.
Top USB speeds I've seen from PC's are 8~9 MBit/s (ie the 12 MHz minus overheads), which is slower than P2 can run SPI.

BTW, my head-math sucks -- the cluster size of your RiData drive is 64KB. For what it's worth, this is what MS has to say regarding FAT cluster sizes:

BPB_SecPerClus (BPB offset 13, one byte):
Number of sectors per allocation unit. This value must be a power
of 2 that is greater than 0. The legal values are 1, 2, 4, 8, 16, 32, 64,
and 128. Note however, that a value should never be used that
results in a “bytes per cluster” value (BPB_BytsPerSec *
BPB_SecPerClus) greater than 32K (32 * 1024). There is a
misconception that values greater than this are OK. Values that
cause a cluster size greater than 32K bytes do not work properly; do
not try to define one. Some versions of some systems allow 64K
bytes per cluster value. Many application setup programs will not
work correctly on such a FAT volume.

I'm unable to fully test USB, since PNut doesn't run a terminal by itself after the program has been compiled and loaded. My main problem is that Tera Term resets the board and clears the program after PNut, and thus I'm unable to interact with it. I've tried loading the program with spin2gui as an alternative, but it yields compilation errors.

I'm unable to fully test USB, since PNut doesn't run a terminal by itself after the program has been compiled and loaded. My main problem is that Tera Term resets the board and clears the program after PNut, and thus I'm unable to interact with it. I've tried loading the program with spin2gui as an alternative, but it yields compilation errors.

What version of spin2gui are you using? I'm able to compile that program just fine with versions 3.9.24 and 3.9.26. There is a warning on line 3400 about a cmp being used without flags, but I think that warning is legitimate (and it is just a warning).

I'm unable to fully test USB, since PNut doesn't run a terminal by itself after the program has been compiled and loaded. My main problem is that Tera Term resets the board and clears the program after PNut, and thus I'm unable to interact with it. I've tried loading the program with spin2gui as an alternative, but it yields compilation errors.

What version of spin2gui are you using? I'm able to compile that program just fine with versions 3.9.24 and 3.9.26. There is a warning on line 3400 about a cmp being used without flags, but I think that warning is legitimate (and it is just a warning).

Hi ersmith,

I'm using version 1.3.2, which seems to be much older. I'll upgrade and try the newer version ASAP.

Update: Compilation issue solved with version 3.9.26. Thanks! Now I have to sort out which baudrate is used.