Therma-Shift: a dual-mode thermoelectric beverage coaster
A solid-state desktop coaster that actively heats or cools any standard mug, glass, or can, with no proprietary drinkware. One Peltier module, closed-loop temperature control, and a safety architecture designed for unattended desk use.
| Role | Design, thermal validation, firmware (solo) | Type | Personal project |
|---|---|---|---|
| Tools | TEC1-12703 Peltier · Arduino (C++) · NTC thermistors · DRV8871 driver · USB-C PD | Timeline | 2026 · in progress |
| Result | Thermal stack bench-validated: 11 °C cold face at 12 V | Status | Closed-loop integration underway |
The problem
Existing options split into two bad camps: proprietary heated mugs that lock you into their drinkware, and cheap USB warmers with no temperature regulation at all, some of them genuine fire hazards. The interesting engineering question sits in between: one compact device that both heats and cools, works with whatever cup is on your desk, and can be trusted to run unattended.
Constraints
- Universal: any mug, glass, or can; the device adapts to the drinkware, not the reverse
- Dual mode: heating and cooling from the same hardware
- Powered over USB-C Power Delivery, within a desk-friendly power budget
- Safe unattended: thermal-runaway prevention independent of normal control
- Low-profile, quiet enough for an office desk
The design
A thermoelectric (Peltier) module does both jobs: drive current one way and the top plate cools, reverse it and the plate heats. The TEC1-12703 sits between an aluminum top plate and a finned heatsink with a blower that carries away waste heat. An NTC thermistor at the plate closes the control loop, targeting ±2 °F around the setpoint, with the module driven through a DRV8871 H-bridge so firmware controls both power and polarity.
Safety is layered the same way as my lab test rig: the control loop regulates, and separate firmware cutoffs watch for thermal runaway independently of the control loop, so an unattended fault shuts the device down safely.
Validate the physics before the electronics
Before integrating the control loop, I bench-tested the bare thermal stack against a lab power supply with K-type thermocouples on both faces. At 12 V the cold face held 10.7–12 °C with the heatsink at 53–56 °C, reaching thermal equilibrium in about five minutes. A voltage sweep mapped cold-face temperature against input power to find the efficient operating window, and swapping the heatsink’s stock adhesive pad for proper thermal paste measurably improved performance; the interfaces matter as much as the module.
Where it stands
- 10.7–12 °C cold-face temperature at 12 V, steady state
- ~5 min to thermal equilibrium
- Dual mode verified: same stack heats and cools by polarity
- Staged firmware test suite (thermistor read, driver control) written; closed-loop integration in progress
What I learned
Thermal interfaces dominate the budget: the cheapest change in the whole project (paste instead of pad) produced one of the biggest measured gains. And validating the physics on a bench supply before building electronics meant the control system now gets designed around measured behavior, not datasheet optimism.