Writing new software

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.

suprdlux

Member
Joined
Jun 1, 2008
Messages
10
Reaction score
0
Location
Colchester, VT
To start off with I apologize for the length of this post. I don't know if the "General Techniques" forum is the most appropriate place to post this, but I hope to get feedback from experienced brewers who may be running into the same problems I am.

I have been using ProMash to calculate my all grain recipes for almost 5 years now and I have reach the limits on what the software is able to do and I find myself using a number of spreadsheets I have developed and a couple of web-based calculators to complete each brew session plan. I have now reached the point where ProMash is losing its utility and I have started writing my own brewing software.

Beyond include basic recipe and brew session calculations, I plan on addressing a number of key issues with my software, as follows:

1) Universal recipe file format and brew session file format. I plan on using an XML based format.

2) Include a water profile calculator similar to what John Palmer uses in "How to Brew"

3) Include a yeast pitching rate calculator

4) Advanced brew session analysis tools to look at trends across multiple brew sessions.

5) Conversion software to help adjust recipes found online and in print for your brewery specifications.

6) I also plan on developing a USB based protocol so I can link my computer to my brewery equipment and both better control my brewing process and log additional brew session data.

I have big plans for releasing the software once it is completed, but it will be available for free to the brewing community. All that being said, I have a number of questions which I hope people in the brewing community can answer.

1) What features would you like to see in the software, which are not currently addressed in the currently available software?

2) Are there any universal file formats in use for recipes?

3) Are there any individuals who would like to help with developing file formats and protocols for linking the software with embedded systems in brewing equipment.

I am currently in the design phase and I am open to any suggestions. Thanks for your help.

Jake
 
What language will the program be written in, java for multiple platforms, or is it just for windows?
I like the idea of the USB interface but that will be limited to supporting fairly specific hardware, including support for older parallel port control would be nice its still the most straight forward way to control stuff with a pc.
one of the hardest or at least most tedious parts will be creating a thorough and accurate database of water profiles, hops, malts, sugars, yeasts... this is one of the things ive found lacking in other software like the lack of plug hop options in promash.
 
I hate Java. I hate every aspect of Java. I never write code in Java. There I said it. I have strong opinions on the languages I use and the code I write. I typically use C or C++, but I am exploring my options at this time. I would initially release it as a windows product, but porting most of the software to Linux would not be difficult. I often don't use a Mac and I have no experience writing code for a Mac, so I doubt that will be an option unless somebody else helps with that.

I realize interfacing with external controllers will be difficult. I like using USB interfaces, but using the serial port and the parallel port are both options that could be included. I would favor the serial port over the parallel port since most microcontrollers support an serial port interface. In any case, the interface to external devices would be limited at this time.

As for creating the database stuff, I hope by providing the tools (i.e. the software) the homebrewing community will help in building the database and keeping it up to date.

Jake
 
With beersmith and beer tools pro being recognized as VERY viable brewing solutions, exactly what do you think you can bring to the table that hasn't been done? Have you tried both and rejected them for some lack of functionality?
 
With beersmith and beer tools pro being recognized as VERY viable brewing solutions, exactly what do you think you can bring to the table that hasn't been done? Have you tried both and rejected them for some lack of functionality?


I think the biggest advantage will be that the brewer will have beersmith quality software at no cost. I'd be down with that. I like the idea of it being open source. The trick will be getting the software to be beersmith quality
 
For your file format you'll want to look at BeerXML.

With beersmith and beer tools pro being recognized as VERY viable brewing solutions, exactly what do you think you can bring to the table that hasn't been done? Have you tried both and rejected them for some lack of functionality?
Based on the extra features he's looking at adding, he'd blow those other programs out of the water provided he gets the basics right.
 
I understand your dislike for java I learned a little of it a few years back and I didnt like it much either, the one thing it has going for it is being able to write one program for almost every platform. I think a lot of open source linux programs can be run on mac without much difficulty, porting the usb part would be difficult cause of the difference in the way windows / linux handle hardware like that.
once you settle on a format for the database files for hops, malts, etc... for this program post the info online and I think a lot of people myself included will help with the research and writing for that stuff.
making an attractive logical easy to navigate layout for the gui on this program is going to be key I like most of promashs functionality but the layout isnt the greatest.
As for the equations youll need to write for all the calculations if you dont already have it "designing great beers" is a must have, I think it has all the math you need for this program as well as a lot of other info style guidelines etc...
 
One thing I would like to see in a water profile calculator is the ability to input your water profile, choose a target source, and mineral/salt additions would automatically be calculated. All of the water profile calulators I've seen make you fool around with different addition amounts until you get close to the target. There would probably be more than one group of additions possibilties to meet that target so maybe an Option 1, 2, 3, etc.

Another important thing in water profiling is where to add the additions. It may be more beneficial to have a different sub-profile for mash water, sparge water, and wort boiling. For instance, you may only want to adjust your pH and maybe 1 or 2 minerals for mash water, but adding too much of something may affect efficiency, yet you may want more minerals/salts for hop accentuation and final beer flavor. So, you could have separate additions in the sparge water and/or kettle. Just thinking out loud...
 
Bobby_M

I have tested both Beersmith and Beertools and neither has what I want. I will admit, for the average homebrewer the additions to the software I want will not extend the usefulness beyond what is commercially available. For the devoted brewer, the ability to automatically log and analyze data from each brew session will be extremely helpful in brewing better beer.

broadbill and Bokonon

Just to clarify, this will not be open source, but it will be open standards. I've already looked through the code for QBrew, but I doubt I will use it since I think it is released under the GNU license and as noted above this will not be open source.

bradsul

Thanks for the link

k1v1116

Having the homebrew community enter data was my plan for building and maintaining the databases. I am currently prototyping interfaces and I plan on doing some initial releases to get good user feedback so they can be tweaked for best usability.

I already have a fairly extensive library of brewing literature and I am working on collecting more of the primary sources to verify as much as I can. On a side note if any one has access to these sources I would love to here from you.

menschmaschine

I thought about this before and I don't know if the automatic salt addition calucations would work since each brewer is unique in what salts they have and what salts they would want to add because there are some many trade offs with salt additions.

I do like the idea on having multiple water profiles for each step in the brewing process. Thanks

Jake
 
I thought about this before and I don't know if the automatic salt addition calucations would work since each brewer is unique in what salts they have and what salts they would want to add because there are some many trade offs with salt additions.

I hear what you're saying. This is probably why this hasn't been done yet. Do you think there would be that many different combinations to make this not do-able (or worth doing)? Maybe the software could ask the brewer what minerals/salts he has and then come as close as possible to the target... or give a maximum of 5 options from which to chose, while allowing it to be fully edited for those who want to fool around with amounts of various additions.. I don't know... I'm just trying to figure out a way to make that more automated.
 
As I have almost no background in programming and databases, I'll add this:

It would be nice if the data bases (for grain, hops, brew sessions, etc) could easily be exported to and imported from Excel (.xls) files. this way as a user it would be very easy edit or add to a data base. Just have each type of data base set up as a form in excel. Editing text files is fine, but excel would be a nicer interface for the average user.

I think its a great idea about the controllers, and if you just stated what hardware you were using I'm sure there would be many people that would follow you just so they could use your software. Another neat feature would be a data logger for say the temperature inside your fermenter.

I think you have a great idea going here, good luck.
 
Has anyone considered making a Ajax based one with either a ruby on rails or php back end and hosting it online? This way it will run on linux, mac and windows, especially if we use something like prototype or scriptaculous.
 
Im curious why keep it closed source if you plan to distribute it for free?
I think beer smith has an inventory tool so you can enter what ingredients you have, something like this might be nice especially for a water salts addition calculator.
I know it seems redundant with so many other tools out there but as a matter of convenience you might include a basic calculator and a units conversion tool.
 
What type of interface hardware are you using?, as currently have an Opto 22 hardware system control application built in C++. Like others have found out the BeerXML program only tackles the recipe information not the brewing session component which has the information needed for water, temperatures, step mashes, etc. that I need to pass to the control program. The current system control application deals with water management, water heating, grain milling and dough in, step mashing, sparging, boil control, hop addition signaling, wort chilling and O2 injection. The Opto I/O application is running in the background while the control application and GUI's run in foreground, what is lacking is the instumentation type widgets to help trick up the displays. Currently we are generating custom widgets in C++ to insert in the display GUI's and finishing hardware assembly for a test firing in july. Here is a system schematic http://picasaweb.google.com/kevin.ladue/ControlPanel/photo#5183956390906209058
 
k1v1116

Keeping it closed source give me much more control over the software and allow the software to retain much of its value.

kladue

I plan on building my own brewery control hardware. Otherwise I will probably use a data translations I/O system, I really like there products and they have great tech support.

Jake
 
Newbie question here.

Would it be worth putting in count down/up counters that you could attach to your brewing schedule? And have these counters with alarms for alerting me.

I am really bad with the passage of time. 2 months can seem like 2 weeks. and vice versa.

I know good notes would help with this, but I am thinking it would be nice to have timer alerts or emails that tell you a certain number of days or weeks has passed since the beer was placed in the secondary. Or how long you have been conditioning in the bottles.

Considering how many different batches some of you have going at the same time, I would be bonkers trying to keep up with how long each batch has been in its respective stage.

Just a thought.
 
k1v1116

Keeping it closed source give me much more control over the software and allow the software to retain much of its value.

kladue

I plan on building my own brewery control hardware. Otherwise I will probably use a data translations I/O system, I really like there products and they have great tech support.

Jake

You can always keep the software open source but control what gets committed to the final project. That way you retain control but have a wider amount of people able to find flaws in the code or offer suggestions. Open source just means the source code is distributed free of charge. Also if you decide to make it only for windows or only for mac, other developers can use the code to be able to make a version that will work on other platforms or launch there own projects.
 
moger777

I understand the concepts of open source, but I don't want to release the source code. Just because I give the software away for free doesn't mean I can't make money off of the project. By releasing the source code, I decrease my ability to generate revenue in the future. Also allowing multiple individual work on the project may not produce the best results. Because the success of this project depends almost entirely on the interface and not on the underlying software, having one unified vision is necessary to pull it off well. Otherwise you need to have a group of developers working very closely to do this well.

kladue

I guess I don't completely understand your questions.

When you ask about my brewing system hardware are you asking about the electronics or the physical systems? When you ask about my brewing session procedures are you asking about what mashing procedures I will use (e.g. step mashes, infusion mashes) or are you asking about the software procedures implementing the actual brewing processes?

In any case, I have not designed my final, ultimate brewery. This is a long term project and I am just starting. I tend to build very open hardware systems allowing our customers to expand them in the future. I suspect my hardware will consist of a microcontroller (currently I have been on a PIC controller kick) with a decent amount of on board memory. I suspect I will have an 8 or 16 bit ADC with 8 or 10 ADC inputs. I plan on having 16 or 24 I/O ports for controlling devices. Nothing overly fancy, just some basic I/O functionality. This type of hardware should let me install almost any instrumentation I want.

I have no clue how complex my brew session software will be, but I want to be able to send commands to the embedded controller and have it implement most of the processes (e.g. the computer sends the command to maintain the mash temperature at 154 degrees for 30 minutes and the controller will implement this). I also want the controller to log the data and send it to the computer in lumps of data. I don't think I will have the embedded system implement the entire mash procedure, but it should be able to do simple processes.

I hope that answers your questions.

Jake
 
Thank you for the reply, will be looking forward to seeing your efforts in the software development area. It appears that we have different areas of expertise in the brewing system development and control system design complexity.
 
What do you think of Arduino? Have you heard of it and/or used it at all? I'm fairly sold on the simplicity of development and relatively low price. I own two of them, one of which is used in my semi-automated brew rig.
 
kladue
What are your areas of expertise in brewing systems and process control? I have to admit, I'm alittle short on brewery development/physical systems knowledge. I might be interested in picking your brain when I start building my brewery.

Yuri_Rage
I've never heard of Arduino and I'm not familiar with the processor it uses. I did read though the companies website and there are hundreds of similar systems out there and most of them work pretty well.

Jake
 
Regarding Arduino - I like it because it's got a USB interface, uses a Java-based GUI development system that I've used successfully in both Windows and Linux, and the programming is done in C/C++. I wasn't familiar with the Atmega 168, either, but it's such a plug and play solution, that the processor is almost irrelevant. It's got 10 bit analog-digital precision, so it can be somewhat limiting, but I've yet to find a brew application where I need more precision.
 
Whatever you do make a good UI. I like using Promash for the functionality - but the UI is a bit goofy I think
 
moger777

I understand the concepts of open source, but I don't want to release the source code. Just because I give the software away for free doesn't mean I can't make money off of the project. By releasing the source code, I decrease my ability to generate revenue in the future. Also allowing multiple individual work on the project may not produce the best results. Because the success of this project depends almost entirely on the interface and not on the underlying software, having one unified vision is necessary to pull it off well. Otherwise you need to have a group of developers working very closely to do this well.

kladue

I guess I don't completely understand your questions.

When you ask about my brewing system hardware are you asking about the electronics or the physical systems? When you ask about my brewing session procedures are you asking about what mashing procedures I will use (e.g. step mashes, infusion mashes) or are you asking about the software procedures implementing the actual brewing processes?

In any case, I have not designed my final, ultimate brewery. This is a long term project and I am just starting. I tend to build very open hardware systems allowing our customers to expand them in the future. I suspect my hardware will consist of a microcontroller (currently I have been on a PIC controller kick) with a decent amount of on board memory. I suspect I will have an 8 or 16 bit ADC with 8 or 10 ADC inputs. I plan on having 16 or 24 I/O ports for controlling devices. Nothing overly fancy, just some basic I/O functionality. This type of hardware should let me install almost any instrumentation I want.

I have no clue how complex my brew session software will be, but I want to be able to send commands to the embedded controller and have it implement most of the processes (e.g. the computer sends the command to maintain the mash temperature at 154 degrees for 30 minutes and the controller will implement this). I also want the controller to log the data and send it to the computer in lumps of data. I don't think I will have the embedded system implement the entire mash procedure, but it should be able to do simple processes.

I hope that answers your questions.

Jake

Out of curiosity, what are you planning for your database back end? With all the information you're wanting to move in and out of the software at any given point (you're talking about a 24/7 monitoring and logging system), your database is going to get huge fast. It will take decent hardware to manipulate all that and parse it out as needed.

While I love the idea of logging, and even more importantly, the idea of trends in your brewing process, the controlling thing is going to be out of the realm of 99% of all homebrewers out there. Therefore, I suggest modules. That way, you can break down far, far easier your project and have a far more flexible pricing structure. You can give away the most basic software for free or for cheap, but the logging/trend module, or the control module costs X dollars per fermenter say.
 
TheFlatline
I haven't put much thought into my database back end. I do expect my database to be decent size, but it shouldn't be unmanageable. Most of the variables I want to monitor would not need a high sampling rate. (e.g. the mash temps would not need to be sample at more than 1 hz and the fermenter temps no more frequently than once a minute). We have built many data collection systems gathering orders of magnitude more data than this without to many problems.

Analyzing the data can be a pain, but I have a number of custom stats programs I have written to process this type of data quickly.

I do plan on making the system very modular, because that's how these systems should be built. This is a long-term project for me so I will be releasing it module by module. Due to current career commitments, I won't have a permanent residence for 5 years and I don't plan on building my brewery until then. So you can see this is a very long term project. I do plan on having my recipe design software completed in the next 18-24 months. I still plan on giving all of the software away for free, I don't know if I will make my hardware available. I do agree that most of the stuff will only be of interest to a few brewers, but I think the recipe design stuff will be applicable to most people.

I you have any ideas or expertise in any of the areas I am working in I would love to hear more from you. Some of Yuri's comments have been greatly helpful. I have spent some time digging through the specs on the Arduino and I may include support for it eventually, just because it is so cheap and accessible to people.

Thanks
Jake
 
I'm very willing to help where I can. Though I have limited experience in programming and just began homebrewing I've had 4+ years in multimedia. I am experienced with UI/web design, audio, and video.
 
July has been a busy month at work, which has significantly cut into my time available to work on this software, but I did manage to cobble together some software to build my hops, fermentables, yeast, etc. databases in BeerXML. I would like to build some real databases before I get to far into finishing up the recipe design program and I need some help on finding the information for the databases.

I am slowly compiling the data from a variety of web sources. I have the recent HopUnion datasheets as well as the WhiteLabs and Wyeast data. Does anyone know of other links to hop data, malt and extract data, other yeast company data, or any other data they would like to see in the databases?

I also have the most recent additions of the BJCP guidelines, does anyone have information on other style guidelines?

Thanks

Jake
 
Back
Top