This project is a versatile controller board designed primarily for LG Therma V heat pumps, but it may work with other systems as well. With Modbus and OpenTherm slave support, PWM input and output for a waterpump, multiple relays, and several input/output options, this board can help make the heat pump more efficient and make it easy to adjust heating curves and other settings.
This board can be programmed using the Arduino IDE or EspHome, which makes it easy to integrate with home automation systems like Home Assistant. With some modifications, the following code can run on it: https://github.com/altrnate32/esp-lg-control
In addition to the base features, this board includes several optional features, such as an isolated I2C interface, isolated UART, 5V UART, onboard temperature and humidity sensors, and a status LED. With these optional features, this board can be customized to suit a wide range of applications.
The following features are included in this controller board:
- Modbus and OpenTherm slave support
- PWM input and output for a waterpump
- 4 relays (can operate 230V AC 3A. For higher current, up to 10A PCB tracks must be reinforced with soldered on wire of sufficient cross section)
- 2 outputs that can work as high-side or low-side switches at 5V or 12V (via on board voltage converters)
- 2 inputs supporting 5V or 12V
- 4 connectors for DS18B20 sensors (several sensors can be connected to one connector)
- Optional isolated I2C interface
- Optional isolated UART
- Optional 5V UART
- Optional onboard DS18B20 and SHT40 sensor
- WS2812 LED for showing status (or regular LED if you dont need RGB)
- Powered via USB-C
- Tested stable operation.
- Tested with LG Therma V HM143MR.U34 (14 kW three phase monoblock)
- Test on other devices
- Modify PCB for release
- Create Wiki Page
To get started with this controller board, follow these steps:
- Obtain the PCB files from the GitHub repository.
- Use a PCB manufacturing service to manufacture the board or assemble the board yourself by soldering the components onto the board.
- Program the ESP32 microcontroller using the Arduino IDE or other compatible software, such as Esphome. If you want to control your heat pump with Home Assistant, you can use Esphome to easily integrate the controller with Home Assistant.
- Connect the heat pump components and other pheripherals to the appropriate connectors on the board. Make sure you use the correct connectors.
- Power on the board using a USB-C cable.
Function | ESP32 GPIO Pin |
---|---|
Input1 | GPIO36 |
Input2 | GPIO39 |
Output1 | GPIO25 |
Output2 | GPIO26 |
Relay1 | GPIO27 |
Relay2 | GPIO14 |
Relay3 | GPIO12 |
Relay4 | GPIO13 |
Pump PWM In | GPIO35 |
Pump PWM Out | GPIO32 |
Open Therm In | GPIO34 |
Open Therm Out | GPIO33 |
Modbus RX | GPIO16 |
Modbus TX | GPIO17 |
Modbus Flow Control | GPIO5 |
LED | GPIO23 |
DS18B20 | GPIO15 |
UART_ISO RX | GPIO19 |
UART_ISO TX | GPIO18 |
UART_5V RX | GPIO2 |
UART_5V TX | GPIO4 |
I2C SDA | GPIO21 |
I2C SCL | GPIO22 |
If you find this project useful and would like to support its development, you can donate to the project using the Ko-fi donating platform. Your donation will help cover the costs of developing and testing the board, as well as maintaining the project repository and providing support to users.
If you need help with this project, or have any suggestions, please open an issue on the GitHub repository.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.