M5Stack Reflow Oven Controller
* Thanks for the source code and project information provided by @Kenta Ida
Process
Development material
System configuration
Overview
This is a reflow oven controlled by M5Stack CORE.
The controller unit uses M5Stack Fire to control output of the heaters mounted in the oven. A thermocouple measures the temperature near the PCB and the controller adjusts the heater output.
Hardware configuration
The hardware consists of the following units:
- M5Stack Fire
- M5Stack Reflow Module
- SSR board
- Toaster oven
M5Stack Fire
This is the first generation M5Stack CORE with PSRAM. I don't really need PSRAM, so regular BASIC would have been fine, but this is all I had, so I'm using Fire this time. It's red and it feels like the temperature is going to rise.
M5Stack Reflow Module
This is a self-made board for connecting thermocouples and heater control SSR to M5Stack.
Two I2C thermocouple amplifiers MCP9600 (Microchip) are installed to connect thermocouples.
Also, since +5V output is required to control the SSR, a level shifter ICTBD62783A (Toshiba) is installed.
At the time of development, there was no thermocouple unit, so I made my own, but now I think it would be better to use an official thermocouple unit.
SSR board
This is a board equipped with an SSR (solid state relay) to control the heater.
The SSR is equipped with two zero-cross SSR S216S02 (Sharp) with built-in phototriac.
When I purchased the S216S02 parts (about 8 years ago?), it was easily available, but it is now a discontinued product.
Any other isolated zero-cross SSR will work, so I think the SSR-10DA is a good replacement part. Since the SSR-10DA is in the form of a unit, no board is required.
Toaster oven
Any toaster oven is fine as long as it has a top and bottom heater.
This time, I'm using a KOIZUMI toaster oven.
Software configuration
The software consists of the following modules:
- MicroPython
- SSR driver
- MCP9600 driver
- uasyncio
- control script
MicroPython
For now, I wanted to try controlling it easily, so I built and installed MicroPython for ESP32 myself.
The reason I didn't use UIFlow was because it was difficult for me to customize the module. I wish it would be easier to add additional modules...
SSR driver
Outputs a PWM signal according to the power frequency to the solid state relay and performs processing to change the heater output.
MCP9600 driver
This driver controls the thermocouple amplifier MCP9600 and measures the current temperature of the thermocouple.
uasyncio
MicroPython extension library. It allows you to write asynchronous processing using async/await in MicroPython. You can easily write processes such as executing button processing and heater control at the same time.
control script
This is a script that reads the temperature from the MCP9600 driver and controls the heater output of the SSR driver using PID control.
Reflow profiles are currently hardcoded into the script. The code for this can be found on my GitHub here: https://github.com/ciniml/M5Stack_Reflow