Ethernet on DFRobot Edge101?

Hi

I’m trying to setup ethernet on the DFRobot Edge 101 but not much success so far. Here is my configuration I tried but it gives an error when it boots and LEDs on Ethernet port never go on. Someone succeeded to get it working ?

Thanks

Vincèn

esphome:
  name: dfrobot
  friendly_name: dfrobot

esp32:
  board: esp32dev
  framework:
    type: esp-idf

logger:

api:
  reboot_timeout: 120min

ota:
  - platform: esphome

ethernet:
  type: IP101
  mdc_pin: GPIO4
  mdio_pin: GPIO13
  phy_addr: 1
  clk:
    pin: GPIO0
    mode: CLK_EXT_IN

web_server:

uart:
  tx_pin: GPIO17
  rx_pin: GPIO36
  baud_rate: 9600

sensor:
  - platform: uptime
    name: Uptime
    filters:
      - lambda: return x / 60.0 /60.0 /24;
    unit_of_measurement: d

canbus:
    - platform: esp32_can
      tx_pin: GPIO32
      rx_pin: GPIO33
      can_id: 4
      bit_rate: 100kbps
      use_extended_id: false

Arf DFRobot the manufacturer gives no support as they don’t use ESPHome… Looks like it’s going to be returned at seller for full refund as I can’t get a way to get Ethernet work on it, tried multiple possibilities but still no success :frowning:

Schematic of your device shows that there are 10 pins connected between MCU and ETH, likely that spartan esphome config is not enough.

yeah but ESPHome config doesn’t allow to declare all these pins unhappy… The clock one already is mandatory on ESPHome side but nothing corresponds directly in schematics :confused:

Also I have noticed that the auto-detection by ESPHome of the chipset is not fully correct. It declares it as esp32dev but if I want to use some of the pins used in the device ESPHome doesn’t allow me too !
According at manufacturer it’s an ESP32-DOWD-V3 but the board is not listed in list of boards at platform.io :frowning:

Sounds odd, what pin for example?

when I was investigating to get the ethernet to work, I tried more or less randomly some pins (among the ones used between the ESP32 and the IP101 chip) but all pins in the twenties were not allowed by ESPHome.
I guess it means the esp32dev is not correct for the ESP32-DOWD-V3 but no idea how to fix that as ESP32-DOWD-v3 is not listed in platforms :frowning:

Doesn’t sound correct to me. GPIO21-23, 25-27 should be available for esp32dev.

yeah but ESPHome doesn’t allow it :frowning: might have to wait an update of ESPHome that corrects the bug…

So you have esp32dev as board and you use some gpio 2x and it doesn’t compile?

binary_sensor:
  - platform: gpio
    pin: GPIO23

ps. board is not preferred syntax anymore, variant should be used instead.

esp32:
  variant: esp32

well it was to try some weirdo ideas in desperate to get IP101GRI component to work but in all matters il fails :frowning:

Thanks for that, will update my sketch but in all matters I’m in a dead end with Ethernet port not working on that ESP board :frowning:

That’s completely another story. Can be anything between difficult and impossible.

But 21-23/25-27 gpios do work on esp32dev

Well the chipset is listed as supported by ESPHome since 2022 but can’t get it working :frowning:

There’s big difference between that board to be supported. Chip is 32pin and can be configured many ways.
Just simple example not related to your 101, chip can have enable pin either hard pulled to gnd/vcc on module or left for MCU control.

Found out the proper code to get it working. I created a PR at ESPHome to update documentation about sample code for that hardware :wink:

esphome:
  name: dfrobot
  friendly_name: dfrobot
  area: "Technical Room"
esp32:
  board: esp32dev
  framework:
    type: esp-idf

logger:

api:
  reboot_timeout: 120min

ota:
  - platform: esphome

ethernet:
  type: IP101
  mdc_pin: GPIO4
  mdio_pin: GPIO13
  clk:
    pin: GPIO0
    mode: CLK_EXT_IN
  power_pin: GPIO2
  phy_addr: 1

web_server:

uart:
  tx_pin: GPIO17
  rx_pin: GPIO36
  baud_rate: 9600

sensor:
  - platform: uptime
    name: Uptime
    filters:
      - lambda: return x / 60.0 /60.0 /24;
    unit_of_measurement: d

canbus:
    - platform: esp32_can
      tx_pin: GPIO32
      rx_pin: GPIO33
      can_id: 4
      bit_rate: 100kbps
      use_extended_id: false

So no magic, no problems with 2x gpio pins, just missing enable pin on gpio2.
Nice you resolved it!