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
(the W5500 MAC)
- → 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
on this board — different pinout.)
- Clock speed — tried default 26 MHz, plus 16 MHz and 10 MHz via
. 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
) from the controller; ARP now resolves to the correct Ethernet MAC
. Static IP is outside the DHCP pool.
- mDNS quirk — mDNS advertises the WiFi base MAC (
) while Ethernet runs
. 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
- Has anyone seen
Code: frame read from module failed
/
on the S3 Core W5500 with an otherwise-correct config?
- Is there any additional required option for the S3 Core W5500 beyond the block above (e.g. an
setting, a
component, an sdkconfig option)?
- 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.
|