Reflow Soldering Hotplate

38K24643

Intro: Reflow Soldering Hotplate

Soldering tiny SMD components can be quite challenging, but the process can also be automated. This can be done by applying soldering paste and baking it, either in a (reflow) oven or on a hot plate (like a cooking plate in your kitchen). Around the web, I've seen many DIY reflow ovens; in my opinion they have one big downside: they take up a lot of space. So I decided to build a hotplate instead.

The hotplate is fully programmable, so that any reflow profile can be added. The reflow process is then fully automated. Let's get building!

STEP 1: Parts & Tools

Parts

  • Hot plate, I got mine from an old wok
  • Solid State Relay (SSR)
  • Power cord
  • USB powerplug (US plug)
  • LCD
  • Prototyping board
  • Arduino nano
  • Female headers
  • Type K Thermocouple + MAX 6675 amplifier
  • Push button
  • USB to mini USB cable

Tools

  • Clamps
  • Wood glue
  • Lasercutter
  • Drill
  • Soldering iron

STEP 2: The Case

For the case we have two options, depending on your hotplate. A first option is to modify the existing enclosure, this is viable if it is big enough to accommodate a SSR, LCD etc. In my case however, there was not enough room, so I had to design a new one.

The case is made out of lasercut MDF. Due to the living hinge, this design can only be made on a lasercutter: small slits in the MDF make it able to bend. The pieces can be glued together as a puzzle, just use enough clamps. Add the hot plate and secure it in place (mine is secured with screws in the bottom).

Some additional holes need to be drilled: one for the power cord, one for the button and two for the LCD. This way, any button, lcd, ... you have laying around can be made to fit. The LCD can then be screwed in place, together with the button.

The thermocouple should be firmly pressed against the hot plate. Drill a hole and feed the thermocouple through. Next, it should be pressed against the MDF. I used a small tin strip, but you could also use tape or a zip tie (drill 2 holes next to the thermocouple hole and feed the zip tie though them).

Something to be aware of: you might be wondering if using MDF in combination with a 250°C cooking plate is a good idea. In general it isn't, but I have made the case such that this is not a danger.

The MDF parts only touch the feet of the hotplate, which are significantly cooler (max 60°C) than the top of the hotplate. Everywhere else, the MDF and hotplate are separated by a small air gap. Since air is a very good insulator, the MDF doesn't heat up at all, let alone catch fire. Furthermore, the temperature is only high during a few minutes, so the legs can never reach the same temperature as the top (steady-state is never reached).

I added the Fusion 360 file so that you can adjust it to your needs. Just keep the warning above in mind when tuning the design for your own hotplate.

STEP 3: Electronics

The electronics part of this project is quite straightforward, we only need to connect some modules together. The Arduino gets the temperature from a thermocouple, whose signal is amplified by the MAX6675. It then displays the temperature on an LCD and switches a Solid State Relay (SSR) if needed. Everything is depicted on the diagram.

Low voltage

Since they don't draw a lot of power, we can simply connect everything to the Arduino pins and configuring the required pins for power and ground.

Due to some space limitations, it didn't turn out as neatly as I had hoped. I mounted everything to a small piece of perfboard, soldered to the back of the LCD screen. The MAX6675 was taped to the back with some double sided tape.

The Arduino is powered via the mini USB port, so we connect it via a USB cable to the power brick. It is a good idea to test the system at this point before going any further.

High voltage

We can now connect the hotplate itself. Since this is mains wiring, we should be very careful: make sure everything is unplugged when working on it!

First of all, we should ground the hotplate to prevent electrocution if anything goes wrong. Strip the power cable and firmly screw the yellow/green grounding wire to the casing.

Next, we will connect the two terminals of the hotplate to the mains via the SSR. Connect the live wire (color code depends on your country) to one side of the SSR. Connect the second side of the SSR to the hotplate via a short wire (same gauge/diameter as the power cable). The other end of the hotplate goes to the neutral wire.
I added a picture of the wiring before mounting the hotplate into the case to make this clear.

Wiring the power adapter is easier: the live wire goes to one terminal, and the neutral to the other. Although I live in Europe, I used a US power adapter for this: the holes in the prongs are very convenient to attach spade terminals to.

That wraps up the electronics, now lets blow some life in it with code.

STEP 4: Programming

The code is what turns a dumb wok into a reflow hotplate. It allows us to precisely control the temperature and add custom reflow profiles.

Reflow profiles

Unfortunately, reflow soldering is not as simple as turning on the heater, waiting and turning it off again. The temperature needs to follow a specific profile, the so called reflow profile. A good explanation can be found here, or on other places on the interwebs.

The code allows to store multiple profiles to satisfy different needs (mainly leaded or lead-free solder). A simple button press switches between them. They are added in the Times_profile and Temps_profile, which are both 4 column vectors. The first column is for the preheat phase, the second one for the soak phase, then ramp up and finally the reflow phase.

Controlling the hotplate

Driving the hot plate such that it follows this trajectory is not straightforward. The science behind this is called control theory. One can go very in-depth here and design the perfect controller, but we will keep it as simple as possible while still ensuring a good result. The input to our system is the SSR, which turns it on or off, and the output is the temperature, which we can measure. By turning the SSR on or off, based on this temperature we introduce feedback, and that is what allows us to control the temperature. I will explain the process as intuitively as possible, and explain how you can characterize your specific hot plate to work with the code I made.

We all know that when turning on a heater, it doesn't instantly get hot. There is a delay between turning it on (action) and becoming hot (reaction). So when we want to reach a temperature of 250°C, we should turn off the hotplate some time before that. This delay can be measured by turning on the hotplate and measuring the time between turn on, and change in temperature. Let's assume the delay is 20 seconds. Fill this in for the variable "timeDelay".

Another way of looking at it would be as follows: if we turn off the heater at 250°C, it would reach a higher value -let's say 270 C - and then start to cool down somewhat. The difference in temperature is the overshoot - 20°C in our case. Fill this in for the variable "overShoot".

In conclusion: reaching 250°C requires us to turn off the hotplate at 230°C and wait another 20 seconds for the hotplate to reach this overshoot temperature.

When the temperature has dropped, the hotplate should turn on again. Waiting for a drop of 20°C would not give a nice result, so a different threshold is used. This is called control with hysteresis (different values to turn on and off). Small bursts of max 10 seconds are used to maintain the temperature.

Measurements

To verify the controller, I logged the data to an excel file via Putty (a serial terminal for the PC with some awesome features). As you can see, the reflow profile produced is more than good enough. Not bad for cheap electric wok!

STEP 5: Test & Enjoy

We're done! We have turned an old wok into a reflow hotplate!

Plug in the hotplate, select a reflow profile and let the machine do the work. After a few minutes, the solder starts melting and solders all components into place. Just be sure to let everything cool down before touching it. Alternatively, it can also be used as pre-heater, which is handy for boards with large ground planes.

I hope you liked the project and have found inspiration to make something similar! Feel free to check out my other instructables: https://www.instructables.com/member/ThomasVDD/

36 Comments

Hi Thomas,
Could You explain how to enable logging with Putty, to allow a better tuning for the right profile ? I have to follow as per JDEC J-STD-20B lead free profile. Thank You indeed
marco
As you can see in the code, the Serial monitor outputs all necessary values:

// PRINT
Serial.print(timeElapsed);
Serial.print(", ");
Serial.print(setpoint);
Serial.print(", ");
Serial.print(measuredTemp);
Serial.print(", ");
Serial.print(digitalRead(relay_pin) * 100);
Serial.print(", ");
Serial.println(error);

You can simply connect it to the Serial monitor of Arduino and copy paste all the data into excel.
Are your LCD connections correct? Every other tutorial for LCD to Arduino Uno connections look different than yours? I'm new to Arduino and I'm nervous about messing up my LCD.
thanks :-)
The connections can be redefined in software - with some constraints - to use a different pinout. These are defined at the top of the code:
// Display
const int rw = 4;
const int ledp = 10;
const int ledm = 11;
const int rs = 3;
const int en = 5;
const int d4 = 6;
const int d5 = 7;
const int d6 = 8;
const int d7 = 9;

So my connections are perfect, but only in combination with my Arduino program.
Use whichever you want, but remember that the connections and the Arduino program are not simply interchangeable.

Also, don't be afraid to mess something up. Worst case you'll see garbage or nothing at all on the screen, but they're not so easy to break.

Good luck!
Thanks, that totally makes sense! I'm trying to use your instructable and a RepRapDiscount Smart Controller. That would give me an LCD and a rotary encoder to choose a heating profile. Also there's a built in buzzer.
Cool modification, good luck!
Please share when done :)
Thanks and absolutely! I’m going to cite your work as inspiration.

I’m thinking that I need a different reflow profile for each solder paste that I use. Should the max temp meet or exceed the melting point of the solder?
The profile depends on the type of solder, but also on the components you are soldering. Some components need different reflow profiles.
In practice I tweak the profiles until the result looks good, not only based on the provided profiles.

Would PWM pulse width modulation help with the ups and downs of reflow programming? Neat idea and love how you shrunk it down.

PWM would certainly be easier (with PID for example), but I was not to keen on PWM'ing a relay with a 2000W load. That's why I opted for a bangbang controller :)

Thomas,

I am unable to get the MAX6675 working. From your sketch the :

const int thermo_so_pin = A0;

const int thermo_cs_pin = A1;

const int thermo_sck_pin = A2;

Are the connections for the MAX.

As this is a SPI device according to the spec the connections should be:

D8, D9, and D10.

How did you manage to get working with the A0, A1, A3 connections?

Thank you

D8, D9 and D10 are the hardware SPI connections. There is nothing preventing you from using other pins with a software SPI (bitbanging). The library supports this on all pins, as long as you define them correctly.

Try with the arduino only, nothing else connected, and maybe change the pins around.

I was unaware of that, thank you Thomas I will try what you suggest.

I have an induction hot plate sold by BuzzFeed (yes, BuzzFeed) that goes by the label ‘Tasty’. The temperature is controlled by an iOS device and has a surface temperature sensor in the middle of the heating surface - there is a separate probe as well - that maintains the set temperature by +/- 1 degree and is dead on accurate. If I put an iron disk on the surface, I think I’d have a nice reflow heater. My concern and question is what effect would an induction heater have on the circuits/ chips? And, does placing a metal plate on the heater mitigate any problem if they exist.

Induction heating works by converting the magnetic field generated by the coil into so called "eddy currents" in the piece of metal. The metal then heats up due to these currents. So I would guess that most of the magnetic field is attenuated by the metal plate, and that this wouldn't be an issue for the chips.
That said, I have no idea if the presence of a magnetic field could change the chips' behavior. Try it out and let us know! ;)

I suppose the hot plate reflow idea is restricted to a PCB with components on one side only, right? Any ideas adaptations or fixtures that would handle a 2-sided board? Great device!

Indeed, you can only solder components on the top side. I have no experience with reflow soldering double sided loads, so no idea :p

Cool idea.

Or should that be "Hot idea"? ;-)

Where can I get the max6675 library? I can not seem to find it with web search!!

More Comments