Supported SPI driven Cold-Junction K-Type Thermocouple converter:
GPIO driven Solid State Relays (230V heating/fan)
PWM driven MOSFET (12V cooling)
Python control daemon (running on the Pi)
HTML5/Websocket OS independent multi user web-client
Live Monitoring & control
Browser based Profile/Curve Management + Slope Calculator
At this point (although still only a PoC-Demonstrator) the software is a fully functional PID controller and even incorporates a simulator, so you can try, play and extend the software without the need for real hardware. If the daemon doesn't find a thermocouple, it will automatically switch into simulation mode. It's still a little bit hackish and the interface could use a little more care but when we get time we'll throw some of it against progressing this further.
The EKA KF412 is an entry level “professional” hot air oven produced by Teknoeca srl in Italy and was chosen to be used as a lab/reflow oven because the hot air (convectional) temperature transfer seemed preferable to infrared and its maximum temperature rating of 300°C compared to 250°C found on many other ovens in this class.
|Size||540 x 450 x 405 mm|
|Power||2.6 kW @ 230 V|
|Temp. Max.||300 °C|
|Capacity||4 Trays (330 x 260 mm)|
The original control knobs/switches have all been removed and the heater and fan each have been equipped with a zero-cross detecting solid-state relay. The relays have been mounted on the bottom sheet metal of the oven, to act as heatsink for the SSR (if necessary).
First tests with an ATmega based reflow controller have proven the capabilities of the oven to meet the ramp up and maximum temperature demands of an average reflow profile. However, due to the insulation of the oven chamber which increases its thermal inertia, simply turning off the heat will not result in cooling down. After passing the maximum reflow temperature, a quick but controlled cooldown is necessary in order to bring the solder paste back into a rigid state. Simply opening the door cannot be a solution for three reasons:
Opening the door will produce vibrations at the point in time when the soldering paste is in the most fluid state which in turn could result in bad joins or even move parts out of placement.
The oven has no way to control the temperature anymore in order to meet the reflow profile.
Autonomous operation is impossible.
The software already drives a second GPIO that is for cooling. A radial fan will be mounted on the back and blow fresh cold (room temperature) air into one of the two metal pipes that come out of the oven chamber in the back. This will give the Raspberry full control over both heating and cooling and should provide the quickest and most reliable process with a DIY convectional reflow oven. We still need to figure out some kind of valve so that hot air cannot escape from the oven through the cooling system.
We performed tests with N4148 diodes as temperature sensors (hackish, simple and cheap approach) but it soon became clear that a reliable reflow controller would need reliable temperature measurement. The diodes were changing their characteristics too quickly and each one had a different/unstable compensation curve. More research finally led to K-type thermocouples as a solution.
MAX31855 Hardware Setup
The Maxim MAX31855 Thermocouple-to-Digital Converter (MAX6675 upgrade) performs cold-junction compensation and digitizes the signal from a K-type thermocouple. The data is output in a signed 14-bit, SPI-compatible, read-only format. It resolves temperatures to 0.25°C and exhibits thermocouple accuracy of ±2°C for temperatures ranging from -200°C to +700°C.
The picoReflow software uses the luckily already published, open-source MAX31855 python library to get the temperature from the chip.
Sensor configuration & placement
The door state (open/closed) is also covered by a microswitch connected to a GPIO (P1-12/GPIO18 & P1-14/GND) and will return the door state back to the webclient.
Some parts, cables and connections in the oven will carry and expose live 230V. It should be obvious that you make sure, that the oven is unplugged before connecting the control SSR or Triac to prevent electric hazards.
SSR connected to P1-23
MOSFET connected to P1-19
SSR connected to P1-21
In the current software implementation is a 200°C cut-off for the fan. As soon as the temperature rises above it, the controller will disable the fan in order to minimize vibrations while the solder paste is in fluid state. We will have to A/B test if this is necessary or not but for now it's implemented.
Please keep in mind: This has not yet evolved to a complete turn-key solution. It will still need a couple of thoughts and changes on your part depending on your particular setup to make it work. As there seems to be clear demand for something like this out there, we will put time into progressing this further to have a more ready-to-go solution as soon as possible.
We've tried to keep external dependencies to a minimum to make it easily deployable on any flavor of open-source operating system. If you deploy it successfully on any other OS, please update this:
Currently tested versions
$ sudo apt-get install python-pip python-dev libevent-dev $ sudo pip install ez-setup $ sudo pip install greenlet bottle gevent gevent-websocket
$ emerge -av dev-libs/libevent dev-python/pip $ pip install ez-setup $ pip install greenlet bottle gevent gevent-websocket