MoonModules / WLED

Control WS2812B and many more types of digital RGB LEDs with an ESP8266 or ESP32 over WiFi! MoonModules adds features on top of upstream.
https://mm.kno.wled.ge
GNU General Public License v3.0
202 stars 64 forks source link

W5500/SPI Ethernet Support (T-ETH-Lite-S3) #129

Open troyhacks opened 5 months ago

troyhacks commented 5 months ago

W5500/SPI Ethernet support, currently hardcoded for the T-Eth-Lite-S3 board - which is the only S3 board I know of with Ethernet:

https://www.lilygo.cc/en-ca/products/t-eth-lite

Needs lib_deps:

https://github.com/troyhacks/ETHClass2 (for W5500 support) https://github.com/troyhacks/TroyHacksAsyncUDP (fixes a bug with AsyncUDP, backports some fixes from IDF v5.1)

Also likely needs IDF v4.4 to work correctly. Tested on v4.4.6.

Updated to use the new ETHClass2 - so there's a bunch of code ifdef'd out if it's an ESP32-S3 just to work around the fact that SPI Ethernet isn't really a thing we're accounting for at the moment in WLED - so I'd consider this a proof of concept, even if it works.

May be useful (not in this state) for adding SPI Ethernet to WLED for the original ESP32?

januszwoj commented 4 months ago

Hi @troyhacks . If you need someone to test, I will be happy to help. I am hopefully the lucky owner of Lilygo T-ETH-Lite-S3. I also have XIAO ESP32S3. In my case, they are supposed to work via I2S with WM8782S and PCM1808 ADC and DIR9001 SPDIF to I2S. My programming skills are rather poor and I can't wait for support for T-ETH-Lite-S3 via ethernet, unfortunately my XIAO ESP32S3 somehow does not manage to stream the audio signal to the rest of the ESP32 via wifi. Regards Janusz

troyhacks commented 4 months ago

Hi @troyhacks . If you need someone to test, I will be happy to help. I am hopefully the lucky owner of Lilygo T-ETH-Lite-S3. I also have XIAO ESP32S3. In my case, they are supposed to work via I2S with WM8782S and PCM1808 ADC and DIR9001 SPDIF to I2S. My programming skills are rather poor and I can't wait for support for T-ETH-Lite-S3 via ethernet, unfortunately my XIAO ESP32S3 somehow does not manage to stream the audio signal to the rest of the ESP32 via wifi. Regards Janusz

This is great, thanks @januszwoj !

Just to assess the level you can help here, do you know how to build WLED from the source code and upload the resulting firmware to the ESP32-S3?

januszwoj commented 4 months ago

Hi @troyhacks I'm not very good at it yet, but I manage to do it from time to time. Sometimes I have trouble understanding where some things come from, but I'm trying to learn. I use Visual Studio and Platformio to compile the firmware myself.

januszwoj commented 4 months ago

Hi @troyhacks I have been trying for several days to compile a program for esp32S3 with w5500 support from your Github: "W5500_Support." After adding the switche: -D WLED_USE_ETHERNET; at first I received messages that it's missing library. I've added the libraries: ETHClass2 & TroyHacksAsyncUDP from your Github to the lib_deps in platformio. Thanks to this, the messages about the missing library disappeared. Unfortunately, a different message appeared now:

.pio/libdeps/esp32S3_8MB_S/ETHClass2/src/ETHClass2.cpp: In member function 'bool ETHClass2::beginSPI(eth_phy_type_t, uint8_t, int, int, int, int, int, int, spi_host_device_t, uint8_t)':

.pio/libdeps/esp32S3_8MB_S/ETHClass2/src/ETHClass2.cpp:403:15: error: 'digitalPinToGPIONumber' was not declared in this scope

 _pin_cs = digitalPinToGPIONumber(cs);

So far I haven't been able to figure out a way to jump over it. Regards Januszz

januszwoj commented 4 months ago

It took me a while, but I did it and it started working. Thanks

troyhacks commented 4 months ago

Seems like you used the latest platform files, and not 6.6.0 or lower.

The latest platform has some real weirdness.

Sounds like you figured this out? 😁

softhack007 commented 4 months ago

looks like all "V3" builds are failing, plus all builds for 8266

wled00/../usermods/audioreactive/audio_reactive.h:22:21: fatal error: esp_dsp.h: No such file or directory
troyhacks commented 4 months ago

looks like all "V3" builds are failing, plus all builds for 8266

wled00/../usermods/audioreactive/audio_reactive.h:22:21: fatal error: esp_dsp.h: No such file or directory

Weird. I thought I made sure that it was only included with v4.

Likely I've made some changes and didn't fix it properly. Will look into it.

I think I've gotten to the point where I have 3 PRs merged into one branch, just because I need to test things all at once. 🤣

troyhacks commented 4 months ago

This PR also now has my new Art-Net code and my new ESP-DSP code, inadvertently.

...which is all meant to work together. But a bit of a muck-up. :)