-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Waveshare ESP32-S3-ETH support #9884
Comments
If you're interested in trying this, see The easiest thing would be to copy an existing W5500-capable board and modify as needed. |
There are a few boards with a W5500 interface, but they are RP2040 based. Would that work? |
You will actually have to merge a suitable ESP32-S3 board definition with a W5500 board-definition. You need the basic setup including source-code position below |
I will require some hand holding...
However, the install.sh script is missing... |
I always recommend to use the instructions from |
Ok, I did that.
|
found the missing compiler and added it to the path with
|
The commands are added o the path when you "source" the "export.sh" script" (from the espressif specific page of the guide linked above):
note that you have to also install circuitpython's requirements into the virtual environment that |
I am not sure. If you follow the instructions verbatim, you won't have any problems with missing compilers, environments and so on. It is just a number of clicks and then you are ready to build your board. |
Thanks for this info! Now, which device should I clone as a starting point for this Waveshare ESP32-S3-ETH device? I'm guessing the kind of memory chip for the rom is important, as well as the address for it? |
P.S. |
@stanelie -C3 boards do not have native USB, so do not have a CIRCUITPY drive. Try |
You do want to match chip/module, and flash and RAM. UnexpectedMaker ProS3 (and FeatherS3) boards have 16MB flash and 8MB RAM, probably others too. Pins and special features will differ. You'll also need VID/PIDs from Waveshare (or https://github.com/espressif/usb-pids). The W5500 part doesn't involve much, support over SPI is provided by a CircuitPython library. But you could make that SPI the default It's possible to freeze in a CircuitPython library (e.g., WIZnet), but realize that it will take precedence over a same name library in the |
I've just tried flashing the UnexpectedMaker ProS3 firmware to the ESP32-S3-ETH, and it doesn't go any further then creating the virtual boot drive (PROS3BOOT, in this case). I am unable to load the .uf2 file. What should I try next? |
the waveshare may not have the UF2 bootloader, you could use esptool or the web tool to load the what happens when you drag the UF2 to |
It looks as though it is copying the file to the PROS3BOOT drive, and when done, it dieconnects the drive, but when it comes back, it is still the PROS3BOOT drive, and I cannot connect REPL |
The UnexpectedMaker PRO S3 does indeed have the same memory chip, as I found on this picture. Exact same marckings on the Winbond chip : |
best guess is there's some incompatible difference in the ProS3 UF2. I don't know if it matters, but ProS3 has 80MHz QIO for flash and RAM, Waveshare has octal PSRAM there's another board that may match better: yd_esp32_s3_n16r8 QIO flash, OIO psram, although it's using a WROOM-1 module) |
In case this is useful, here is what the stub says when connecting to the board from the esptool.py flash page:
I will try this other dev board firmware |
Oh!! |
So, I'm not having much success. After much faffing about, I decided to restart from the beginning. I built the current yd_esp32_s3_n16r8 in the online build environment with the line If I flash the .bin file from the circuitpython website, it works. So... I'm a bit at a loss here... Thoughts? |
Still can't build the firmware myself, but I can reiterate that the Initialization of the onboard W5500 :
I also had Espressif generate a PID USB code for this board : |
In what way does the built firmware not work... errors during build, no serial, no CIRCUITPY, boot looping, etc.? Perhaps if you're up for submitting a draft PR, folks could help spot the issue. |
The build for the yd device completes without errors. I then flash the firmware on the actual board, and then, nothing. No serial, no drive, it makes my keyboard and mouse lag every few seconds, I have to disconnect the board from my computer to keep working.
Where should I send my draft files?
|
It's possibly boot-looping, but you may have to connect to separate debug part pins (if exposed) to see it? (that's the way it used to be, not sure if it still is) If you're using the devcontainer process, maybe bablokb or someone else can help with how to turn that into a PR. |
Yes, I've been using the codespace as suggested by @bablokb. I thought that building a firmware in the codespace build environment was the same as the automated system used by the Circuitpython community to generate the builds for every supported board. I looked at the firmware I got and compared it to the one from the Circuitpython download page with a hex editor, they are not the same at all! |
Here are my draft files. |
They will never be. The files on the download page are created from a specific commit, you are probably building from the current state of CircuitPython. Depending on what went in since the last official download version, the bleeding edge version might or might not work. But it will definitely be different. Some things to check: size of the bin-file in the devcontainer and after downloading. If sizes match, you could also run md5sum on both versions, just to make sure there was no problem during download. You could also post the summary lines after the build finishes (with the memory sizes of the file). |
This might or might not be true. The devcontainer-builds follow the instructions from the document linked in the post above by Dan. It is more or less only a scripting solution for the steps he describes. The automated builds for publishing use their own scripts. Since I never read anything about changes needed for productive builds, I am assuming that the scripts from the devcontainer also create production-level builds. But I might be wrong here. |
@stanelie are you still pursing a PR on this? I have this board now, and would be happy to help review / test a PR, or I could start a PR. The Waveshare docs have some errors, specifically for the RGB pixel. With help on Discord from Dan, ultimately found through trial-and-error the Neopixel pin: |
@anecdata I'm not pursuing anything, I don't know how. However, I am indeed using the ESP32-S3-ETH on one of my projects, with the YD firmware, and it works great. It's strange that you have a neopixel on your device, I don't have one on mine. the pads are there for it, but no LED package (identified as IO26 on the silkscreen). So, at least, I am confident that the info concerning the Wiznet chip and its pinout is accurate, since it works for me. |
@stanelie OK, holidays approaching, but if I get some time I'll make a PR. I must have a newer revision of the board, my silkscreen says "RGB" rather than "IO26". |
Tell me if there is anything I can do to help. |
How do I go about having CircuitPython work on this device?
Wanting to do some ethernet to ESPnow, I got myself a Waveshare ESP32-S3-ETH, a ESP32-S3 device with a W5500 WIZnet ethernet port. I only now realize that this board is not supported by CircuitPython. I've tried to install a few of the ESP32-S3 builds for other devices on it, without luck.
Here is the wiki link for it : https://www.waveshare.com/wiki/ESP32-S3-ETH
Schematic : https://files.waveshare.com/wiki/ESP32-S3-ETH/ESP32-S3-ETH-Schematic.pdf
According to the schematic, the W5500 ethernet device is a SPI device connected to the following ports :
The text was updated successfully, but these errors were encountered: