ESP32 Sketch Data Upload not showing

Hi,

i am using arduino IDE of version 2.2.1 and board esp32s3 .

i download esp32fs using below link:-
Release Release v1.1 with support for more chips · me-no-dev/arduino-esp32fs-plugin · GitHub
after i followed procedure as mentioned in below link:-
GitHub - lorol/arduino-esp32fs-plugin: Arduino plugin for uploading files to ESP32 file system

But in arduino IDE its not showing this option Tools > ESP32 Sketch Data Upload for spiffs.

can you please suggest me the next step?

Thanks,
sowmya M

Hi @sowmyam

That tool (AKA "plugin") can only be used with Arduino IDE 1.x.

Arduino IDE 2.x is a complete rewrite of the Arduino IDE on a different framework and in a new language. The "Tools" system of Arduino IDE 1.x used by the arduino-esp32fs-plugin tool you are attempting to use is very specific to the Java language that version series of Arduino IDE was written in, so it was not possible to add support for Arduino IDE 1.x Tools to Arduino IDE 2.x.

Full support for making equivalent (and even better) expansions on the default capabilities of Arduino IDE was recently added to Arduino IDE. However, it will still be necessary for the community to create Arduino IDE 2.x extensions to replace the Arduino IDE 1.x tools, and as far as I know nobody has done that yet for the "ESP32 sketch data upload" Tool.

For now, I can suggest two options. You can pick whichever one of the two that is most convenient to you:

Use Arduino IDE 1.x

If you want to use the Arduino IDE 1.x tool, you can use Arduino IDE 1.x. The download links for Arduino IDE 1.x are listed here:

https://www.arduino.cc/en/software#legacy-ide-18x

You can have both Arduino IDE 2.x and Arduino IDE 1.x installed at the same time on your computer and the two won't cause any problems for each other, so you are welcome to continue using Arduino IDE 2.x as your primary IDE, switching to Arduino IDE 1.x only when you need to upload a SPIFFS filesystem to your ESP32.

Use the command line tools directly

Under the hood, what the "ESP32 sketch data upload" Tool does is:

  1. Generate a SPIFFS filesystem image from the contents of the data subfolder of your sketch.
  2. Upload the filesystem to the ESP32 board.

It does these things using two command line tools:

So instead of using the "ESP32 sketch data upload" Tool from Arduino IDE, you can just work directly with those two tools from the command line terminal.

There is some information on that here:

I wanted to provide an update about this: Uploading filesystems to ESP32 boards using Arduino IDE 2.x is now possible by using the community created "arduino-littlefs-upload" extension:

I also wrote a script automating the process of using the tools if anyone needs

Hi ptillisch. I think this is the correct solution. This works fine.
Thanks for your information.

Hi Fede. How did you do it? I have followed all the steps in the github web and I do not find the option in the dropdown menu "tools". As the instructions say, I have created a "plugins" folder on my windows home directory /.arduinoIDE and reopen the IDE and... Nothing.

How does the option must be shown?
Thank you.

Hi @jjpd19.

You didn't follow the instructions carefully enough:

https://github.com/earlephilhower/arduino-littlefs-upload#usage

[Ctrl] + [Shift] + [P], then "Upload LittleFS to Pico/ESP8266/ESP32".

On macOS, press [⌘] + [Shift] + [P] to open the Command Palette in the Arduino IDE, then "Upload LittleFS to Pico/ESP8266/ESP32".

Unlike the "ESP32 sketch data upload" Tool for Arduino IDE 1.x, the "arduino-littlefs-upload" extension for Arduino IDE 2.x does not create a menu item in the "Tools" menu. So it is normal and expected that you didn't find the menu item there.

When using the Arduino IDE 2.x extension, you must instead use Arduino IDE's "command palette" to trigger a filesystem upload.

The instructions provided by the extension author are a bit vague, so I'll provide higher quality instructions in case those aren't clear to you:

  1. Press the Ctrl+Shift+P keyboard shortcut (Command+Shift+P for macOS users) to open the "Command Palette".
    A menu will appear on the editor toolbar:
  2. Select the "Upload LittleFS to Pico/ESP8266/ESP32" command from the menu.
    You can scroll down through the list of commands to find it, or type the name in the field.

A filesystem upload will now start. You can see the progress and outcome in the "LittleFS Upload" panel at the bottom of the Arduino IDE window.

Ok. Thank you. I will try it this evening.

Hi again. I am here again. You were right. The tool was there, but...
It is not working properly. What I did is as follows, using two versions of Arduino IDE and two different tools to do the same thing.

1.- Uploading files in “data” folder with ESP32FS-1.1 in Arduino IDE 1.8.18

esptool.py v4.8.1
Serial port COM8
Connecting.....
Chip is ESP32-D0WDQ6 (revision v1.0)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 3X:7X:bX:dX:6X:4X
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Flash will be erased from 0x00210000 to 0x003effff...
Compressed 1966080 bytes to 3699...
Writing at 0x00210000... (100 %)
Wrote 1966080 bytes (3699 compressed) at 0x00210000 in 8.5 seconds (effective 1850.2 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...

2.- Uploading the sketch

El Sketch usa 329028 bytes (15%) del espacio de almacenamiento de programa. El máximo es 2097152 bytes.
Las variables Globales usan 20080 bytes (6%) de la memoria dinámica, dejando 307600 bytes para las variables locales. El máximo es 327680 bytes.
esptool.py v4.8.1
Serial port COM8
Connecting....
Chip is ESP32-D0WDQ6 (revision v1.0)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 3X:7X:bX:dX:6X:4X
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00010000 to 0x00060fff...
Compressed 24976 bytes to 15952...
Writing at 0x00001000... (100 %)
Wrote 24976 bytes (15952 compressed) at 0x00001000 in 0.6 seconds (effective 336.5 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 134...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (134 compressed) at 0x00008000 in 0.1 seconds (effective 475.3 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 535.6 kbit/s)...
Hash of data verified.
Compressed 329136 bytes to 180248...
Writing at 0x00010000... (8 %)
Writing at 0x0001bcbd... (16 %)
Writing at 0x000291c6... (25 %)
Writing at 0x0002e7b7... (33 %)
Writing at 0x000342e8... (41 %)
Writing at 0x000394d5... (50 %)
Writing at 0x0003eada... (58 %)
Writing at 0x00044255... (66 %)
Writing at 0x000498e6... (75 %)
Writing at 0x00050706... (83 %)
Writing at 0x0005a74f... (91 %)
Writing at 0x0006059e... (100 %)
Wrote 329136 bytes (180248 compressed) at 0x00010000 in 2.9 seconds (effective 915.0 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...

3.- Resulting as expected. (Serial Monitor)

Mission Critical
SPIFFS File Content Tester
FILE: hello world.txt

1.- Uploading files in “data” folder with Arduino-littlefs-upload-SPIFFS in Arduino IDE 2.3.4

LittleFS Filesystem Uploader v1.5.3 -- https://github.com/earlephilhower/arduino-littlefs-upload
Sketch Path: E:\...Arduino\SPIFFS_File_Content_Tester
Data Path: E:\...\Arduino\SPIFFS_File_Content_Tester\data
Device: ESP32 series, model esp32
Using partition: no_ota
Partitions: C:\Users\...\Arduino15\packages\esp32\hardware\esp32\3.1.1\tools\partitions\no_ota.csv
Start: 0x210000
End: 0x3f0000
Serial Port: COM8
Building LittleFS filesystem
Command Line: C:\Users\...\mklittlefs\3.0.0-gnu12-dc7f933\mklittlefs.exe -c E:\...\Arduino\SPIFFS_File_Content_Tester\data -p 256 -b 4096 -s 1966080 C:\...\Temp\tmp-7752-sYuE3SjP0351-.littlefs.bin
/hello world.txt
Uploading LittleFS filesystem
Command Line: C:\Users\...\Arduino15\packages\esp32\tools\esptool_py\4.9.dev3\esptool.exe --chip esp32 --port COM8 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 2162688 C:\Users\...\Temp\tmp-7752-sYuE3SjP0351-.littlefs.bin
esptool.py v4.8.1
Serial port COM8
Connecting....
Chip is ESP32-D0WDQ6 (revision v1.0)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 3X:7X:bX:dX:6X:4X
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Flash will be erased from 0x00210000 to 0x003effff...
Compressed 1966080 bytes to 2143...
Writing at 0x00210000... (100 %)
Wrote 1966080 bytes (2143 compressed) at 0x00210000 in 8.5 seconds (effective 1847.3 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
Completed upload.

2.- Uploading the sketch

El Sketch usa 329028 bytes (15%) del espacio de almacenamiento de programa. El máximo es 2097152 bytes.
Las variables Globales usan 20080 bytes (6%) de la memoria dinámica, dejando 307600 bytes para las variables locales. El máximo es 327680 bytes.
esptool.py v4.8.1
Serial port COM8
Connecting.......
Chip is ESP32-D0WDQ6 (revision v1.0)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 3X:7X:bX:dX:6X:4X
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00010000 to 0x00060fff...
Compressed 24976 bytes to 15952...
Writing at 0x00001000... (100 %)
Wrote 24976 bytes (15952 compressed) at 0x00001000 in 0.6 seconds (effective 336.6 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 134...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (134 compressed) at 0x00008000 in 0.1 seconds (effective 432.2 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 615.8 kbit/s)...
Hash of data verified.
Compressed 329136 bytes to 180246...
Writing at 0x00010000... (8 %)
Writing at 0x0001bcc4... (16 %)
Writing at 0x000291ce... (25 %)
Writing at 0x0002e7b7... (33 %)
Writing at 0x0003430f... (41 %)
Writing at 0x000394e3... (50 %)
Writing at 0x0003eae1... (58 %)
Writing at 0x0004425b... (66 %)
Writing at 0x000498ec... (75 %)
Writing at 0x0005071b... (83 %)
Writing at 0x0005a754... (91 %)
Writing at 0x000605a0... (100 %)
Wrote 329136 bytes (180246 compressed) at 0x00010000 in 2.9 seconds (effective 917.8 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...

3.- But the result… (Serial Monitor)

Is nothing… Is empty…

If I reset the board, I get:

Mission Critical
SPIFFS File Content Tester

Not the expected result

If I upload again with the just in case the file is wrongly uploaded littlefs I get…

E (3613) task_wdt: esp_task_wdt_reset(705): task not found
E (3614) task_wdt: esp_task_wdt_reset(705): task not found
E (3615) task_wdt: esp_task_wdt_reset(705): task not found
E (3618) task_wdt: esp_task_wdt_reset(705): task not found
E (3653) task_wdt: esp_task_wdt_reset(705): task not found
E (3654) task_wdt: esp_task_wdt_reset(705): task not found
E (3654) task_wdt: esp_task_wdt_reset(705): task not found
E (3682) task_wdt: esp_task_wdt_reset(705): task not found
E (3683) task_wdt: esp_task_wdt_reset(705): task not found
E (3684) task_wdt: esp_task_wdt_reset(705): task not found
E (3687) task_wdt: esp_task_wdt_reset(705): task not found
E (3723) task_wdt: esp_task_wdt_reset(705): task not found

A non-stop crazy chaos.

I am saying this only if there is more people than could have the same issue.

Nevertheless, thank you for your help. At least I found the tool. I will observe it with other boards in the future.

I forgot to give you the code of the sketch:

/*
 * Author:  Akshay Momaya
 * Channel: Mission Critical
 * Topic:   ESP32 SPIFFS Data test.
*/
#include "SPIFFS.h"
 
void setup() 
{
  Serial.begin(115200);
  Serial.println("Mission Critical");
  Serial.println("SPIFFS File Content Tester");
  
  if (!SPIFFS.begin(true)) { Serial.println("An Error has occurred while mounting SPIFFS");return; }

  File root = SPIFFS.open("/");
  File file = root.openNextFile();
 
  while(file)
  {
       Serial.print("FILE: ");
      Serial.println(file.name());
      file = root.openNextFile();
  }
}
 
void loop() {}

UPDATE: the below is solved.

The problem was that another open IDE window was hiding behind my browser window, so the IDE hadn't been properly shut down. Once I closed all instances including the hidden and subsequently re-discovered one and fired up the IDE again, the tool did show up in the Command Palette.


Original post:

For me the tool does not show up in the list. I am using 2.3.7 on Linux and have placed the VSIX file in .ArduinoIDE/plugins:

But am not seeing the tool listed when I press Ctrl-Shft-P.

Can't get a screen grab of the popup unfortunately.

The Exception Decoder tool which I have in there as well does show up but for whatever reason, the Upload tool doesn't.