Olimex ESP32 PoE ISO looses connection, when run without USB cable

  1. My goal is: To run the Olimex ESP32 PoE ISO (WROVER) via PoE
  2. My actions are:
  - ["eth.enable", "b", true, { title: "Enable Ethernet" }]
  - ["eth.clk_mode", "i", 1, { title: "50 MHz clock source: 0 in <- GPIO0, 1 out -> GPIO0, 2 out -> GPIO16, 3 out -> GPIO17 (inverted)" }]
  - ["eth.mdc_gpio", "i", 23, { title: "GPIO to use for RMII MDC signal" }]
  - ["eth.mdio_gpio", "i", 18, { title: "GPIO to use for RMII MDIO signal" }]
  - ["eth.phy_pwr_gpio", "i", 12, { title: "GPIO to use for PHY PWR control signal" }]

and

  - when: mos.platform == "esp32"
    apply:
      version: "${build_vars.BUILD_VERSION}"
      build_vars:
        APP_SLOT_SIZE: 0x190000
        ESP_IDF_SDKCONFIG_OPTS: >
          ${build_vars.ESP_IDF_SDKCONFIG_OPTS} 
            CONFIG_ETH_RMII_CLK_OUTPUT=y
            CONFIG_ETH_RMII_CLK_OUTPUT_GPIO0=y
            CONFIG_SPIRAM=y
            CONFIG_SPIRAM_IGNORE_NOTFOUND=y
            CONFIG_SPIRAM_USE_CAPS_ALLOC=y
            CONFIG_ESPTOOLPY_FLASHSIZE_4MB=
            CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
            CONFIG_ESPTOOLPY_FLASHSIZE=16MB
            CONFIG_SPIRAM_SUPPORT=y
            CONFIG_SPIRAM_BOOT_INIT=y
            CONFIG_SPIRAM_CACHE_WORKAROUND=y
            CONFIG_SPI_MASTER_IN_IRAM=y
  1. The result I see is: When I run the device with USB cable attached, it runs stable and everything works as expected. But when I switch to PoE only, the device reboots once in a while, especially when I try to access the HTTP API. I can ping the device constantly and get a reply - but this runs in a Timeout for some seconds and starts over.

  2. My expectation & question is: What is the difference for the device in running with or without USB cable attached? Does it enable any power-saving mode, when running without cable? Is there any error in my configuration?

Thanks for your support!

I figured out, that the device was running at the edge of it’s capacity. Disabling some libraries stabilized the situation.

mOS has no idea what PoE is, nor cares about it.
You have a board that consumes some power, if whatever you use to power your board can’t keep up with the energy your board is demanding, it won’t work.
The difference between your board powered via USB and powered via PoE is that very same text itself.
Probably what you did was to disable some services so the microcontroller is able to sleep for a longer time and so it consumes less power. What you have to do is to measure power consumption and know what is going on, look the power rails with an oscilloscope, etc.