SCRIMS:  Self-Contained (or Single-Cooler) RIMS

If you're just here for the hex file, scroll all the way to the bottom - Cheers!

    

Fig 1 - Internal view, no pump.                                               Fig 2 - SCRIMS in operation!         

 

This is my RIMS setup, built in a 48-qt Igloo cooler for about $100.  Extraction efficiency was roughly 75% on it's first 4 gallon run, pulling 1.073 out of 10 lb of US 2-Row + 0.75 lb of Crystal 40.  I nicknamed it SCRIMS since the heater and pump are all contained inside the tun, hence the name Self-Contained (or Single-Cooler) RIMS.  Although the operation is quite similar to other excellent RIMS setups available from hbd and elsewhere on the net, this one is targeted towards a simple and compact setup.  I won't claim it's better, I simply cannot afford the room for all those cool external pumping networks due to my small apartment!

WARNING:  This project uses heat, electricity, and eventually produces beer.  Each is hazardous in it's own way.  I disclaim all liability from your use of any of them - be careful!

 

The Beginning:

The project started after I was invited to assist with one of Brewmaster Clint's all-grain batches.  This was much more fun than the dump & stir Mr. Beer kits I had previously been toying around with!  And sampling some of his wares brought me to the conclusion that Mr. Beer's extract was no competition for the proud taste of true, all-grain goodness!  So with the scent of hot malt still in my memory, I set out to build a modest, apartment-worthy setup.

Some experiments with a 800W hot plate heating one gallon of water were woefully disappointing - the time constant of this beast was horribly long, the heat increasing lazily long after the burner was shut off.  I built a simulation of this setup with PSPICE, and found that even with a well-tuned PID controller it would take hours to reach a well-controlled mash temp.  This was far too slow for my hope of programming all the mash temps, and letting the little beast cook away while I played resident evil.

 

Theory of Operation

A submersible pump and a low-density water heater element are the heart of the setup.  The heater element is installed in a 20" long, 1.5" copper tube that spans the length of the cooler.  One side (the right side) is used as a pickup for wort from the bottom of the cooler, and the other side (left side) is the output to the submersible pump.  The pump continuously draws wort into the pickup and across the length of the heater tube, where it is then returned to the tun with a small sprinkler system on the output of the pump.  As you can see, some copper joints are press-fit (The "t" connect) but most are sweated.  Please, use lead-free solder - then when your beer makes you retarded it will only be for one day.  By the way, I know my pictures show splashing, please use an adjustable-height sprinkler if you are worried about HSA.  For me, it will have to wait until revision 2 as I am too lazy to de-sweat my cool sprinkler holders.

A standard water heater mounting bracket is mounted in one side of the cooler to provide a water-tight seal between the inside and outside worlds.   The 1.5" copper pipe (the heater enclosure) is mounted to this bracket using a 1.5" copper coupler (ideal), or just by cutting and flanging the 1.5" tube around the bracket lip.  The heater terminals are available on the outside of the cooler, and are attached to a 3-terminal plug.  The bracket is sealed to the cooler wall with food-grade silicone, and the water heater element is screwed into the mounting bracket with it's enclosed rubber o-ring.  This will provide a water-tight seal between the heater element inside the copper tube (inside the tun, wet) and the heater element terminals (outside the tun, dry). The mounting bracket is grounded, therefore all internal metal and the wort itself are also grounded.  I suggest the use of a GFCI outlet if possible, to trip a fault in the case a leak or other problem causes the wort or copper tubing to become energized. 

 

 

 

Construction Details

         

               Fig 3 - Inside view of heater enclosure, pump, and sprinkler bar                            Fig 4 - Outside view of heater terminals, cover removed

After a revision or three, I may draw up some specific, detailed plans if there is any demand for it.  For now, I'll just ramble through a description of how the setup was built and any home hacker skilled in the art should be able to build themselves a working SCRIMS.  You can duplicate what I've done, or more likely, improve on what I've done here.  I always hate waiting for one or two specialized pieces from McMaster-Carr, so often my designs will change slightly when I see what Home Depot happens to have in stock that day.  For example, I couldn't find suitable couplings to build pickup tubes that sit right on the bottom of the tun, so I used stainless steel mesh on revision 1 as shown in the pictures above.  This will cause some "dead space", meaning that below a certain liquid level the pickup will start sucking air, limiting the amount of mash that you can get out of the tun through the pump.  This is a big pain, as even an inch of dead space is about 1 gallon of sweet wort hidden away in the base of the tun - now I rock the tun back and forth during sparge to get at the last few quarts, but this mesh needs to be updated to some true, bottom pickup tubes.

 

Fig 6 - Construction Sketch

 

Above, you can see my simple sketch of the system.  This only shows the lower level, and leaves out the sprinkler for wort return, but I think you can get the picture of how the pump output and sprinkler works from Fig 1 and Fig 2.  The heater enclosure, as previously mentioned, is about 20" of 1.5" copper tube.  This diameter tubing is just right to fit the 4500W water heater element.  I cut a hole in the side of the tube for the pump pickup, and sweated in a 1"-3/4" copper reducing coupling.  Later, I hacksawed off the 1" section so the pump pickup would fit around the 3/4" section but now I regret it - the 1" section fit nicely OVER the pump pickup, which I feel is a little better.  Take your pump to Home Depot and check it out - it's quite a nice fit!  Next revision may connect the pump pickup to the heater enclosure using some 1" reinforced vinyl tubing so I could place it in between the pickup tubes - then I would not have to shorten the front pickup tubes as shown in the diagram above.

 

 

 

Pump

Fig 7 - The little pump that could

 

The pump I used was a 30GPM aquarium pump, Penguin 1140 - $20 at PetSmart.  All submersible aquarium pumps are mag-drive these days, and it's survival of a quick dunk in almost-boiling water with return receipt in hand showed me that the Penguin was probably fine for the typical mash temps.  I've done water-only runs up to 180F, and about a total of 10 hours of water test or actual mashing with pump temp between 150F and 180F with no melting or distortion of the impeller or other parts - seems fine to me!  Spare impellers for this model are about $13 including the sealed mag-drive magnets, so who cares if it warps over time?  I hear Aqua Rio pumps are also suitable for hot mash, I just couldn't find them locally or I would have used a Rio.  The Penguin pump has an input port that's perfect for a 1" to 3/4" reducing coupling, and an output port that can nicely fit a length of that 5/8" OD reinforced vinyl hose.  One other cool thing is the output port has an optional 1/4" hole - I stuck my LM34 Precision Fahrenheit Temp Sensor in here, mounted inside a short length of 1/4" aluminum tube and sealed with silicone.  I don't show it here, but the temp sensor tube spans almost the entire width of the pump return port - it's sticking out so far because I made the tube extra-long in order to fill it full of silicone sealant so it wouldn't get wet.  I run the pump continuously throughout the mash.  Some schemes only pump when heating, but I figured that mixing, extraction, and clarity would all be enhanced by a continuous flow.  One warning is that if you experience a grain bed compaction (stuck mash), the heater could potentially cook the wort in the heater tube - I don't have a fancy flow sensor on mine, but that would certianly be cool - shut off the heat if the pump flow falls below a safe value.  To be honest, the only time I stuck this system is when I stirred and dug in the mash heavily while the pump was running, and it didn't really stick altogether, it just reduced from 1GPM to about 1/2 or 1/3GPM.  To alleviate it, I removed heat and stopped pumping, stirred heavily and then let it come to rest for about 60 seconds.  When the pump was restarted, it came back with full flow - no compaction.

 

 

Temp Sensor

         Fig 8 - Temp sensor Functional Diagram                                   Fig 9 - Temp sensor pinout  

 

The temp sensor provides our feedback to the controller.  It measures it's own temp, and outputs a voltage proportional to temperature, for example 1.505 volts for 150.5 degrees F.  By sealing it up, and immersing it in the solution, we can reasonably say that the sensor will output to us the wort temp.  It's a simple, 3-pin device.  It requires a supply voltage and GND, and outputs V(TEMP) on pin 2.  It works great with a generic 5v supply, and is good up to 300F in the plastic package, or even higher in the metal can package.  Metal can might be nice, since you could solder it to brass tubing so the whole can is exposed to the hot wort.  However, the metal can is connected to GND.  To avoid ground-loop problems between the heater's AC ground to the copper tubing and the LM34's can ground, I opted for the plastic TO92 device enclosed completely in the aluminum tube.  In actuality, the temp sensor needs some kind of pulldown resistor on VOUT to load it down a bit, reducing noise and eliminating AC pickup from the long wires.  Inside the tube, I have a 500 Ohm resistor from VOUT to GND.  Also, at the board I have a 1k resistor from VOUT to GND to drain off noise on the input side.

 

 

 

Heater Input

Fig 10 - Heater plug with grounding wire, and PVC protective cap

 

Above we see the connection to the heater element.  A 3-prong plug was used, with the green ground wire bolted to the heater bracket, you can see it in the picture above.  This keeps the metal portions of the system grounded so if a splash or leak causes some conduction from the AC hot wire, there is a chance you WON'T be killed reaching into the tun.  To further enhance the likelihood of survival in a catastrophic fail, I strongly suggest the use of a GFCI outlet to supply the project.  These outlets shut off the current if they see 5-10mA conduction into ground.  If you do not ground your enclosure, then even a GFCI would not save you as the current has no path to ground except you.  The protective cap is the standard 1" PVC cap, drilled for the cord and flange-cut to be tightened down onto the tail of the heater element.  It should be sealed with silicone to resist splashing.

 

 

 

Relay Box

Control for this device can be as simple, or as complex as you desire.  The heater expects some power in the 3-prong plug.  If it gets some, it will convert it to heat.  If the tun is filled with liquid, the heat will then be transferred to the liquid.  By modulating the amount of power you put into the plug, you will modulate the heat provided to the wort.  I think the use of a TRIAC, or solid-state relay is great, for smooth heat control from 0-MAX.  However, from my other experimentation I found that the turn-on/turn-off step was a nice 2 degrees, meaning this system was a good candidate for hysteretic control.  Now don't get me wrong, PWM control is fantastic - in fact, I build  PWM controllers for a living so if you like PWM and you want to TRIAC it, I say go right ahead.  My local junk store didn't have 20A TRIACS, and SSR's are overly expensive so I opted for switching the hot side of the heater with a $2, 20A relay. 

 

Fig 11- Relay Box

Fig 12 - Internals of Relay Box

So there it is.  I built the relay box into an inexpensive plastic enclosure box from the hardware store.  One plug is always connected to AC hot, and the other's AC hot is switched by the relay.  Both outlets are always connected to AC neutral, and are both connected to AC GND.  I couldn't find a symbol for a 3-prong socket, so please keep in mind that AC ground is indeed fed to both the outlets, and not just bolted to the plastic enclosure!  The relay is switched using 12v.  One terminal of the relay coil is tied to 12v DC, and the other teminal is pulled down by a cheap BJT any time the controller outputs a logic high, activating the relay and energizing the heater socket.  I keep my DC side separate from my AC side, including ground.  For additional protection, you could even switch the relay through an optoisolator, but a relay itself is pretty good isolation.  There are some cases of relays getting zapped by a lighting strike on the AC side, so without an opto you probably shouldn't mash during thunderstorms.  With an opto, your RIMS would probably still blow up in a lighting strike, just your controller would be saved.  Not much difference to me, I thought the controller was the EASY part to build!

 

 

Controller

The controller I built used a PIC16F877A from Microchip.  You can get a few free samples from them by asking here.  I like it because it has a lot of I/O pins, so even after adding an RS-232 serial port, LCD screen, and 16-key keyboard, there are quite a few pins left for future additions.  I run mine with a 4MHz crystal, but you could crank it up to 20+MHz if you find yourself requiring more horsepower.  Originally, I wrote the code in assembly using Microchip's free MPLAB tools, but re-programming the device turned out to be a big pain - every change required me to pull out the part, erase, and re-flash in my EEPROM programmer.  I now use the PICBASIC bootloader - not only is it easy to write and understand the code, you can reprogram the chip over the serial port.  Read about PICBASIC and the Microcode studio bootloader.  I know the controller enclosure isn't pretty - but being pretty was never a requirement for being functional.

 

       

                  Fig 13- The Controller                               Fig 14 - Mash-In. 1 degree difference between pump and bulk of tun

 

Fig 15 - The Controller Schematic

 

Fig 16- PIC to RS-232 converter using MAX232.  Connects to TX, RX, and !MCLR in Fig 15. Stolen from here.

 

Above, you can see the schematic for the controller box.  It can run the mash standalone with no PC attached, or you can use the PC serial port to monitor the current temp, setpoint temp, mash time, and remaining time for this step.  Upon startup, it asks you to input the number of steps, and the duration of each step.  It ramps up to each temp, holds that temp for the duration as it counts down on the screen, then goes to the next step.  At completion of all steps, it turns off the heat and simply displays "Mash Done!" until you hit reset.  The cool keyboard I got for $3 has a RESET and ENTER button; RST cancels the input or pauses the mash, and ENT accepts the input and starts/continues the mash.  Other than that, I only use the number keys on the keyboard until I can think of good uses for keys labeled SEQ, TKO, etc..

 

For example, the profile I used to make a generic pale ale was.

Step 1/4 (Mash-In) -135F, duration of 1 minute.  This is just to pre-heat the tun, to get 122F when I dump the cold grain in.

Step 2/4 (Mash-In) - 122F, duration = 30 minutes.  A little protein rest to soak the grain

Step 3/4 (Conversion) - 150F, duration = 60 minutes. Convert the starches.

Step 4/4 (Mash-Out/Sparge) - 165F, duration = 20 minutes.  I mash out for 10 minutes, pause the controller while I empty into the kettle, then re-fill with water and re-heat to 165 for another 10 minutes of sparge.  I probably should have used 168F and a longer duration, but no ill effects were noted.

 

And the results were:

Fig 17 - Log of the example mash profile

 

Sadly, I accidentally pulled out the RS232 cable when moving the controller in preparation for mash-out so you don't get to see the final moments, but I think you get the picture.  You can see that the 135F pre-mash-in temp was probably a few degrees high, as the grain load didn't drop the temp like a rock as expected.  Other than the X-axis being an annoying VB code instead of the actual time, I think it looks pretty good.  This VB program runs on a nearby PC, and continuously plots the temp information sent out by the controller box.  Green line is desired setpoint, Blue line is actual temperature, and Red line shows when the heat is on or off.  A completely unnecessary piece of software, but it's nice to see the graph update in real-time as you hear the heater click on and off.  Download the VB Monitor Program.

 

 

Firmware

Download the PIC16F877A Firmware.  You would need to burn this hex file to a PIC16F877A using an EEPROM programmer, but after that you could use Mechanique's bootloader to re-program it on the fly.  I suppose I could sell the pre-programmed chips, so email me at openschemes at openschemes dot com if you really want one.  I suppose I could also fabricate some PCB's for the controller but it's about $250 for 10 so I haven't done it, and won't unless the demand is great.  I'd have to charge $30 or more after taxes and shipping just to break even - that may be higher than the threshold of pain for a beer machine.  Will I give out the source code for the controller or monitor program?  I dunno, it's unlikely. 

 

Moving right along - The heart of the controller is a 16.39 millisecond interrupt.  61 times a second, the controller takes 20 ADC readings of the temperature sensor, averages them in order to smooth out any noise, and updates it's internal clock.  The interrupt also polls the keyboard to see if anything has been pressed, and if so, it decodes it into a key.  The rest of the program waits for the time and temp variables to magically be updated by the interrupt, and does any processing if needed.  Every one second, the controller updates the LCD, and also sends the time and temp information out the serial port.  If temp is below the setpoint by one degree or more, heater is turned on.  If temp is above the setpoint by one degree or more, heater is turned off.  If the step time has expired, we either move to the next step or go to sleep if the whole mash is done.

Back to Openschemes Projects