---
title: "How Does KinCony CO16 Connect Analog Sensors to Home Assistant with W5500?"
url: "https://maker.wiznet.io/Benjamin/resellers/how-does-kincony-co16-connect-analog-sensors-to-home-assistant-with-w5500/"
markdown_url: "https://maker.wiznet.io/Benjamin/resellers/how-does-kincony-co16-connect-analog-sensors-to-home-assistant-with-w5500/md"
type: "VAR: Value-Added Reseller Products"
author: "KinCony"
author_url: "https://shop.kincony.com/products/esp32-s3-16-channel-analog-input-smart-controller-co16"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "KinCony"
original_url: "https://shop.kincony.com/products/esp32-s3-16-channel-analog-input-smart-controller-co16"
published: "2026-10-12"
language: "en"
tags: ["W5500", "Home Assistant", "ESPHome"]
hardware: ["WIZnet W5500"]
likes: 0
views: 6
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# How Does KinCony CO16 Connect Analog Sensors to Home Assistant with W5500?

> CO16 links 16 analog inputs, four multiplexed PT100 probes and relay control to Home Assistant through W5500 Ethernet and configurable firmware.

Original author: KinCony (source: https://shop.kincony.com/products/esp32-s3-16-channel-analog-input-smart-controller-co16)

## Components

- **WIZnet W5500** x 1: Onboard W5500 Ethernet controller linked to ESP32-S3 over SPI; standard CO16 hardware. ([docs](https://docs.wiznet.io/Product/Chip/Ethernet/W5500))

WIZnet parts: W5500 ([Datasheet](https://docs.wiznet.io/Product/Chip/Ethernet/W5500/datasheet?utm_source=maker&utm_medium=project&utm_campaign=w5500), [product hub](https://maker.wiznet.io/products/w5500/))

## Documents and links

- [KinCony CO16 official shop](https://shop.kincony.com/products/esp32-s3-16-channel-analog-input-smart-controller-co16) (code): Specifications, original product photos and purchase bundles; base USD 250, orderable on 12 October 2026.
- [CO16 official pin definitions](https://www.kincony.com/forum/showthread.php?tid=9778) (schematics): Manufacturer W5500 SPI pin map and board connections.
- [CO16 ESPHome Devices entry](https://devices.esphome.io/devices/kincony-co16/): Hardware and Home Assistant configuration examples; W5500, analog scaling and PT100 sensors.
- [KinCony PT100 multiplexer component](https://github.com/hzkincony/esphome-nx3l4051): Four three-wire PT100 probes share one MAX31865 through two NX3L4051 multiplexers.
- [CO16 expansion questions and vendor replies](https://www.kincony.com/forum/showthread.php?tid=9828): September 2026 support answers, including mutually exclusive KNX and SIM7600 modules.
- [KCS v3 firmware guide](https://www.kincony.com/how-to-use-kcsv3-firmware-esp32-board.html): Vendor firmware setup and Home Assistant MQTT integration.
- [KC868-A16v3 official product page](https://shop.kincony.com/products/kc868-a16v3-esp32-s3-16-channel-gpio-module): Same-vendor comparison: W5500, four analog inputs and MOSFET outputs.
- [CO16 complete ESPHome configuration](https://github.com/esphome/devices.esphome.io/blob/main/src/docs/devices/KinCony-CO16/advanced.yaml): Analog scaling, relay startup, SPI2 W5500 and sequential PT100 scan
- [KinCony four-probe PT100 example](https://raw.githubusercontent.com/hzkincony/esphome-nx3l4051/c3b3d5fe6a23e43875dab20dce9ee517a67e95a1/examples/pt100_4ch_max31865.yaml): Shared converter scan schedule and three-wire probe arrangement
- [PT100 component implementation](https://github.com/hzkincony/esphome-nx3l4051/blob/main/components/nx3l4051_max31865/nx3l4051_max31865.cpp): SPI3, bias handling, one-shot measurement and fault processing

## Article

## Many Sensors, One Wired Controller

**KinCony CO16 connects analog sensors, temperature probes, contact inputs and relay outputs to Home Assistant through onboard WIZnet W5500 Ethernet.** The DIN-rail controller combines an ESP32-S3 with 16 analog inputs, 16 isolated dry-contact inputs, 16 relay outputs and connections for four PT100 temperature probes. Its purpose is to bring several kinds of wired field signal into one automation system.

KinCony, based in Hangzhou, China, [announced CO16 in September 2026](https://www.kincony.com/forum/showthread.php?tid=9796). The commercial product is supplied in a metal enclosure with labeled terminals and a display. The ESP32-S3-WROOM-1U N16R8 module provides 16 MB of flash and 8 MB of PSRAM; a 12–24 V DC supply powers the controller.

![The KinCony CO16 controller with its metal enclosure, terminal blocks and Ethernet port](https://maker.wiznet.io/upload/ckeditor5/b92dbbc33ec7406086f0b4390c4d5d04.png)

*CO16 brings multiple sensor and switching interfaces into one enclosure. Photo: KinCony.*

The distinction from a basic relay board is the acquisition path. CO16 can read a continuously varying voltage or current, measure probe resistance for temperature, detect a contact closure and switch an output. The firmware then gives those readings and controls names that Home Assistant can use in dashboards and automations.

## Match Each Analog Input to Its Sensor

Four ADS1115 converters provide **16-bit analog conversion** across 16 input channels. An analog-to-digital converter turns an electrical level into a number that software can process. The CO16 [pin definitions](https://www.kincony.com/forum/showthread.php?tid=9778) and ESPHome configuration identify the four devices individually on the I²C bus, at addresses 0x48, 0x49, 0x4B and 0x4A.

Each input has a hardware jumper for **0–10 V or 4–20 mA**. A voltage-output sensor represents its reading as a changing voltage. A current-loop sensor represents it as current flowing through the measurement circuit. The jumper selects the electrical input arrangement; the firmware must also use the matching conversion and units.

![CO16 analog input jumpers and terminal blocks](https://maker.wiznet.io/upload/ckeditor5/d076058d2ef749c381ac3662cac2bb59.jpg)

*The numbered jumper row selects the input mode for each analog channel. Photo: KinCony.*

The [complete ESPHome configuration](https://github.com/esphome/devices.esphome.io/blob/main/src/docs/devices/KinCony-CO16/advanced.yaml) defaults to voltage measurement. Its filters suppress a small near-zero reading, multiply the converter value by **5.16696**, and clamp the displayed result to 0–10 V. Each analog entity requests an update every five seconds. The accompanying current-mode comment specifies a multiplier of **10.0** and changing the unit and device class to milliamps and current.

Those electrical units are only the first step. A pressure, level or other transmitter may map its electrical output onto a physical range. The installer must use the sensor specification to define that relationship. For example, the KCS firmware guide explains how two endpoint values turn an electrical range into a displayed engineering measurement, such as water level in meters. Naming the entity and its unit correctly makes the reading useful to an automation instead of leaving it as an unexplained number.

## Read Four PT100 Probes with One Converter

A PT100 is a resistance temperature detector: its platinum element has a nominal resistance of 100 ohms at 0°C, and that resistance changes with temperature. CO16 provides a different front end for these probes from the ADS1115 analog inputs.

The [KinCony multiplexer component](https://github.com/hzkincony/esphome-nx3l4051) explains the arrangement. One MAX31865 reads up to four three-wire PT100 probes. Two NX3L4051 analog multiplexers select the probe connections: one switches the A wires, another switches the B wires, and the third wire is common. A multiplexer is an electronically controlled selector, allowing several inputs to share one measurement circuit.

![Four PT100 probes share two selectors and one converter, with the sample sequence below](https://maker.wiznet.io/upload/ckeditor5/b2c49052f712425db6c86e5cd025503e.png)

*Authored technical diagram based on the KinCony component and its four-channel example.*

The two selectors share GPIO7 and GPIO21, so they change channels together. The [published example](https://raw.githubusercontent.com/hzkincony/esphome-nx3l4051/c3b3d5fe6a23e43875dab20dce9ee517a67e95a1/examples/pt100_4ch_max31865.yaml) starts a four-channel scan every ten seconds. For each channel, the selector waits 20 milliseconds for the analog path to settle, starts a single conversion, allows 70 milliseconds for the asynchronous result, and publishes that probe before advancing to the next.

The [component implementation](https://github.com/hzkincony/esphome-nx3l4051/blob/main/components/nx3l4051_max31865/nx3l4051_max31865.cpp) keeps the measurement bias enabled while switching. It reads the resistance value over a separate SPI interface and calculates temperature in the ESP32-S3 firmware. With the 50 Hz filter selected, the result callback is scheduled after 66 milliseconds, inside the example's 70-millisecond wait.

This design gives Home Assistant four separate temperature entities while sharing the converter hardware. The readings are taken sequentially. The component also checks fault flags and rejects invalid register values, publishing an unavailable numerical result for serious measurement faults. A failed probe should therefore be handled as a missing reading in an automation, rather than assumed to be an ordinary temperature.

## Keep Measurement, Control and Ethernet Roles Clear

The [manufacturer pin map](https://www.kincony.com/forum/showthread.php?tid=9778) explicitly identifies W5500 and its connection to the ESP32-S3. Ethernet uses clock GPIO1, MOSI GPIO2, MISO GPIO41, chip select GPIO42, interrupt GPIO43 and reset GPIO44. The published ESPHome setup selects W5500 on SPI2 at a 16 MHz SPI clock.

The temperature component separately initializes SPI3 for the MAX31865. Analog conversion, temperature measurement and network transfer therefore have identifiable roles in the software. **The ESP32-S3 interprets readings and runs the control logic; W5500 supplies the Ethernet interface that carries readings and commands across the LAN.**

![Front view of CO16 with labeled digital, analog and PT100 terminal groups](https://maker.wiznet.io/upload/ckeditor5/6e18563803c7440785a648ac4b6d6018.png)

*The enclosure labels separate contact inputs, relay outputs, analog inputs and PT100 connections. Photo: KinCony.*

The complete ESPHome example also defines the switching behavior. A PCF8575-compatible expander handles the relay outputs, while an XL9535 expander handles the digital inputs. Relay entities use `ALWAYS_OFF` as their restore mode, so this example starts them in the off state. Contact inputs are exposed as binary entities: they report a state rather than an analog measurement.

These details matter when moving from a product feature list to an installation. The electrical connection, entity type, startup behavior and automation rule each describe a different part of the system. Naming and checking each input before enabling an output makes the configuration easier to maintain.

## Choose KCS or ESPHome for Integration

KinCony supplies two documented paths into Home Assistant. **KCS v3 uses MQTT discovery; the complete ESPHome example uses the native Home Assistant API.** MQTT is a messaging system in which a broker relays readings and commands between devices and applications. The native API provides the direct ESPHome integration path.

For KCS, the [manufacturer guide](https://www.kincony.com/how-to-use-kcsv3-firmware-esp32-board.html) starts with the controller and computer on the same network. Find the Ethernet address using the display or KinCony scan tool, then open the browser interface. Enable the Home Assistant MQTT option and supply the broker address, port and credentials. The discovery mechanism creates the supported entities from the board configuration.

For ESPHome, the [device registry](https://devices.esphome.io/devices/kincony-co16/) offers both a hardware-only definition and a complete configuration. The complete version adds the Home Assistant API, network updates, relay controls, analog entities and PT100 sensors. It pins the custom temperature component to commit `c3b3d5f`, making the referenced implementation identifiable.

Start with the appropriate configuration, set the required sensor modes and names, and verify readings in Home Assistant before adding control rules. KCS also offers local condition-and-action rules through its web interface. Selecting ESPHome means defining the desired behavior in that software environment; loading one firmware does not combine all features from both.

## Select Expansion Modules for the Actual Installation

CO16 includes RS485 and supports optional communications modules, but the options are not all interchangeable or simultaneous. In a [September support discussion](https://www.kincony.com/forum/showthread.php?tid=9828), a prospective user asked whether the KNX and SIM7600E options could be used together. KinCony answered that both use GPIO47/48 and that only one module can be installed at a time.

![CO16 expansion connectors and Ethernet socket](https://maker.wiznet.io/upload/ckeditor5/ab34cdd0f667428c93b9047d9441cccd.jpg)

*Official close-up of the expansion area and Ethernet connector. Photo: KinCony.*

That answer is useful before choosing a bundle: cellular connectivity and the KNX option compete for the same host serial connection. W5500 Ethernet remains part of the base controller. LoRa is another separately sold option, with the shop offering a 433 MHz bundle at the observation date.

For a smaller analog bank, compare the [KinCony KC868-A16v3 on WIZnet Maker](https://maker.wiznet.io/ElenaLee/resellers/kincony-kc868-a16v3-16-channel-esp32-s3-i-o-controller-with-wiznet-w5500-ethernet/). That W5500 controller has four analog inputs and MOSFET outputs. CO16 expands acquisition to 16 analog channels and adds the multiplexed PT100 path alongside relay outputs. Sensor quantity and output type are the useful selection differences.

The published examples describe configuration and measurement behavior; they do not provide a calibrated system accuracy or a long-term installation benchmark. Select probes and verify scaling for the intended application.

## Vendor, Availability, and Price

KinCony is based in **Hangzhou, China**, and publishes **web@kincony.com** as its contact. On **12 October 2026**, its [official shop](https://shop.kincony.com/products/esp32-s3-16-channel-analog-input-smart-controller-co16) listed all five CO16 bundles as orderable.

The base controller, Bundle A, was **USD 250**. Bundle B added a USB-C cable and 12 V supply for **USD 260**; Bundle C added SIM7600E to that package for **USD 303**. The controller with KNX was **USD 300**, and the 433 MHz LoRa bundle was **USD 254**. Shipping is calculated at checkout; confirm regional charges when ordering.

## FAQ

**Q. Is W5500 optional?** No. Ethernet is built into CO16; the cellular, KNX and LoRa modules are separate purchase options.

**Q. Does moving a jumper complete the change to 4–20 mA?** No. Match the hardware setting with current scaling, units and the sensor's physical measurement range in firmware.

**Q. Are all four PT100 probes sampled simultaneously?** No. Two multiplexers select one probe at a time for the shared MAX31865, and software publishes four separate entities.

**Q. Does ESPHome need an MQTT broker?** The published complete configuration uses the native Home Assistant API. KCS v3 uses MQTT discovery for its documented Home Assistant path.

**Q. Can KNX and SIM7600E work together?** KinCony says they share GPIO47/48 and cannot be installed simultaneously. Choose the option required by the installation.

---

Source: https://maker.wiznet.io/Benjamin/resellers/how-does-kincony-co16-connect-analog-sensors-to-home-assistant-with-w5500/
