Pretty on the outside and ugly on the inside prototype

So I’ve been busy doing a bunch of computer maintenance and looking into other things I’ve neglected while building the roaster so it’s been a bit slow.  I decided I wanted to start gluing corners together and drilling some holes to see how the case goes together so I can eventually get back to fixing the issues with the roast controller case.  Over the past several weeks I soldered together all of the boards, made wiring harnesses and figured out a bunch of “oops” moves I had made designing things when I got rushed for time.

Turns out I was not able to get stand offs locally in the sizes I had wanted so the heights are all screwed up where I placed holes on the outside surfaces.  I also forgot to specifically allocate power for the exhaust fan in the original design BUT I did have “Spare” pins allocated. The fan I ordered also was not the right size for the hole template I had used (Inside fan dimension vs outside screw / case dimension)… neither of them were actually labeled right the way every other fan I have is sized.

So with everything screwed or harnessed in place this is what I have for the Arduino…

The Arduino wired for Coffee Roaster control

It is a MEGA2560 mounted on a Crib for Arduino.  On top is an Ethernet Shield w/ microSD slot.  Then I used a variety of crimped headers to connect to some of the pins on the MEGA and on the ethernet shield.  I have twenty five lines in the bundle going to the Arduino.  I had some spare 10 strand cables from a project at Halloween and no 25 strand cables to use so I used one of those cable wraps to keep the all together after connecting DB25 to one end and header pins to the other.  Once the lid for the crib for Arduino is in place it then connects to the back of the enclosure.

Wiring Harness connecting to the back of the controller enclosure

As you may notice the sockets I was using for connecting the power out are the type that snap in.  The majority of these will not snap into most laser cut plastic sheets and instead are designed for aluminum cases.  The plug to the right on the other hand screws in.  These work great with a variety of thicker locations.  The fan was originally going to be on the inside with a wire cover on the outside but with the wrong size fan hole in use I had the wrong cover to fit the fans that I had that would fit the hole.

For the DB25 connectors it turned out good that I had decided to use a cut out pattern  that had the holes on the side for the anchoring hex nuts rather than just having them cut out so that I could mount them to the socket and anchor the connector.  Since the stand offs were too short they don’t allow me to anchor the PCBs to the bottom plate.  Instead I had to screw them to the back plate using normal screws and with the burnt circles on the laser cut work I had to use some washers too to keep it sturdy.  This is what the back plate looks like.

Rear Panel of controller

This panel includes – One non-filtered switched 15Amp Power Entry module, 2 snap in 15 amp convenience plugs, 1 5VDC fan, 2 DB-25.  The left one is the main guts for the LCD, TRIAC control, potentiometers, thermocouple, and a variety of other sensors.  The right includes all the non-essential stuff for backlighting all the buttons on the button pad and a few other things including spare wiring.  You cna see just a screw on the right since it was relatively intact and so it won’t block the DB25 plug being used.  The right DB25 has washers and screws in place.  These are primarily used to attached the PCB in place attached to the back side.

Next up is the inside view of the electronics area:

Rear View of the Back Panel

Rear view of the back panel.  I need to shrink up the crimp connectors around the wire  (they shrink like heat shrink tubing but is actually much firmer).  Also the connector on the right side (the switched power entry module) should have the screws more securely fastened with nuts and washers but this is mainly just a test to ensure it all fits together and then allow me to focus on some programming for a while to see if I can get more working and develop menus etc.  The clear acrylic bar is used to anchor the corners better.  I need to change the locations of the screws since I could not find screws the size I wanted without spending way too much for large quantities of them on the internet and having them shipped to me etc.  The thermocouple board on the right had the same issue with the stand offs so it is just floating loose in there right now.  I need to find somewhere to get the Omron thermocouple sockets where I dont need to order them by the 1000s since it looks like Ryan McLaughlin has stopped selling things on his site when they (used to) have problems getting the newer MAXIM thermocouple chip.  They’re all over the place now but he hasn’t restarted his store up so I don’t know the deal there.

Here is the view down into the enclosure from above:

Top view into enclosure

With the cover on:

Front panel installed on enclosure

Front panel running

Front Panel Running

When I send it back out again for a new case I hope to have a different board to install that will be switching the smaller breakout boards being designed onto the circuit board as well as add a power supply and possibly having an arduino board mated on top of the circuit board perhaps to bring more of the electronics inside.  I might want to try to get a Digilent board perhaps to try converting to it as a transition between Arduino and PIC32 before I completely switch to a dedicated PIC32.

I’ve also been looking at possibly creating a dedicated PC application to communicate with it directly via USB and over ethernet.  I am toying around with the “QT/QML” language but havent gotten too far with it.  I may just go back to Processing though.

RoastGeek Button Pad v 1.0

This weekend the final resistor I was waiting for arrived.  As a result I was able to solder the button pad board together and mount all the buttons.  I placed the board on my infrared preheater, applied some solder paste using the syringe dispenser on each of the pads, and then using a pair of Weitus tweezers started placing 0603 resistors from the piece cut from a reel.  I then turned the heater on and let it sit for a bit before turning it up a few more times until I got close to the temperatures I needed.

RoastGeek Button Pad v1.0 on Infrared Pre-Heater with SMD resistors placed.

Without a stencil it’s pretty hard not to goop too much solder paste onto the pads.  In most cases I had a suitable amount but a few it got a bit too much.  For most of the cases I had too much I removed some while it was still liquid-like from the preheater softening the paste.  I used the tweezers with a tiny bit of paper towel to wipe some away on the worst spots.  Solder paste is essentially  a mixture of a type of flux with a fine dust of the solder.  When the temperature gets high enough the flux material starts to liquify and the solder particles flow with the wet flux-like material towards the meeting point of the pads and the item being soldered.  As you apply a final amount of heat the solder particles melt and the flux-like material starts to evaporate/burn up.  To do this I used a hot air rework station to heat up the area near the resistors.  It has a pretty gentle flow that I can adjust with a knob so I didn’t have any issue of the resistors blowing away.  This tends to be a common problem using a hot air rework tool to solder SMD parts.  Once they were all in place I turned down and then a bit later fully off the heaters and allowed it too cool down.

0603 Surface Mount Resistor soldered to the board with an infrared preheater and a hot air rework tool.

Once the surface mount resistors were in place I tested each pad on each side of every resistor and confirmed that the correct resistance was measured.  This was to confirm that I didn’t have any “over gooping” resulting in the resistor being jumped by solder underneath of it.  Everything checked out ok so I continued on to mounting the buttons and header pin connections by hand with a standard iron.

RoastGeek Button Pad v1.0 with buttons, caps, and headers mounted

At this stage I tested the board with an Arduino sketch and was able to measure each button as expected.  This board has a much more accurate number compared to the last board.  Each button previously would measure a number that ranged 3-4 from the highest to lowest reading.  This one is dead on for almost every single button except for 2 of them that vary by 1.

I then mounted the board to the back side of the control panel.  I discovered that the standoffs I am using are about 1-1.5mm too tall so I will need to either grind them down or find a different set of stand offs.  I’m thinking of getting some Nylon or ABS ones that have a self-retaining clip for the circuit board side and a threaded end for accepting a screw from the front panel.  I also need to begin wiring up some wiring harnesses to go between the LEDs and potentiometer over to the new board.

I’ll add a picture of the mounted board  here once that takes place.

More ordering, waiting, soldering stuff.

I have begun soldering rows of header pins to the boards for the IO expansion as well as a few sensor boards. The PIC32 IO Expansion board does not have any of the IO pins installed when you buy one. It only has the two card edge connector sockets. I’ve gotten them all soldered on now and am waiting for an order to come from SparkFun for a few more sensors.

The fun thing with SparkFun appears to be they suck at shipping. I ordered something Monday night. Tuesday one would expect them to process it. Wednesday I received an email indicating my order had shipped. Wednesday night the carrier had no record of the shipment. Thursday they claimed to have been electronically notified of a shipment but had not scanned it so they may or may not have it in transit. It COULD BE at SparkFun still OR it could be in transit. Friday came and went. The shipping method I chose I researched and it takes a guaranteed 2 days to arrive where I live. They DO deliver on Saturday. Nothing came today. The tracking info STILL says that electronic info has been received.

Soooo it’s now 5 business days into ordering. I’m going to be really pissed off if they havent shipped it yet and it’s just sitting around packaged and labeled and not handed over for delivery yet. On Monday I’m supposed to get the infrared pre-heater in and some solder paste for smd stuff.

Regarding the time experiment it appears there is a drift of a second every couple of hours. It is close enough for a normal roast use but several hours later you can see a 1 second different. If I want the time to track continuously it needs some adjustments. Once I get a few things dealt with I’m going to confirm the quality of the solder joints using some of the rework soldering stuff and clean some things up first and then try a different combination of crystal and capacitors for good measure if it doesnt help resoldering things like that for a good connection.

I need to get some spray (or paint on) flux remover for the board and some brushes to clean it up better…. also my stuff that’s supposed to be here Monday has disappeared from UPS’s website. It now shows billing information received. I’m guessing the sender re-uploaded my tracking stuff with a new order he shipped resetting my tracking back to zero. Until they scan it somewhere else along the way it won’t show up probably.

More ordering

I have now ordered a series of parts from Mouser. This includes some lead free solder (ouch that stuff is expensive), flux, several different crystal oscillators and what I THINK to be matching capacitors, as well as a ton of headers for jumper cables. I entered a ticket for Microchip more than a week ago and have received no response whatsoever from them regarding the oscillator. Reading the instructions there was no mention of a type of crystal to use beyond 32khz. They mentioned 11pF capacitors of 0603 size. From what I can understand it SOUNDS LIKE in a properly designed board if you have a 6 or 7pF crystal you install an 11 to 14pF capacitor when it has short runs for the wiring etc. HOWEVER yesterday I found on the ethernet board they explicitly defined the crystal as a 12.5pF crystal. In my observations it appears that if you use 12.5pF crystals you should use 22-27pF capacitors, though.

The unfortunate problem is some people report using 11/12 capacitors with 12pF crystals and other report needing to use 27 etc. I’m thinking it MAY depend on the manufacturer of the crystal as to how sensitive it is and needing more or less power from the caps to be held up to trigger the oscillations of the crystals in addition to the variables of the individuals circuit layout. In other words some times it works no matter what and others it does not.

I still need to get some solder paste in addition to the rolled wire solder. I had issues identifying this on the Mouser website in the search except for a couple versions that had more than five tubes as a minimum. I do not have need for / ability to consume more than one syringe/tube right now so I need to find a vendor to procure some from that does one at a time. I stumbled across one a few nights ago that sells one at a time but I’ve not had time to dig through the browser history to find my way back there yet.

Once I have the solder paste and after the parts arrive mid week I can solder in the crystal and caps to see if they work for the timing functions and continue my efforts at programming the interface. Most of my programming is going to wrap around being able to gauge time changes happening so I need to wait for that to happen.

Currently I have a thermocouple breakout board that I will be attaching to some of the IO lines. I also have on order a relay board that has not arrived. Once the relay board arrives I can attach it to the development board and configure it to turn on the fan when the program run starts and not to turn it off until after the heat drops to a safe level. The heat will trigger on and off to maintain the desired ramp at this time. I will eventually replace it with a variable “dimmer” once I work out the other kinks in the system to give it finer control.