After waiting for four months since I ordered them, Mouser finally shipped the SI3404A PoE chip to my CM, so they have started production. I received this picture of the new PCBs:
Looking good. I think there shouldn't be confusion about which PHY this uses, since I have it in pretty big letters on the bottom. Last night, I received this picture with surface mount components mounted:
Nice progress! You can see the new RTL8201FI Ethernet PHYs and the ESP32-WROOM-32E module with 16 MB of flash.
Meanwhile, I have also managed to get a custom board config merged into upstream MicroPython so you can actually make use of all that flash memory! Up till now, I used the generic ESP32 images but they are made to use only 4 MB of flash. The flash memory will be partitioned with two nice 2.4 MB OTA partitions so we should be safe for a while as MicroPython keeps growing, and a nice 11 MB of flash will be available for the MicroPython file system! I'm hoping that version 1.17 will be released soon so I can give an official release to my CM to program in to the boards. As usual, the boards will also come with a custom boot.py file that will set up the LAN for you. So if you use the built-in MicroPython, the change to a different PHY chip will be completely transparent.
I also ran some more performance testing and compared performance of the old LAN7820AI with the new RTL8201FI using the latest IDF's ethernet iperf example. It looks like the LAN8720AI is marginally faster with UDP, while the RTL8201FI is marginally faster with TCP. Overall, performance seems to be just fine. The following numbers are approximate:
|iperf UDP ESP32 serving||88 Mbit/s||83 Mbit/s|
|iperf UDP ESP32 client||61 Mbit/s||60 Mbit/s|
|iperf TCP ESP32 serving||23 Mbit/s||25 Mbit/s|
|iperf TCP ESP32 client||27 Mbit/s||30 Mbit/s|