Greetings everyone,
Quick info:
Current Issue - WLED 0.14.0 forgets all settings data once power is removed from select ESP01S boards.
MCU - ESP01S, 1MB
**edit: The working board has a 2MB flash memory chip installed. This may be the issue.
Highest Success Level - WLED version 0.13.3 is successfully installed, retaining memory upon reset
What I Want - WLED version 0.14.0 on all of my boards.
Over the holidays I’ve been making smart Christmas ornaments with 3d printed components and WLED. The first ornament had its issues, but they were the typical things you run into when making something for the first time, nothing that would indicate that anything would go wrong the next time. It was made from an ESP01S and flashed with a USB flasher dongle that came with it.
So I ordered a batch of 5 ESP01S boards and they all came in one foil pack strip. The first one was connected and loaded from the website using a USB flasher dongle, but without any WiFi info prompt. This was done no problems with the first board, so I didn’t question it.
This one was soldered to its power supply (AMS1117, @ 3.3V) and tested with USB power (as in the final application). This is when I noticed that there was no WLED-AP WiFi network available. I set this one aside and focused on the next two in the foil pack.
At first I thought maybe something had been done wrong, or maybe this one had an issue. I moved to the next module (ESP01S #2). That is when I started to realize they were not taking any flash, and suspected hardware problems.
ESP01S #3 was reluctantly used to verify #2 wasn’t faulty, and all three were on the unresponsive pile for a while.
ESP01S #4 was left as a control group. No way I was going to mess this one up too. AT commands found that the firmware on this board (and most likely the others wrapped next to it) was left over from 2016. Not sure if that info is relevant to the case, but it seems very old to me.
From here, I updated my Python, ran EspTool, and flashed updated firmware to a version from October 2021. I flashed over all 3 faulty boards and restored their functions. Verified with AT commands. Code below (redacted).
esptool write_flash --flash_size 1MB 0x0 C:\Users\#######\Desktop\esptool-win64\boot_v1.7.bin 0x01000 C:\Users\#######\Desktop\esptool-win64\user1.1024.new.2.bin 0xfb000 C:\Users\#######\Desktop\esptool-win64\blank.bin 0xfc000 C:\Users\#######\Desktop\esptool-win64\esp_init_data_default_v08.bin 0xfe000 C:\Users\#######\Desktop\esptool-win64\blank.bin 0x7e000 C:\Users\#######\Desktop\esptool-win64\blank.bin
WLED 0.14.0 still did not install successfully from the web (Chrome).
Finally I started using alternative installation methods for WLED versions available at GitHub. I tried Python, but finally had great success using ESPHome Flasher 1.4.0. I was able to get WLED 0.14.0 to flash successfully.
However, a few days later I realized my second finished ornament wasn’t done yet, and it had no use of its memory.
I initially tried to independently erase the memory using esptool erase_flash
. This worked, but with no effect on memory retention.
I then started trying random versions of WLED to see if memory could be restored. My thinking was that either:
- A nightly build may just have fixed the issue. Does not explain my initial ornament working.
- Perhaps OTA updates could solve the issue I was seeing. Load an older working version and OTA update may make my installation v0.14.0. This would explain my working ornament.
WLED 0.14.1-b2_ESP01.bin was flashed successfully, using the same method described above. This did not fix the memory issue, however.
Yesterday I finally got a version of WLED to work on these boards. Version 0.13.3 works and this version retains its memory.
So with that said:
I have a first ornament, with my first (supposedly the same) ESP01S, running 0.14.0 just great. Loaded from the website, it functioned flawlessly outside my early goof ups. I’m curious about the hardware differences too, but I don’t really want to take this one apart.
I have a second ornament, containing the first problematic ESP01S, that forgets its settings, running 0.14.0, that is just as soldered down and glued together as the first. Being as it also forgets which pixel strips are soldered to it, I may have to tear this one down anyway.
I have the third ESP01S on my USB dongle now, running 0.13.3 whenever I plug it in. I look for a custom named AP, which tells me it hasn’t forgot its settings.
#4 is my control. We can run AT commands here, if needed.
#5 (unmentioned yet) will stay in its wrapper until this is all sorted out.
Just to be clear, these MCUs came in a strip package from a factory-supplied roll. These weren’t repackaged and resealed like some are.
And, it may seem silly that it’s just one version out, but these are envisioned to work together, even though they are independent on the tree, or even all over the house. With each version there are new patterns and features, and I don’t want to run into any conflicts. I’m sure you guys understand!
If there is anything you need me to try, just let me know. I didn’t really want to get into writing custom firmware, but I’m no stranger to electronics. I think at this point I am approaching something that I need more familiar folks to help with.