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

station2.jpg

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:

  1. Power stability
  2. Safety
  3. Maintainable firmware architecture


Supplies

  1. ESP32 development board
  2. MAX6675 thermocouple module
  3. K-type thermocouple
  4. TRIAC (BT139)
  5. MOC3041 optocoupler
  6. 24V BLDC fan
  7. Heating element (~550W)
  8. Transformer (12V secondary)
  9. Bridge rectifier
  10. Capacitors (up to 5000 µF for filtering)
  11. MOSFET for fan control
  12. Rotary encoder
  13. 16×2 I2C LCD
  14. PCB materials (for etching)

System Overview

The system is divided into two main sections:

  1. Power board → handles heater, fan, and power supply
  2. 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

power_board.jpg

The power board manages all high-power elements:

  1. TRIAC-based heater control (BT139)
  2. Opto-isolation using MOC3041
  3. Fan control via MOSFET (PWM)
  4. 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

processor_board.jpg

The processor board contains:

  1. ESP32 controller
  2. MAX6675 thermocouple interface
  3. Rotary encoder input
  4. 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:

  1. PID temperature control
  2. Cooperative (non-blocking) scheduler
  3. Menu-driven user interface
  4. 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:

  1. Heater power is reduced gradually near the setpoint

✅ Result

  1. Reduced overshoot
  2. Faster settling
  3. More stable control


Safety Features

pvc_stand1.jpg

Safety was a critical part of the design.

Implemented features include:

  1. Fan–heater interlock
  2. Hardware-based safety constraints
  3. Thermal limits in firmware

This ensures safe operation even in case of software failure.

Assembly

assembled_unit  .jpg
stacking_of_boards.jpg

The entire system was built in-house:

  1. PCB design and etching
  2. Component assembly
  3. Wiring and integration
  4. 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:

  1. Multiple nozzle profiles
  2. Individual calibration
  3. Adjustable temperature and fan settings

There is no fixed limit on the number of nozzle configurations.

Lessons Learned

Some key takeaways from this project:

  1. Power supply design is critical
  2. Separate power and control circuits
  3. Avoid unnecessary capacitors on BLDC fans
  4. Always include hardware safety mechanisms


Final Result

station1.jpg
handle_on_stand.jpg
with_cover.jpg

The final system is:

  1. Stable and reliable
  2. Flexible and configurable
  3. 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