I’ve been brewing beer for the past few years, and it is a lot of fun. As a programmer, I want to play around with code to track data. One of the things that frustrated me with brewing is knowing when the beer is “done”. To do it correctly, you have to find out when the yeast has finished eating the available sugars. This is done by testing the gravity of the beer, which measures how much sugars are left in the liquid. Traditionally, people would do this with a hydrometer. You pull out a bit of the fermenting beer and see where a piece of (calibrated) glass floats to determine the gravity. This is difficult to do with traditional homebrew glass carboys because you have to open up the top and somehow pull out some of the liquid without contaminating the beer. You are basically looking for a period in time when the gravity doesn’t change; that means the beer is done fermenting. But, we never did this; it was too cumbersome, and I hated using a hydrometer. We also have a refractometer to measure the sugars in a beer…which only needs a few drops of liquid….but it is still cumbersome to get those few drops and accuracy isn’t all that great (it is hard to accurately read the line). I need a small stainless steel conical fermenter that allows pulling small samples, but I haven’t been able to find a used one at a reasonable price yet.
A while back I discovered the “iSpindel”. Some ingenious germans made a little device that can measure the tilted angle of a floating tube. The angle varies depending on the amount of sugars in the beer, so you can fairly accurately determine the gravity as a beer is fermenting. Cool! I instantly wanted to make one, but never got around to it. I have too many hobbies and projects.
Fast forward a while, and I stumble upon the Tilt Hydrometer. Someone took the iSpindel concept and made a commercial product out of it. I forked over the $135 bucks for one and started using it.
The Tilt is pretty cool. There is an iOS app that lets you check the gravity and logs it to a Google spreadsheet. This sheet will tell you all the logged values over time, and show you a cool graph of the gravity and temperature. But, it also does an ABV and apparent attenuation calculation. The sucky thing about the app is that you have to launch it to get it to log the values. I want something that always logs the values.
So, I started an app that logs the Tilt values into a CoreData backed database and called it FermentationTracker. You can download the Swift source at https://github.com/corbinstreehouse/FermentationTracker/tree/master/FermentationTracker
I figured out how to read the Tilt’s BLE beacon data, and toss it into my own database. I didn’t get very far with this app, and I quickly realized my primary Mac was too far away from the Tilt to actually read the BLE data. So, I had to run it on my laptop….and I don’t like keeping my laptop plugged in 24-7 due to battery life issues (that’s another topic in itself based on my EV understanding of lithium ion cells).
Fast forward again, and I ran across Fermentrack. An open source project that does what I wanted, but has a web based interface. It lacks a few features, but being OSS, I can tweak it. So far, I already added ABV calculations, and I plan on adding a more beer-centric presentation.
So, I’m going to stop working on FermentationTracker, and pursue some work on Fermentrack.