Close

This Oven Has Flow

A project log for BRTRO-420 Better Blazin' Mod

Modify the BRTRO-420 reflow oven to have an Arduino based reflow firmware, serial interface and cold junction compensation.

bleckyBlecky 11/03/2019 at 05:520 Comments

So the firmware is pretty much complete apart from some more tuning to do. I've created a quick video showing the operation below (apologies for the LCD quality, the sun was out and the light polarisation gets a bit screwy, but you get the idea).

You might notice that it struggles slightly to keep up with an aggressive profile, but the oven doesn't change to the next state until both the minimum current profile stage time and temps are met, to ensure an adequate reflow. This is waaay better than the stock firmware, which would just continue after the profile phase was meant to be up (based on its configuration). So depending on the initial start temp and the amount of effort you were willing to put into configuring the profiles, would end up with many failed reflows on the stock firmware.

This is actually quite a misunderstood issue with a lot of reflow oven firmware out there. Most of the time it's attributed to needing to run an initial reflow cycle to bring the oven up to temperature first, but in the earlier, less critical stages where it might need to catch up from a lower room temp, strict adherence to the profile is less important, especially if below the activation temp of the flux (don't take this as something that should be ignored though). But it is VERY important to get it to the right temp before moving onto the next stages of reflow. It really is in the name of the early stages, "pre-heat" (depending on which nomenclature you are using). We want to use this "pre-heat" stage to "literally" "pre-heat" the oven before moving onto next stages (hopefully that was clear :P).

The LCD also draws the current temps over the displayed profile, so you can check its fitness to the curve. Also displayed is the cold junction temp of the thermocouple interface (as Top). This lets you know how hot the controller PCB/top of the chassis gets.

The oven itself has two separate PID loops for both the front and back elements, which coincide with the front and back thermocouples. These do fight slightly if they have different PID parameters, but for the most part they remain pretty steady as the convection fan stirs the air around anyway to keep things even.

The cooling phase still needs to be tweaked to ramp up the initial fan speed also.


Oh, talking about flow. I've also created a 3D printable shim which reduces case fan noise too:


It also has an auto tuner for each stage of the reflow process, producing independent (yet interdependent) results for each of the channels:

// ***** PRE-HEAT STAGE *****
#define PID_KP_PREHEAT_C0 50.28
#define PID_KI_PREHEAT_C0 4.78
#define PID_KD_PREHEAT_C0 166.72

#define PID_KP_PREHEAT_C1 96.98
#define PID_KI_PREHEAT_C1 26.96
#define PID_KD_PREHEAT_C1 210.38

// ***** SOAKING STAGE *****
#define PID_KP_SOAK_C0 97.00
#define PID_KI_SOAK_C0 25.97
#define PID_KD_SOAK_C0 168.54

#define PID_KP_SOAK_C1 44.30
#define PID_KI_SOAK_C1 6.56
#define PID_KD_SOAK_C1 201.32

// ***** REFLOW STAGE *****
#define PID_KP_REFLOW_C0 38.12
#define PID_KI_REFLOW_C0 2.15
#define PID_KD_REFLOW_C0 200.13

#define PID_KP_REFLOW_C1 43.01
#define PID_KI_REFLOW_C1 6.73
#define PID_KD_REFLOW_C1 400.31

 It stores these also in the MCU flash as startup parameters, so you don't need to muck about with changing these values.


Discussions