Install ESP8266 NodeMCU LittleFS Filesystem Uploader in Arduino IDE

In this tutorial, you’ll learn how to install the ESP8266 LittleFS Filesystem Uploader Plugin in your Arduino IDE to upload files to the ESP8266 NodeMCU filesystem.

Install ESP8266 LittleFS Filesystem Uploader in Arduino IDE

If you want to use LittleFS for the ESP8266 with VS Code + PlatformIO, follow the next tutorial instead:


LittleFS is a lightweight filesystem created for microcontrollers that lets you access the flash memory like you would do in a standard file system on your computer, but it’s simpler and more limited. You can read, write, close, and delete files. Using LittleFS with the ESP8266 boards is especially useful to:

You can create, save and write files to the ESP8266 filesystem by writing the code yourself on the Arduino IDE. This is not very useful because you’d have to type your files’ content in the Arduino sketch.

Fortunately, there is a plugin for the Arduino IDE that allows you to upload files directly to the ESP8266 LittleFS filesystem from a folder on your computer. This makes it easy and straightforward to work with files.

SPIFFS is currently deprecated and may be removed in future releases of the ESP8266 core. It is recommended to use LittleFS instead. LittleFS is under active development, supports directories, and is faster for most operations. The methods used for SPIFFS are compatible with LittleFS, so we can simply use the expression LittleFS instead of SPIFFS in our code.

Installing LittleFS Filesystem Uploader Plugin

Follow the next steps to install the filesystem uploader:

1) Go to the releases page and click the file to download.

ESP8266 LittleFS Download

2) Go to the Arduino IDE directory, and open the tools folder.

Arduino IDE Tools Folder

3) Unzip the downloaded .zip folder to the tools folder. You’ll get a folder called ESP8266LittleFS-2.6.0 or similar. Inside that folder, you have the ESP8266LittleFS folder. Cut the ESP8266LittleFS folder and paste it into the tools folder. Delete the ESP8266LittleFS-2.6.0 folder. Then, you should have the following exact folder structure:

ESP8266 LittleFS Install Tools Folder

On the OS X create the tools directory in ~/Documents/Arduino/ and unpack the files there

4) Finally, restart your Arduino IDE.

To check if the plugin was successfully installed, open your Arduino IDE and select your ESP8266 board. In the Tools menu, check that you have the option “ESP8266 LittleFS Data Upload“.

ESP8266 Tools LittleFS Data Upload Arduino IDE

Uploading Files to ESP8266 using the Filesystem Uploader

To upload files to the ESP8266 filesystem, follow the next instructions.

1) Create an Arduino sketch and save it. For demonstration purposes, you can save an empty sketch.

2) Then, open the sketch folder. You can go to Sketch > Show Sketch Folder. The folder where your sketch is saved should open.

3) Inside that folder, create a new folder called data.

Arduino Sketch Data Folder

4) Inside the data folder is where you should put the files you want to save into the ESP8266 filesystem. As an example, create a .txt file with some text called test_example.

Example txt file ESP8266

5) In the Arduino IDE, in the Tools menu, select the desired flash size (this will depend on the size of your files).

ESP8266 Select Flash Size Arduino IDE

6) Then, to upload the files in the Arduino IDE, you just need to go to Tools > ESP8266 LittleFS Data Upload.

Important: ensure the Serial Monitor is closed. Otherwise, the upload will fail.

ESP8266 Tools LittleFS Data Upload Arduino IDE

After a few seconds, you should get the message “LittleFS Image Uploaded “. The files were successfully uploaded to the ESP8266 filesystem.

ESP8266 LittleFS Image Uploaded Success

Testing the ESP8266 LittleFS Uploader

Now, let’s check if the file was saved into the ESP8266 filesystem. Upload the following code to your ESP8266 board.

#include "LittleFS.h"
void setup() {
    Serial.println("An Error has occurred while mounting LittleFS");
  File file ="/test_example.txt", "r");
    Serial.println("Failed to open file for reading");
  Serial.println("File Content:");
void loop() {


View raw code

After uploading, open the Serial Monitor at a baud rate of 115200. Press the ESP8266 on-board “RST” button. It should print the content of your .txt file on the Serial Monitor.

Testing ESP8266 LittleFS Serial Monitor

You’ve successfully uploaded files to the ESP8266 filesystem using the plugin.

Wrapping Up

Using the filesystem uploader plugin is one of the easiest ways to upload files to the ESP8266 filesystem. In this tutorial, we’ve shown you how to upload a .txt file, but you can upload other file formats like HTML, CSS, and Javascript files to build a web server, images or small icons, save configuration files, etc.

We have a project example in which we build a web server using HTML and CSS files saved on the filesystem (simply replace SPIFFS with LittleFS).

If you want to learn more about the ESP8266, check our resources:

Thanks for reading.

Build Web Server projects with the ESP32 and ESP8266 boards to control outputs and monitor sensors remotely. Learn HTML, CSS, JavaScript and client-server communication protocols DOWNLOAD »

Build Web Server projects with the ESP32 and ESP8266 boards to control outputs and monitor sensors remotely. Learn HTML, CSS, JavaScript and client-server communication protocols DOWNLOAD »

Recommended Resources

Build a Home Automation System from Scratch » With Raspberry Pi, ESP8266, Arduino, and Node-RED.

Home Automation using ESP8266 eBook and video course » Build IoT and home automation projects.

Arduino Step-by-Step Projects » Build 25 Arduino projects with our course, even with no prior experience!

What to Read Next…

Enjoyed this project? Stay updated by subscribing our newsletter!

11 thoughts on “Install ESP8266 NodeMCU LittleFS Filesystem Uploader in Arduino IDE”

  1. im sort of having a problem here;
    i did everything the page asked me to do but i get an error

    littleFS Error: mklittlefs not found!

    can you help me to solve this problem

  2. Install LittleFS on MacOS


    Unzip file mklittlefs and rename
    Copy file

  3. Hello
    I’m reading your comments well.
    I found that esp01 (esp8266ex) is available.
    However, we confirmed that we couldn’t do it due to a lack of EEPROM and found a solution to this.
    First, I purchased 25Q128FV (16MB), changed the chip, and then confirmed that it was built.

    • After replacement, flash upload should be performed using flash_download_tool_v3.8.5, and ESP8266_NONOS_SDK-3.0.4.
      Please refer to for a brief explanation.

      0xFFB000 : blank.bin
      0xFFC000 : esp_init_data_default.bin (e.g. : esp_init_data_default_v08.bin)
      0xFFE000 : blank.bin
      0x10000 : eagle.irom0text.bin (e.g. :
      0x00000 : eagle.flash.bin (e.g. : boot_v1.7.bin)

  4. I installed the tool following the your tut. There is no LittleFS for esp8266 in my library or github, only for esp32. Evidently, something has changed since the article was written.
    Is there a solution?

  5. Turns out the part you left out is “you MUST be using esp8266 3.0.2”, 3.0.1 is not going to do it.
    For some reason I had to uninstall Arduino IDE and physically remove the c:\users/me/appdata/local/arduino15 directory and re install the IDE and boards.
    All is well now.
    Thank you

  6. When I first tried to upload files to LittleFS, it repeatedly failed to connect to the ESP8266 via the COM port with an error message:
    esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
    LittleFS Upload failed!

    After searching for solutions, I finally found another site that mentioned the board must be put into flash mode (if it does not automatically do that) to upload files to LittleFS. It might be worth adding a note in the instructions on this page to indicate that the board must be in flash mode to upload files. It might save others a lot of time researching this problem.


Leave a Comment

Download our Free eBooks and Resources

Get instant access to our FREE eBooks, Resources, and Exclusive Electronics Projects by entering your email address below.