I should add that it was a union of a fat formatted RAM disk over the LittleFS file system on (external), partitioned flash.
> On 29 Apr 2026, at 01:54, Matteo Golin <[email protected]> wrote: > > 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 >>>>> >>>> >>
