DIY ESP32 SMD Rework Station With PID Control and MicroPython
by nivasmss in Circuits > Microcontrollers
258 Views, 2 Favorites, 0 Comments
DIY ESP32 SMD Rework Station With PID Control and MicroPython
Introduction
In this project, I built a fully functional SMD rework station using an ESP32 and MicroPython.
The aim was to create a reliable and flexible hot air system with proper temperature control, safety features, and modular hardware design — all built completely in-house.
The system uses PID control for stable temperature regulation and supports multiple nozzle configurations with calibration capability.
Unlike basic DIY builds, this design focuses on:
- Power stability
- Safety
- Maintainable firmware architecture
Supplies
- ESP32 development board
- MAX6675 thermocouple module
- K-type thermocouple
- TRIAC (BT139)
- MOC3041 optocoupler
- 24V BLDC fan
- Heating element (~550W)
- Transformer (12V secondary)
- Bridge rectifier
- Capacitors (up to 5000 µF for filtering)
- MOSFET for fan control
- Rotary encoder
- 16×2 I2C LCD
- PCB materials (for etching)
System Overview
The system is divided into two main sections:
- Power board → handles heater, fan, and power supply
- Processor board → handles control, sensing, and UI
The ESP32 reads temperature from the thermocouple and regulates the heater using a control loop.
Power Board Design
The power board manages all high-power elements:
- TRIAC-based heater control (BT139)
- Opto-isolation using MOC3041
- Fan control via MOSFET (PWM)
- Power supply generation (12V and boosted 24V)
🔍 Key Learning
Initially, the system was unstable due to insufficient filtering.
Increasing the reservoir capacitor from 1000 µF to 5000 µF fixed voltage drop issues and stabilized operation.
Processor Board
The processor board contains:
- ESP32 controller
- MAX6675 thermocouple interface
- Rotary encoder input
- LCD display
Separating this board from the power stage significantly reduced electrical noise and improved reliability.
Firmware and Control
The firmware is written in MicroPython.
Key features include:
- PID temperature control
- Cooperative (non-blocking) scheduler
- Menu-driven user interface
- Real-time monitoring
The scheduler ensures smooth operation without blocking delays.
Temperature Control and Tuning
During testing, temperature overshoot was observed.
🔧 Solution
A tapering method was introduced:
- Heater power is reduced gradually near the setpoint
✅ Result
- Reduced overshoot
- Faster settling
- More stable control
Safety Features
Safety was a critical part of the design.
Implemented features include:
- Fan–heater interlock
- Hardware-based safety constraints
- Thermal limits in firmware
This ensures safe operation even in case of software failure.
Assembly
The entire system was built in-house:
- PCB design and etching
- Component assembly
- Wiring and integration
- Enclosure fabrication
The dual-board design makes debugging and maintenance easier.
Nozzle Calibration
Different nozzles behave differently due to airflow and thermal variation.
The system supports:
- Multiple nozzle profiles
- Individual calibration
- Adjustable temperature and fan settings
There is no fixed limit on the number of nozzle configurations.
Lessons Learned
Some key takeaways from this project:
- Power supply design is critical
- Separate power and control circuits
- Avoid unnecessary capacitors on BLDC fans
- Always include hardware safety mechanisms
Final Result
The final system is:
- Stable and reliable
- Flexible and configurable
- Fully developed in-house
It provides a practical alternative to commercial rework stations with full control over design and operation.
Full Project Files
The complete project, including firmware, schematics, and design details, is available on GitHub:
👉 https://github.com/snivasms/SMD-Rework-Station
Hackaday (Development Logs) :
https://hackaday.io/project/205300-esp32-smd-rework-station-with-pid-and-micropython
YouTube demo video :
https://www.youtube.com/watch?v=VaSrfSvtFI0