Skip to the content
PCBKitNew board
2 layers34.3 × 40.9 mmHeatPumpControl, the printed circuit board in 3D

ESP32c3 board with IR blaster and serial ports for heat pump control over local WiFi with ESPHome or ESPEasy firmwares

Size
34.3 × 40.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
34
Nets
25
Pads
84
Tracks, vias
155, 7
Pours
1
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
20 Jun 2024
Updated
1 Sep 2026

Overview

HeatPumpControl is an open-source printed circuit board by hansrune, from the hansrune/HeatPumpControl repository on GitHub. It is a 2-layer board of 34.3 × 40.9 mm with 34 parts on 25 nets, routed with 155 tracks and 7 vias.

It is built around the 2N2222A. Its parts include 13 resistors, 10 diodes, 3 connectors, 2 ICs and 1 capacitor. It belongs with the home automation and IoT and radio and wireless boards and the ESP32 boards of this library.

Main components

1

README

README.md

Generic ESP32c3 board with IR blaster, IR receiver, serial port, i2c and more

A small generic mini IO based on ESP32c3. This one has an IR blaster, IR receiver, and serial port with a simple 5V - 3.3V level shifter suitable for Mitsubishi CN105 port. Other ESP32c3 pins are available with pin headers for I2C, 1-wire, and other general purposes

Introduction

This small IO board was made to easily fit inside a small DYI box, a heat pump or other.

For Mitsubushi heat pumps, the CN105 connector is used for serial port communications and for power supply.

Some of the main features and benefits

  • Serial port with simple level shifter for 5V serial ports
    • The CN105 port of Mitsubishi ports can be used - and will then also provide the power supply for the board
  • An IR blaster circuit
    • Some features / command packets are easier to find from a native IR receiver
  • An IR receiver
    • Available to use - but not tested with any firmwares yet. IR protocol decodes from a native remote control is probably easier to do from a Raspberry Pi or similar
  • I2C and/or 1-wire
  • Other GPIO ports
  • WiFi based
    • This is almost a must have for most home automation systems
    • OTA support
    • Configuration backup, restore and bulk updates.
  • Firmware of your choise
    • ESPEasy with Domoticz over http. Device creation uses virtual sensors
    • ESPEasy with Domotics and Home Assistant via MQTT. Device creation uses a MQTT configuration text file.
    • ESPHome to Home Assistant via MQTT and auto discovery
    • ESPHome to Domoticz via MQTT and auto discovery
    • ... and as the hardware supports using both Arduino and ESP-IF development kits, almost any other firmware can be created.

Setup and mounting

The version 2.0 PCB needs an extra grounding wire if you use the IR receiver ground pin:

The wiring for a Mistubushi heat pump:

A visible LED can be used in series with the IR LED - just in case you want to see the activity

Any small platic DYI box that fits easily inside the heat pump should do:

The serial port - CN105 - on our Mitsubishi heat pumps:

The IR sender led fits inside the receiver housing:

The same PCB can be used for many other purposes. Here is for a firmware build test with CO2 sensor, I2C temp/humid and light, PIR sensor and a 1-wire temp sensor

Implementation and design

The schematic diagram is available here. The KiCad EDA project is in the same folder

GPIO pin usage

PINCapabiltyFunction
GPIO2Pulled upN/A
GPIO3/A1Generic IOOn IR receiver pin header
GPIO4Actice high outIR sender
GPIO5Generic IOPull-up possible
GPIO6I2CSDA
GPIO7I2CSCL
GPIO9Active low outInternal status LED
GPIO10Generic IOPull-up possible
GPIO20RXSerial to heatpump TX
GPIO21TXSerial to heatpump RX

Hardware - getting started

This project uses my KiCad-lib-ESP32 repository as a git submodule. To check this out, use the following:

bash
git clone --recurse-submodules https://github.com/hansrune/HeatPumpControl.git 

Materials used

This project uses the Seed Studio XIAO ESP32C3 RISC-V module. This tiny device has proven to be more reliable than most ESP8266 modules. This module also comes with an IPX connector for an external antenna, and is delivered with a simple external antenna for good range.

5V power can be supplied over USB-C or the serial port pin headers

For more information, use this KiCad BOM

Hardware assembly

Soldering a prototype by hand is possible if you have a steady hand and a small solder iron tip. A microscope is recommended to propely inspect the solder joints.

Recommend to do the SMD parts first, then other components.

Known bugs

The version 2.0 PCB has some flaws that fairly easy to work around:

  • The NPN-tranistor need to be mounted upside down
  • The copper fill grounding is missing for the IR receiver GND pin. An added wire is needed if you use it

License

This project is licensed under the GNU General Public License v3.0 for the software, CERN-OHL-W for the hardware, and CC BY-SA for the documentation and ideas.

Parts

34
QtyValueFootprintReferences
61N4148Diode_SMD:D_MiniMELFD4, D5, D7, D8, D9, D10
64k7Resistor_SMD:R_0805_2012MetricR8, R9, R10, R11, R12, R13
4MountingHole_PadMountingHole:MountingHole_3.2mm_M3_ISO14580_PadH1, H2, H3, H4
3Conn_01x04_MaleConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ1, J2, J3
210kResistor_SMD:R_0805_2012MetricR5, R6
227Resistor_SMD:R_0805_2012MetricR1, R2
2IR LEDLED_THT:LED_D5.0mm_ClearD1, D2
2~LED_SMD:LED_0805_2012MetricD3, D6
11.2kResistor_SMD:R_0805_2012MetricR4
110uFCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC1
12N2222APackage_TO_SOT_SMD:SOT-23Q1
1430Resistor_SMD:R_0805_2012MetricR7
1470Resistor_SMD:R_0805_2012MetricR3
1SeedStudio XIAO ESP32 C3 v1LOCAL1:XIAO_ESP32C3_THTU2
1TSOP23xxOptoDevice:Vishay_MOLD-3PinU1

Questions

How big is the HeatPumpControl PCB?

It measures 34.3 × 40.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the HeatPumpControl use?

34 parts, built around the 2N2222A. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the HeatPumpControl KiCad files?

From the hansrune/HeatPumpControl repository on GitHub, at the commit this page was made from: the board is KiCad/HeatPumpControl.kicad_pcb and its schematic KiCad/HeatPumpControl.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the HeatPumpControl design in my own project?

Its repository states no licence, so its author keeps all rights: ask hansrune before reusing the design.

Similar boards

  • 2 layers101.5 × 83 mmSd2snes, the printed circuit board in 3D

    Sd2snes

    mrehkopf/sd2snes

    SD card based multi-purpose cartridge for the SNES

    154 parts722GPL-2.0
  • 2 layers279.4 × 203.2 mmZ180GDC, the printed circuit board in 3D

    Z180GDC

    lynchaj/rhyophyre

    Single Board Computer featuring Zilog Z180 processor and NEC µPD7220 Graphics Display Controller

    249 parts12
  • 2 layers99.1 × 99.1 mmQL Qsound10x10, the printed circuit board in 3D

    QL Qsound10x10

    alvaroalea/QL_QsoundQprint_clone

    A clone board of the Sound card for the Sinclair QL Computer.

    23 parts11
  • 2 layers156.5 × 67.5 mmNixieScanDisplay, the printed circuit board in 3D

    NixieScanDisplay

    profdc9/NixieClock

    A Nixie clock that uses IN-14 tubes and very generic components that can be easily sourced.

    106 parts10
  • 2 layers89.3 × 50 mmMM58167-ISA RTC, the printed circuit board in 3D

    MM58167-ISA RTC

    jensma-de/MM58167-ISA-RTC

    RTC module for the ISA slot. With schematics, project files in kicad and open source software to drive the clock.

    29 parts9
  • 2 layers97.6 × 76.8 mm12f675-mppt, the printed circuit board in 3D

    12f675-mppt

    rasberryrabbit/PIC12F675MPPT

    Solar MPPT circuit.

    45 parts9GPL-3.0
  • 2 layers14.6 × 13.6 mmChip and transistor, the printed circuit board in 3D

    Chip and transistor

    gidim/e61-gauge

    An analog temperature gauge for E61 espresso machines. A custom PCB drives a VID6606 stepper motor gauge needle, reading temperature from an NTC thermistor.

    15 parts8
  • 2 layers147.2 × 58.3 mmLi IonBatteryProtection, the printed circuit board in 3D

    Li IonBatteryProtection

    cnobile2012/Li-IonBatteryProtection

    Circuit to protect Li-Ion and Li-Po batteries at the cell level.

    81 parts6MIT