

Thermostat
AVR-based Residential Thermostat Hardware / Firmware
- Size
- 111.2 × 76.5 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 47
- Nets
- 55
- Pads
- 195
- Tracks, vias
- 558, 61
- Pours
- 5
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 16 Nov 2024
- Updated
- 7 Sep 2026
Overview
Thermostat is an open-source printed circuit board by jamesrwaugh, from the jamesrwaugh/thermostat repository on GitHub. It is a 2-layer board of 111.2 × 76.5 mm with 47 parts on 55 nets, routed with 558 tracks and 61 vias.
It is built around the ATMEGA168P-20AU, DS1307Z+ and UA78M05QDCYRQ1, with the SS33 among its other parts. Its parts include 10 capacitors, 10 switches, 7 ICs, 4 resistors and 4 connectors. It belongs with the home automation and IoT boards and the AVR (ATmega, ATtiny) boards of this library.
Main components
4ATMEGA168P-20AU
TQFP-32(7x7)-40℃~+85℃ 10bit 16KB 1KB 2.7V~5.5V 20MHz 23 512Byte 8 Bit AVR Built-in FLASH Power-on reset (POR)、Undervoltage detection (BOR/LVD/LVR/LVI)、Watchdog reset、Built-in general-purpose timer、Programmable watchdog、Touch function TQFP-32(7x7) Microcontrollers (MCU/MPU/SOC) ROHSMicrochip TechnologyMicrocontrollers (MCU/MPU/SOC)DS1307Z+
SO-80℃~+70℃ 10nA 300nA 4.5V~5.5V Backup power management and battery charging、InsideSRAM/NVRAM、Programmable clock output External I2C SO-8 Real Time Clocks ROHSMaxim Integrated (Analog Devices)Real Time ClocksUA78M05QDCYRQ1
SOT-223-4Over Current Protection、Short Circuit Protection、Thermal Shutdown、Built-in soft start SOT-223-4 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTexas InstrumentsVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsSS33
SMASchottky Diodeshongjiacheng
README
README.mdAVR Thermostat
James' interest in making a thermostat
Features
- [End Goal] Home Assisstant integration compatible
- Plugs into residential connections offering 24VAC power
- Programmable time/day-based temperature settings
- Heating, cooling, and off modes
- Battery-backed storage for settings and time
- Support on-cool and on-heat reverse valve types
- Auto or always-on fan setting
- Display in Fahrenheit or Celsius
- ISP header for firmware flashing and updates
- Objectively gorgeous vacuum-florescent display
- Runs on a familiar, lovable AVR
- All this and more, in a small & tiny 16Kb firmware binary
Parts
47| Qty | Value | Footprint | References |
|---|---|---|---|
| 5 | 12MM | ThermostatFootprints:B3F | SW1, SW2, SW3, SW7, SW9 |
| 4 | 0.1uF | Capacitor_SMD:C_0603_1608Metric | C6, C8, C9, C10 |
| 4 | G6E | Relay_THT:Relay_SPDT_Omron_G6E | K1, K2, K3, K4 |
| 4 | MountingHole | MountingHole:MountingHole_3mm | H1, H2, H3, H4 |
| 4 | MountingHole | MountingHole:MountingHole_2mm | H5, H6, H7, H8 |
| 3 | 4.7k | Resistor_SMD:R_0603_1608Metric | R2, R6, R7 |
| 2 | 1uF | Capacitor_SMD:C_1210_3225Metric | C2, C3 |
| 2 | 22pF | Capacitor_SMD:C_0603_1608Metric | C4, C5 |
| 1 | 10k | Resistor_SMD:R_0603_1608Metric | R1 |
| 1 | 10uF | Capacitor_SMD:C_1210_3225Metric | C1 |
| 1 | 47L04 | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U2 |
| 1 | 6.8uF | Capacitor_SMD:C_0603_1608Metric | C7 |
| 1 | ATmega168P-20A | Package_QFP:TQFP-32_7x7mm_P0.8mm | U5 |
| 1 | AVR-ISP-6 | ThermostatFootprints:PinHeader_2x03_P2.54mm_Vertical_SMD_2 | J3 |
| 1 | Battery_Cell | ThermostatFootprints:BS-12-B3AA011 | BT1 |
| 1 | Conn_01x02_Pin | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical_SMD_Pin1Left | J2 |
| 1 | Crystal | Crystal:Crystal_SMD_5032-2Pin_5.0x3.2mm | Y1 |
| 1 | Crystal | Crystal:Crystal_SMD_3215-2Pin_3.2x1.5mm | Y3 |
| 1 | DS1307Z+ | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U8 |
| 1 | GU112X16G-7003BL | ThermostatFootprints:GU-7003 | U1 |
| 1 | MainConnectorr | TerminalBlock:TerminalBlock_MaiXu_MX126-5.0-07P_1x07_P5.00mm | J4 |
| 1 | SHT4x | Sensor_Humidity:Sensirion_DFN-4_1.5x1.5mm_P0.8mm_SHT4x_NoCentralPad | U9 |
| 1 | SS33 | Diode_SMD:D_SMA | D1 |
| 1 | SW_Push | Button_Switch_SMD:SW_Push_1P1T_NO_CK_KMR2 | SW5 |
| 1 | Screw_Terminal_01x02 | TerminalBlock_MetzConnect:TerminalBlock_MetzConnect_Type094_RT03502HBLU_1x02_P5.00mm_Horizontal | J5 |
| 1 | UA78M05QDCYRQ1 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U4 |
| 1 | ~ | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U3 |
Questions
How big is the Thermostat PCB?
It measures 111.2 × 76.5 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Thermostat use?
47 parts, built around the ATMEGA168P-20AU, DS1307Z+, UA78M05QDCYRQ1 and SS33. 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 jamesrwaugh/thermostat repository on GitHub, at the commit this page was made from: the board is hardware/Thermostat/Thermostat.kicad_pcb and its schematic hardware/Thermostat/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 states no licence, so its author keeps all rights: ask jamesrwaugh before reusing the design.
Similar boards
- 10 layers52.4 × 78.6 mm

- 2 layers62 × 39.8 mm

L298 motor driver
Roshan-khatri78/Electronics-Projects-KiCad-
A collection of my KiCad projects and PCB designs. These projects reflect my learning journey in electronics and PCB design.
26 parts2 - 2 layers67.3 × 25.4 mm

UPDI programmer
dbuchwald/kicad-simple
Simple designs in KiCAD that do not require separate projects
32 parts10MIT - 2 layers68 × 53 mm

- 2 layers100 × 100 mm

- 2 layers330 × 300 mm

Melbourne Live Train Map
CDFER/Melbourne-Live-Train-Map
A curcuit board with RGB leds to show the live position of trains in Melbourne!
1,260 parts5GPL-3.0 - 4 layers66.9 × 66.9 mm

Temp Monitor
Alex-C-EE/Reliable-Temp-Monitor
A CAN Node designed to take temperature measurement from 3 analog-output sensors and control 2x 24V fans
127 parts1 - 2 layers50 × 50 mm

Tesi
EmaNeg/Power_Management_Unit_Tesi
PMU (Power Management Unit) compatta per sistemi embedded. Integra Power Path automatico, ricarica Li-Po 1S, conversione DC-DC Buck-Boost a 5V e monitoraggio I2C tramite MAX17048.
65 parts1MIT