I found the time to do more testing, and most of it is good!
The first thing on my list was to test with CircuitPython. This turned out to be more involved than expected. Turned out the Feather M0 Adalogger was not compatible with the W5K CircuitPython driver due to the use of longs. So I had to get a Feather M4 Express to make it work. Then it didn't seem to be working, until I remembered it was probably a good idea to update my board to the latest version of CircuitPython, versus using the one the board came with. That solved all my problems:
Yes, I also have USB connected to be able to see the console, but it works without as well.
I added this code to the standard Adafruit example to read the MAC from the 24AA02E48 and use it:
# Read the MAC from the 24AA02E48 chip mac = bytearray((0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED)) i2c = busio.I2C(board.SCL, board.SDA) while not i2c.try_lock(): pass i2c.writeto(0x50, bytearray((0xFA,)), stop=False) i2c.readfrom_into(0x50, mac, start=0, end=6) i2c.unlock() # Initialize ethernet interface with DHCP and the MAC we have from the 24AA02E48 eth = WIZNET5K(spi_bus, cs, mac=mac)
Next up: the Giant Board!
I just followed the documentation to get the Ethernet FeatherWing to work on the Giant Board, with one small exception: instead of having to run a separate wire to "connect the IRQ pin on the end of the Ethernet FeatherWing to the pin PD31 on the Giant Board", you can just bridge the solder jumper!
That's so much better. After doing this and putting the boards together, it worked right away! Here you can see me doing an `apt upgrade` through the Ethernet, and powered from Ethernet, connected over ssh:
I had one weird thing happen though, and it's a bit worrying. At some point, I was using a stupid cable of which the clip had broken off, and the cable disconnected in the middle of an `apt update`. No worries, I reconnected with a better cable, but after that, the PoE-FeatherWing didn't work right any more. The symptoms are very bizarre. At first I wondered if it was just a problem with the Giant Board, but my two other Feathers showed the same issue. The W5500 works, but only if connected to my router without PoE. The PoE power works as well, but no data communication happens when connected to (and power conversion happening from) the PoE router.
I don't have a clue yet what exactly happened. Just disconnecting the cable can't really have done it (whatever 'it' is), because I've done that a lot with other boards, and there's never an issue. Currently my theory is that the "sliding out" causes a long term intermittent connection that may have over-stressed something. Not something I enjoy finding out, but at least I can hopefully track down what failed and fix it before producing the remaining 900.
Last thing on my list was load testing. I need to do it on more boards, but at least on the couple I have tested, I've been able to pull 1A and keep the voltage above 4V, which is sufficient to keep the 3.3V regulated. The secondary Schottky diode rectifier gets quite hot at this current:
While it would be nice to play the numbers game for marketing and say that the design supports 4W, I think with the space constraints we're dealing with, it's probably not the best idea to run at 4W. On USB, Feather systems have 2.5W available to them, and I think specifying the PoE-FeatherWing as a 3W system is a safe conservative number.
This is a thermal shot when running at 3W:
Still toasty, but much better!
Next up: figure out what went wrong with the unit that won't communicate when running from PoE.