Roast controller now at full power.

So I’ve played around with the PID settings.  I haven’t officially sat down and tried to do a “real” tuning since the processing app I’m using right now lets you play with different numbers and feed it back to the Arduino to tweak it.  As a result I came up with a few numbers that flattened out a lot more than it did previously.

First roast with crudely adjusted PID

Next I will need to take it more seriously I wipe out the configurations, dump some junk beans in, and fire up the roaster and calibrate until I can’t stand it anymore and then roast some coffee again.

In regards to the button controller I have figured out a layout that I will likely use but I’m trying to keep this accurate on the schematic system I’m working with to build a real PCB later.  For whatever reason the part in the system appears to not match every other part I’ve seen out there and what I’m currently working with.  I also need to go back to radioshack and buy a resistor I’m going to need because the big multi-pack I have doesn’t include that one resistor that I need to make the math work.

The last couple roasts with this new controller turned out decent enough.  After 3-4 days rest they had extremely good smells (but tasted only “pretty good”.)  Today’s two tests are MUCH closer to ideal roasting the way they worked out and the smells (and the smoke detector) agreed at the right times.  I’ve got two batches waiting that will get consumed over the next several days and we’ll see how it’s going as they rest.  I’ve got a single serve coffee brewer that’s working out better than some of the other ones so it will take me some time to work through all of the beans.

Ahh the smell of progress… roasting coffee!

So as I mentioned yesterday I roasted some coffee.  This time (except for manual control of the fan) the roaster did it all by itself.  I had given it a handicap of limiting power to the heater only to 85% of the capacity but it appears to have worked ok.  The Arduino roaster controller worked well enough considering the state it is in.  Power control from the Arduino worked for manual potentiometer signaling the fan speed and a data array of settings for the heat controlled the roast automatically trying to maintain the temperature.

I’m going to increase the power again to 90%.  The room temperature was around 45-50 degrees since I roasted it out in my garage so I think it did pretty well getting to temperature.  I’ve also bumped the fan up slightly to a higher maximum.

I will need to get a button controller going soon so that I can force the system from automatic into manual mode so I can quickly shut down heat if necessary without having the laptop connected while letting the fan continue to run.  I’ve got a CAD type design of a PCB going that has a button controller but I haven’t ACTUALLY prototyped it out on some RadioShack boards.  I do have some etch-able boards here to try a toner transfer to build out some controls.  I still need some carbide drill bits though for drilling the through hole parts and the jumper connectors.  If I had SMD header pins I think I actually have all the parts I’d need to build a 6 or 7 button analog pin matrix.  I may need a couple more resistors though to pull that off.  I’m pretty sure I could get at least 4 buttons though.

The power control system had started to get out of control with the heat sinks so I had to beef it up some.  Before anyone says it I know the large heat sink is on upside down.  I didn’t want to drill the board before I was sure it was going to work so those bottom pins are sticking out the top.  I’ll probably run it like this for a little while until I make a permanent board though.

So for those of you keeping track… I went from this:

First working prototype in Radioshack Project Case

To this:

This is MUCH better for the following reason…heat sinks got out of control and all the wires were getting obnoxious:

Next Steps?

  1. Increase allowed power to heater
  2. Make button control pad.
  3. Tune PID.
  4. Improve CSV log system.
  5. Add automation to the Fan control.  Use mild PID triggered adjustments to the fan.  Coarse heat changes by heater.  Minor heat changes (a few degrees) by Fan.
  6. Add current sensor to judge wattage to the heater.
  7. Get profiles loading from SD memory using button pad to select them.
  8. Begin creating circuit to connect my original PIC32 project to the arduino over serial / rx/tx or other communication method.
  9. Complete 7 inch touch screen (I have a screen designed but it’s not entirely stable yet… the backlight flickers occasionally and the image stutters here and there but it’s there…)  I’ll upload a bitmap from the layout tool soon.
  10. Migrate most functions to PIC32 eventually.
  11. Build a final PCB.
  12. Get a case made for it.
  13. Roast lots of coffee.
  14. Brew it.
  15. Drink it.

What the? What happened to the website?

So if you’re around when I wrote this you’ll probably see that the theme/layout for the blog has changed.  For whatever reason now I’ve discovered that several of the themes out there in the past week or so eat the direct post links.  If you were linked to a specific post from outside it would pretty much show you a smiley face… and a title.  No more… no less.  I replaced the theme with an original file and it plain did the same thing and didn’t work so at least I ruled out the theme file being tampered with.

As a result I’ve had to switch the theme to what it is now just to be sure people could read it.  I just don’t have time to fix it right now and I’ll have to get back to it.  This will just have to do for now.

I’ve done some more testing with the Arduino based roast computer.  Tonight I actually roasted some coffee with it that I’ll try drinking in the next few days.  The PID for sure needs adjustments.  I’ve got to add some more to the power limits as well.  I modified the layout of the board creating a new space for the larger heat sink.  If I had a fan drawing air across this heat sink it would be significantly cooler.  I swapped out the TRIAC with a model designed for more electric running through it so it should theoretically get less hot.  It seems to be working pretty well right now.

I snapped a photo of the new board as well as grabbed a screen shot of the real time processing graph but I’ll have to upload those later.

That heater (triac) is HOT…

So today at lunch I threw some beans into the roasting chamber and then ran the roast controller to see what it would do. The wild swings were much flatter today and appeared to get “tighter” on the swings as it went but then a short while later ran out of power again due to my self-imposed limit. I’ve got a joint issue on the potentiometer for one of the soldered on wires possibly losing contact causing the fan to jump around. Finally… the heater TRIAC is pretty hot. It’s not enough to burn you but it’s way hotter than it should be right now.

I’ve got a box with some heat sinks in it that I need to dig out. I picked up a lot of odds and ends the last time I was in Sonoma County, California. There’s a surplus parts company down there that I bought lots of wire, connectors, various sockets, heat shrink etc. One of the items I purchased was a small selection of heat sinks in various sizes and shapes that were compatible with the package of the TRIAC I use to run the heater. The heat sink I have installed now is not meant to be used for anything very hot. It’s great for the fan transformer but for 1000+ watts of heater…. no. I’m not certain I can get it to line up very well without possibly needing to remount the other heat sink and then bend it slightly before installing the larger one. I may need to rebuild the power control board or instead focus on building my custom PCB more quickly.

Update: I’ve procured an IR spot thermometer. It appears that the Triac package is hovering around the upper range of the package. It seems to be JUST enough to keep it from overheating by about 10 degrees after I allowed more power in the software right now. I am about 1/4 inch too tight to make the bigger heat sink fit so I will rebuild the board today to see if I can make it work. The PID is actually showing a faster response to flattening the swing and staying flat faster and longer with the extra power but I still need a small amount more power to be ideal and run a full roast. /Update

In other news I couldn’t stand it any more and ended up pre-ordering the ZPMEspresso.com Nocturn Espresso machine. Over the next couple hours they have it at a $300 price instead of a $350 price it will be later tonight. Eventually it will go up again to the $400 price it will remain at when they start producing them. I’m such a geek that I HAVE TO have an espresso machine that I can reprogram. I’ve done so much with the Arduino on this coffee roaster I just CAN’T not get one now… especially with a discount!

Guaranteed I WILL be hacking this thing once I get it. They’re doing a great thing the way they’re building it but it’s lacking in a few areas that appeal to the REAL geek that wants to hack it. I already know where I’m going to start… muahahahahahahaaaaaa

First test run of the Arduino FreshRoast SR500 Controller

This afternoon when I was home for lunch I ran the Arduino control touching a light bulb plugged into the heater output.  It tracked the heat pretty closely until it got up around 300 degrees.  It overshot by about 10-20 degrees initially and then once it caught up it was pretty close the rest of the way pulsing the power as necessary.  After it neared 300 degrees it couldn’t keep up and started lagging.  At that point I left the fan running at full speed for the duration of a normal roast.

This evening I went out and plugged in the heater.  The heater is a totally different monster!  It tracks but it OBVIOUSLY needs the PID calibrated until it works better.  At low fan when the heater dies down it has a massive swing in temperature going under and then back over again.  It appears to only do ok at the lower temperatures and then is all over the place at the higher temperatures.  What is noteworthy is that it DOES track the same “slop” drift around the target temperature all the way up.  The drop/gain on the % power is simply too drastic and needs to be adjusted to flatten out more.

For giggles I’m throwing out for view a test graph as it ran (no beans) for a few minutes once with low fan and another with higher fan.  I have the heat maxed at 80% power in the program so that I don’t burn anything up accidentally until I’m sure it can run like it should.

First Arduino Roast Controller test with heater connected

In the lower graph it shows a low fan vs a higher fan setting.  The middle one is a heat amount that actually gets reduced to 80% in the code during testing.  The green in the top graph is the target while the red is the actual temperature reading. Both tests were run with the roasting chamber left empty.  I’ll try adjusting the PID settings a little bit to smooth it out to have smaller sweeps and then start loading some old green coffee in to test it with a “load” and see  how much that stops the swing.

Now that the heat is able to be completely shut off this helps the temperature drop a lot faster.  It’s my guess this would be better for the roaster overall to completely drop the temperature of the coils before turning it off while it cools the beans.  I’ve set the system so that the cooling requires the probe to reach a low temperature before turning off so the coffee beans should be quite cooled before it shuts down by itself.

Nearing a rough prototype roast controller setup

I haven’t had a lot of time to work on this project lately.  A few weeks ago I had ordered a variety of jumper/header crimp pins, housings, and tools to crimp with.  With those ends I’ve pieced together “arduino compatible” wiring harnesses to go between break out boards, arduino and to the perfboard and other pieces I’ve thrown together.  As a result I feel I am now approaching a rough prototype roast controller.

One of my other purchases was a “Crib for Arduino” to mount some of the pieces inside a box that were not already part of the RadioShack case pictured in my last blog entry.  Most of the crazy wiring on the Arduino photo has been woven together into separate bundles and connected directly to the DB25 connector cable which I’ve also been slowly crimping together.

I would have been testing the fan and heat controls last weekend (and when I had time this week) except that when I finally got it hooked up the fan and heat were no longer “smooth” but instead stuttered all over the place.  It had been quite a while since I had the Arduino side of it hooked up to the mains power so I had to go through and double check all the wiring in the harnesses and DB25 hookups.  Eventually I figured I’m either overloading it with the service schedule on reading sensors and writing to SD, updating the screen and not having time to trigger the mains voltage properly or else the timer wasn’t triggering properly.

Once I had confirmed all the wires were right I looked up the interrupt lines and timer lines in the Arduino website and realized the code probably had the wrong interrupt in there.  Several months ago while trying to clean up some of the code I remember having accidentally typed over the interrupt number in the attachinterrupt line and saved it without realizing it had been modified while updating other code.  Once I returned it back to the proper interrupt for the pin I was using everything worked again.

Tonight I tried running a load of beans through the roaster on fan only.  I believe my adjustments for the fan power are slightly off because the beans begin moving a tiny bit too far into the % potentiometer.  I’ll need to try running beans in an unmodified roaster and pay attention to the level of movement in both roasters based on the position of the knob.  If I had some sort of manometer it would probably help more but I don’t have one.  There are several DIY projects that appear to have built one that I’ve seen months ago that I might end up trying to look up again but I’ll have to see how well it goes without it.

This weekend I’ve got other things going on so it will probably be over the next week and following weekend that I try to calibrate the fan and then the heater.  Once I’ve accomplished both things I’ll begin testing the PID settings to see how well I can control everything to automate the roast

Once the automation appears to be working I do want to add a few additional sensors still.  I then will start working on an Arduino to PIC32 conversion of the controls adding the touch screen and using it to send instructions to the Arduino.  Then slowly migrating more and more sensors and devices back over to PIC32 until eventually I’ve eliminated the Arduino unless it proves helpful to have separate microcontrollers for specific functions.  There will probably be a basic Arduino compatible roast controller in between that will be built onto a PCB that will be professionally produced using one of the quick PCB prototype companies.

 

Arduino roaster controller with zero crossing dimmer

With all the time I’ve put into the Pic32 roaster I’ve always had this nagging worry that any of my sensors may have had damage during testing. When you try to get something working and keep getting gibberish you need to find a way to rule that out. As a result I decided to purchase an Arduino a few months back to confirm everything works. Turns out (so far) that everything IS actually working and I didn’t damage any sensors.  In the months I’ve been working with the Arduino I’ve actually learned a few reasons why some of the sensors didnt work on the PIC32 the way I had programmed them because learning to program an Arduino is sooooooooooooooooo much easier and better documented for “average people” to figure out compared to reading the hundreds of pages of technical manual for the PIC32 that isn’t ACTUALLY even finished being written yet.  There is a ton of code out there to test every single sensor I’ve purchased so far on Arduino. In addition I decided it would be a great way to start the dimmer using zero crossing detection in a system that runs outside the PIC32 before I convert it.

My intention is to get basic functions working on Arduino, then get the PIC to talk to the Arduino to send it commands to switch power by itself while the PIC reads all the sensors and logs data and then decides what to do as it comes from the Arduino.  Finally it will eventually be migrated entirely to PIC32 when I learn more about the interrupts on PIC32. At the moment I’ve put together a board that takes in 120VAC and uses Q4015L5 Triacs and MOC3052 drivers to control power to two receptacles. It reads the zero cross on my power using a H11AA1 and gets an interrupt used to trigger power switching. During my initial testing I confirmed the zero cross detection circuit worked and switching the triacs manually on or off worked without  regard to the zero cross state. It unfortunately didn’t seem to actually switch automatically for some reason when I wanted it to dim.  After a few days of testing I realized the Arduino Mega and the Uno had the interrupt timer pins in different places.

Since this is the first mains power circuit I’ve worked on I started running it with a variac out in the garage (and then fed that out into the driveway at the end of an extension cord…) and gradually turned the power up from 0 to 120VAC testing each section as I built it to ensure nothing arced or got hot or burnt up.  During late November I hooked it to the Arduino and got it to begin adjusting fan and heater under PC control as well as using two separate knobs.  Later in December and January I got it to begin logging to SD memory and following a programmed profile.  After that I added a bunch of additional environmental sensors and mounted it in a RadioShack project case.

 

First working prototype in Radioshack Project Case

I’m now at a stage where I’m looking to consolidate the various sensor cards either down onto a circuit board or attached to a set of pins directly.  I’ve grown tired of accidentally unplugging random wires carrying it back and forth from the garage to my office area and out to the kitchen stove / vent at various stages.  My hope is to shrink it down to a much less complicated arrangement being mostly on a single circuit board and interfaced by a few short cables to the Arduino.  It’s a bit complicated currently and getting worse.

Jumble of Arduino stuff

For the Arduino I’m using the MEGA 2560.  It is attached to the power control box pictured above via the DB25 cable.  At this time the box only controls power but I’ve mapped out pins on the DB25 to use for future boards to allow sensor breakout boards from a variety of DIY electronics companies to plug into them.   I’ll break this out to various header pins that match various breakout boards so they can be directly attached.  I’ll probably also design positions for eventually soldering chips directly to a board later once I order them when I’m further along and jumper the headers into those sections.  This will let me test a circuit on the board while still ensuring it actually works with the breakout board first.  The board will be designed to replace the items in the RadioShack box using SMD parts in some cases where cheaper and more convenient to shrink the board down smaller.  I hope to have it all shrunk down and consolidated to a single board with a DB25 connector to get to an Arduino I’ll be mounting inside an Arduino Crib case.

Ordered Free Day items – Sensors, Valves, and Buttons OH MY!

Retailer Sparkfun has a sort of annual event.  They offer free stuff to people in the form of a code they can use on a future purchase for solving puzzles/trivia or other challenges as they decide from year to year.  This year I managed to come home for lunch with the contest still running and won $100 of free stuff from Sparkfun instead of eating lunch.  It took almost my entire lunch hour but eventually I managed to get a captcha correct at the right moment and won a $100 code.

As luck would have it one of the items I wanted rapidly sold out that same day so by the time I got home from work I couldn’t place my order.  So after a few days the item finally went back in stock and I placed my order.  So far they haven’t shipped the order which is kind of a frown maker but I figure they’ll get to it eventually.  Unfortunately this means I won’t get it until sometime next week but hey… it’s free!

Items for the coffee roaster project:

1 Crib for Arduino + Ethernet Faceplate – I’m hoping to mount a DB25 on the back of it and run that to a new PCB I want to get made.
1 RHT03 temp/humidity sensor module to try out for possible ambient sensing instead of the existing sensor due to soldering complexity
2 Current Sensors, jacks, and breakout for the jacks so I can breadboard them for now. – Two so I can sense total input vs only the amount going to the heater.  I intend to monitor this for statistical purposes/energy tracking, control options, and
Several PCB mount potentiometers for the next phase when I have a PCB made.
Momentary pushbutton switches for a control button panel.  To be wired to a single pin using analog sensing to figure out which buttons are pressed based on voltage/resistance readings.

For other projects:

2 solenoid controlled valves to shut off water.
Thumb joysticks… just because…
More Momentary pushbutton switches

I’m hoping to use some of the parts with one of the “pro” arduino boards or eventually figure out a smaller method using chips individually, a text LCD, a flow meter to monitor water gallons and tie it to the solenoid valves.  In pursuit of better water quality I have what is effectively a low level commercial high flow reverse osmosis water system.  It can produce around 700 gallons of reverse osmosis water per day.  It has a rather large faucet and my intention is to plug a flow meter like they use on some water cooling computer projects to track the rate the water is coming out and then turn it off with the solenoid after a defined amount of time or a specific number of gallons flows through the flow sensor.  I’ve had too many “accidents” where the 5 gallon water bottle overflows out the garage and down the driveway when I step away and get distracted.

I get told all the time… just set a timer.  I say why set a timer when you can engineer a circuit to do it automatically for you!

I figure I’ll modify or make a Total Dissolved Solids monitoring circuits to feed the water purity info to the controller, perhaps let me run water for a few moments to get the sensor reading cleaner water since it starts off spiked high.  It often does this during the first 20-60 seconds when I haven’t used it in a week or two.  Finally it then starts tracking gallons for this run and possibly remember “lifetime” gallons for filter life monitoring too since my last replacement.  To control it I’ll set the size bottle by the number of gallons it holds or a length of time to run on an LCD readout and using some buttons, press start, and wait for it to filter that much water.  Once that happens the valve will disengage closing the water off since they fail closed.

As long as the water pressure is enough out of the output line this should work out reliably enough to have it stop short and then have a “spurt” setting button to pulse smaller amounts of water out to top off.  My hope was to close off the input line AND the output line just to be sure it’s off in case something doesn’t work well.  Worst case is the input line has more than enough pressure to work and I’d need to follow-up with a spurt and then close an output valve manually to keep the membranes completely wet.

 

FreshRoast SR500 Teardown – Part 3

Continuing the series of taking a Fresh Roast SR500 apart leads us to the internal heat / air mechanisms.  At this stage you have reached the components critical to any modifications of your roaster.  I’m updating this post in December with photos taken back in October when I stripped the roaster down the rest of the way and began building my modifications.

Part 1 we started with the external screws to gain access to the internals.  In Part 2 we separated the electronics between the high and low voltage and then lifted the high voltage board out with the heater/fan.  This left us here:

Heater / Fan and Power board assembly

We have now reached the point where we unplug the old roaster boards and start looking at attaching alternate controls.  At this point you are going to separate the metal connectors from the board (assuming you are replacing any of these parts or modifying it in some way)  You will have a black plastic cover from the top, a metal cone underneath that funnels the hot air towards the vented top, and a black plastic pan with a fan sticking to the bottom.  The pan will have three screws.  You see one of the locations to the left side and another to the right.  The third one is not visible in this photo due to it being on the back side of everything you see.  If you remove the phillips screws from these locations it will allow the top plastic piece to be separated.  The top metal piece is sandwiches between these plastic pieces and held in place with the screws mentioned above.  The metal piece is sealed to the heater mechanisms inside the bottom black plastic pan using silicone sealant.

Once you lift the top covers off and break the silicone seal you see this:

and this:

The fan is firmly connected to the bottom and up into the blades.  The fan is a straight sheet of metal leading from the middle out to the edges with a flat disc on top.  It is not apparently simple to separate and seems quite “stuck” in place.  The middle “axle”/hub of the fan does not appear to have an obvious way to disconnect it though I’m sure there is a way to do so.

Looking back at the heating area you will see the bimetallic switch and a temperature sensitive fuse.

In the center there are two bolts/nuts .  These anchor the top part of the funnel to the heater coil.  You will notice 4 spots that look like staples above.  These are how several supports made of the same material that the fuse and switch are riveted to.  There is a metal ring holding this all in place with a “washer” made out of the same material again.  This material is a high temperature material often used in heat guns, hair dryers, and popcorn poppers.  It is designed not to burn and to cool off quickly.  There is no point in disconnecting the nuts  you see and you are likely to damage something in the process when you try.  Immediately under the center part is a small heater coil that connects to the fan.  This coil always generates heat whether the system is on or in “cool”.  It is used to lower the voltage from 120 volts to somewhere close to around 20 volts DC using resistance and the resulting energy given off by the coil.  The remaining electricity leads out from the system to the “black box” rectifier on the bottom of the fan motor.  The outer coil is on the opposite side of the slit and continues all the way around providing the majority of the heat.  You can see the outer cool quite clearly in the photo below.

In the photo above and below you clearly see the temperature fuse.  This device is called a ThermoDisc Microtemp thermal cutoff.  There is a PDF that discusses the features of this particular device http://www.thermodisc.com/uploads/PDF-ecombro.pdf.  It also has a diagram of the inner mechanisms that make this work.

It is a Thermodisc G4A01216C 216*C Cutoff.  Once the red stuff melts (at 216 degrees Celcius) there is a spring inside that is released and it mashes the wire outside of the housing and no longer makes contact to allow the electric to flow.  Once it fails the only way to repair it is to bypass it or to put a new one in.  Since the mechanisms are anchored with a rivet they are not the easiest to source and replace but it is possible to do.

The last mechanism is a Klixon YS10 46b-s x9ab.  This is a Klixon YS10 Series 150*C Beryllium Copper Arm, Standard Length Terminal (31.5).  Normally once it triggers at 150 Celcius it then has to cool before it works again.  The reset is set to 90 degrees normally and some models has a different offset.  YS10 specifies the type, 46 is the temperature (150 degrees) b specifies Beryllium Copper (the bimetalic switch material) -s for standard.  In the X9ab position this would possibly be where a different temperature reset amount would be specified.  It does not clarify the numbers used there.  It appeared in the PDF linked above as (XX) in the part number.  This MIGHT be that it needs a 9 degree temperature drop on the switch before it engages again assuming it uses an X as a place holder rather than using a 0.  Since it is not in parentheses this might simply be some sort of a plant number or production date rather than a temperature offset.

 

Modification:

Many modifiers like to disconnect both the fuse and the bi-metallic switch.  I do not advise this unless you are absolutely sure what you are doing.  If you wish to use the center heat coil separately or with the main coil together this is up to you.  You will need to disconnect the white wire that leads to the fan by prying open the brass clip (under the heat shrink) and supplying your own transformer to around 20 volts AC to independently control the fan.

At the moment I’ve been using an Arduino to control a Q4015L5 triac with a MOC3052 and a H11AA1 as a zero crossing detector. There are two triacs each used to separately power the fan and the heat circuits. Each side’s gate is triggered with a MOC3052 opto-isolator by a single pin on the Arduino to a resistor through the moc’s infrared led and on to the ground pin. The H11AA1 works the opposite way triggering a led on the high voltage side and it measures the fall of the 60hz sine wave of US electric.  Each fall signals the Arduino on another pin that is connected to a hardware interrupt on the processor. The interrupt sequence compares the fan and heat potentiometers to a map and then uses the lookup value to set the length of a processor timer. The timer then comes back and fires the fan or heat pin that fires the MOC3052 linking the triac and connecting power from the input side.

I disconnected the white wire from the fan and routed it with the primary heater coil so that they both run at the same time. On the fan side I connected it to a transformer from Radioshack that outputs 25VAC. This appears to adequately run the fan and delivers more air flow than normal due to the fan being “overdriven” from it’s normal voltages. While this is not good for long term use this could be useful if properly triggered in the programming for cooling and drying or initial heat up. In other words turn heat on at 70%. Start fan at 120% Gradually drop fan to 100%. Increase heat to 100% while dropping fan to 60%. Etc…

While running the system from a variac and through a watt/amp monitor I found the fan consuming approximately 50 watts at the original 100% air flow on through the new maximum around 70 watts for a 125 to 130% flow rate. Once I turned on the heater I found the original wattage level use set at 80 to 85% heat and what seemed like a normal heat output felt by hand in front of the output. Lately I had been getting around 1520 watts with momentary flutters up to 1580 at high and full fan before bypassing the controls. Now at 100% it was showing upper 1600 to 1750 watts for the brief few seconds before I turned it down.

I’m pretty certain this is not designed to run like this and would likely melt something if left to run this way on it’s own without some sort of “safety” override in the programming. What I would expect to be necessary is to mandate original 100% air flow before the heat can be turned past the usual level and the fan cannot be lowered until a specific number of seconds after the heat is dropped to a normal number. Additionally there should be a limit on the duration of this heat overdrive. This would be used to help drive the roast in a way many home roasters like to use to try reserving some heat until towards the end to drive it to second crack or some other nuance.

This should be thought of as some sort of reserved “afterburners” to a skilled pilot used only when necessary or someone pushing a nitrous injection button on a race car or turning on some super charger.

Once heat has been disabled it clearly cools off much faster than before. As of 10/10/11 I’m waiting to more firmly mount all the controls and switch to the new potentiometers before testing a roast. I also have a few buttons for start/stop and a microSD logger to setup first before I start this because I want to track thermocouple readings vs each of the percent settings etc so I can review it later after my first test. If anyone has a way I can sense the wattage use and feed it to the Arduino too please let me know. I’ve seen a few very LARGE devices intended for whole house sensing but I’m looking for something small….

FreshRoast SR500 Teardown – Part 2

Welcome to Part 2 of the FreshRoast SR500 Teardown. In Part 1 you saw the basic steps to open the SR500 properly. This article will explain how to continue a teardown a FreshRoast SR500 roaster into the various components and probably give insight to similar pieces in a SR300 as well. If you are looking to modify an SR500 the following content will be the best starting point for understanding what makes your roaster work as it sits. It will include technical information about the components that make the SR500 work. Part three will begin to make suggestions of where modifications will need to take place if you wish to split fan and heater control to external dimmers, VARIAC devices, or otherwise control your SR500 with a Microchip PIC, Arduino, or other microcontroller or PID controller device.

This article was made possible by having purchased a spare SR500 base that can be completely broken down and tested upon. I will be using this base to interface to my roasting computer.

You should refer to Part 1 if you need assistance opening the roaster. Most people should be able to open the roaster without the first guide but it is a good idea to review it briefly to become familiar with what you are getting yourself into and deciding if you are up to it getting inside. Most of the connections are very “coarse” and use through hole parts.

For my project I am going to be using surface mount parts which requires a bit more skill. There are many options out there so if you are looking to simply use something like a 20×4 character LCD you can probably find a way to do this without the surface mount parts. If you want to continue with a graphical LCD like I am you will likely need to learn about more advanced methods of soldering.

If you are unsure you should research and contact a “Maker” or “HackerSpace” club in your area. Examples of such include NoiseBridge in San Francisco. There are plenty of other groups throughout the USA as well as in many European countries. The closest one for me is about 3 hours away unfortunately so I’ve had to resort to figuring most of these things out on my own. Coffee roaster computers are a pretty popular thing out there so you can probably find other reference material out there.

Most of these groups offer classes in soldering as well as often having capabilities to help design/build enclosures, mill parts, create circuit boards, and have shared equipment for laser cutting, CNC milling, 3D printing and many other systems. Not all groups have these amenities and many require you to demonstrate a level of mastery, take classes, or otherwise “wait for time slots” on the items of interest. Hackspaces normally charge a monthly membership to participate and use the facilities but usually have forums, IRC channels, and other such things where you can find out more information before you commit to driving for a visit.

Removing the inner parts of a FreshRoast SR500 Coffee Roaster

You will need:

  • A small phillips screwdriver.
  • A SR500 Base with the bottom removed (SR300 may be similar except for changes to the microcontroller board)
  • A baggie or small tray to hold screws
  • A clean area to work
  • Optional: Items to label the wires removed. This should be done as you unplug each wire so there is no confusion.
  • Recommended: Needle-nose pliers to grasp some of the flat connectors and pulling them from the circuit board.

Step 1: Unplug your SR500 from the wall and remove bottom as described in Part 1.

FreshRoast SR500 Interior

Step 2: Identify the high voltage power wires inside the case leading from the main black wall power cable and detach them (N and L1)

It is absolutely critical that you have unplugged the power before performing this step or you will be electrocuted.

The wires you need to remove are labeled N in the middle of the board and L1 on the JP2 side lower down on the board. Normally this would be Neutral (N) and Load (L1). Normally in most North American electrical devices you would not label things L1 and L2 unless you intended to have an L3 for three phase electric or were enumerating your loads. Since the wall plugs into one of the L’s and the other goes to the actual load this seems a little odd but I can follow the reason. Regardless, both will need to be removed to lift the circuit board and heater system up out of the enclosure. You should use the needle nose pliers to grasp the connector and pull it up. Grasp it by the metal and not the wire. Pulling by the wire will rip it out of the connector requiring it to be replaced with crimpers and appropriate ends. You should try to support the board so that pulling the ends do not put additional stress than is necessary.

It is ok to slide the circuit board up some as shown in the L1 photo. It will be difficult to lift the board up very far prior to removal of the N and L1 wires. Again, support the board as you use the needle-nose to pull the wires off.

N on right between 100W and JP1

N on left between 100W and JP1

L1 on Left below JP2 and MOC

L1 Removed below JP1 and MOC3043 chip

N removed

Step 2a: If desired during step 2 above or 3 below you may wish to remove the power circuit board from the PCB guides in the enclosure.

Gently slide the power board upward on both sides trying to clear the top edges. This may be difficult to do and is generally not necessary until you wish to remove L2, 100W and 1000W.

Power Board being lifted out of guides

Step 3: Remove JP1 and JP2 low voltage cables.

Both of these cables are low voltage and will come off easily when pulled. JP1 connects to the main logic board with the Atmel CPU and front control panel. JP2 connects to the Fan Speed Control potentiometer.

JP1 Removed

JP2 Removed

Step 4: Slide heater/fan assembly out while looking for the NTC sensor cable.

Do so slowly because the NTC sensor is still attached to the main logic board. Once the heater top layer begins to slide out of the enclosure you should try to find the wiring coming from the side of the heater. If you removed the circuit board from the guides pay attention to it as well so that it does not catch on anything.

NTC Sensor on Heater Enclosure

Identify the connection on the main logic board and unplug.

NTC Sensor connector

NTC Sensor unplugged

Step 5: Inspect the removed heater and power control board.

Heater / Fan and Power board assembly

You should be left with a loose middle portion of the enclosure with the main logic board still attached.

Middle Enclosure with Main Logic Board

Put it to the side and continue with the power board removal.

Step 6: Remove the 1000W, 100W and L1 cables to separate the Power Control Board.

Using the needle-nose pliers pull off the 1000W, 100W and L1 cables from the Power Control Board. This will allow replacement, modification, or other inspection to occur more easily.

As mentioned above L1 and L2 are a little odd in North American wiring but regardless the white wire is the Neutral and Black is the Load typically. Since we have 1000W and 100W and one has black and one has a white wire this continues in not complying with North American wiring standards and there are other reasons this roaster is abnormal with wiring so we will disregard this in thinking about the roaster. The 1000W connection white wire comes from a large outside heater coil and gets fed power from the L2 connection. The 100W side requires voltage to be applied to L2 and will operate both the fan and the small center heating element.

The 100W side heater to fan wire connects to the bridge rectifier on the base of the fan motor and is wired this way to use the heater coil in the middle to provide resistance to drop the voltage to a level acceptable to run the fan. The black wire side of the bridge rectifier is connected to the 100W connection on the power board creating a second complete circuit. The fan itself (after the rectifier) picks up its power on the other 2 wires once the internal mechanisms “do their thing” in that bridge rectifier. There is a capacitor jumped across the rectifier and I’m not very familiar with rectifiers and using a capacitor but I would guess this has something to do with the zero crossing and trying not to “sputter” when the power cuts out momentarily since this is DC for the motor and AC for the power source.

Alternate angle of power control board.

JP1 is labeled with J1 through J5 positions. J4 and J5 go to pins 4 and 5 on the MOC3043 chip. This is for microprocessor control of the attached devices. The board appears to have spots of solder placed on each of these that look like a “via” that someone tried to solder over but there does no appear to be a real via on this board since it appears to be a single layer board when viewed in front of a bright light. I’m not really sure why those spots are there. If someone has any ideas please pass them on and I’ll add them here.

J3 connects to the Neutral connection. J1 appears to go around the edge of the board linking to the fan potentiometer circuit and the BTA08 (Q6) trigger. J2 leads directly to the BTA16 (Q5) trigger.

Electronics and Connections Analysis

Normally in home electrical work you are required to switch the load side on or off prior to whatever object gets the power. For example you have power going to a light switch. The wire that comes out of the switch then leads to the light and then the light connects to neutral. When you flip the switch you supply load power to the switch, the light then illuminates, and then it passes the electric to neutral completing the circuit. This is typically a safety measure so that you can change light bulbs and particularly remove broken ones with the power off and not get electrocuted as well as generally being good practice in case of almost any other malfunction. This is not how the roaster is wired. If you had the ability to touch either the fan or the heater coil while it was plugged in but not running you would get electrocuted because they appear to be always live. Since they are physically enclosed it is not as important but will affect how you control the roaster.

The slide switch on the front and the cool/up/down adjustments only control the (right) gate sides of the two triacs. This gate is like a light switch. Normally this is a high voltage that is triggered by an opto-isolator chip. The MOC3043 inboard does this for one of the sides while other circuits trigger the other side. The other pins of the triac are the high voltage switched side connections. Both the 100W and 1000W neutral wire connections lead to the middle triac pins of their respective sides and are then gate switched to the wall Neutral pin in the middle of the board on the left side of the triac.

The 100W side’s use of the heater coils is used to drop the voltage by resistance to the fans rather than using transformers or other devices to provide lower voltage to the fan. It is more important as a voltage control than it is as a heater. The fan being connected this way results in some heat being generated whether you are in the cool cycle or not and would vary with the fan speed. Obviously changes in heat are slightly mitigated by the air flow. To fully control the fan separately from all parts of the heater you would need to separate the white wire side and route it to neutral while supplying power separately to the fan by a transformer to control the voltage or else completely remove the bridge rectifier and control it by DC power directly. 100W of heat is not very much and is likely not much of a concern and certainly not really useful either as a reserved heat source. Watching a wattage / amp meter in real time when the fan (with small coil) is running shows about 125-150 watts of power use at full fan. The 1000W side full heater bumps wattage into the 1450 to 1520+ range when supplied a full 120VAC.

The 1000W connection white wire comes from a large outside heater coil and gets fed power from the L2 connection. If you were to separate both of these wires and plug them into wall power you would get A LOT of heat being generated. The 100W side requires voltage to be applied to L2 and will operate both the fan and the small center heating element. Both of these when plugged in separately operate normally. Together I had some issues keeping the fan running once the fan side circuit is set to full power and the heater exceeds half power but this may be due to a faulty potentiometer I was dealing with. Ultimately I wanted heat totally separate from fan so I bypassed this with a transformer entirely and have a different set of potentiometers to install soon. I also switched from neutral gate switching to load side switching.

The fan does not appear labeled with any part numbers or any indication of voltage requirements. Based upon the common construction of many other air roasters and specifically a DIY favorite, the Poppery, being almost all similar it is likely to be a 20 volt fan and runs higher than 1.5 amps at the top.

As shown in Jim West’s blog entry about modifying a poppery http://popperyii.blogspot.com/2011/01/completing-hiros-journey-poppery-ii-mod.html (not affiliated with this site nor endorsing my modifications) the use of a transformer is probably required on the fan if we separate things fully and wish to control fan alone without a lot of complicated electronics. Use of a transformer is more expensive than some of these other options but it is quick and easy. Jim’s diagram of the heat system with the labels for each connection point is identical to the FreshRoast including the safety mechanisms. Those mechanisms on the FreshRoast, however, are calibrated to higher temperatures than what is allowed on a Poppery so the FreshRoast is much like a coffee calibrated poppery.

As a result I would hesitate to agree with anyone removing any of these devices like happens with a Poppery without being absolutely certain of their choice and without building in a lot of additional mechanisms. Pay attention to the old and new schematic areas for my point about the way this is wired. Running the fan alone on a variac at lower voltages works fine. As it exceeds the 20 volts area it begins to show the constant glow of an arc spark in the motor and may arc outside (dangerously) at higher voltages. A transformer is likely to be the easiest and safest solution.

Possible SR300 Fan Speed Modification

On the rear of the “power control board” above it has a silk screen label P/N:306171. I believe this is probably going to be the same board found in the SR300. On the SR500 the socket labeled JP2 leads to wiring on the rear marked R29, R30, and D5 on the “left” side. The position for R29 has no resistor installed on a SR500 but it appears to still have jagged solder and scrape marks on mine.

I believe this is a pre-assembled board made for the SR300 that is tested this way and then forwarded to the roaster manufacturer. My guess then is it is allocated to a SR500 where the manufacturer manually removes R29 and installs it in the SR500 case connecting a potentiometer that is installed on a SR500 panel assembly.

If JP2 exists and is unused on an SR300 the R29 might be able to be removed and replaced with a potentiometer using the JP2 (or holes for it). The front panel might then be drilled and the potentiometer then gets “creatively” installed. I’m going to guess that the plastic is probably already shaped for it and possibly drilled too because it’s probably easier to just put a different gray “sticker” on top depending on the roaster being made.

No impression yet on the “brain” bits of the roaster low voltage board and if the heat switch can be adapted. I would expect this part to be unique for each roaster model unless the installed switch only gets wired to the “High” and off positions of the board and excludes the middle and low position being connected to anything.