Arduino Rework Station

37,854

197

31

Introduction: Arduino Rework Station

About: A physicist with good knowledge in electronics and programming.

What about repairing your old graphics card, gaming machine or laptop with your own BGA Rework Station made from old stuff? You can reuse your old halogen heater to create a preheater for your BGA Rework Station, an arm from an old desk lamp in order to hold and move the top heater, aluminum curtain rails to hold your circuit boards, shower spiral cable to hold the thermocouples and an Arduino board as a PID temperature controller!

First of all, what a BGA Rework Station is? Modern IC chips (CPUs, GPUs, etc.) do not have legs but a ball grid array (BGA) of solder balls. In order to solder/desolder a chip like this, you need a machine that heats up the IC until ~230 Celsius without stretching the circuit board or produce thermal shock to the IC chip. That's why you need a temperature controller. These machines cost from 400$ to 1200$+ in order to buy one. This project's total cost is around 130$. You can read more about BGAs and Rework Station at wiki. Let's start! Materials:



• A four lamp halogen heater ~1800w (as bottom heater)
• 450w ceramic IR (as top heater)
• Aluminum curtain rails
• Shower spiral cable
• Hard thick wire
• Desk lamp arm
• Arduino ATmega2560 board
• 2x SSR 25-DA2x Adafruit MAX31855K breakout board (or make diy like boards i did)
• 2x K-type thermocouple
• 220to5v DC power supply @0.5A
• Character LCD 2004 module
• 5v buzzer
• Screws, buttons, cables and switches of your choice
• Average electronics knowledge


Step 1: Bottom Heater: Reflector, Lamps, Case

Find an old halogen heater, open it and take out the reflector and the four lamps. Be careful not to break the lamps! Here you can use your imagiantion about the case that holds the reflector and the lamps. You can use for example an old desktop PC case and put the reflector, the cables and the lamps in there. I used iron sheets of 1mm thickness and made my own cases for the bottom heater, the top heater and the arduino controller. As i said before you can be more creative than me and use something else as a case.

The heater i used was a 1800w heater (4x450w parallel). Use the wires from the heater and connect the four lamps in parallel. You can put an AC input plug as i did or connect a cable directly from the bottom heater to the controller.

Step 2: Bottom Heater: Pcb Holding System

After finishing your bottom heater's case, measure the bigger side of the window and cut 2 pieces of your aluminum curtain rail. You also need 6 pieces, each one is half the size of the window's small side. Drill holes at the two ends of the bigger pieces, at one end of the smaller pieces and at the bigger side of the window. Before screwing the pieces to the case, you need to make a nut-holding-mechanism, like i did in the above fotos, in order to slide the ends of smaller rails on the biger rails.

After inserting the nuts in the rails and screwing everything together, you can use a screwdriver to move, slide or tighten every screw in order to fit in your pcb's size and shape.

Step 3: Bottom Heater: Thermocouple Holders

For the thermocouple holders, measure the diagonal of the bottom heater's window and cut two pieces of your shower spiral cable. Unfold your hard wire and cut 2 pieces, each one is 6cm longer than the spiral cable. Pass the hard wire and your thermocouple through the spiral cable and bend both ends of the wire like i did in the images above. Left the one end bigger in order to screw it in one of the rail's screws. That's it!

Step 4: Top Heater: Ceramic Plate

For the top heater, i used a 450w ceramic IR heater. You can find them on aliexpress as spare parts from reballing machines. The tricky part is to make a nice case for your heater with a proper airflow. Next in the list, top heater's arm-holder.

P.S. To find the proper P, I and D settings for the ceramic heater is a pain in the ass because they are heating up/colding down very slowly.

Step 5: Top Heater: Arm

Find a nice old desk lamp with an arm and take it apart. You have to make right measurements depending on the lamp you got in order to cut it, because the top heater will have to reach each corner of your bottom heater. So, attach your top heater's case first, then cut the X axis, make the right measurements, and then finally cut the Z axis part of the arm.

Step 6: Arduino PID Controller

Find the right materials and make yourself a strong and secure case for the arduino and the other accessories.

You can "cut n' solder" every wire that connects to the controller (top/bottom heater power, controller power, thermocouples) or get some female connectors and make a clean install like i did. I didn't know how much heat would come from the SSRs so i added a fan into the case. Either you install a fan or not, you should put heatsinks into the SSRs. The code is self-explaining on how to connect each button, the SSRs, the screen and the thermocouples so it is pretty easy to connect everything together. How to operate: There is no autosetup for the P,I and D values, so you have to set your own depending on your setup. There 4 profiles. In each one you set the number of steps, ramp (C/s), dwel(waiting time per step), bottom heater threshhold, target temp for every step and P,I,D values for BH and TH. If you set for instance 3 steps, 80,180 and 230 C with BH threshold 180, your pcb will be heated only from the BH until 180C, hold that temp for the BH, and go to 230 with the top heater. The code still needs a lot of improvements but you can get an idea of how it should work. This is not a detailed tutorial because there are a lot of diy parts in it and every build will be different. I just hope that everyone will get inspired from this instructable to make his own one. P.S. Many thanks to NorcalReballer for the base code. Find me @ http://liliumjsn.blogspot.gr/

Code: https://www.dropbox.com/s/km43re4lyer7n3v/Arduino%20Rework%20Station.rar?dl=0

Arduino All The Things! Contest

Participated in the
Arduino All The Things! Contest

1 Person Made This Project!

Recommendations

  • Make it Glow Contest

    Make it Glow Contest
  • First Time Author Contest

    First Time Author Contest
  • PCB Challenge

    PCB Challenge

31 Discussions

0
uchay17
uchay17

1 year ago

Where i get schematic/connection diagram...thks

0
seba985
seba985

3 years ago

Great job
Do you have any connection diagram?

0
DominikD25
DominikD25

3 years ago

How to setup PID correctly? Because is the hardest thing...

0
undinstructable
undinstructable

3 years ago

Also, the source code is an arduino empty project! Could you please link to the code, thank you!

0
Lilium JSN
Lilium JSN

Reply 3 years ago

sketch_feb07a1.ino is not empty.

0
undinstructable
undinstructable

Reply 3 years ago

Well, if I open the sketch_feb07a1.ino project file, here is what I get:

Any ideas?


Cheers!

Schermata 2017-01-21 alle 17.57.36.png
0
Lilium JSN
Lilium JSN

Reply 3 years ago

This is sketch_jan21a, you are obviously doing something wrong. Extract the .rar file, open sketch_feb07a1.ino, if you get a pop-up to create a folder for the sketch press "Yes".

0
undinstructable
undinstructable

Reply 3 years ago

Sorry, you are right, I had to open from the Arduino IDE, I was double clicking on the ino project inside the folder, and that was opening an empty project. My apologies!

0
undinstructable
undinstructable

3 years ago

Hi, nice intructable.

Were you actually able to resolder a bga chip after reballing it? Especially the big ones like PS or xbox or graphic chips of modern laptops?

Because desoldering bga's is relatively easy but reattaching them is another story!
Cheers!

0
fearx2
fearx2

4 years ago

How to configure steps? Setting profile of two steps makes the profile
never ends. After reaching step 2 moves to the next although these are
not set, and hangs on step 5. Setting the 9 steps is changing so much
that after steps 9 comes to 11 even though it does not have one, and
hang. I am from Poland, sorry for my bad english.

0
ОлегК18
ОлегК18

4 years ago

Hi! People, i need rebuild sketch for dual MAX6675, Arduino LCD Keypad Shield (16x2 + 5 buttons (on 1 analog pin)) and fan control. I'm use Arduino Mega 2560. IR BH and IR TH (PQ1/4). Can you help me?

Sorry for my english :-) I'm form Russia ...

0
dredivan
dredivan

4 years ago

hi guys how abot automated PID calibration?

0
EddyM15
EddyM15

4 years ago

Hi, the ramping is not working property , i set 1/c but it go faster, if i want less than one second, it doesnt work. I modified the sketch to work with a 12c lcd and to control a fan for top heater.. Lots of trouble to control P,I and D. Finally i'd like add a touch lcd with no success.
To teball videogames , ramp is critical, i can't manage to fix this problem.

0
EddyM15
EddyM15

Reply 4 years ago

Thank you! I've already seen it, Maybe i'll give it a try.

0
Lilium JSN
Lilium JSN

Reply 4 years ago

At the "REFLOW_STATE_MENU_STEP_RAMP" you set degrees (C) per second, not seconds per degrees. The minimum is 0.25C/sec.

0
EddyM15
EddyM15

Reply 4 years ago

If i set less than 1c/sec. It won't save on the eeprom.

0
EddyM15
EddyM15

Reply 4 years ago

Alright, automated PID calibration option will be great! I was trying to do that, but i coudn't do it.
For top heater i'm using IR tube.
Basically, i have a bad aoyue int732(worst machine ever made), and i'm trying to modified using your Project.
About ramp, what i mean is that if tc reads 170℃ and i want to encrese to 190° at 1° per seconds, the counter start to run slowly, but suddenly go faster till Set Point, then top heater runs without ramp control. So, i have to deal with PID tunning to make top heats slowly.
This make my profile longer and for some bga is not good.

0
Lilium JSN
Lilium JSN

Reply 4 years ago

I was gonna make an automated PID calibration option with another two thermocouples into the bottom and top heater, but it needs a lot of work. Do not use ceramic heaters, it's harder to calibrate their PID because of bigger thermal capacity (colding/heating slower). Use halogen instead.

0
EddyM15
EddyM15

Reply 4 years ago

My English is a little low. Sorry