I’ve noticed that over the past few years, a whole series of threads have been started on the topic of “Implementing features to automate the brewing process”, such as the one by PlazzmiK from May 2021:
"How hard would it be for me (knowing some basic programming) to rewrite the Blocks | Brewblox 5 widget/block/module to implement a simple auto-temperature step based on the following:
Sets PID to 30°
Waits till PID >= 30° (or close to, lets say 0.5 margin)
Starts timer
Timer goal reached
Sets PID to 40°
Waits till PID >= 40° (0.5 margin)
Starts timer
Timer goal reached
Sets PID to 50°
Waits till PID >= 50° (0.5 margin)
…
So basicly, instead of setting a time, setting a temp value based on a sensor and duration.
Add a basic start/pause/stop to it, this would safe me some timers, user errors and watching my brew."
or the one by Hellrazr from September 2020:
“Heya, not sure if there is a function like this allready. Is it possible to add a countdown timer widget. It doesent have to control anything, just to keep track of time passed. Maybe it could have a little alarm that can be configured when the timer reaches a defined setpoint.”.
An (audio) signal that can be placed at the end of a “block” would also be very helpful.
As I’ve seen, I’m by no means the only user who has this request.
Are there perhaps already options like this, and I just haven’t found them yet?
And I would be really thankful for information how this cam be done just using the Brewblox Software UI and Brewblox Spark 4 without touching the code which would request me to study IT and programming before.
I think the original purpose of adding the Sequence block was to help automate mashing in lieu of a dedicated mashing widget. I’ve not used it for this but have for other fairly complicated processes and it is quite versatile (but not necessarily straight forward). You can essentially start and stop any other block type using sensor input and/or time duration. The sequence block includes a start/stop interface and a built in countdown timer. You can also make the strike temp and step duration variables that references the Variables block so the Sequence block doesn’t have to be edited for a new batch.
There are also countdown and stopwatch widgets available that can be added to a dashboard.
For an audio signal, you could trigger a buzzer connected to one of the Spark IO outputs from within the Sequence.
Hi there,
Thank you for your hint and information.
I have built my hardware and set up several things, physically everything works, and setting up temperature manually my kettle works exactla.
So far I could start brewing MANUALLY, with watching my dashboard all the time and change temperature for the steps following each other.
I found the “Sequence” block and found also that I have to enter commands there to trigger the Brewbloxs to do automatically what I want it to do. Only I did not find any information about commands, how I have to det up these, in which sequence, which programming syntax (?) …
Do you habe an information for me where I can find a “repository” of commands and how to write these in the “Sequence” block?
Would be really nice, because I have been searching ror a source for more than 2 days now and did not find anything, or I was not able to ask the question in a way it can be understood.
I have not studied IT or programming, I can handle a computed system and I can do things further than the “housewife next door”, but I’m not the guy to research things from scratch (which has been done by other people already):
Thank you very much in advance for your hints, answers and information.
Cheers
Winfried
One more question please:
To trigger a buzzer connected to one of the Spark IO outputs from within the Sequence:
How do I have to connect that correctly to the Spark IO output (I assume with “+” and “-”, whart do I have to configure to that output?
And how is the command to get it buzzing or tweeting or whatelse it is supposed to do?
Thank you again for information.
A summary of the sequence block setup, use and instructions is available in the developer docs - Sequence Instructions | Brewblox. Also, when you create and edit a sequence block, the same instructions are provided in a window to the right for easy reference.
At the end of the first section, there is a set of example instructions to show what it looks like. The first item in each line in all caps is the operation (e.g., ENABLE, DISABLE, WAIT_SETPOINT) with the associated arguments following it. The target= argument is the block that is being acted upon and it must already exist. When you see a $ in front of an item, it is referencing a variable from within the Variables block which you must also setup. There is a configuration item in the sequence block that identifies and Variables block to use. If you make a mistake or reference a block that doesn’t exist, you will get an error message when trying to save the sequence.
The ENABLE and DISABLE operations turn blocks on and off. This can be about any block including actuators, profiles, and additional sequences. WAIT operations pause the sequence until a specified condition is met (e.g., a temp is reached, a called sequence is finished, a specific duration has passed, etc).
Regarding the buzzer, you can create a digital actuator and assign it two GPIO pins (yes, - and +) and then connect a buzzer to these pins. Its rating has to match the voltage provided by the Spark to the IO (e.g., 5VDC, 12VDC or 24VDC depending on how the Spark is powered and setup) and the current draw needs to be below 1 amp. Your sequence could then wait until a condition is met, enable the digital actuator for a defined duration and then disable it. For example, once the strike temperature has been reached.
Configuring and using a Sequence block takes a bit of experimentation to get your head around the format of the instructions and now to organise the order of events but it is worth the effort as it is a quite powerful feature although with a few quirks.