Open Source Mash Computer?

Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum

Help Support Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

mattreba

Well-Known Member
Joined
Jul 7, 2007
Messages
72
Reaction score
0
Location
Portland, ME
I see a lot of people going after control systems each in their own unique way. It's very homebrew-like but I'm thinking there may be an opportunity for a few of us to get together and develop an Arduino or similar self-contained controller that anyone could build for a relatively low cost.

I have to admit, I considered developing and selling such a solution but UL listing and potential liability scared me away from the idea. Instead I'm thinking we could develop the code and provide a walkthrough for anyone to attempt at their own risk.

I think a device could be built for close to $125 including:
Arduino Pro Mini 5V $20
USB Cable $15
20x4 Serial LCD $35
(2) SSRs $25
(2) Temp Sensors LM34 $10
Project box, LEDs, switches: $20

Some sketches of screens I'm invisioning:
 
I haven't done much coding with arduino but i've done a ton with Picbasic pro and microchips. I've also done alot of circuit board design and I have all the stuff to make boards at home. So if I can be of any help i'd be happy to.
 
i don't do code but im IPC certifed to solder. i have a lab i can build about anything electronic in, but i dont have the ability to etch boards. if i can be of any help let me know.
 
I'm an open source geek, I've been using Linux for near 15 yrs... I've done a decent amount of perl coding, and know C, but have never done any device level coding. I have a general knowledge of how it works, but not a detailed level idea. I'm interested in helping, I think it would be fun/cool, etc. I don't know much about the arduino though, have never used it or seen it... I'll do a little reading on it.

~Phil
 
i'm in the process of building one of these with a pretty similar layout...only mines gas fired.

i haven't gone very far into controller development yet, but the cart itself is nearing completion and then i'll start on the electronics.

i'm happy to share my results when i have them
 
Which programming language will be used for code development?, might have some usefull code from the phase 2 brewery control system, which is built around Opto 22 I/O hardware using Java.
 
From what I've read they have an IDE that works around c c++ but since its open source, they may also have some java hooks as well. I've been doing a little reading today but working so I can't focus on it too much.

~Phil
 
From a gas versus electric perspective... Who cares :) The output channel could just as easily drive a gas solenoid valve and an igniter w/ flame detection. The computer doesn't really need to know what the heat source is.

First order of business: Platform selection.
The opto 22 platform looks way too expensive. We might get some ideas by studying their UI though.

I was planning around the Arduino because it looked cheap, easy and perhaps the most popular platform out there right now. I'd like to support a simple setup with two sensors and two output channels and possible have it configurable to support very complex configurations (assuming there is enough space for code). I think keeping it low cost but very usable would be the project directive. The Arduino might be slightly constrained for advanced setups but we could probably port the code to something like the Sanguino if need be down the road.

PicBasic looks like it requires a purchase of the compiler at around $200+. Arduino uses a free development environment. More info here: Arduino - HomePage

Any arguments for or against Arduino? Arguments for another platform?
 
I'm thinking about what a super complex advanced setup might use to think about the upper reaches of what the platform might support. Personally, I think I'd stick with two temperature inputs and two outputs only because I'm cheap but...

Inputs:
HLT Temp (Analog LM34)
Mash Temp (Analog LM34)
HLT Volume (Magical volume measurement producing 0-5v calibrated to your volume or used as digital float switch for heat element cut-off)
Mash Volume (see HLT Vol)
Kettle Volume (see HLT Vol)
Kettle Temp (Analog LM34)
CFC Temp (Analog LM34)

Serial Output:
Serial Enabled 20 char x 4 line LCD

Digital Outputs:
Kettle Heat On/Off
Mash Heat On/Off
HLT Heat On/Off
Alarm
Pumps and valves

A single pump system would probably use the most valves. I can think of 12 possible valves (so 13 channels with the pump) if filling, sparging, boiling and cooling were all controlled (definitely not a first release objective):

Water In HLT
Water In Chill
Water in Mash
Water in Kettle
Pump In HLT
Pump In Mash
Pump In HEX
Pump In Kettle
Pump Out HEX
Pump Out Mash
Pump Out Kettle
Pump Out Chiller

Every multi-pump solution I came up with used fewer valves.

I think the Arduino could handle most setups though the max config here would probably require using an analog output linked to a second board providing an additional 10 outputs. The Sanguino could do it all with no additional board but would require soldering and costs a bit more. I'd like it if a non-developer could put together and program their system with little to no soldering.
 
What about the basic stamp board, looks like there are a number of interface boards available to interface analog sensors. One could start with a bare basic stamp system and expand as desired/needed.
 
The Basic Stamp 2 is close but as you said analog inputs would require add-ons and the base product cost more than twice what the Arduino does. Is the main concern about programming in C? I don't think this version will be hard to pick up. There are tons of coding examples on Arduino's site.

I don't want to be a stick in the mud for Arduino but it seems hard to beat.

todbot blog » Blog Archive » Arduino, the Basic Stamp killer
Is the Arduino platform better than the Basic Stamp for UAVs? - DIY Drones
 
Could something be developed in VisualC and then transferred? I have a little experience with it and it's not to overwhelming.
 
Arduino programming is pretty easy. Plus, there is a pin-compatible upgrade for the current AVR chip used in the Arduino available now with twice the memory. I just started playing with one about 2 weeks ago, and I like the platform quite a bit. It's easy to develop for.

This is a project I'd definitely contribute to.
 
Just was looking at the 10 bit analog and wondering about the lack of resolution on the temperature sensors, and the inability to interface with thermocouples or RTD devices. Is low price the overall goal or is there a need for a low cost starter base unit with optional enhancements as budget and need grows. Another question is will the base unit execute a stand alone program or operate as an i/o unit with the control programming and gui's running on a more robust computer.
 
Just was looking at the 10 bit analog and wondering about the lack of resolution on the temperature sensors...

10 bits should be more than sufficient resolution for mash control. 10 bit means there are 10 on/ off switches, this means that the board can provide 1024 bits of resolution, which is more than enough.
 
From a gas versus electric perspective... Who cares :) The output channel could just as easily drive a gas solenoid valve and an igniter w/ flame detection. The computer doesn't really need to know what the heat source is.

First order of business: Platform selection.
The opto 22 platform looks way too expensive. We might get some ideas by studying their UI though.

I was planning around the Arduino because it looked cheap, easy and perhaps the most popular platform out there right now. I'd like to support a simple setup with two sensors and two output channels and possible have it configurable to support very complex configurations (assuming there is enough space for code). I think keeping it low cost but very usable would be the project directive. The Arduino might be slightly constrained for advanced setups but we could probably port the code to something like the Sanguino if need be down the road.

PicBasic looks like it requires a purchase of the compiler at around $200+. Arduino uses a free development environment. More info here: Arduino - HomePage

Any arguments for or against Arduino? Arguments for another platform?

I think if it's going to be a chip with a daughterboard and not a standalone micro then it for sure should be Arduino
 
I'm going to keep my eye on this. I'm pretty handy with a soldering iron, but haven't done any real coding in years.
 
If anyone is interested we have completed a developmental release of the code for this project and we need testers. It does involve buying some hardware but it's pretty small cost up front for whats going to be a very powerful controller.
\
Check out the group or PM me if your interested in testing.
 
Yeah looks to be a much smaller version than what we have, we have 3 heat outputs, 11 valve/pump controls and room for 6 temp sensors. We also plan to add volume measurement for all the brewing equipment.
 
SO I have read the thread over a bit, and looked at the seperate group postings but am still a bit confused....

I understand you are building a way to help automate a brew system, but it is the end goal interface I am confused by. (I am a picture person, all those words about the project confuse me).

Will the end user interface be self contained within the 4x20 LCD and associated buttons to navigate/enter user input.... or will it interface with a GUI on a computer? Or optional of either per the users choice? If interfaced with a PC, no need for the LCD...

Back before there were those nifty Ipod gizmos I had built an MP3 player for my car interfacing with a small computer in my car. I got pretty handy at building circuits and stuff, but did not possess the skill to program, so long story short I am a potential interested hardware/software tester but want a better understanding of the end goal....but cant code to save my life.
 
The concept is for the device to be stand alone with an eventual data logging feature that would allow you to download the data to a PC at a later time. I don't speak for the group but I was a part of the initial concept and design. It is my opinion that the BCS-460 looks like it does a great job if you're looking for a device that interfaces with a PC so there was no compelling reason to build a PC-slave system. Personally, I don't want a PC in my brewing area, I have enough crap there. So the idea of a stand-alone device that can get the job done with more features than just a couple Ranco controllers or PIDs is pretty much the idea.

That and it's all open source so you can modify the code (or get someone to modify the code) to fit your specific needs.
 
I'm interested, since I'm a software developer for embedded devices, but I don't really have any personal use for one of these at the moment. But I'll keep an eye on stuff and offer suggestions when I see things that look interesting.
 
There are a number fo savvy sorts of homebrewers who can build a custom controller for their brewery. It's been done and that's where we got the ideas from. What we wanted to accomplish is to create something that could meet the needs of most brewers looking for control and precision, do it without breaking the bank and not require coding skills on behalf of the user. We ended up with a menu driven appliance (no computer necessary) that operates much like an iPod with a rotary control that is used to scroll through menus or adjust levels. Clicking down on the rotary acts as an Enter key. Holding Enter for over a second and releasing acts as a Cancel or Escape.

This development release includes the Brew Monitor which monitors the temperature of up to six temperature inputs (HLT, Mash, Kettle, CFC H2O IN, CFC H2O Out and CFC Beer Out) and controls the heat output for the HLT and Mash. Each of the heat outputs can be set to On/Off mode with a 1F hysteresis or PID mode using a 4 second cycle time adjusting the output from 0-100% (50% would turn the output on for 2s and off for 2s, 75% On 3s, off 1s, etc.) These values used in each mode are hardcoded currently but we will likely make them adjustable in a future release.

The main goal of the project is the AutoBrew mode. AutoBrew would walk through a series of stages (some optional) such as filling, preheat, dough-in, protein rest, acid rest, saccharifaction rest, mash out, sparge, boil and chill. Each stage would have one or more valve configurations associated with it. For example the various mash stages would have one configuration used for mash heat cycles (ie Valve outputs 1, 3 and 7 on) and one used for mash 'standby' cycles (perhaps recirculating the mash but bypassing a HERM coil).

We also intend to add volume measurement of the kettle, HLT and mash tun using pressure transducers that can measure 0-40 inches of H2O pressure. Standard calculations for strike temperature as well as mash and sparge volume are also planned.

What we need most right now are testers who can validate functionality and make suggestions to improve the interface. We could also benefit from documentation including user guildes and implementation guides. We have a WiKi on GoogleCode that we'd like to use for this.

Oh and Brewtroller is open source. We may sell components to ease implementation for users but everything we do including code and circuit board layouts are freely available for do-it-yourselfers.
 
What would be a minimum amount of equipment necessary to participate in this?
 
Will be interesting to see what you come up with for the calculating and control sequence code for automatic control. Will you have enough room for the necessary code for auto control based on grain bill, batch size, water ratio, and mash temp user inputs. It sounds easy until you try to write the code to make it happen safely and recover from unplanned system power loss and resets.
 
I think we'll have room for the code. We're runnign about 20KB now with over 40KB remaining.

At this point we have no intent to try and recover from a power loss. It wouldn't be too hard to do though. We have plnety of unused EEPROM at this point. Plan on it for a future version.
 
PhylanPan, We will put together an itemized list of parts and costs for each. A big variable will be your system design. How are you heating your HLT? Do you have a recirculating mash system? etc.
 
PhylanPan, We will put together an itemized list of parts and costs for each. A big variable will be your system design. How are you heating your HLT? Do you have a recirculating mash system? etc.

I see. Probably won't apply to me. I'm still in the design phase for my system, I don't have one up and running yet. Actually I haven't even completely decided between a gravity system and a recirc system.
 
I have been interested in doing something like this for quite some time, this project will help me a lot with I consider to be the ultimate system.

Do you have any plans on storage memory with say a flash card or anything, one of the ideas I had for my systerm was to allow it to import beerXML files to store recipes then all I need to do is dial up a recipe and hit start.

Other ideas I had (these are a little off the wall but I am sure they are doable) was to have it stand alone, but have the option to comunicate via TCP/IP so I could comunicate with the system with any internet browser in case I was busy or wanted to check up on what was going on/make adjustments while doing something else around the yard/house.

Anyway let me know what you think, FYI I have some programming experience if you need anything. It's minimal though, I am currently learning in college (C++ and VB .NET)

Good luck with the project I will be watching this one closely, already thinking about ordering the hardware.
 
I think that memory may start getting limited at that point(importing from external device). Some kind of app on windows/mac/linux that could convert beerxml to some small footprint binary data file or simple text instruction file may be more doable... just from my guessing though, no solid data to back that up :). Right now most of the existing/planned connectors are already tied up w/ the expected connects, but if you're not using them, there could be some potentially "assignable" connects that could be to a USB device I'd suspect? But I'm going from the limited reading I've done on this, not like the detailed work that mattreba and jcdillin know and do ;) I'm good enough in C to read their code and have a good idea what its doing, but NOT know exactly how I could do it/improve it/expand it etc.
I'm planning on buying the hardware too, and in the process of building my HERMS setup. I hope to have it all happy and working within a few months.
 
First - I am thoroughly impressed by this project in its entirety.

Second - I started buying the parts to set this up and then got tangled up with my setup. And I spent some time thinking about my PC and home network and figured I'd toss this post out.

I'd be very interested in contributing to an offshoot where the sensors are external (this project minutes the display) and the software runs from a PC. I was thinking about the sensor package for this project and moving the code to a PC with a network connection between the two (wireless or wired). Any interest?

Thanks,
Adam
 
Our source is your source so feel free to use whatever is valuable for you. For my system a standalone setup was a requirement. I don't want to bother with trying to sync up with a PC local or remote. I just want to turn it on and go.

As for loading of recipe data... I'm working on the input code to start an Autobrew program. It wouldn't be too difficult to add a microSD slot and read data from an input file but it would increase the cost by a fair amount. We are also short on pins. We would have to give up some valve outputs or mux some outputs to get pins to support writing to memory.

I think the input before a program will be pretty short as many of the variables specific to your system are persistent.

Here's the current program flow:

Load Predefined variables: HLT, Mash and Kettle volume and volume loss (deadspace), default batch size, evaporation rate

Select a predefined mash profile (dough-in, protein, sacch and mashout min and temp)
- Currently, Single Infusion or Multi-Rest but others could be added in code

Adjust params (including delay start, grain weight, batch size, mash ratio and above rest temps and times)

Calc mash/sparge volumes
calc strike temp

Do delay start, mash rests (Future support for filling, sparge, boil and chill stages)

The End
 
Back
Top