Today I released BrewPlot, a program written mostly in QML with a little C++. With BrewPlot, you weigh the ground coffee, the brewed coffee, and measure the %TDS of the brew and BrewPlot produces a chart of strength over extraction. Tumblr posts related to BrewPlot can be found here.



I'm on Tumblr now. My posts there are mainly coffee and software development oriented. You can find posts about recent not yet released updates to Typica and Catimor, topics related to coffee roasting, and various other bits of fluff. You'll also be able to see my latest updates on Twitter and Twitpic there.

New Hardware Support


The most common reason I hear for not using Typica is that the data acquisition hardware needed is too expensive. My experience is that the time savings of using Typica compared to maintaining paper records or spreadsheets and the reduction in roasting mistakes I've noticed since I started using Typica is worth the approximately $600 it costs to connect a coffee roaster to the National Instruments USB-9211. While I think this is a great investment for most coffee roasting firms, there has also been interest in using Typica from home coffee roasters.

The main issue that has prevented me from supporting less expensive hardware in Typica is that most of the makers of similar hardware don't provide documentation on how to get measurements from the hardware. They expect you to use the software provided with the device which just isn't as useful as software designed specificially for coffee roasting. National Instruments changed that earlier this year with the introduction of the USB-TC01. This is a small USB device which accepts a single thermocouple (all major thermocouple types are supported) input and sells for about $100.

There are some disadvantages to the TC01. First, it only supports a single thermocouple compared to the four supported by the 9211, but there are a lot of roasters that only have one thermocouple, so this would not be an issue for them. The other disadvantage is that this device only works with computers running Microsoft Windows, so Mac and Linux users are still stuck with more expensive hardware. Of course, there are a lot of people using Windows who would not be troubled by this either.

This hardware can now be used with Typica 1.3.3 patch TC01 which is now available to download both pre-compiled and with its source code. This makes automated data logging for coffee roasters cheaper than ever.

It Does That


Sometimes I get email about Typica that goes along the lines of, "I love your program, but I wish it did x." When I was designing Typica, I knew that my needs were going to change over time. I also understood that different coffee firms have different needs, so I tried to make it easy to customize for various needs. Because of this, my answer to such emails is often, "yes, it does that. Here's a configuration that gets you that feature."

I'd like to share the result of a recent such discussion and recommend that Typica 1.3 users with a single thermocouple consider using this configuration or basing their customizations on it.

Download here.

The ccrc.xml configuration document adds a number of interesting features over the example configurations included with Typica 1.3. Here are some of the new features you'll find.

A free text annotation control on the logging window. While annotation buttons are still generally preferred for adding common annotations to the record of a roast, this provides a convenient way to add any text as the annotation to a point on the roast.

The ability to load arbitrarily many saved profiles in the graph view for comparison with each other, against a target profile, or against live data. Want to compare the coffee you're roasting against the previous 10 batches of that coffee? Now you can.

The ability to export data as an XHTML+SVG document. You can export the most recent roast or data from any previously recorded batch. If the log contains measurements from multiple thermocouples, all of them or any subset can be saved in this way. The export process allows you to specify optional additional information as well such as a name for the roast, instructions on the coffee to use, weight loss (if you specify this, it produces a nice little table showing how much green coffee to use to get common batch sizes of roasted coffee), and additional information which might be tasting notes, color data, or any other information that might be useful to share with the roast profile. The resulting document, such as this one, can be viewed or printed in any web browser that supports the relevant standards such as recent versions of Firefox, Safari, Opera, and iCab.

Note that this configuration requires no changes to Typica 1.3.

More Typica News


I generally don't like to talk about features that I want in future versions of software, preferring to instead wait until I'm at least close to a release and have the work mostly done, but lately I've been spending a lot of time in the 2.0 branch and there are some neat things going into that. Some of the work going on there could easily be moved into the 1.4 branch, but I don't know at this time if there's going to be any real value in a 1.4 release rather than just waiting for 2.0.

Perhaps the most exciting changes are happening in the database access code. Several changes are being made here to improve performance, make other new features easier to implement, and simplify the initial setup of Typica.

First, I'm eliminating the PostgreSQL requirement. PostgreSQL is great, it can be easy set up, and it provides the most versatile Typica installation, but it's also another step in setting up the software. It turns out that most people I've heard from using Typica have the program and the database running on a laptop at the roaster. They don't need the added versatility PostgreSQL provides. I'm not dropping support for PostgreSQL (I still intend to use it myself), but Typica will also be able to use SQLite database files. Users who intend to use that will not need to install PostgreSQL and copying and backing up a SQLite database file is no different from copying or backing up the other files on a computer. The initial database setup for both PostgreSQL and SQLite databases will also be easier than in previous releases.

All database access in Typica 2.0 will be performed in separate threads. This results in a faster, more responsive user interface, particularly when working with a database over a congested network.

Support for asynchronous database notifications has been added. This means that data aware controls will be able to automatically update themselves in response to changes in the database. That makes some new features and workflows much easier to implement and will allow certain existing workflows to be implemented in a more streamlined manner.

Some minor conveniences have also been added. For example, non-modal windows now feature a Window menu which can be used to bring up any open window rather than forcing users to use the dock or taskbar.

There isn't currently a release schedule for Typica 2.0. There are a few things that I'm waiting on. I've noticed that some workflows that I'd like to implement simply don't work well with a full laptop, but that I suspect would be nice on a cheap tablet (no, not an iPad) which should arrive later this month. There are some interesting features in Qt 4.7 that I'd like to be able to take advantage of as well.

Typica 1.3 and Photographs


On April 9, version 1.3 of Typica was released. This adds several new features. Users of old versions should be able to just download the new version, open the new version of the configuration document, click the Setup Database button, and start enjoying the new features. For more information, check the Typica project page.

Lately I've been uploading random photos that I take. You can see these on my photography page.

Typica for Windows


Another roasting company wanted to use Typica, but they didn't want to invest in a Mac when they already had a perfectly good PC running Windows XP. That seems reasonable enough to me and since Typica was written with no Mac-isms in the code, it's possible to just recompile the source on Windows and use it. (Typica also works on Linux. No source code changes required.) I've put together this archive with a pre-compiled version of Typica for Windows. Just install NIDAQmx Base (the version appropriate for your DAQ, it's tested with either the NI USB 9211 or the NI USB 9211A), PostgreSQL, then download Typica, run the executable, and start logging your coffee roasting data, managing your coffee inventory, and tracking your batches.

While the vast majority of testing been on the Mac (it's what I use to write the software and it's what I'm using it on every day), I'm told that the Windows version really does work.

Single Probe Configuration Update


While the example configuration files provided with Typica 1.2 do work, I have just noticed that the table in the single probe example configuration has one column more than is required. What can I say? I use the two probe configuration most of the time. In any event, all that is needed to fix this is to delete line 40 of oneprobe.xml (it should read <column>Air</column>) or download the replacement file here. If downloading, make sure you're downloading the file. Some browsers try to interpret the file and fail miserably.

Typica 1.2 Released


Typica is a data logging program that I wrote at Wilson's Coffee & Tea. This new version features support for communicating with a PostgreSQL database and the configuration system has been changed to make it easier to specify more complex user interfaces.

Version 1.2 is available in both source code and Mac OS X binary releases.

Typica Quick Start Guide for Mac OS X

The binary release of Typica requires two other pieces of software: PosgreSQL and NI-DAQmx Base.

Typica will work with the National Instruments USB 9211 or USB 9211 A. If the device came with software for Mac OS X, install that software. Otherwise, download and install the appropraite version.

NI-DAQmx Base 2.1 (for USB 9211)

NI-DAQmx Base 3.2 (for USB 9211 A)

To use the database features of Typica, download and install PostgreSQL. Once the software is installed, an empty database should be created. In this example, the database is called inventory, but the name does not matter. This example also uses the user postgres, but if you would prefer to create a different user for Typica to use, this would be the time to do that.

Open Terminal (found in /Applications/Utilities/) and type:

cd /Library/PostgreSQL/8.3/bin
./psql -U postgres
(enter password)

Copy Typica and its configuration files to the Applications directory. Open the program. The program should request the information it needs to connect to the database. The host name should be set to localhost. Once you click Connect, Typica will attempt to connect to the database. If a connection is successfully established, Typica will remember the connection details and will attempt to use them in future invokations of the program rather than asking each time it is run. The program will then request a configuration file. Typica comes with two example configurations. These are nearly identical with oneprobe.xml expecting to be connected to a roaster with a single thermocouple and twoprobe.xml expecting to be connected to a roaster with two thermocouples.

At this point, Typica is ready to use for basic data logging. To use the database, some information needs to be entered.

To create the required tables in the database, click Setup Database. Next, click New Roaster and enter a name and number to identify the machine Typica is connected to.

To add green coffee items, click Purchase Green Coffee and enter the purchase details from your invoices. The quantity in stock can be adjusted by clicking Update Inventory. This is most conveniently done when a bag of coffee has been emptied and the number of bags remaining can be entered as the inventory rather than the number of pounds.

An item representing a roasted coffee can be created by clicking New Roasted Coffee Item.

To start roasting coffee, click Roast Coffee. If the database has information on the coffee being roasted, select the New Batch menu and enter the details of the batch. If the database has a roast profile associated with a roasted coffee item, click the Load Profile button. This will result in the target profile being loaded in the logging window. Clicking the Start Batch button will start cause the program to start logging data. The batch info window (now behind the logging window) will be updated with the time the batch was started. When the Stop Batch button is clicked, the logging will stop, the duration of the batch will be entered in the batch info window, and that window will be moved to the top of the stack. Once the weight of the roasted coffee, any desired annotation, and any preliminary approval of the batch has been entered, click the Submit button.

It is possible to create multiple batch info windows (for example, to start a new batch while the previous batch is still cooling). Also, no information about a batch is sent to the database until the Submit button is clicked.

Once the database has information regarding batches of coffee, this information can be retrieved by clicking Batch Log. A table containing details of every batch in the database will be presented. Double clicking on any row will show a window with details of the batch and a pair of buttons. To view the record of the batch, click View profile. The other button sends that record to the logging window for use as a target roast profile.

What's Next for Typica?


Perhaps the most important change for the next release of Typica is that there will be a Mac binary distributed in addition to the usual source code release. With current releases, to use the program it is necessary to install developer tools, download Qt, and figure out how to get the program compiled. Nothing hard, but if you aren't a programmer it can be a little off puting. Starting with the next version of Typica, this will be simplified to installing the software that comes with the DAQ and then downloading and running Typica. That is only planned for Macs mainly because that's what I have to work with. It should work on modern Windows and Linux systems, but you'll have to either compile it yourself or hire someone to do that for you if you want to use those platforms.

Typica will be moving to the Qt 4.4.x series of releases. As of 4.4.3 (possibly earlier) improvements have been made to Qt in two important areas. The scripting environment no longer gets itself stuck as could happen randomly with extended use with the 4.3.x series. Problems with the graphics view architecture have also been fixed, allowing me to go back and get rid of the awful nasty hacks needed to get things to look right. If you tried a previous version of Typica and found it to unbearably awful to look at on your system, this should not be an issue with the next version.

Of course, there are functional changes in the Typica code base as well. So far these are minor things such as bothering to scale the graph when the size of the graph view changes.

There are several other changes that I hope will be ready for the next release, but I'd rather not mention specifics until they are in the code and working rather than have to cut announced features if things don't work out. Watch this space for further details.

Typica 1.1 Released


Typica is a data logging program that I wrote at Wilson's Coffee & Tea. I have been using it daily with our roasters. Version 1.1 introduces a scripting engine which allows the interface and data flow to be customized to a variety of roasting configurations more easily than the previous release. Example scripts are included.

Complete source code and documentation for Typica 1.1 is available here. This is what you want if you plan to use the software.

Those only interested in viewing the code can view the documentation. Note, this is not user documentation. This is the program source code and information on how it works.

Typica 1.0 Released


Typica is a data logging program that I wrote at Wilson's Coffee & Tea. I have been using it daily at the production roaster and recently got it working with our sample roaster.

Complete source code and documentation for Typica 1.0 is available here.

Those only interested in the source code can view the documentation.

Watch this space for more information.