W5500 Brings Wired ESPHome Monitoring to Multi-Pack LiFePO4 Battery Systems
ESP32-S3 + W5500 connects TDT-1001 LiFePO4 BMS data to ESPHome and Home Assistant, including multi-pack monitoring over one RS-232 link.
What is the project?
esphome-tdt-bms is an ESPHome external component developed for Humsienk 100 Ah rack-mount LiFePO4 batteries and other battery packs using a TDT-1001 BMS or compatible variant.
Its purpose is to take detailed battery-management data from the BMS and expose it as sensors inside ESPHome / Home Assistant. GitHub
The author reports testing the implementation with:
2 × Humsienk 16S 100 Ah LiFePO4 packs
↓
TDT-1001 BMS
↓ RS-232
ESP32-S3-DevKitC-1
↓
W5500 Ethernet
↓
ESPHome
↓
Home Assistant
The tested software environment was ESPHome 2026.4.4 / 2026.4.5 using the ESP-IDF framework. GitHub
What data can it monitor?
This is where the project becomes more substantial than a typical ESPHome Ethernet example.
The component can retrieve data including:
- Individual cell voltages for up to 16 cells
- Pack voltage, current and power
- Remaining/full/design capacity
- State of Charge (SOC)
- State of Health (SOH)
- Cycle count
- Up to six temperature channels
- Highest/lowest battery temperature
- MOSFET charging/discharging state
- Insulation resistance
- BMS self-consumption
- Protection, warning and fault states
- Cell balancing activity
- Battery chemistry and operating mode
- Firmware version
- Active-balance information when supported by the BMS firmware
The author states that these functions were validated end-to-end on live hardware, rather than being theoretical protocol definitions. GitHub
One ESP32 can monitor multiple battery packs
This is probably the most interesting application feature.
The project supports multi-pack battery chains.
Several battery packs can be linked using their inter-pack communication ports. The ESP32 only needs to connect to the master battery's RS-232 console port, and the component can then poll the other packs through the chain. GitHub
Conceptually:
LiFePO4 Pack #2
│
│ Inter-pack chain
▼
LiFePO4 Pack #1 / Master
│
│ RS-232
▼
MAX3232
│
│ UART
▼
ESP32-S3-DevKitC-1
│
│ Ethernet
▼
W5500
│
▼
Home Assistant / NetworkThe author's validated setup uses two 16S 100 Ah packs in a master/slave configuration. GitHub
What exactly is W5500 doing?
The repository explicitly lists the tested platform as:
ESP32-S3-DevKitC-1 with W5500 ethernet
So W5500 provides the wired network connection for the ESPHome device. GitHub
This creates an interesting separation of interfaces:
RS-232 / UART → battery communication
W5500 Ethernet → network / Home Assistant communication
In other words, the ESP32-S3 acts as a bridge between a relatively traditional industrial-style serial BMS interface and a modern IP-based monitoring system.
ESPHome officially supports W5500 as an SPI Ethernet controller on ESP32-family devices, which is consistent with this implementation. ESPHome - Smart Home Made Simple
One point we should not claim from this repository is that the W5500's hardwired TCP/IP socket engine is being used. The author only identifies W5500 Ethernet as part of the tested ESP-IDF/ESPHome system. The repository does not document a WIZnet socket-offload implementation.
Interesting ESP32-S3 engineering detail
The developer also documented a practical issue with the ESP32-S3.
When using the ESP-IDF framework, UART0 is initially configured for console output. If the BMS is later assigned to that UART, leftover console configuration can corrupt the first serial frame and cause the BMS to stop responding.
The author's solution is to disable the IDF console use of UART0 through sdkconfig and move logging to USB Serial/JTAG. GitHub
That level of troubleshooting is another reason I would treat this as a genuine implementation rather than a superficial project.
Why it matters for WIZnet
For our internal discussion, I think the interesting angle is not simply “another ESP32 + W5500 project.”
It demonstrates W5500 in a practical battery-energy monitoring gateway:
Battery BMS → RS-232 → ESP32-S3 → W5500 Ethernet → Home Assistant
That puts W5500 into an application area adjacent to ESS, solar storage, UPS/rack batteries and remote battery monitoring.
I would be careful not to call it an ESS product—the source describes Humsienk rack-mount LiFePO4 batteries, not a commercial ESS deployment—but the architecture is clearly relevant to that class of applications.
Trend / Insight
The broader pattern we've been seeing is interesting:
ESP32 + W5500 is increasingly appearing where ESPHome/Home Assistant devices need wired connectivity instead of relying only on Wi-Fi.
Our previous Polymorphic Blocks example used ESP32-S3 + W5500 + PoE for a wired camera. This project uses ESP32-S3 + W5500 for a multi-pack battery-monitoring gateway.
So I would categorize this as:
Industrial / Energy Monitoring → ESPHome → Wired Ethernet
rather than a generic maker project.

