Thanks Tim! Hadn't heard of Union FS until now, I'll check it into that! Matteo
On Tue, Apr 28, 2026 at 4:46 PM Tim Hardisty <[email protected]> wrote: > > I did FAT overlay of LittleFS using the NuttX Union FS. Works, but lots of > faffing about! > > Also used USB composite for USBMSD and CDCNCM. > > This can all be done as I think you need/want! > > > On 28 Apr 2026, at 20:38, Matteo Golin <[email protected]> wrote: > > > > Hi Alan, > > > > Yes, I would be using the MCU's own on-package flash. Thanks for the > > helpful blog link! I was also planning to use SmartFS so this revealed a > > new challenge: converting from SmartFS to FAT so that users have an easy > > experience. This sounds like it might be more of a challenge than I > > originally thought. I hadn't heard of MTP before, so maybe I'll take a > look > > at that. If it can circumvent this filesystem compatibility thing, that > > would be awesome. > > > > Thanks for the help! > > Matteo > > > >> On Tue, Apr 28, 2026 at 3:24 PM Alan C. Assis <[email protected]> > wrote: > >> > >> Hi Matteo, > >> > >> If by "its own flash memory" you mean the internal MCU flash memory, > then I > >> never tried it. > >> > >> But, for external SPI Flash you can just use the flash device as USB MSC > >> LUN as I did here: > >> > >> > https://acassis.wordpress.com/2016/01/03/using-the-nuttxs-usb-mass-storage-to-copy-spi-nor-flash-content/ > >> > >> In my case I was using SmartFS and downloading the raw content and then > >> mounting it later on the computer using FUSE SmarFS driver that Ken > Pettit > >> created. > >> > >> If you are using FAT FS you don't need this step, but of course if some > >> application is writing in the flash while you copy it, the Mass Storage > >> could get corrupted. > >> > >> I think it is possible to force the USB MSC to be exported as RDONLY, > but I > >> didn't see this option in the NuttX menuconfig, it could be a good > >> addition. > >> > >> BTW, I think the best alternative should be using MTP instead of MSC. > Seems > >> like Xiaomi contributed a USB MTP to drivers/usbdev/ but looking at the > >> source code I noticed it is only a wrapper, maybe for some userspace > >> implementation. > >> > >> This is the problem with hidden features: someone submits a contribution > >> without any documentation or board config, so people will have > difficulty > >> understanding and making it work. > >> > >> BR, > >> > >> Alan > >> > >> > >> > >> On Tue, Apr 28, 2026 at 2:56 PM Matteo Golin <[email protected]> > >> wrote: > >> > >>> Hello, > >>> > >>> I am currently working on a project for a device which logs some data > to > >>> its own flash memory. I then want to be able to extract this data to a > >> host > >>> device (laptop, desktop, etc.) over a USB connection. For this, my aim > >> was > >>> to use USB mass storage. > >>> > >>> Looking at the docs for it ( > >>> > >> > https://nuttx.apache.org/docs/latest/applications/system/usbmsc/index.html > >>> ), > >>> it appears that in order to allow the files to be downloadable over > USB, > >> I > >>> need to first unmount the file system that the files were stored in so > >> that > >>> the USB interaction doesn't corrupt them. Is there any way around this, > >> or > >>> is there a way to make the USB mass storage read only to avoid > potential > >>> corruption? Not the biggest deal if not. > >>> > >>> I also see that the default commands for this feature are > msconn/msdis. I > >>> would be connecting/disconnecting via my own application, which I > suppose > >>> means I would perform this via ioctls/something. My device will also be > >>> using a shell over USB. Is it possible to have the shell functionality > >>> suspended by a similar command to `msconn` and then restored when the > >> host > >>> driver "ejects" the USB mass storage device? This way the user can > toggle > >>> between doing other things in the shell and extracting files. > >>> > >>> If anyone has used this feature and has tips, let me know! > >>> > >>> Best, > >>> Matteo > >>> > >> >
