ThermAlarm V2 is a bedside system designed to make mornings less brutal by warming you up before your alarm and cooling you down when you go to bed, so you feel better throughout the day instead of jolted awake.
Project details
- Context: Personal project
- Role: Solo
- Categories: mechanical, CAD, 3D printing, PCB, embedded systems
Problem
Waking up to a jarring alarm made mornings feel terrible regardless of how many hours of sleep you got, so this project focuses on making wake-ups feel smoother and more natural instead of shocking.
Users / environment
Bedside or travel use, especially in situations with roommates where loud alarms are disruptive.
Tagline
Helps you wake up clear-headed and keep roommates happy by quietly nudging your body with temperature changes instead of blasting a loud alarm.
Overview
It uses a compact ESP32-based custom PCB, a fully 3D-printed enclosure with adjustable airflow, battery-backed power, and C++ firmware driving an e-ink interface to coordinate thermal profiles around your sleep schedule.
Mechanical
- Fully 3D-printed enclosure modeled in SolidWorks, sized for both bedside and travel use.
- Top-mounted adjustable fan blade mechanism that can be rotated to direct airflow above, beside, or below the user, supporting a wide range of nightstand setups.
- Internal structure supports the thermal elements, PCB, battery pack, vibration motor, speaker, and display while keeping the overall form compact and portable.
Electronics / hardware
- ESP32-based Arduino-compatible microcontroller on a custom PCB designed in KiCad.
- MOSFET stages driving the fan and thermal elements to control heating and cooling profiles.
- Integrated battery pack with charge circuitry so the device can run while plugged in and charge simultaneously.
- Hot-swappable external connections for the fan, thermal elements, speaker with amplifier, vibration motor, RTC, and other peripherals.
Software
- C++ firmware tracks when the user goes to sleep and when they want to wake up, starting a thermal wake cycle ahead of time.
- Uses ESP32 deep sleep modes to conserve battery, with user preferences and state stored in non-volatile memory.
- Drives a low-power e-ink display on the front for a battery-friendly, eye-comfortable UI, with a red LED backlight that only turns on in low ambient light.
- Button-driven interface for setting time and temperature preferences, indicating �going to sleep� or �awake,� and accessing other core functions.
Contributions
- Conceived the concept based on observing that wake-up method, not just sleep duration, dominated how you felt throughout the day.
- Designed the full system architecture across mechanics, electronics, and firmware.
- Modeled the enclosure and adjustable fan mechanism in SolidWorks for printability, portability, and easy assembly.
- Designed and routed the custom PCB in KiCad, selecting and integrating components for thermal control, power management, and I/O.
- Implemented and iterated on the C++ firmware, including thermal scheduling, low-power modes, UI behavior, and debugging across hardware and software.
Status
Finalizing hardware and software for V2 and testing the real-world feasibility and effectiveness of the concept.
Impact
Subjectively makes it easier to get out of bed compared to a sudden loud alarm and is far more roommate-friendly due to its primarily silent operation.
Key lessons
- Learned how to move from a breadboard-based idea to a custom PCB with tighter firmware, turning a rough concept into a more product-like embedded system.
- Improved judgment around printability, compact enclosure design, and aesthetics while still leaving enough internal space for wiring, assembly, and future iteration.