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
>>>>> 
>>>> 
>> 

Reply via email to