Skip to the content
PCBKitNew board
2 layers93 × 57 mmTea Cozy Hotplate, the printed circuit board in 3D

Tea Cozy Hotplate

Will946/TeaCupHotPlate1

Keeps your tea at temperature by turning the circuit board itself into the heating element. Overengineered, like all good tea rituals.

Size
93 × 57 mm
Copper layers
2
Thickness
0.99 mm
Parts
140
Nets
89
Pads
397
Tracks, vias
1,162, 128
Pours
4
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
13 Sep 2026
Updated
30 Sep 2026

Overview

Tea Cozy Hotplate is an open-source printed circuit board by Will946, from the Will946/TeaCupHotPlate repository on GitHub, published under the MIT licence. It is a 2-layer board of 93 × 57 mm with 140 parts on 89 nets, routed with 1,162 tracks and 128 vias.

It is built around the SM4007PL, 0402 ±5% 1K6 and 1N5819WS, with the SRV05 and ZMM5V6 among its other parts. Its parts include 36 capacitors, 33 resistors, 10 diodes, 5 ICs and 3 connectors. It belongs with the STM32 boards of this library.

Main components

5

README

readme.md

Tea Cozy Hotplate

PCB Render PCB Photo

Overview

The Tea Cozy Hotplate is a USB-C powered, closed-loop temperature-controlled hotplate sized to sit under a single cup of tea. An STM32F103C8T6 ("Blue Pill" class MCU) reads a thermistor bonded to the underside of the heating coil, PWM drives two low-side NMOS switches to regulate power into a spiral PCB heater trace, and reports the current setpoint on a ten segment WS2812B ("Neopixel") LED bar that doubles as a 0 to 90 degrees C temperature dial. Two buttons let you nudge the setpoint up or down in 10 degree steps, and the whole board is bus powered off a single USB-C cable, with no separate power brick required.

How It Works

Power in. 5V arrives on the USB-C receptacle (J2), passes through a pair of 1.5A resettable (PTC) fuses on VBUS, and is clamped by an SRV05 ESD protection array on D+/D- and the CC lines. A single 2.2 ohm sense resistor pair plus 5.1kΩ pull downs on CC1/CC2 tell the upstream USB-C source the board is a fixed 5V/1.4A(ish) legacy sink. There is no PD negotiation chip, just resistor based CC termination, so any 5V USB-C source works. A XC6206P332MR LDO steps 5V down to a clean 3.3V rail for the MCU, LEDs, and sensors. A Zener (D2, ZMM5V6) sits across VBUS as extra transient protection.

The heater. The "hotplate" itself is not a separate component, it is a spiral trace etched directly into the PCB copper, measuring roughly 3.75 ohms in the assembled board, generated in KiCad with its built in Coil Generator tool (see the JLCPCB Heater Coil section below for the exact settings and trace math). Two AO3400A N-channel MOSFETs (U3/U4) sit low side between the coil and ground, each gated through a 4.7kΩ series resistor off the MCU's Hotplate_EN PWM line (rated for up to about 33kHz switching per the schematic notes). A flyback diode (D1, 1N5819WS Schottky) protects the switches from inductive kickback. The STM32 runs a PWM duty cycle proportional to the error between the setpoint and the measured coil temperature, essentially a bang bang or PID control loop over a resistive heater, similar to a soldering iron controller.

Temperature sensing. Two 47kΩ NTC thermistors are read as simple resistor divider ADC inputs. One (Temp_Coil) is thermally bonded near the heating coil to close the control loop, and a second (Temp_Mosfet) monitors the driver FETs so firmware can back off PWM if the switches themselves start overheating, giving thermal protection headroom beyond just controlling cup temperature.

Display and setpoint. Ten WS2812B addressable RGB LEDs, one per 10 degree step from 0 to 90 degrees C, are chained off a single data line (Neopixel_Bus) driven directly by an MCU GPIO, with no separate LED driver IC needed. Two tactile buttons (SW2/SW3, "Up"/"Down" in the schematic) step the setpoint in 10 degree increments, and the firmware lights LEDs up to the current setpoint.

Programming and debug. The board exposes both an SWD header (SWDIO/SWDCLK/GND/3V3) for use with an ST-Link V2, and a separate serial header (MCU_TX/MCU_RX/Reset/BOOT0) with its own status LEDs, so firmware can be flashed over SWD or bootloaded over UART without opening a case. Dedicated Reset and BOOT0 push buttons plus solder jumpers (JP1/JP2) let you force the STM32 into its UART bootloader without needing to touch the board with tweezers.

Features

  • Closed-loop temperature control, plus or minus 2 degrees C accuracy
  • Compact design fits most tea cups
  • 10 segment addressable LED bargraph for setpoint/temperature display (0 to 90 degrees C in 10 degree steps)
  • Up/down buttons for setpoint adjustment
  • Powered entirely via USB-C (5V, about 1.4A budget, PTC fused)
  • Dual NTC thermistors, one for coil temp (control loop), one for driver FET temp (protection)
  • STM32F103C8T6 microcontroller, 72MHz Arm Cortex-M3
  • Dedicated SWD and UART programming headers with BOOT0/Reset buttons for field reflashing

Specifications

STM32 Specifications
  • CPU: Arm Cortex-M3 @ 72MHz
  • Flash: 64KB
  • RAM: 20KB
  • Package: LQFP-48
Components
  • Microcontroller: STM32F103C8T6
  • LDO Regulator: XC6206P332MR (5V to 3.3V)
  • ESD Protection: SRV05 (USB D+/D-, CC1/CC2)
  • Fuse: 2 x 1.5A Resettable Fuses (VBUS)
  • USB Connector: USB-C Receptacle
  • Heater Driver: 2 x AO3400A NMOS (low-side switching), 4.7kΩ gate resistors, 1N5819WS flyback diode
  • Heating Element: ~3.75Ω Spiral PCB Coil (34 turns, 1 layer, 50mm outer diameter, 0.55mm trace width, 0.15mm spacing)
  • Temperature Sensors: 2 x 47kΩ NTC Thermistor (coil + driver FET)
  • Display: 10 x WS2812B addressable RGB LEDs (0-90°C bargraph)
  • User Input: Up/Down setpoint buttons, Reset button, BOOT0 button

Assembly and Programming

  • Program the STM32 microcontroller using an ST-Link V2 via the SWDIO header, or bootload over the UART header (MCU_TX/MCU_RX) using the BOOT0/Reset buttons or JP1/JP2 jumpers to force bootloader mode.

JLCPCB Heater Coil (1mm PCB with 1oz/ft^2)

Heater Coil PCB Trace KiCad Coil Generator Settings

  • Trace: 2.8m length, 0.55mm width, 1oz/ft^2
  • Calculated Resistance: 2.47Ω (assuming 0.000017Ω.mm)
  • Real-World Resistance: 3.75Ω (calculated to be 0.0000258Ω.mm)

Parts

140
QtyValueFootprintReferences
15100nFfootprint:0402_1005MetricC2, C4, C11, C16, C19, C20, C21, C22, C23, C24, C25, C26, C27, C28, C29
11XL-1615RGBC-WS2812Bfootprint:LED-SMD_4P-L1.6-W1.5_XL-1615RGBC-WS2812BRGB1, RGB2, RGB3, RGB4, RGB5, RGB6, RGB7, RGB8, RGB9, RGB10, RGB11
50603,Redfootprint:LED0603LED1, LED2, LED6, LED7, LED8
4clipboard:29b2475f-d1f9-413a-acd7-ed0fdfac1ce2, , ,
4clipboard:74cc307d-ef1c-4d55-ab28-7a463adb6a10, , ,
40402,1.2kfootprint:0402_1005MetricR6, R15, R16, R22
40402,100kfootprint:0402_1005MetricR8, R9, R19, R24
40402,1kfootprint:0402_1005MetricR10, R11, R32, R33
4330pFfootprint:0402_1005MetricC9, C10, C15, C17
4MountingHole_3.2mm_M3MountingHole:MountingHole_3.2mm_M3M1, M2, M3, M4
30402,10kfootprint:0402_1005MetricR5, R26, R27
30402,1uF,25V,X5R footprint:0402_1005MetricC5, C30, C31
30402,4.7kfootprint:0402_1005MetricR4, R20, R21
30603,Yellowfootprint:LED0603LED3, LED4, LED5
3Button SPST 50mA 12Vfootprint:SW-SMD_4P-L5.1-W5.1-P3.70-LS6.5-TL-2SW1, SW2, SW3
20402,100footprint:0402_1005MetricR23, R25
20402,100nF,16V,X7R footprint:0402_1005MetricC34, C35
20402,20pF,50V,C0G footprint:0402_1005MetricC1, C6
20402,22footprint:0402_1005MetricR2, R3
20402,4.7uF,10V,X5R footprint:0402_1005MetricC8, C18
20402,47kfootprint:0402_1005MetricR30, R31
20402,5.1kfootprint:0402_1005MetricR13, R14
20402,680footprint:0402_1005MetricR12, R17
20603,470nF,25V,X7R footprint:0603_1608MetricC12, C14
21.5A Resettable FuseFuse:Fuse_1206_3216MetricF1, F2
247k 3950Kfootprint:R0402R28, R29
2Jumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP1, JP2
2NMOS AO3400Afootprint:SOT-23-3_L2.9-W1.6-P1.90-LS2.8-BRU3, U4
10402,150footprint:0402_1005MetricR7
10402,1Mfootprint:0402_1005MetricR1
10402,330footprint:0402_1005MetricR18
10402,330pF,50V,C0G footprint:0402_1005MetricC7
10603,330pF,50V,C0G footprint:0603_1608MetricC13
10805,1uF,50V,X7R footprint:0805_2012MetricC3
10805,800mAfootprint:0805_2012MetricFB1
110nFfootprint:0402_1005MetricC32
11N5819WSfootprint:SOD-323_L1.8-W1.3-LS2.5-RDD1
11uFfootprint:0805_2012MetricC33
122uF 35Vfootprint:CAP-SMD_BD5.0-L5.3-W5.3-LS6.0-FDC60
18MHz 20pF ±10ppmfootprint:CRYSTAL-SMD_L5.0-W3.2U2
1Conn_01x04_SocketConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ3
1Conn_01x06_SocketConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ1
1G***kibuzzard-669770CCkibuzzard-669770CC
1G***kibuzzard-6697709Fkibuzzard-6697709F
1G***kibuzzard-669770B6kibuzzard-669770B6
1G***kibuzzard-66977083kibuzzard-66977083
1G***kibuzzard-6697719Bkibuzzard-6697719B
1G***kibuzzard-66977193kibuzzard-66977193
1G***kibuzzard-669770DCkibuzzard-669770DC
1G***kibuzzard-6697716Dkibuzzard-6697716D
1G***kibuzzard-669771D1kibuzzard-669771D1
1G***kibuzzard-6697705Akibuzzard-6697705A
1G***kibuzzard-66977187kibuzzard-66977187
1G***kibuzzard-66977218kibuzzard-66977218
1G***kibuzzard-669771DBkibuzzard-669771DB
1G***kibuzzard-669770AAkibuzzard-669770AA
1Heaterextended_parts:heater_coilHC1
1LDO 3.3V 200mA XC6206P332MRfootprint:SOT-23-3_L2.9-W1.6-P1.90-LS2.8-BRLDO1
1LOGOLOGOG***
1MCU 72MHz STM32F103C8T6footprint:LQFP-48_L7.0-W7.0-P0.50-LS9.0-BLU1
1SM4007PLfootprint:SOD-123F_L2.8-W1.8-LS3.7-RDU5
1SRV05footprint:SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BRESD1
1USB_C_Receptacleextended_parts:TYPE-C-SMD_C9900025773J2
1ZMM5V6footprint:LL-34_L3.5-W1.5-RDD2

The 136 most common of 140 parts.

Questions

How big is the Tea Cozy Hotplate PCB?

It measures 93 × 57 mm and has 2 copper layers, 0.99 mm thick.

What parts does the Tea Cozy Hotplate use?

140 parts, built around the SM4007PL, 0402 ±5% 1K6, 1N5819WS and SRV05. 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 Tea Cozy Hotplate KiCad files?

From the Will946/TeaCupHotPlate repository on GitHub, at the commit this page was made from: the board is PCB/Tea Cozy Hotplate.kicad_pcb and its schematic PCB/Tea Cozy Hotplate.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Tea Cozy Hotplate design in my own project?

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

Similar boards

  • 2 layers93 × 173 mmBatch 1, the printed circuit board in 3D

    Batch 1

    CDFER/Business-Cards

    Showcasing a collection of functional PCB business cards, each demonstrating a unique embedded electronics project.

    479 parts9
  • 2 layers62 × 100 mmESP32-S3-HUB75-Driver, the printed circuit board in 3D

    ESP32-S3-HUB75-Driver

    wszeto9/ESP32-S3-HUB75-Driver

    This board serves as the Matrix Display driver for MIT's 2.007 gameboards in Spring 2024 and Spring 2025. The board can take 4 button inputs, Stemma-QT I2C sensors, and breaks out 8 GPIO pins for future use.

    93 parts3MIT
  • 2 layers100 × 86.5 mmSensactHs, the printed circuit board in 3D

    SensactHs

    klaus-liebler/sensact

    Es gibt vier Namespaces für Nachrichten "REQUEST" und "RESPONSE", "EVENT" und "ACKNOWLEDGE". Dies wird mit den beiden LSB des Versions-Namespace-Bytes erklärt (Somit bleiben 64 Versionierungsmöglichkeiten) Alle vier…

    319 parts4Apache-2.0
  • 4 layers68 × 50 mmPicoChainZero, the printed circuit board in 3D

    PicoChainZero

    jasonalexander-ja/PicoChain

    Power and I2C daisy chained over ethernet patch cables.

    41 parts1MIT
  • 4 layers88 × 43 mmATMega Dev Board, the printed circuit board in 3D

    ATMega Dev Board

    spassigl/ATMega32A-demo-board

    An ATMega32A breakout board with exposed GPIO pins, LEDs, tactile switches and a buzzer

    59 partsGPL-2.0
  • 2 layers49.5 × 29 mmXESC YF r4, the printed circuit board in 3D

    XESC YF r4

    ClemensElflein/xESC_YF_rev4-adapter

    [![Contributors][contributors-shield]][contributors-url] [![Forks][forks-shield]][forks-url] [![Stargazers][stars-shield]][stars-url] [![Issues][issues-shield]][issues-url] [![MIT License][license-shield]][license-url]

    54 parts2MIT
  • 4 layers101.6 × 101.6 mmSTM32F405RGT6, the printed circuit board in 3D

    STM32F405RGT6

    abderrahman-laid/FE2201-MEPOS-STM32F405RGT6

    78 partsMIT