Inspided by Alex Tatistcheff outdoor xmas display I ordered an ESP32 feather from Adafruit.

Inspided by Alex Tatistcheff outdoor xmas display I ordered an ESP32 feather from Adafruit. In hindsight i wish i would have gone with the ESP8266 because I have been trying with no success to the ESP32 fork of Jason Coon’s FastLED web server working on it.

Seem I’m hitting the same ole’ issue of failure to serve the static resources from SPIFFS. web client handles non-SPIFFS responses just fine and Im obviously doing something wrong because I’ve spent a lot of time attempting the fix with replacing Esp32fs.jar and libspiffs.a but no dice.

I suspect the location of said files is my stumbling point since my Arduino IDE is in Program Files x86 with the sketchbook located in a Google Drive sync’d folder under C:\Users… and the espress SDK located somewhere in my appData/local folder while im actually coding out of Visual Studio via Visual Micro. Where libraries, drivers, hardware, tools etc. are coming from is a bit of a mystery at this point

Anyway 3 questions on this topic:

  1. the ESP32 has substantial resources, what is the downside if I circumvent the SPIFFS issue by serving the web resources from runtime memory OR an existing local web server as a CDN for static resources with the dynamic pages coming from the ESP32 runtime memory?

  2. Looks like the ESP32 fork of the FastLED web server has a lot of new code (shout out to Sam Guyer) but a very different static web interface from the ESP8266 version. Why wouldn’t the original web interface suffice for the ESP32 version as the JS and HTML is independent of the server-side library or is this part of an overall functionality upgrade

  3. Anyone have a fully functioning ESP32-based project with Jason Coon’s awesome web server library?

I’ve been looking at some weird interactions between the FastLED support for ESP32 and Wifi and ESPAsyncWebServer. The problem is that I don’t know much about what these other subsystems are doing, but I suspect that they are blocking or intercepting interrupts in a way that messes up the FastLED timing.

@Sam_Guyer haven’t even gotten as far as sending lighting commands yet. As far as interrupts go (I know little of what I speak) couldn’t the dual core be utilized such a way that wifi, web client etc be pretty processed mostly independent of the FastLED signaling?

@Dave_Morris @Sam_Guyer I had the same issues with EPASyncWebserver and my esp32 so I use these libraries
#include <WiFi.h>
#include <WiFiClient.h>
#include <WebServer.h>
#include <WebSocketsServer.h>
which works like a charm
regarding the spiffs
I am gonna look at which version of my libspiff.a and give it to you it took me a while to have it work correctly

@Dave_Morris https://github.com/hpwit/lib
here are the one I use

I’m in the process of porting it to the async library. It’s faster and supported by espressif. No websockets yet though.

I worked out how to serve files from SPIFFS, I’ll look it up and post it

webServer.serveStatic("/", SPIFFS, “/index.htm”, “max-age=86400”);
webServer.serveStatic("/index.htm", SPIFFS, “/index.htm”, “max-age=86400”);
webServer.serveStatic("/favicon.ico", SPIFFS, “/favicon.ico”, “max-age=86400”);
webServer.serveStatic("/css/styles.css", SPIFFS, “/css/styles.css”, “max-age=86400”);
webServer.serveStatic("/js/app.js", SPIFFS, “/js/app.js”, “max-age=86400”);
webServer.serveStatic("/images/atom196.png", SPIFFS, “/images/atom196.png”, “max-age=86400”);

Just use the ESP32 core from GitHub (don’t forget to install the tools), SPIFFS just works now

Just got my ESPAsyncWebServer version of @Jason_Coon 's code working :slight_smile: I’ll clean it up and share it.

Edit
Sorry forgot about the solid colour fields - working on them now

Edit
Fixed Solid colour fields :slight_smile: Now just got work out how to use GitHub :wink: