Brewtarget 1.1 - Free open source brewing 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.

rocketman768

Supporting Member
HBT Supporter
Joined
Feb 5, 2008
Messages
1,083
Reaction score
28
Location
Evanston, IL
After using it to completely nail my volumes, OG, mash temps, etc. on my last batch, I think brewtarget 1.1 is ready for the public. It is completely free, compatible with Beersmith, and open source. I have provided a windows version, mac version, and the source code at the download page: Download here.

dbimage.php


Main Features
  • Brewday mode: generates a set of instructions and timers so that you're not running around like crazy on brew day.
  • Automatic mash temperature/volume calculations: nail your mash temps and pre-boil volume so that you always end up with the right amount of beer at the end.
  • Style checking: make sure you're recipe will meet guidelines.
  • Automatic unit conversion: enter and display measurements in whatever units you like. Enter 1.0 gal, 3.785 L, 4 qt, or 768 tsp (for example).

Here's a video of the previous version that gives you an idea of what it's about.

[ame=http://www.youtube.com/watch?v=qh4GWI_EUxE]YouTube - Brewtarget 1.0b Demonstration[/ame]

When you download it, please go to About->Manual and work through the simple example recipe so that you get to play with most of the features.

Call for Translators
Do you speak fluent English and another language fluently? Please PM me, because I am looking to get translations of this software. All you have to do is translate short phrases from English into the other language(s) that you speak.

Common "issues"
Using mac version, and it crashes before starting up: go here and download the Qt 4.5 free framework.

Why are the equipment volumes in teaspoons: they are not. They are in whatever units you want them to be. Enter 1.0 gal for 1 gallon. Enter 1.0 L for one liter. Enter 2088 mL for 2.088 liters. Enter (pretty much) anything you want. See the about->help.

Thanks, and hope it's useful.
 
I am going to play with this, looks cool... does it have inventory tracking?
 
Looks cool, but no likey OS X Leopard (10.5.7, PPC). Application unexpectedly quits when I try to launch it. :(

I can send you the error report, if you like.


-Steve
 
Boil off rate needs to be gals/hr. There is no such thing as %/hour. This is my pet peeve with most software, which is why I run ProMash.
 
Boil off rate needs to be gals/hr. There is no such thing as %/hour. This is my pet peeve with most software, which is why I run ProMash.

I know. This is also a peeve of mine. However, this is how the BeerXML format specifies the boil-off rate. So, to compromise, I took it to mean that the (boiloff percent)*(pre-boil volume) evaporates every hour.
 
Why OH WHY does it compute mash thickness in L/kg???? My entire recipe is in pounds and gallons. Can it be set for qt/lb??

Okay, so I created a mash... but it is telling me thatI need 3.35 gallons of 155F water to hit a 154F mash temp? I am trying to find where I went wrong, but I am following the manual instructions.
EDIT: got this worked out, but for some reason it is showing me an OG of 1.035 when it should say 1.040

Okay, beating my head against the wall trying to figure out why it shows an OG of 1.042 (2 points high) until I create a mash, then it drops to 1.035 (5 points low). What am I doing wrong?
 
Okay, beating my head against the wall trying to figure out why it shows an OG of 1.042 (2 points high) until I create a mash, then it drops to 1.035 (5 points low). What am I doing wrong?

You're not doing anything wrong...I would guess you have some losses set up in your equipment record. Before you make a mash, all it can do is assume all the sugar you extract gets into the final product. But, when you have a mash, it can start taking into account the losses during the process, and hence, you will see a drop in the OG (assuming you still end up with the same amount of wort in the primary). If you don't want this to happen, just use the "Ideal" equipment that is already set up, or make your own with no losses.
 
Ahhh, see ProMash doesnt do that to me... let me play more with it, I had my equipment set up... woops!
 
Can I change it so that the mash thickness isnt in L/kg? I dont think that is very user friendly... since we all deal in quarts and pounds.
Any option to fly sparge?
Anywhere to get a pre-boil gravity to determine mash eff?
 
Can I change it so that the mash thickness isnt in L/kg? I dont think that is very user friendly... since we all deal in quarts and pounds.
Any option to fly sparge?
Anywhere to get a pre-boil gravity to determine mash eff?

For the mash thickness, I will change that shortly so that it checks whether you are in english or metric mode.

For the fly sparge, that will definitely be in the next version. This 1.1 was all about how I intend to use it since, well, I am the main one using it at this point.

And about your mash efficiency, I have something grander planned: a review mode. I'm thinking of asking for as much measured data as the user can give and make suggestions on tweaking the equipment record, giving the efficiencies, suggestions, etc.
 
I was thinking about making a package for ubuntu, but it was so quick and easy to install that I'm pretty happy with it all.

Not to mention that I'm on 64-bit. But if I were you, I'd petition the ubuntu forums and see if you can't get your software added to some of the repos.
 
I just put BM's Black Pearl Porter Recipe into the software, and it's giving me a "Cloying" warning :) I know that it's low on the IBU's, but it's giving me 10 IBU's, which seems low...is that correct?

Can someone else do out that calculation for me? Just seems low...
 
I was thinking about making a package for ubuntu, but it was so quick and easy to install that I'm pretty happy with it all.

Not to mention that I'm on 64-bit. But if I were you, I'd petition the ubuntu forums and see if you can't get your software added to some of the repos.

You wouldn't happen to be a Debian package sponsor would you? If you are, that would be awesome since I have no experience making .deb packages for the repos.
 
You wouldn't happen to be a Debian package sponsor would you? If you are, that would be awesome since I have no experience making .deb packages for the repos.

I've made packages before to seed stuff out to friends, but they were pretty generic. I imagine that I didn't follow the exact procedure that they prefer for the repos (I hear that they're pretty strict).

I would post in a debian or ubuntu forum asking for some help (or if someone can do it for you). Your package really has to be dead simple to bundle up compared to most things.
 
I'm getting this error when trying to build on Ubuntu 8.10:

g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtWebKit -I/usr/include/qt4/QtWebKit -I/usr/include/qt4 -I. -I. -I. -o TimerWidget.o TimerWidget.cpp
TimerWidget.cpp: In member function ‘void TimerWidget::setTimer(QString)’:
TimerWidget.cpp:100: error: ‘class QStringList’ has no member named ‘length’
TimerWidget.cpp:109: error: ‘class QStringList’ has no member named ‘length’
TimerWidget.cpp:120: error: ‘class QStringList’ has no member named ‘length’
make: *** [TimerWidget.o] Error 1

Any thoughts?
 
Are you sure that you have the latest QT 4 installed, including the dev packages?

Well, "sure" is such a strong word...

Here's what I have installed (dpkg -l *qt4* | grep -v \<none\>)

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==========================================-==========================================================-=================================================
rc libpoppler-qt4-3 0.8.7-1 PDF rendering library (Qt 4 based shared library)
ii libqt4-assistant 4.4.3-0ubuntu1.2 Qt 4 assistant module
ii libqt4-core 4.4.3-0ubuntu1.2 transitional package for Qt 4 core non-GUI runtim
ii libqt4-dbus 4.4.3-0ubuntu1.2 Qt 4 D-Bus module
ii libqt4-designer 4.4.3-0ubuntu1.2 Qt 4 designer module
ii libqt4-dev 4.4.3-0ubuntu1.2 Qt 4 development files
ii libqt4-gui 4.4.3-0ubuntu1.2 transitional package for Qt 4 GUI runtime librari
ii libqt4-help 4.4.3-0ubuntu1.2 Qt 4 help module
ii libqt4-network 4.4.3-0ubuntu1.2 Qt 4 network module
ii libqt4-opengl 4.4.3-0ubuntu1.2 Qt 4 OpenGL module
ii libqt4-opengl-dev 4.4.3-0ubuntu1.2 Qt 4 OpenGL library development files
ii libqt4-qt3support 4.4.3-0ubuntu1.2 Qt 3 compatibility library for Qt 4
ii libqt4-script 4.4.3-0ubuntu1.2 Qt 4 script module
ii libqt4-sql 4.4.3-0ubuntu1.2 Qt 4 SQL module
ii libqt4-sql-mysql 4.4.3-0ubuntu1.2 Qt 4 MySQL database driver
ii libqt4-sql-sqlite 4.4.3-0ubuntu1.2 Qt 4 SQLite 3 database driver
ii libqt4-svg 4.4.3-0ubuntu1.2 Qt 4 SVG module
ii libqt4-test 4.4.3-0ubuntu1.2 Qt 4 test module
ii libqt4-webkit 4.4.3-0ubuntu1.2 Qt 4 WebKit module
ii libqt4-xml 4.4.3-0ubuntu1.2 Qt 4 XML module
ii libqt4-xmlpatterns 4.4.3-0ubuntu1.2 Qt 4 XML patterns module
ii python-qt4 4.4.4-2ubuntu1~intrepid1 Python bindings for Qt4
ii python-qt4-common 4.4.4-2ubuntu1~intrepid1 Shared files for PyQt4
ii qt4-designer 4.4.3-0ubuntu1.2 graphical designer for Qt 4 applications
ii qt4-dev-tools 4.4.3-0ubuntu1.2 Qt 4 development tools
ii qt4-doc 4.4.3-0ubuntu1.2 Qt 4 API documentation


It *appears* that everything I have is up to date, and that I have the Qt 4 development environment.

I don't do Qt development so I have no way of knowing for sure. I'm a Perl guy.
 
huh, not in front of my home computer otherwise I'd recompile and check my flags, etc and see what may be different.

They changed the inheritance structure of QStringList when migrating from QT3 to QT4. I know that it changed how you cast it to other types. That could be the error.

I think that I have both QT3 and QT4 on my machine. Maybe mine compiled against QT3, and therefore had the right casts?
 
I have an idea for your Review mode. You should separate a recipe and a batch into two separate things. A recipe should show you what you're supposed to do and then the batch shows you what you DID do. As in, gravity low, ended up with larger batch size, ran out of hops so used 1/3 oz instead of 1/2, etc.... It bothers me that I have to make a new "recipe" for each iteration of the same recipe in order to keep notes of each batch.
 
I'm getting this error when trying to build on Ubuntu 8.10:

g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtWebKit -I/usr/include/qt4/QtWebKit -I/usr/include/qt4 -I. -I. -I. -o TimerWidget.o TimerWidget.cpp
TimerWidget.cpp: In member function ‘void TimerWidget::setTimer(QString)’:
TimerWidget.cpp:100: error: ‘class QStringList’ has no member named ‘length’
TimerWidget.cpp:109: error: ‘class QStringList’ has no member named ‘length’
TimerWidget.cpp:120: error: ‘class QStringList’ has no member named ‘length’
make: *** [TimerWidget.o] Error 1

Any thoughts?

Yeah, I ran into this problem also. Apparently, QStringList calls that method size() instead of length() in previous versions of Qt (I am using 4.5). Just look at those lines (100, 109, and 120), and change length() back to size().
 
I have an idea for your Review mode. You should separate a recipe and a batch into two separate things. A recipe should show you what you're supposed to do and then the batch shows you what you DID do. As in, gravity low, ended up with larger batch size, ran out of hops so used 1/3 oz instead of 1/2, etc.... It bothers me that I have to make a new "recipe" for each iteration of the same recipe in order to keep notes of each batch.

Great idea.
 
does the program scale recipes? if , for instance, i select the american ipa then the batch size is just over 40 litres, if i alter that to 20 litres either in the batch size bar or the equipment tab then it alters the gravity, abv,ibu etc but doesnt scale the ingredient quantities to suit.am i doing something wrong or is it a feature that isn't available?
also-only a minor niggle- but the default amount/time labels could be changed to be more realistic, for instance hop additions are in seconds rather than minutes and liquid volumes are in ml rather than litres, i know its easy to change but its annoying when you forget and it resets itself and could the labels be changed to accept both lower and uppercase, when i worked through the sample recipe instruction page i put in say 68c instead of 68C and it reset itself, only minor niggles i know but can be annoying.
anyway, thanks for allowing us access to the software, i was going to by beer alchemy but i think i'll play with this for a while before i make my mind up, thanks again:mug:
 
does the program scale recipes? if , for instance, i select the american ipa then the batch size is just over 40 litres, if i alter that to 20 litres either in the batch size bar or the equipment tab then it alters the gravity, abv,ibu etc but doesnt scale the ingredient quantities to suit.am i doing something wrong or is it a feature that isn't available?
also-only a minor niggle- but the default amount/time labels could be changed to be more realistic, for instance hop additions are in seconds rather than minutes and liquid volumes are in ml rather than litres, i know its easy to change but its annoying when you forget and it resets itself and could the labels be changed to accept both lower and uppercase, when i worked through the sample recipe instruction page i put in say 68c instead of 68C and it reset itself, only minor niggles i know but can be annoying.
anyway, thanks for allowing us access to the software, i was going to by beer alchemy but i think i'll play with this for a while before i make my mind up, thanks again:mug:

With regard to batch size, that perhaps should be called "target batch size" meaning how much wort you intend to end up with in the primary. I'll change that so it's more clear. I'll also add a scale tool to scale the recipes.

About default units, it uses the smallest appropriate unit that it can. That's why for anything time related, 0 will always read "0 s". By no means do you have to enter it in seconds though. Sorry about the goof on the instruction page! I'll fix that, and look into ignoring the case on units.

Thanks for all the suggestions, btw! I'm really picking through the code each time, so, you're making the next version of your software better.
 
I'm dying to try out your software for my first AG session this weekend. However when I go to build it, I get this error message:

myrdhyn@yourmom:~/Desktop/brewtarget-1.1$ ./configure

---Configure script for Brewtarget.
OS: Linux...yay!
/usr/bin/qmake brewtarget.pro

You are now ready to run "/usr/bin/make" then "/usr/bin/make install".

myrdhyn@yourmom:~/Desktop/brewtarget-1.1$ make
/usr/share/qt3/bin/uic styleEditor.ui -o styleEditor.h
/usr/share/qt3/bin/uic timerWidget.ui -o timerWidget.h
/usr/share/qt3/bin/uic yeastDialog.ui -o yeastDialog.h
/usr/share/qt3/bin/uic yeastEditor.ui -o yeastEditor.h
uic: File generated with too recent version of Qt Designer (4.0 vs. 3.3.8b)
make: *** [yeastEditor.h] Error 1

I have both Qt3 Designer and Qt4 Designer installed because you said you had both installed. Any ideas why I can't get this to build?
 
I'm dying to try out your software for my first AG session this weekend. However when I go to build it, I get this error message:



I have both Qt3 Designer and Qt4 Designer installed because you said you had both installed. Any ideas why I can't get this to build?

I'm almost certain my code is incompatible with Qt3. Build it against Qt4 (preferably 4.5). If you have a debian-based distro on an intel machine though, just grab the .deb package that I built.
 
I tried it with both Qt3 and Qt4 alone and got a bit furhter but still had errors. The .deb package won't run because I'm running a 64-bit OS (Ubuntu) and it sees an incompatibility.

I checked it out under my windows partition some, and I'll be rebuilding my laptop with a 32bit OS so I'll toy with it there.
 
You make your own beer and you run Linux?


I'm compiling it right now on Gentoo. :rockin:
 
I got some compiler errors:

FermentableTableModel.h:68: error: expected class-name before '{' token
FermentableTableModel.h:68: warning: 'class FermentableItemDelegate' has virtual
functions but non-virtual destructor
ui_htmlViewer.h:25: error: ISO C++ forbids declaration of 'QWebView' with no typ
e
ui_htmlViewer.h:25: error: expected ';' before '*' token
ui_htmlViewer.h: In member function 'void Ui_htmlViewer::setupUi(QDialog*)':
ui_htmlViewer.h:34: error: 'webView' was not declared in this scope
ui_htmlViewer.h:34: error: expected type-specifier before 'QWebView'
ui_htmlViewer.h:34: error: expected `;' before 'QWebView'
unit.h: At global scope:
 
I tried it with both Qt3 and Qt4 alone and got a bit furhter but still had errors. The .deb package won't run because I'm running a 64-bit OS (Ubuntu) and it sees an incompatibility.

I checked it out under my windows partition some, and I'll be rebuilding my laptop with a 32bit OS so I'll toy with it there.

Huh. I'm running 64-bit Ubuntu also...I built from source, but haven't checked my flags or anything. Maybe I'll see what linked where, etc. It was literally the easiest build I've ever had (did the configure and make, and 15 seconds later it was installed!).
 
I got some compiler errors:

FermentableTableModel.h:68: error: expected class-name before '{' token
FermentableTableModel.h:68: warning: 'class FermentableItemDelegate' has virtual
functions but non-virtual destructor
ui_htmlViewer.h:25: error: ISO C++ forbids declaration of 'QWebView' with no typ
e
ui_htmlViewer.h:25: error: expected ';' before '*' token
ui_htmlViewer.h: In member function 'void Ui_htmlViewer::setupUi(QDialog*)':
ui_htmlViewer.h:34: error: 'webView' was not declared in this scope
ui_htmlViewer.h:34: error: expected type-specifier before 'QWebView'
ui_htmlViewer.h:34: error: expected `;' before 'QWebView'
unit.h: At global scope:

Basically, your version of Qt doesn't know what QWebView is. QWebView was first introduced in Qt 4.4. So, if you can, get the latest qt development packages.

I think a lot of errors people are having when compiling from source seem to be stemming from the fact that they don't have the latest dev packages for Qt. Just remember, get your hands on 4.5 if you can. I know this is somewhat of a pain, but, I submitted my .deb package to debian, and I'm awaiting a package sponsor to put it in their repositories.
 
great program, took a bit to get accustomed to but i really like it now. May i suggest a FWH option?

great job!

Thanks for the complement! Absolutely you may suggest FWH. I was trying to get it into this last release, but my "deadline" was approaching (my marriage...she is now officially SWMBO, but she is completely cool with brewing, and made her own batch not long ago).

Anyway, keep using it, and keep suggesting features.
 
Thanks for the complement! Absolutely you may suggest FWH. I was trying to get it into this last release, but my "deadline" was approaching (my marriage...she is now officially SWMBO, but she is completely cool with brewing, and made her own batch not long ago).

Anyway, keep using it, and keep suggesting features.

What is the target date for implementing some of the changes?
 
No rush man! It was just a curiosity question.

You can always get the latest bleeding edge release if you PM me. I suspect that I'll release 1.2 and maybe 1.3 before Christmas. Depending on how much off time I get for Christmas, you may see 2.0 by next January. Hopefully, 2.0 will have a ton of cool new features.
 
Back
Top