UnifiedEngineering / T-962-improvements

Improvements made to the cheap T-962 reflow oven utilizing the _existing_ controller HW
GNU General Public License v3.0
780 stars 192 forks source link

Custom profile fails to start if it has an intermediate temp value missing (0C value) #91

Open smithwinston opened 8 years ago

smithwinston commented 8 years ago

Inadvertently, I had missed setting the very first temp value at 000s, so when I hit S to start the profile, the oven would just pulse the fan/heater and LEDs and beep as if it had finished.

It was only after seeing the code, in particular reflow.c, line 257 that I saw that Reflow_Run() will exit upon finding the first zero value. Sure enough, when I went back to check on the oven, the 000s temp was set to 0C -- I couldn't see it because it was obscured by the Y-axis.

This could be solved by having the validation code look for intermediate 0C temps in the profile; upon finding non-zero values following a zero value, it could either report an error when trying to start the profile, or simply interpolate the missing value from it's neighbors.

xnk commented 7 years ago

Interesting find. Makes sense though as the 0C is used to end the reflow cycle (as none of the cycles run the full length). It's not an optimal solution but was the easiest thing to get going trying to be compatible with the original firmware. Having timing stages with ramp and soak times with from/to temperatures would make a lot more sense (as has been implemented in other controllers). If the first value is 0C that should probably be ignored.