M5Stack PoECam ESP32 board support?

Even that is sadly horrifically unreliable.
I got an image:

But only one after several minutes. The logs don’t look promising:

And the pings to the unit are horrible despite being wired into the same switch:

Compared this with a PoESP32:
image

And sadly I just wouldn’t recommend the PoECam :frowning:

Edit: Final config in case you think there’s something more I could / should be doing to make it play nicer:

  type: W5500
  clk_pin: GPIO23
  mosi_pin: GPIO13
  miso_pin: GPIO38
  cs_pin: GPIO4

esp32_camera:
  external_clock:
    pin: GPIO27
    frequency: 20MHz
  i2c_pins:
    sda: GPIO14
    scl: GPIO12
  data_pins: [GPIO32, GPIO35, GPIO34, GPIO5, GPIO39, GPIO18, GPIO36, GPIO19]
  vsync_pin: GPIO22
  href_pin: GPIO26
  pixel_clock_pin: GPIO21
  reset_pin: GPIO15
  name: PoECamW
  max_framerate: 1 fps
  idle_framerate: 0.1 fps
  resolution: 1024x768

esp32_camera_web_server:
  - port: 8080
    mode: stream
  - port: 8081
    mode: snapshot```

The ping times are odd… a few things to try:

  1. Verify ip 192.168.122.209 is the wired network and not the wifi as the board has both interfaces.

  2. Could be the default clock is too fast for SPI of the W5500 interface. Try adding clock_speed: 30Mhz to the settings. Example:

ethernet:
  type: W5500
  clk_pin: GPIO23
  mosi_pin: GPIO13
  miso_pin: GPIO38
  cs_pin: GPIO4
  clock_speed: 30Mhz

Yeah it’s definitely the wired IP. I have no WiFi settings in the config, plus I can see it’s not connected to any of my UniFi APs. In addition, even all my Atom Lite units that are on WiFi have a ~1ms ping time.

I can try adding the clock speed to the ethernet shortly and will let you know.

Hi @rtv how did you manage to get the POESP32 working with framework: type: esp-idf?

If I define it this way the device doesnt boot as a POE device and the network switch doesnt give POE.

It only boots POE when i do not define the framework but then the bleproxy does not work.

tried 30Mhz, doesn’t work at all.
works only with 20Mhz with huge ping (lagging)

If there is overheating, I have seen people use very simple heatsinks - like a coin glued on - and they have said it produced results. Dunno if that would work in the m5 though, it is pretty small.

Hi folks,

The unreliability is caused by M5stack connecting the W5500 without the INT pin. This is technically supported as the MCU can poll it, but wasn’t supported in the ESP IDF until recently, and EspHome had code assuming that interrupt was in use.

This PR should fix it, though I haven’t yet gotten my PoECam board working.