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
#7
KC868-Server v1.5 – internal ESP32 ↔ ARM (STM32) serial connection?

Hi KinCony team,

We are working with a KC868-Server v1.5 board and trying to confirm the internal communication path between the ESP32 and the ARM (STM32) CPU.

Based on previous replies and documentation, we understood that ESP32 communicates with the ARM CPU via a serial port (STRING protocol). However, on our KC868-Server v1.5 hardware:

We tested ESP32 UART using GPIO16 / GPIO17, including swapping RX/TX, and tested multiple baud rates.

No data is ever received back from the ARM CPU.

With power off, we performed continuity testing and cannot find any electrical continuity between ESP32 GPIO16/17 (or any other ESP32 GPIO) and the STM32 pins, except for common GND pins.
This suggests that on KC868-Server v1.5, there may be no internal ESP32 → ARM serial connection.

Interestingly, with Kincony firmware on esp32, we can control the MOSFETs no problem. Is there an intermediary GPIO enable pin?

Could you please confirm:
Whether an internal ESP32 ↔ ARM serial connection exists on KC868-Server v1.5?
If yes, which ESP32 GPIOs and STM32 pins are connected?
Or if ESP32 is not intended to directly control the ARM CPU on this model?

If you have an example ESPHome yaml file, this would be extremely useful.

Thanks for helping clarify the intended hardware architecture.
Reply
#8
here are schematic. maybe you can change with different baud rate.

.pdf   ESP32S.pdf (Size: 308.32 KB / Downloads: 10)

.pdf   MCU_NET_POWER.pdf (Size: 1.29 MB / Downloads: 4)
Reply


Forum Jump:


Users browsing this thread:
1 Guest(s)