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.
If you want to use LittleFS for the ESP8266 with VS Code + PlatformIO, follow the next tutorial instead:
- ESP8266 NodeMCU with VS Code and PlatformIO: Upload Files to Filesystem (LittleFS)
Are you using Arduino IDE 2? Follow this tutorial instead: Arduino IDE 2: Install ESP8266 NodeMCU LittleFS Uploader (Upload Files to the Filesystem).
Table of Contents
- Introducing LittleFS
- Installing LittleFS Filesystem Uploader Plugin
- Windows Instructions
- Mac OS X Instructions
- Uploading Files to ESP8266 using the Filesystem Uploader
- Testing the ESP8266 LittleFS Uploader
Introducing LittleFS
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:
- Create configuration files with settings;
- Save data permanently;
- Create files to save small amounts of data instead of using a microSD card;
- Save HTML, CSS, and JavaScript files to build a web server;
- Save images, figures, and icons;
- And much more.
Installing LittleFS Filesystem Uploader Plugin
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.
Windows Instructions
Follow the next steps to install the filesystem uploader if you’re using Windows:
1) Go to the releases page and click the ESP8266LittleFS-X.zip file to download.
2) Find your Sketchbook location. In your Arduino IDE, go to File > Preferences and check your Sketchbook location. In my case, it’s in the following path: C:\Users\sarin\Documents\Arduino.
3) Go to the sketchbook location, and create a tools folder.
4) Unzip the downloaded .zip folder. Open it and copy the ESP8266LittleFS folder to the tools folder you created in the previous step. You should have a similar folder structure:
<Sketchbook-location>/tools/ESP8266FS/tool/esp8266fs.jar
5) 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“.
Mac OS X Instructions
Follow the next steps to install the filesystem uploader if you’re using Mac OS X:
1) Go to the releases page and click the ESP8266LittleFS-X.zip file to download.
2) Unpack the files.
3) Create a folder called tools in /Documents/Arduino/.
4) Copy the unpacked ESP8266LitlteFS folder to the tools directory. You should have a similar folder structure.
~Documents/Arduino/tools/ESP8266FS/tool/esp8266fs.jar
5) Finally, restart your Arduino IDE.
To check if the plugin was successfully installed, open your Arduino IDE. Select your ESP32 board, go to Tools andcheck that you have the option “ESP8266 LittleFS Data Upload“.
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.
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.
5) In the Arduino IDE, in the Tools menu, select the desired flash size (this will depend on the size of your files).
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.
After a few seconds, you should get the message “LittleFS Image Uploaded “. The files were successfully uploaded to the ESP8266 filesystem.
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.begin(115200); if(!LittleFS.begin()){ Serial.println("An Error has occurred while mounting LittleFS"); return; } File file = LittleFS.open("/test_example.txt", "r"); if(!file){ Serial.println("Failed to open file for reading"); return; } Serial.println("File Content:"); while(file.available()){ Serial.write(file.read()); } file.close();} void loop() {}
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.
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 aweb 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:
- Home Automation using ESP8266
- Build Web Servers with ESP32 and ESP8266
- Firebase Web App with ESP32 and ESP8266
- More ESP8266 NodeMCU Projects and Guides…
Thanks for reading.