Thursday 3 April 2014

Automatic Brew Success!

Yesterday I decided to run another test. No changes to the code, just a complete re-run of the last brew so we could see how we go. I am pleased to announce that it turned out to be a success! No interaction was required to produce a fermentable wort from the first push of the "brew" button!

Heres a pretty lame video of the hop-dropper doing its thing for the boil. No hops were ejected on this "drop cycle" though. You can also see the rolling boil of the wort created by PWM of the Solid State Relays. The "hop sock" is something that is getting phased out soon. It will be a stainless perforated "hop sieve".

Code and Brew Log

There were a few minor programming issues that I came across when I went through the brew log. This log is the diag information sent back over the serial port so I can monitor technical things going on in the program.
Message passing: I created a generic message which has a very basic frame with information such as "source task", "destination task", etc and also a void pointer to the payload. This way, any payload size and datatype can be sent as a message. This may be dangerous in some respects, but I havent had issues with the payload side of things yet. The issues were with the source and destination elements. I found that the boil task kept receiving a message to turn on the elements at 55% at the transition of a step. Some steps explicitly turn off the boiler, so it seemed erratic and intermittent at the start. A quick path test of the boil task uncovered that if the message was received from the "brew task" then it would choose a duty cycle of 55% no matter what the payload contained. This was fine as it's what I want when boiling the wort in automatic mode. The problem I uncovered was the brew_reset() function also used the "source" as brew_task. Bingo. The reset function is called in between steps as a helper function to stop certain devices (such as boiling).
The path test of this code enabled me to optimise the module better and clean things up a lot. The minor bug has been removed so we wont have to rely on the level sensor to stop the boil when not called for!

The Result + Automatic Brew 2 (Another Success)

So here it is, about a week later and we're drinking a really nice DARK beer! A few parameter tweaks were made and we ran the machine for the second trial in automatic. It went off perfectly. This test saw better volumes and a more accurate temperature profile. I hold confidence in a very fine IPA in a weeks time. 
I just need some candidates to help me knock a few over!


Auto Brew 2 - Result

Ok, so its been a while and I will say that both brews were extensively tested by a panel of -- lets say -- tasters :-). The consensus was that the  IPA was pretty well amazing, but didn't last long! 
They both had a very clean profile with no off flavours or colours. 
Repeatability is now the focus. I will put together a basic recipe that we can use as a base, and make a couple consecutively. It will be interesting to see the brew-log and the results in the flavours.

+ A New Addition

I finally got the hop sieve cut and rolled, and Waz tigged it up, so it's ready to go for the next beer! 
Here's a quick look




No comments:

Post a Comment