Archive for June, 2009

A Robot that makes things!

Wednesday, June 24th, 2009

There was an immense amount of work that went into getting to this point, and I can only stake claim to a tiny portion of it. It was really cool to see our Makerbot throwing down the plastic… on the 20-30th try.

There were two main wrinkles. One we fixed, the other we lived with.

  • Getting the plastic to stick to the foam-core was hit or miss.  Covering the foam-core with double-sided tape created a much better surface.  We printed out 4 sets of tweezers without replacing the tape!
  • The issue we lived with was the extruder.  It’s not quite gripping the welding rod correctly yet, so we had to apply downward pressure manually. not that big of a deal for a 9 minute print, but it needs to be fixed before we print 4 shot-glasses on the same raft.  Man, if only most of us were members of a kickass hackerspace with access to machine tools.  Oh wait… we are.  Cool!

The other area just begging for improvement is the temperature control. Because the makerbot is using simple on-off control, we’re getting temperature swings of +/- 10 °C. The plan is to put in some data logging to see how bad the problem is, then implement progressively more complicated control strategies until we’re happy with it.

flattr this!

Arduino Reflow Toaster

Sunday, June 14th, 2009

Reflow
Pic 1: Arduino Controlled Toaster-Oven. No, I have not tried making toast with it

The Mark 1 reflow toaster is complete! (“Mark 1” is another way of saying there’s a lot of work to be done.)

It can hold +/- 1 °F, which should be sufficient for surface mount electronics. I say “should be” because I haven’t soldered anything with it yet.

Construction:

Reflow-Mast
Pic 2: Termistor support mast

Temperature sensing is done by a thermistor. Simple solder connections and 20ga wire get the signal back to the Arduino. (UPDATE: the thermistor is wired at the Arduino using this method.) The wires are run through a copper tube, and everything is held in place with JB weld. This setup seems to work, even at temperatures that melt solder. I don’t know if that’s because the JB keeps the solder connections from melting, or if it holds the molten solder in place during run-time. Either way, I haven’t had any problems getting temperature readings.

On the heat side, an SSR is spliced directly into the 120V plug wire. This is not safe. The SSR is fine, but having exposed 120V dangling near the toaster is a recipe for bad times. In the mark 2 that will all be neatly enclosed.

The toaster’s intrinsic temperature control was left in place, turned all the way up to 500°F.  If everything is working correctly, it will stay out of the way.  If something goes wrong, the temperature will be prevented from rising without bound.

Temperature Control:

I decided to use the Arduino PID Library to control the oven temperature. I think it works really well, but I’m a little biased.

Reflow_OnOff_vs_PID
Pic 3: Temperature control: On-Off vs PID. On-Off is easier, while PID provides tighter control with a more stable output

The easiest way to control temperature would be to use on-off control: “If I’m too cold, turn on. if I’m too hot, turn off.” I tried that first. As you can see in the picture above, it does a decent job. The oven temperature (red line) stays within 5 °F of where we want to be (green line.) This is probably fine in this application. The one questionable thing is the output. Since it’s cycling between full on and full off, there might be some extra thermal shock to the system.

On-Off control is probably fine, but as I said, I’m biased. I decided to implement pid control. As you can see, it does a better job of staying where we want to be. Instead of 5 degrees, now the temperature stays within 1 degree. Also, since the output is essentially constant, there’s a better chance that there will be a uniform temperature gradient in the oven.

The extra effort probably wasn’t necessary, but I still think it’s pretty cool.

Next Steps

  • I think the termistor may be in a bad location.  I wanted it to be really close to the workpiece, so I put it directly underneath where the workpiece would go.  it seems that when there’s a piece in place, it actually changes how heat flows in that area, and the temperature reading is almost 20 degrees higher.  I’ll need to see if this adversely impacts reflow…  once I actually reflow something.
  • I may need to upgrade to a convection toaster to get more uniform temperature distribution
  • currently I’m adjusting setpoints and watching progress using the PID frontend.  it would be nice to move that functionality onto the arduino. maybe an LCD and some buttons…
  • It might be cool to have a pre-programmed setpoint profile that the oven can cycle through

flattr this!