By using PoE, a single cable provides power as well as connectivity, easing deployment headaches for large installations. PoE can provide up to 12.95 W to a load while PoE+ specifies up to 25.50 W. Plenty for an ESP32 which takes only a watt or so, making it possible to power other loads. PoE capable network switches and injectors are also becoming quite common and have come down in price as well.
The nice thing about the ESP32 is that it's low cost and powerful, and provides WiFi and Bluetooth in addition to Ethernet. So even if a deployment would be mostly Ethernet and PoE based, it would still be possible to connect a node with WiFi powered from another source if necessary. Or it could be set up as an access point for other WiFi or Bluetooth LE based sensors.
While it would be nice to support as much power as possible, previous experience has taught me that high power opens all sorts of cans of worms related to heat dissipation and EMI. So it seems prudent to not start at the highest power levels possible. Some potential users also showed interest in compact, very low power systems, but there are plenty who were excited about the idea of having a decent amount of power available. So I decided to take the middle road and do a 12.95W PoE class 3 design to start with.
The ability to use local power instead of PoE is a nice feature, but also adds complexity and cost. The problem is that PoE uses 48V nominal to reduce wiring losses, but commonly available wall warts use lower voltages for safety. Supporting both would require the circuit to support for a wide input voltage range making things more complex.
So I settled for the following solutions: local power can provided either by adding a PoE injector, or through the (optional) USB port. Of course, from the USB port, only 5V will be available.
Talking about the USB port, several potential users expressed the opinion to not burden every board with something that would likely only be used during once during programming and never again after that. I agree, so I made the USB programming/terminal port an optional module.
Other than those concerns, I want this module to be fully isolated (to prevent issues with long cabling), full featured (Ethernet, WiFi, Bluetooth LE, many ESP32 pins exposed), low cost and small.