We just received 20 of the ESP32-POE, and none will work. Our code runs fine on the ESP32-DEV and ESP32-GATEWAY boards.
Even this recommended sample fails:
https://github.com/espressif/arduino-esp32/blob/master/libraries/WiFi/examples/ETH_LAN8720/ETH_LAN8720.ino
It hangs in ETH.begin(), but even if this is removed, it crashes at various points.
Are these boards working?
The boards are working but this example will not work with the ESP32-POE boards.
ESP32-GATEWAY, ESP32-EVB have different clock source compared to ESP32-POE. The ESP32-POE requires slightly different software to get the Ethernet working. We will do our best to provide such an example as soon as possible (we have an ISP-IDF example that we use during the production tests and we are working on an Arduino test). ESP-IDF example for the Ethernet is now available here: https://www.olimex.com/Products/IoT/ESP32/ESP32-POE/resources/ESP32_PoE_Ethernet.zip
Furthermore, future hardware revisions of ESP32-GATEWAY and ESP32-EVB would also implement this clock change that is seen in the ESP32-POE.
Thanks for the IDF example!
To get the Arduino library working, just add these #defines before your #include <eth.h>:
#define ETH_CLK_MODE ETH_CLOCK_GPIO17_OUT
#define ETH_PHY_POWER 12
This will make the ETH_LAN8720.ino sample work.
These boards are awesome. Thanks Olimex!!
Thank you too. I can confirm this fix works. Also published it here: https://www.olimex.com/Products/IoT/ESP32/ESP32-POE/resources/ESP32_PoE_Ethernet_Arduino.zip