Smart Home Automation Forum
KinCony ESP32-S3 Core Board ESPHome yaml for home assistant - Printable Version

+- Smart Home Automation Forum (https://www.kincony.com/forum)
+-- Forum: Technical Support (https://www.kincony.com/forum/forumdisplay.php?fid=20)
+--- Forum: Extender module (https://www.kincony.com/forum/forumdisplay.php?fid=57)
+--- Thread: KinCony ESP32-S3 Core Board ESPHome yaml for home assistant (/showthread.php?tid=5716)

Pages: 1 2 3 4 5


RE: KinCony ESP32-S3 Core Board ESPHome yaml for home assistant - mayup - 06-09-2025

(05-10-2024, 10:49 AM)admin Wrote:
Code:
esphome:
  name: s3
  friendly_name: s3
  platformio_options:
    board_build.flash_mode: dio

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: esp-idf

# Enable logging
logger:
  hardware_uart: USB_SERIAL_JTAG

ethernet:
  type: W5500
  clk_pin: GPIO43
  mosi_pin: GPIO44
  miso_pin: GPIO42
  cs_pin: GPIO41
  interrupt_pin: GPIO2
  reset_pin: GPIO1

uart:
  - id: uart_485
    baud_rate: 9600
    debug:
      direction: BOTH
      dummy_receiver: true
      after:
        timeout: 10ms
    tx_pin: 16
    rx_pin: 15

  - id: uart_sim7600
    baud_rate: 115200
    debug:
      direction: BOTH
      dummy_receiver: true
      after:
        timeout: 10ms
      sequence:
        - lambda: UARTDebug::log_string(direction, bytes);
    tx_pin: 18
    rx_pin: 17

switch:
  - platform: uart
    uart_id: uart_485
    name: "RS485 Button"
    data: [0x11, 0x22, 0x33, 0x44, 0x55]

  - platform: uart
    uart_id: uart_sim7600
    name: "UART 4G"
    data: "AT+CGSN\r\n" # read 4G SIM7600 ID

binary_sensor:

  - platform: gpio
    name: "S3 TMP1"
    pin:
      number: 8
      inverted: true

  - platform: gpio
    name: "S3 TMP2"
    pin:
      number: 40
      inverted: true

  - platform: gpio
    name: "S3 DL"
    pin:
      number: 0
      inverted: true

  - platform: gpio
    name: "S3 SDA"
    pin:
      number: 39
      inverted: true
      mode:
        input: true
        pullup: true

  - platform: gpio
    name: "S3 SCL"
    pin:
      number: 38
      inverted: true
      mode:
        input: true
        pullup: true

  - platform: gpio
    name: "S3 IO10"
    pin:
      number: 10
      inverted: true
      mode:
        input: true
        pullup: true

  - platform: gpio
    name: "S3 IO11"
    pin:
      number: 11
      inverted: true
      mode:
        input: true
        pullup: true

  - platform: gpio
    name: "S3 IO12"
    pin:
      number: 12
      inverted: true
      mode:
        input: true
        pullup: true

  - platform: gpio
    name: "S3 IO13"
    pin:
      number: 13
      inverted: true
      mode:
        input: true
        pullup: true

  - platform: gpio
    name: "S3 IO14"
    pin:
      number: 14
      inverted: true
      mode:
        input: true
        pullup: true

  - platform: gpio
    name: "S3 IO21"
    pin:
      number: 21
      inverted: true
      mode:
        input: true
        pullup: true

  - platform: gpio
    name: "S3 IO47"
    pin:
      number: 47
      inverted: true
      mode:
        input: true
        pullup: true

  - platform: gpio
    name: "S3 IO48"
    pin:
      number: 48
      inverted: true
      mode:
        input: true
        pullup: true

sensor:

  - platform: adc
    pin: 4
    name: "S3 IO04 Current"
    update_interval: 2s
    unit_of_measurement: V
    attenuation: 11db
    filters:
      - multiply: 5

  - platform: adc
    pin: 5
    name: "S3 IO05 Current"
    update_interval: 2s
    unit_of_measurement: V
    attenuation: 11db
    filters:
      - multiply: 5

  - platform: adc
    pin: 6
    name: "S3 IO06 Current"
    update_interval: 2s
    unit_of_measurement: V
    attenuation: 11db
    filters:
      - multiply: 5

  - platform: adc
    pin: 7
    name: "S3 IO07 Current"
    update_interval: 2s
    unit_of_measurement: V
    attenuation: 11db
    filters:
      - multiply: 5

web_server:
  port: 80
yaml file download: 
Hello,
Thanks for the yaml file. Could you please provide the same with configuration for Current reading with ADC inputs.
Also do you have some documentation how to create the corresponding sensors in Home Assistant when the ESPhome configuration id finished.
Thanks for you help and documentation !


RE: KinCony ESP32-S3 Core Board ESPHome yaml for home assistant - mayup - 06-09-2025

(05-10-2024, 10:49 AM)admin Wrote:
Code:
esphome:
  name: s3
  friendly_name: s3
  platformio_options:
    board_build.flash_mode: dio

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: esp-idf

# Enable logging
logger:
  hardware_uart: USB_SERIAL_JTAG

ethernet:
  type: W5500
  clk_pin: GPIO43
  mosi_pin: GPIO44
  miso_pin: GPIO42
  cs_pin: GPIO41
  interrupt_pin: GPIO2
  reset_pin: GPIO1

uart:
  - id: uart_485
    baud_rate: 9600
    debug:
      direction: BOTH
      dummy_receiver: true
      after:
        timeout: 10ms
    tx_pin: 16
    rx_pin: 15

  - id: uart_sim7600
    baud_rate: 115200
    debug:
      direction: BOTH
      dummy_receiver: true
      after:
        timeout: 10ms
      sequence:
        - lambda: UARTDebug::log_string(direction, bytes);
    tx_pin: 18
    rx_pin: 17

switch:
  - platform: uart
    uart_id: uart_485
    name: "RS485 Button"
    data: [0x11, 0x22, 0x33, 0x44, 0x55]

  - platform: uart
    uart_id: uart_sim7600
    name: "UART 4G"
    data: "AT+CGSN\r\n" # read 4G SIM7600 ID

binary_sensor:

  - platform: gpio
    name: "S3 TMP1"
    pin:
      number: 8
      inverted: true

  - platform: gpio
    name: "S3 TMP2"
    pin:
      number: 40
      inverted: true

  - platform: gpio
    name: "S3 DL"
    pin:
      number: 0
      inverted: true

  - platform: gpio
    name: "S3 SDA"
    pin:
      number: 39
      inverted: true
      mode:
        input: true
        pullup: true

  - platform: gpio
    name: "S3 SCL"
    pin:
      number: 38
      inverted: true
      mode:
        input: true
        pullup: true

  - platform: gpio
    name: "S3 IO10"
    pin:
      number: 10
      inverted: true
      mode:
        input: true
        pullup: true

  - platform: gpio
    name: "S3 IO11"
    pin:
      number: 11
      inverted: true
      mode:
        input: true
        pullup: true

  - platform: gpio
    name: "S3 IO12"
    pin:
      number: 12
      inverted: true
      mode:
        input: true
        pullup: true

  - platform: gpio
    name: "S3 IO13"
    pin:
      number: 13
      inverted: true
      mode:
        input: true
        pullup: true

  - platform: gpio
    name: "S3 IO14"
    pin:
      number: 14
      inverted: true
      mode:
        input: true
        pullup: true

  - platform: gpio
    name: "S3 IO21"
    pin:
      number: 21
      inverted: true
      mode:
        input: true
        pullup: true

  - platform: gpio
    name: "S3 IO47"
    pin:
      number: 47
      inverted: true
      mode:
        input: true
        pullup: true

  - platform: gpio
    name: "S3 IO48"
    pin:
      number: 48
      inverted: true
      mode:
        input: true
        pullup: true

sensor:

  - platform: adc
    pin: 4
    name: "S3 IO04 Current"
    update_interval: 2s
    unit_of_measurement: V
    attenuation: 11db
    filters:
      - multiply: 5

  - platform: adc
    pin: 5
    name: "S3 IO05 Current"
    update_interval: 2s
    unit_of_measurement: V
    attenuation: 11db
    filters:
      - multiply: 5

  - platform: adc
    pin: 6
    name: "S3 IO06 Current"
    update_interval: 2s
    unit_of_measurement: V
    attenuation: 11db
    filters:
      - multiply: 5

  - platform: adc
    pin: 7
    name: "S3 IO07 Current"
    update_interval: 2s
    unit_of_measurement: V
    attenuation: 11db
    filters:
      - multiply: 5

web_server:
  port: 80
yaml file download: 
Hello,
Thanks for this yaml. Could you please provide the same for "current " configuration when jumper are positionned on "current position".
Could you please provide documentation how to create sensors in Home Asssistant once the Esphome configuration finished.
Regards,
Julien.


RE: KinCony ESP32-S3 Core Board ESPHome yaml for home assistant - admin - 06-09-2025

how to use ADC, you can check with other board's yaml file.


KinCony ESP32-S3 Core — W5500 links & ARP works, but no IP traffic (ESPHome, esp-idf) - zebra - 07-22-2026

vm
On a KinCony ESP32-S3 Core board, the onboard W5500 Ethernet initialises, links at 100 Mbit full-duplex, and answers ARP correctly, but no IP traffic passes — ping times out, the ESPHome API (port 6053) is unreachable, and the device logs
Code:
frame read from module failed
. Config matches KinCony's own working esp-idf example line-for-line. Looking for help confirming whether this is a config issue or a hardware fault on this specific board.
Hardware
  • KinCony ESP32-S3 Core board
  • ESP32-S3 rev v0.2, 8MB PSRAM, 4MB flash
  • Onboard W5500 Ethernet
  • Board otherwise healthy: flashes fine over USB, GPIO/sensors all work
Software
  • ESPHome 2026.7.1
  • Framework: esp-idf (ESP-IDF v5.5.5) — matching KinCony's example
  • Code:
    board_build.flash_mode: dio
    set (as in KinCony's working example)
Ethernet config (matches KinCony's published working example)

yaml
Code:
esphome:
  name: pool-control
  platformio_options:
    board_build.flash_mode: dio

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: esp-idf

ethernet:
  type: W5500
  clk_pin: GPIO43
  mosi_pin: GPIO44
  miso_pin: GPIO42
  cs_pin: GPIO41
  interrupt_pin: GPIO2
  reset_pin: GPIO1
  manual_ip:
    static_ip: 192.168.10.110
    gateway: 192.168.10.1
    subnet: 255.255.255.0
    dns1: 192.168.10.1

Symptom
The W5500 comes up cleanly. Boot log shows:

Code:
[I][ethernet:099]: Connected
[C][ethernet:850]:   IP Address: 192.168.10.110
[C][ethernet:850]:   MAC Address: DC:DA:0C:7B:77:77
[C][ethernet:850]:   Is Full Duplex: YES
[C][ethernet:850]:   Link Speed: 100
[C][ethernet:587]:   Type: W5500
[C][api:269]:   Address: 192.168.10.110:6053

From another host on the same VLAN/subnet (192.168.10.x):
  • Code:
    arp -n 192.168.10.110
    resolves correctly to
    Code:
    dc:da:0c:7b:77:77
    (the W5500 MAC)
  • Code:
    ping 192.168.10.110
    → 100% packet loss
  • ESPHome API connect to 6053 →
    Code:
    [Errno 113] Connect call failed
    (no route to host)
When forcing traffic, the device logs a repeating W5500 read failure:

Code:
w5500.mac: w5500_send_command(214): send command timeout
w5500.mac: emac_w5500_receive(745): issue RECV command failed
w5500.mac: frame read from module failed

So: link + ARP (mostly SPI writes) succeed, but reading received frames back from the W5500 over SPI fails. This looks like the W5500 SPI read path not working, while the write path does.
What I have already ruled out
  • SPI pins — clk=43 / mosi=44 / miso=42 / cs=41 / int=2 / rst=1 is the correct map for this board. (The A2v3 "official" map clk=42/mosi=43/miso=44 causes a total
    Code:
    w5500 reset timeout
    on this board — different pinout.)
  • Clock speed — tried default 26 MHz, plus 16 MHz and 10 MHz via
    Code:
    clock_speed:
    . No effect on the RX failure.
  • flash_mode — set
    Code:
    board_build.flash_mode: dio
    per KinCony's working example. No change.
  • Framework — esp-idf, matching KinCony's example (not arduino).
  • Cabling & switch port — swapped cable and port.
  • VLAN / firewall / routing — a Shelly device on the same IoT VLAN is fully reachable from the same host, so inter-VLAN routing and firewall are not the cause.
  • IP / MAC / ARP conflict — removed a stale entry (the WiFi base MAC
    Code:
    ...74
    ) from the controller; ARP now resolves to the correct Ethernet MAC
    Code:
    ...77
    . Static IP is outside the DHCP pool.
  • mDNS quirk — mDNS advertises the WiFi base MAC (
    Code:
    ...74
    ) while Ethernet runs
    Code:
    ...77
    . Believed harmless (ESPHome uses base MAC for the mDNS TXT record), but noted.
The puzzle
My config now matches KinCony's own published working esp-idf example (same board, framework, pins, flash_mode) yet the W5500 read path fails. Because the config matches a known-good reference, I'm starting to suspect a hardware issue on this specific board's W5500 or its SPI traces (e.g. a marginal MISO connection would explain writes-work / reads-fail).
Questions
  1. Has anyone seen
    Code:
    frame read from module failed
    /
    Code:
    RECV command failed
    on the S3 Core W5500 with an otherwise-correct config?
  2. Is there any additional required option for the S3 Core W5500 beyond the block above (e.g. an
    Code:
    interface:
    setting, a
    Code:
    spi:
    component, an sdkconfig option)?
  3. Any way to confirm whether this is a bad W5500 / solder joint vs. a software issue — short of swapping boards?
Note
Latest change of variable: the device was moved from a UniFi USW-Flex switch to a MikroTik switch around when it went from "visible/online" to "offline" at the switch — will test switch/port again. But the read-path SPI errors above are logged by the device itself regardless of switch, so they appear to be local to the board.
Any pointers appreciated.