W6100 support and general dependance on lwIP #2341
veecle-stefan
started this conversation in
General
Replies: 2 comments 12 replies
-
it is easy to write lwIP_w6100. just modify the lwIP_w5500 |
Beta Was this translation helpful? Give feedback.
9 replies
-
There is an branch for W6100 there https://github.com/Wiznet/Ethernet/tree/W6100 |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
TL;DR: I'm trying to get the W6100-EVB-Pico board, an RP2040 and a Wiznet W6100 Ethernet chip, working with earlephilhower's Arduino core, but I’ve hit several roadblocks. Below are my findings and current challenges.
Hi everyone,
I recently got a couple of W6100-EVB-Pico boards, which are essentially Pico clones with an onboard Wiznet W6100 Ethernet chip. The W6100, though similar to the W5500, isn't register-compatible and offers hardware IPv6 support.
My goal is to use the W6100 with earlephilhower's Arduino core, but I've yet to find a compatible combination of drivers, cores, and libraries. Here's what I've attempted so far:
Ethernet
library for the W6100. However, this repo hasn’t been updated in two years, and while the W6100 works with this library, a lot of bugs that have been fixed in this core in the meantime, don't work. For example FreeRTOS-related or OTA (littleFS) stuff doesn't work. I would much prefer not to use an outdated core of course.Ethernet
library. A specific branch for the W6100 compiles* with the latest version of earlephilhower's core, but it's completely independant of lwIP and only mimics the standardEthernet
class of Arduino. A lot of stuff in this core here seems to rely on lwIP, so many libraries like MDNS and OTA don’t work and crash as lwIP stuff results in a nullptr. Only those based on theEthernet
object function correctly.So I'm now asking myself if there's merit into trying to port the
/libraries/lwIP_w5500
to W6100, or if it's a more sane approach to greadually replace any code that relies on lwIP instead of Arduino Ethernet objects. I would personally prefer the lwIP way because then I'm not modifying too much of this core, potentially creating incompatibilities. For me, the 'software IP' stack is even an advantage as I can see wether the micro has crashed byping
ing it - using the W6100 Ethernet driver, actually instructs the chip to offload TCP/IP+ICMP resulting in pings when the micro has already crashed.*) To get this working, I had to manually resolve a duplicate
LinkState
enum definition, which requires cloning and modifying the repo locally rather than using it as a standard dependency.I’m sharing this in the hopes of finding advice or a solution that integrates the W6100 with the modern Arduino environment. Any suggestions or pointers would be greatly appreciated.
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions