12-22-2025, 01:55 PM
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.
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.

