Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
KC868-Server ESP32 Ethernet (JL1101 PHY) – ESPHome config help
#1
Hi all,
I’m commissioning a KinCony KC868-Server and running the onboard ESP32 (WROOM-32UE) with ESPHome.
USB flashing works fine via CH340, but I’m having trouble bringing up the ESP32 Ethernet.

I’m confident this is ESP32 native Ethernet (RMII)not W5500 SPI. The board clearly has a PHY + magnetics for the ESP32 Ethernet port (separate from the CM4 Ethernet).
Key observations:
  • ESPHome compile output shows:

    Code:
    esp_eth_phy_jl1101.c.o
    so it appears the PHY is JL1101
  • Runtime log shows EMAC reset timeout when Ethernet is initialised
  • Ethernet never links, no DHCP lease
Current ESPHome config (fails to bring up Ethernet):

Code:
ethernet:
  type: LAN8720
  mdc_pin: GPIO23
  mdio_pin: GPIO18
  clk:
    pin: GPIO0
    mode: input
  phy_addr: 1
  power_pin: GPIO16

Runtime error:

Code:
emac_esp32_init(): reset timeout
ethernet was marked as failed

Questions:
  1. Can anyone confirm which Ethernet PHY the KC868-Server ESP32 actually uses?
    • Is it JL1101 (as ESPHome compile suggests)?
  2. If so, could someone share a known-working ESPHome Ethernet YAML for this board?
  3. Are the RMII pins / PHY address / power pin documented anywhere for the ESP32 side?
I’m happy to test and report back once I have the correct config.
Thanks in advance — the hardware looks great, just need to get the ESP32 Ethernet initialised correctly.
Reply
#2
if you are using KC868-Server, the ESP32 only manager for RF and IR receiver module, not use for ethernet.
IR-sender: GPIO23
IR-receiver: GPIO22

RF-sender: GPIO15
RF-receiver: GPIO13
Reply
#3
Thanks for the clarification — understood that on the KC868-Server the ESP32 is not wired to the external Ethernet PHY, and is primarily intended for RF / IR management, with pins:
IR sender: GPIO23
IR receiver: GPIO22
RF sender: GPIO15
RF receiver: GPIO13

That helps explain why native ESP32 Ethernet cannot be brought up.

What we are trying to understand now is slightly different, and more about internal control architecture:

From the documentation and block diagram, the ARM CPU owns all I/O resources (MOSFET outputs, dry contacts, digital inputs), and the ESP32 appears to act as a communications / control front-end when using KinCony firmware. This implies there is an internal command interface between ESP32 and ARM.

Our goal is:
To flash our own ESPHome firmware onto the ESP32
Use ESP32 networking (WiFi is fine)
And still be able to control the ARM CPU I/O and read inputs
Exposing everything cleanly to Home Assistant

So the key questions are:
How does the ESP32 communicate with the ARM CPU internally?
UART?
RS485 / Modbus RTU?
Proprietary serial protocol?

Is there any documentation for this internal protocol?
Register map?
Command frames?
Modbus slave ID / function codes if applicable?

Has anyone successfully used ESPHome on the ESP32 to control the ARM-based I/O?
Even a minimal example (e.g. toggle one MOSFET, read one DI) would be extremely helpful.
Alternatively: is the ARM CPU fixed to only work with KinCony ESP32 firmware, or is it designed to accept generic serial / Modbus commands?

We are not trying to bypass or replace the ARM — just understand the supported way (if any) for a custom ESP32 firmware to issue commands to it.

Happy to test, document, and report back once the interface details are known.

Thanks again — the hardware is excellent, we just want to integrate it cleanly into an ESPHome + HA workflow.
Reply
#4
ESP32 and ARM CPU communication by serial port using STRING protocol.
here is protocol: https://www.kincony.com/smart-controller...tocol.html
Reply
#5
Thanks very much for sharing the protocol document — this is extremely helpful.

We’ve reviewed the KC868-Hx Smart Controller Communication Protocol v20.0.1, and the STRING command set for relay and input control is now clear.

To complete the ESP32 → ARM integration using our own ESP32 firmware (ESPHome), there are just a few remaining serial interface details we need to confirm:
1. UART connection on the ESP32 side
Which ESP32 GPIO pins are connected to the ARM CPU serial port?
(TX pin number and RX pin number)
2. Baud rate
The protocol document does not mention the baud rate.
Please confirm the default baud rate used for ESP32 ↔ ARM communication
(e.g. 9600 / 115200).
3. Serial format
Data bits / parity / stop bits
(e.g. 8N1?)
4. Line termination
Are commands terminated with:
\n
\r\n
or no line ending?

Once we have these settings, we should be able to implement full ARM relay and input control from ESPHome using the published STRING protocol, and integrate cleanly with Home Assistant.
Thanks again — the documentation and support so far have been excellent, and we’re happy to report back with working ESPHome examples once this is confirmed.
Reply
#6
1:ESP32 for ARM STM32 CPU serial port:
RXD:ESP32 GPIO16
TXD:ESP32 GPIO17
if can't work, you can exchange the pin define for RXD and TXD.

2:Baud rate: 115200bps

3:yes, just default 8N1

4: no line ending.
Reply


Forum Jump:


Users browsing this thread:
1 Guest(s)