Skip to the content
2 layers100 × 60 mmThermostat, the printed circuit board in 3D

an home thermostat based on ESPHome

Size
100 × 60 mm
Copper layers
2
Thickness
1.6 mm
Parts
50
Nets
63
Pads
200
Tracks, vias
365, 57
Pours
3
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
5 Jan 2025
Updated
5 Jan 2025

Overview

Thermostat is an open-source printed circuit board by flaviut, from the flaviut/thermostat repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 100 × 60 mm with 50 parts on 63 nets, routed with 365 tracks and 57 vias.

It is built around the BME280, LM5164DDA and G3VM-61VY3(TR), with the SMAJ36CA and SS15 among its other parts. Its parts include 13 diodes, 12 resistors, 12 ICs, 9 capacitors and 2 connectors. It belongs with the home automation and IoT boards and the ESP32 boards of this library.

Main components

5

README

README.md

A customized thermostat for my USA central heating system.

There's a lot of bugs here. I wrote down the ones I remember, but I'm certain there are more that I don't remember. Build at your own risk! I have been using this thing for myself with no problems (after initial bring-up) for over a year though.

Bugs & notes

There's a provision for a microphone. The idea was to FFT the audio from the system running to determine if there is a problem. Turns out in practice my ears work just fine for this, and I didn't bother implementing this in ESPHome.

There's two different onboard temperature sensors. I ended up using this entirely inside a closet, so I didn't populate and test these sensors. I instead soldered on a cable running to an exteral I2C temperature sensor.

I never figured out how to automatically zero the pressure sensor. In practice, this is not a problem since I can look at the graph in HomeAssistant every few months and manually subtract the zero point.

DC-DC converter gets pretty hot. I don't remember if this was a serious problem or not, but I put a heatsink onto it anyway.

There's no mounting holes or corner fillets on the PCB. This makes it challenging to install into an enclosure.

Features

  • filter change measurement (differential pressure sensor)
  • temperature sensor
  • ESP32/ESPHome controlled

Project outline

  • thermostat.kicad_pro: the kicad project with the PCB
  • enclosure/: a snap-fit enclosure for the provided PCB
  • esphome.yaml: an example ESPHome config

Parts

50
QtyValueFootprintReferences
9SMAJ36CADiode_SMD:D_SMAD5, D6, D7, D8, D10, D11, D12, D13, D14
71.5kResistor_SMD:R_0603_1608MetricR1, R2, R3, R4, R7, R8, R9
7G3VM-61VY3Package_SO:SO-4_4.4x4.3mm_P2.54mmU2, U3, U4, U5, U7, U8, U12
522uCapacitor_SMD:C_0805_2012MetricC2, C3, C5, C6, C7
4SS15Diode_SMD:D_SMAD1, D2, D3, D4
22.2u, 100VCapacitor_SMD:C_1206_3216MetricC9, C10
24.7kResistor_SMD:R_0603_1608MetricR5, R6
2Conn_01x05TerminalBlock_TE-Connectivity:TerminalBlock_TE_282834-5_1x05_P2.54mm_HorizontalJ1, J2
1100kResistor_SMD:R_0603_1608MetricR12
110u, 2AInductor_SMD:L_Bourns_SRN6045TAL2
112kResistor_SMD:R_0603_1608MetricR10
12.2nCapacitor_SMD:C_0603_1608MetricC11
1330kResistor_SMD:R_0603_1608MetricR11
1470u, 63VCapacitor_THT:CP_Radial_D12.5mm_P5.00mmC1
1BME280Package_LGA:Bosch_LGA-8_2x2.5mm_P0.65mm_ClockwisePinNumberingU11
1INMP441_MODPackage_DIP:DIP-6_W7.62mmMK1
1LM5164DDAPackage_SO:HSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.41x3.1mm_ThermalViasU13
1STS3x-DISiaq2:DFN-8_EP_2.5x2.5_Pitch0.5mmU9
1XGZP6897D005HSensor_Pressure:CFSensor_XGZP6897xU10
1mini_esp32ESP32_mini:ESP32_miniU1

Similar boards

  • 2 layers71 × 150.7 mmDC Motor Speed Controller, the printed circuit board in 3D

    DC Motor Speed Controller

    Mustafa614/DC-Motor-Controller

    This Controller Works 12v to 48v large capacity and supports can bus,rs485 comminication

    90 parts
  • 4 layers100 × 82.6 mmHV ECU, the printed circuit board in 3D

    HV ECU

    outlandnish/subaru-brz-hv-ecu

    HV Power Management ECU for my Subaru BRZ EV Conversion

    125 partsMIT
  • 4 layers68 × 68 mmBackbone, the printed circuit board in 3D

    Backbone

    andreapiccini/spaghettilab-community

    SpaghettiLab is an open modular hardware and software ecosystem for rapid prototyping, embedded systems development, and product innovation.

    212 parts10
  • 2 layers56.4 × 94.2 mmClockwork Controller, the printed circuit board in 3D

    Clockwork Controller

    fwachsmuth/Clockwork

    Give old Film Projectors crystal accuracy

    98 parts
  • 4 layers100 × 90 mmVbench pod, the printed circuit board in 3D

    Vbench pod

    embeddedci-com/benchpod

    An open hardware bench tool that plugs into your CI: sensor sim, CAN, analog I/O, power control, and a Python SDK with pytest integration

    536 parts2CERN-OHL-W-2.0

Questions

How big is the Thermostat PCB?

It measures 100 × 60 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Thermostat use?

50 parts, built around the BME280, LM5164DDA, G3VM-61VY3(TR) and SMAJ36CA. 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 Thermostat KiCad files?

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

Can I use the Thermostat design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).