STM32 Toaster Oven Controller
An embedded finite-state-machine controller developed on an STM32 for toaster-oven temperature control.
Role
Firmware developer
Team
Individual
Status
Completed
Timeline
2025
- ▹State-machine architecture
- ▹Buttons and ADC input
- ▹Timing logic
- ▹Temperature-control states
- ▹Embedded C on STM32
Problem Statement
Appliance-style control is a classic embedded problem: debounce inputs, manage timed heating states, and respond safely to temperature feedback without blocking the MCU.
Design Goals
- Clear finite-state-machine architecture
- Button and ADC temperature input handling
- Timed control states for heating cycles
- Readable Embedded C on STM32
System Architecture
Inputs (buttons, ADC temperature) → FSM (idle, preheat, bake/toast states, fault/done) → outputs (heater drive indicators / control signals) with timing services.
Software Design
The controller is organized as an explicit state machine in C. Each state defines entry actions, transitions, and timing requirements. ADC readings inform temperature-related transitions.
Engineering Decisions
- FSM over ad-hoc flags for predictable behavior and easier testing
- STM32 as a representative industry MCU platform
Testing and Validation
Exercised state transitions with button sequences and simulated/ADC temperature inputs, verifying timing and control-state behavior.
Results
Completed an STM32-based FSM controller demonstrating structured embedded design for a temperature-control appliance model.
Challenges
- Debouncing and input edge cases
- Keeping timing accurate without busy-waiting
- Safe handling of unexpected state paths
Lessons Learned
Explicit states and transition tables make embedded control far easier to reason about than deeply nested conditionals.
Future Improvements
- PID temperature regulation overlay
- Soft-start heater drive
- Logging/telemetry for lab demos
Questions about this project? Email Caleb.