First Version

An ME capstone team at Portland State is working on an oven so we can cure our own composites. It’s awesome. The first version of this board was a quickturn project designed, machined, and assembled in four days.

The electrical team member already had the design figured out and working with breadboard components and an Arduino, and what he really wanted was an Arduino shield. We met, looked over his work so far, and figured out the rough placement of parts in the space of a shield.

This is his schematic in Eagle.

The very first thing we did was to redraw the schematic to give a better sense of the functional flow of signals and power through the circuit.

The layout was constrained by the shield layout but even moreso by our plan to use the LPKF router to machine the board in-house. The boards had to be two layers with no plated through-holes or vias. We placed all the traces except one on the bottom layer because all the components were through-hole and would be soldered on the bottom side. The remaining signal on the top only required two large vias.

Unfortunately, Arduino shields sit on top of the Arduino and are soldered to the top of the board so we had to drop an extra via on each pad of the 0.1” headers so copper wire could be slid through and squashed, essentially plating the holes by hand.

The final product was functional but the isolation between the copper pads and the rest of the copper ground plane was so small that it made soldering a stressful chore. We electrically verified everything with a multimeter to make sure we hadn’t accidentally bridged to cause a short, and handed it off to the mechanical engineers for testing.

Version 2

The team needed some changes after their testing, including adding a second relay, so the first order of business was editing the schematic.

We split the traces more evenly between top and bottom layers this time around. The top layer copper is in red and the bottom layer copper is in blue. The white outline shows where the Arduino will sit beneath the board, so you can see the shield extends a bit beyond the Arduino shape.

Because we were still making this one by hand in the lab, we weren’t able to plate the drilled holes for the pins so we added the same small vias touching the pin pads. We would place the pin in the big hole and solder it to one side of the board, then slide a small diameter wire through the tiny via and crimp it down to make a good connection.

This is a closeup of how to call that out in the board layout:

Again, we performed the minimal soldering and marked it up with instructions before handing it off to the mechanical team to finish installing.

Final Version

The last step was to take the design from homemade board to a professionally fabricated board.

We figured out that we wanted to place the thermocouples on the board itself. We developed the final version of the oven controller and installed it on a 4’x8’x4’ curing oven at Portland State in the Mechanical Engineering department.

The schematic became complicated enough that it was too big to easily fit on a screen, so you can click to open a larger view.

Because were were going to use OSH Park to fabricate the boards, all of the holes could be plated so there was no more need to place vias in pin pads to connect the top and bottom layers.

The electronics are a three-board stack with an Arduino Uno R3 on the bottom; the custom oven control board set up in the middle with screw-in Euroterminals for start switch, relay, and thermocouple wires; and a 1.8” TFT LCD Shield from Adafruit for the display on top.

The blue case is 3D printed, and it holds both the boards and two relays, with a switch on the front cover.

The box is attached to the side of the oven, with an air gap to help protect it from the heat.

The display allows the user to program up to nine steps in a temperature profile. Using the joystick to navigate the menu, the user can specify a ramp rate, hold temperature, and hold time. Once all the steps are set, the user should set the relay enable switch to ON and then tell the program to begin running the profile.

The program automatically detects which thermocouples are present and uses the temperature as input to a PID loop which controls ramp rate by turning on and off up to four relays which control two heaters, a fan, and a vent.

The code and hardware is available on Github in the ‘oven-controller’ directory.