13: Choosing the hardware: an ESP32 board or the stock module
For someone who has not decided what to put in the unit. There is one firmware, the ESPHome
hisense_ac component, and it runs on an ESP32 board that replaces the Wi-Fi module or on the
module itself. This page compares the two.
Short answer: use an ESP32 board unless you have a reason to keep the original module.
Retired on 2026-10-12. This page used to compare three firmwares. The two Matter builds are no longer on
main(docs/guide/Matter-Firmware-Retired.md). The current comparison is one ESPHome firmware on two kinds of hardware, below. The last tree that has the Matter builds is the tagmatter-final, and the version of this page at that tag has their columns and figures.
At a glance
| ESP32 replacement board | Stock W41H1 module (LibreTiny) | |
|---|---|---|
| Cost | ~€5: an ESP32 board and a 3.3 V RS-485 transceiver | €0 if the module works, plus ~€5 for a CH341A clip you need for recovery |
| Sourcing | available everywhere | the W41H1 is fragile (ESD) and hard to source in the EU |
| First flash | USB, esphome run |
over the air from the retired Matter firmware (done on two modules). By clip or UART download mode: not done yet |
| Recovery | USB, always: the ROM bootloader is in silicon | the SOIC-8 clip and a dump of that unit |
| A bad update | rolled back by the bootloader | nothing rolls it back. A rejected image hangs the module |
| Toolchain | pipx install esphome, which fetches its own ESP-IDF, about 5 GB |
the same command. LibreTiny fetches what it needs, about 800 MB |
| Flash budget | 4 MB, the image takes 51 to 55 % of the slot | 4 MB, the image takes 35 to 40 % of a slot of 1472 or 1712 KiB (figures and their date) |
| Updates | full image over ESPHome’s own OTA | the same, into the slot the bootloader will prefer next |
| Diagnostics | logs over the API plus diagnostic entities | the same, plus Flash layout and Serial port restarts |
| Status LED | optional, on a board that has one | none: no LED is documented on the module |
| Maturity | on live A/Cs since 2026-08, powered from the connector | first run in an A/C on 2026-10-10, factory flash layout only |
Other chips ESPHome supports (ESP8266, RP2040) have example board files that compile. Nobody has run one, so they are not in the table.
The dimensions, in detail
Cost and sourcing
The ESP32 route costs about €5 in parts: an ESP32 dev board and a 3.3 V RS-485 transceiver (MAX3485 / SP3485 / SN65HVD75). Do not use a 5 V MAX485 module: its RO pin pushes 5 V into the ESP32 RX and kills it. Power and bus both come from the A/C’s 4-pin module connector (5 V confirmed on the wire).
The stock module costs nothing in parts if it is alive, but budget for a CH341A programmer and SOIC-8 clip regardless: that is how a module is recovered.
The real difference is sourcing. W41H1 modules die easily from handling and ESD, and are increasingly hard to buy in the EU. An ESP32 is a commodity.
Getting the firmware on, and getting it off again
An ESP32 is written over USB and can always be written again.
The stock module has no USB. The modules that have run ESPHome got it over the air from this
project’s retired Matter firmware, which installed the image as its own next version
(docs/guide/Matter-Firmware-Retired.md).
For a module on the vendor firmware the routes are the clip or UART download mode, and neither
has been used for this build. The clip tool that writes one firmware slot exists and has not
written a module yet (firmware/flasher/README.md). The module’s
bootloader boots the valid slot with the higher serial and hangs on an image that fails its
checks, with no fallback (10-stock-module-boot-and-recovery.md).
An image built for the wrong flash layout bricks the unit at its first update
(15-esphome-path.md).
Toolchain
pipx install esphome, then esphome run. ESPHome downloads the compiler and SDK for the board it
builds. Nothing proprietary has to be obtained by hand, and nothing is vendored in this repository.
The component uses ESPHome’s uart: component and no chip SDK, which is why one source tree
builds for both.
Stability on the stock module
LibreTiny rates the chip family 2 out of 5 for stability. On the tested module the bus receiver
stopped twice, from a lost count in LibreTiny’s receive buffer that the component now prevents, and
a second converted unit went silent on the bus for a reason that is still open. A restart or an
update can leave the chip dark until power has been off for about 30 seconds (LibreTiny issue 396).
The w41h1_module component carries the workaround. The full list of open risks is in
15-esphome-path.md.
Energy
Not a differentiator: neither board’s own consumption has been measured. The A/C’s power draw is
estimated the same way on both (09-energy-monitoring.md).
Recommendation
- Starting fresh, or the module is dead: an ESP32-C3 SuperMini and a 3.3 V transceiver.
- A working module that already runs this project’s retired Matter firmware: convert it over the air if you accept the risks, and keep the clip and a dump at hand. One of the two converted modules stopped answering on its bus for a reason that is still open.
- A working module on the vendor firmware: leave it, or replace it with an ESP32 board. There is no tested route onto it yet.
What this comparison does not settle
- Long-term reliability is not compared. The fleet is small and young. The known hardware failure has been a dead W41H1 radio, which is a sample of one and not evidence of a rate.
- The stock module has the least field time, and the sdk and native flash layouts have not run at all.
- Numbers are from this project’s units and builds. Image sizes will move with ESPHome versions and enabled features.