![]() |
|
N10 - ESPHome - ARM CPU streams continuously, Modbus requests never transmitted - Printable Version +- Smart Home Automation Forum (https://www.kincony.com/forum) +-- Forum: Technical Support (https://www.kincony.com/forum/forumdisplay.php?fid=87) +--- Forum: N10 (https://www.kincony.com/forum/forumdisplay.php?fid=95) +--- Thread: N10 - ESPHome - ARM CPU streams continuously, Modbus requests never transmitted (/showthread.php?tid=9811) |
N10 - ESPHome - ARM CPU streams continuously, Modbus requests never transmitted - luzozo13 - 09-09-2026 Hello, I am trying to integrate a new N10 board with ESPHome (v2026.8.0) and Home Assistant. After extensive testing I have isolated the problem precisely and hope someone who has successfully set up an N10 with ESPHome can help, or that KinCony staff can clarify some undocumented behaviour. Board: KinCony N10 (ESP32-S3-WROOM-1U N16R8, 16MB flash) ESPHome version: 2026.8.0 Chip: Freshly erased with esptool before first flash SYMPTOM ESPHome's modbus_controller never transmits a single request to the BL0910 ARM CPU. The UART RX line (GPIO10) is flooded with data from the moment power is applied, before ESPHome sends anything. Because ESPHome's Modbus component sees a perpetually busy bus, its frame-guard logic refuses to ever transmit. Every log shows thousands of "Clearing buffer of 2 bytes — timeout after partial response" messages and zero TX lines. DIAGNOSTIC STEPS COMPLETED 1. Bare UART only (no modbus: component) RX line completely silent for 60+ seconds. Confirmed the ARM CPU does NOT stream data unprovoked. 2. modbus: component, slave address 1, 115200 baud (ESPHome Devices reference config) Continuous noise on RX, zero TX ever logged. 3. modbus: component, slave address 100, 38400 baud (per KinCony's own protocol document) Same continuous noise, BUT real data bursts appeared embedded in the RX stream. This is the only configuration where the ARM CPU visibly responds — confirmed it is responding to address 100, not address 1. 4. All baud rates tested: 9600, 19200, 38400, 115200 with slave address 100. Best results at 38400 (real data bursts visible). Other baud rates produce background patterns consistent with framing mismatch. 5. Boot drain lambda (on_boot reads and discards all RX bytes before modbus_controller initialises) No effect, TX still never appears. WHAT I BELIEVE IS HAPPENING When ESPHome's modbus: component initialises, something causes the ARM CPU to enter a continuous streaming state. Once streaming starts, ESPHome can never transmit. Without the modbus: component, the ARM CPU stays completely quiet. QUESTIONS 1. Does the N10 ARM CPU require the KCS factory firmware to run first and perform an initialisation before it will behave as a standard Modbus RTU slave? Has anyone successfully used ESPHome on a freshly-erased N10? 2. Can anyone confirm the correct slave address? Our testing points to 100, not 1 as shown in the ESPHome Devices reference config. 3. Can anyone confirm the correct baud rate? KinCony's protocol document says 38400; the ESPHome Devices reference says 115200. Our best results were at 38400. 4. Is there a known way to suppress the ARM CPU's startup streaming from ESPHome, so the Modbus component can get its first request out? MINIMAL REPRODUCING CONFIG Code: esphome:Any help appreciated. Thank you. RE: N10 - ESPHome - ARM CPU streams continuously, Modbus requests never transmitted - admin - 09-09-2026 1. N10 ARM CPU already can work well, just suggest you update for newest firmware by USB-RS485 adapter. here is newest ARM CPU firmware: https://www.kincony.com/forum/showthread.php?tid=9169 2. you can use KCS v3 fimrware or ESPHome. if you use ESPHome, not MUST need download KCS firmware fistly. we suggest you use by KCS v3 ,enable mqtt auto discovery is very easy integrate to home assistant. if you want use by ESPHome, here is yaml file for N10: https://www.kincony.com/forum/showthread.php?tid=9154 3. ARM to ESP32 serial port use by : 115200bps 8 N 1 ARM's RS485 port use by : 38400bps 8 N 1 how ARM CPU work with N60/N30/N20/N10: 1: ARM CPU read all data from BL0910 chip, there are two communication interface: a. RS485 b. Serial port. a: you can use USB-RS485 adapter read BL0910 raw data by RS485 via modbus. the label on balck shell showed RS485 A and B. b: ESP32 connect with ARM CPU by serial port. it also can read RAW data by modbus protocol. these two communication interface running same modubs protocol. for example: register address begin 100 is first BL0910 chip all data. register address begin 200 is second BL0910 chip all data. register address begin 300 is third BL0910 chip all data. register address begin 400 is fourth BL0910 chip all data. register address begin 500 is fifth BL0910 chip all data. register address begin 600 is sixth BL0910 chip all data. so if you are using N60, you can read all RAW data from 100,200,300,400,500,600 address. if you are using N30, you can read all RAW data from 100,200,300 address. if you are using N20, you can read all RAW data from 100,200 address. if you are using N10, you can read all RAW data from 100 address. these is data struct: https://www.kincony.com/forum/showthread.php?tid=8413 here is modbus protocol: https://www.kincony.com/forum/showthread.php?tid=8641 2: not MUST use 2000:1 CT clamp sensor, how to chose CT sensor, see here , it have formula: https://www.kincony.com/forum/showthread.php?tid=8488 3: last thread have showed, The maximum differential voltage at each CT sensor input port is +-700mV. 4: you can read any BL0910 RAW data from register. point 1 have showed the way. RE: N10 - ESPHome - ARM CPU streams continuously, Modbus requests never transmitted - luzozo13 - 09-10-2026 SOLVED After extensive debugging, the fix was simple: remove the uart debug block entirely. Having debug: direction: BOTH in the uart: config causes ESPHome's Modbus component to see the bus as permanently busy and it never transmits. Without it, all sensors read cleanly on the first poll using the exact config from thread 9154. One possible improvement/clarification for the documentation on baud rates — the ARM CPU has two separate communication interfaces: - ESP32 serial link (GPIO9/10): 115200 baud — this is what ESPHome uses - External RS485 terminals: 38400 baud — this is for a USB-RS485 adapter The protocol document only mentions 38400, which caused for me significant confusion. The ESPHome config (115200) is correct. ARM CPU firmware: I think that the FW update was not necessary and the the board ships from Aliexpress ready to use. Hope this might help someone. |