I see that the Device class has access to Upload function, which should enable (once connected) uploading of memory from the device to the PC. I'm unclear what the block number needs to be - I can grab the sector out of the string descriptor, but can't map that in my head to the block number. Looking at the memory in stm32cubeprogrammer when USB connected I can see the memory, so the upload function in the firmware looks to be wired up ok.