You are here

What is NanoScaleFeaturesDownloadPurchaseSupport
What is NanoScale[Features]DownloadPurchaseSupport

Error message

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls in menu_set_active_trail() (line 2404 of /home/quantics/public_html/dp/includes/

NanoFiles Library

NanoFiles library NanoScale comes with free file system support by implementing a Virtual File System (VFS), along with a concrete implementation of the Microsoft FAT file system. The VFS acts as an abstraction for seamless access to different types of file systems on different media types. It takes care to manage concurrent accesses from different tasks, to redirect calls to concrete implementations or to ensure confidentiality through AES-XTS encryption of partitions.

FAT stands for File Allocation Table, a computer file system architecture offering good performances for light-weight implementations. It is also the main file system used on the SD card devices. Both FAT12, FAT16 and FAT32 versions are supported.

With its small footprint, fast execution and ease-of-use, NanoFiles is specifically designed for real-time embedded and IoT applications.
The NanoFiles library is available for all Microchip PIC32MX, PIC32MZ, PIC24 & dsPIC Microcontrollers.
Documentation download

An overview of the NanoScale file system architecture is given in the picture below:

NanoFiles Architecture

Small footprint

The Virtual File System and the FAT file system have a joint footprint of 25KB, and 20KB for read-only operations. Minimal RAM usage is about 1.7KB for one media instance, in the case where only one cache sector is allocated.

Fast execution

NanoFiles provides a cache mechanism both at the sector level and FAT entry cache level. The size of this cache is under control of the application, along with the number of continuous sectors to read or write at once on the media. This helps NanoFiles to achieve the fastest possible read/write throughput, as illustrated in the performance table below.

Test has been performed on a 8GB SDHC class 6 133x SD card. It consists in writing / reading a file of 8MB, 4096B at at time. As writing and reading speed highly depends on the card capabilities, tests are compared to the FatFs reference implementation. FatFs is highly optimized and doesn't suffer from any operating system overhead.

PIC32MX @ 80MHz PIC24E @ 40MHz
NanoFiles FatFs NanoFiles
Write file, with 8 sectors cache clusters 355 kB/s 355 kB/s 259 kB/s
Read file, with 8 sectors cache clusters 776 kB/s 776 kB/s 419 kB/s
Write file, AES-XTS encryption 176 kB/s NA
Read file, AES-XTS encryption 241 kB/s NA

NanoFiles achieves the same performances than the reference FatFs implementation. This means that the overhead introduced by the kernel and the drivers is negligible.

Buy Now

Purchase a license for the Individual, Basic or Full version of NanoScale.


Download the latest demo release of NanoScale, along with documentation and other porting information.

Email support

Feel free to contact us with any questions you may have.