A program for mashing malt for beer, grain washes and sous-vide
The program is stored in Samovar's memory and is not lost on reboot. If there is no user program, the factory example is loaded. *
The program loaded by default is shown below:
The "Program" («Программа») tab: the factory mashing program
 Program type («Тип программы»)
Choice of the program to execute: Pause («Пауза»), Malt dough-in temp. («Темп. закладки солода»), Boil («Кипячение»), Cooling («Охлаждение»), Wait («Ожидание»), Fermentation («Брожение»), Autotune («Автотюнинг»), Lua script («Lua Скрипт»).
|
 Temp. («Темп.»)
The line temperature in °C. It is set for Pause, Cooling, Malt dough-in temp., Fermentation and Autotune; for Boil and Wait it is 0.
|
 Time («Время»)
Time in minutes. It is set only for Pause and Boil; for the other types it is 0.
|
 Stirrer («Мешалка»)
The operating mode of the stirrer and circulation pump: device^stirrer speed^pump speed^run time, s^pause, s. Clicking the field opens the editing window.
|
 Temp. sensor («Датчик темп.»)
The sensor that controls heating or cooling in this line: Boiler («Куб»), Water («Вода»), Column section («Царга»), Steam («Пар») or TCA («ТСА»).
|
 Save program («Сохранить программу»)
Save the program and its description to the programbackup.txt file.
|
 Load program («Загрузить программу»)
Load a program from a file into the editing window (it reaches Samovar's memory after "Set program" («Установить программу»)).
|
 Set program («Установить программу»)
Write the program to Samovar's memory.
|
 Clear program («Очистить программу»)
Delete all program lines from Samovar's memory.
|
 Load recipe from XML («Загрузить рецепт из XML»)
Go to the BeerXML recipe import page.
|
Above the table a hint is shown, "Brewing order from settings: …" («Варочный порядок из настроек: …») - the brewery layout chosen on the Beer tab («Пиво») in the Settings. It does not affect how the program runs; it is used by the BeerXML recipe import.
Columns:
№ - The program line number. No more than 20 lines can be set in total.
Program type («Тип программы») - choice of the program to execute
Temp. («Темп.») - temperature setting in degrees C°
Time («Время») - time in minutes.
Stirrer («Мешалка») - a field for setting the operating modes of the stirrer and the circulation pump. It is filled in through a window that opens when you click the field.
Temp. sensor («Датчик темп.») - the choice of which temperature sensor to use to control heating or cooling (needed to implement different brewing orders). You can choose one of 5 sensors: "Boiler (mash)" («Куб (затор)»), "Water (HERMS boiler)" («Вода (бойлер HERMS)»), "Column section (RIMS return)" («Царга (обратка RIMS)»), "Steam" («Пар»), "TCA" («ТСА»).
The "+" and "-" buttons at the end of a line add a line after the current one and delete the current one.
Below the program there is a collapsible "Mashing program description" («Описание программы затирки») field, in which the program is shown in text format.
The program in text form and the description field
 Mashing program text («Текст программы затирки»)
The same program in the text format Type;Temperature;Time;Stirrer;Sensor. You can edit the lines right here and the table will update.
|
 Mashing program description («Описание программы затирки»)
A free-form description (up to 250 bytes). It is saved to the file together with the program and is sent to the cloud at the start of the brewing session.
|
Line format: Type;Temperature;Time;Stirrer;Sensor, for example "P;60.00;1;1^-30^0^2^3;0". The stirrer is set with five numbers separated by "^" (see Stirrer, Pump, Temperature), the sensor by a number from 0 (boiler) to 4 (TCA).
Line designations explained:
M (malt application temp) – "Malt dough-in temp." («Темп. закладки солода»): heat to the set temperature and hold it until the operator switches to the next program line. When the set temperature is reached, a message will arrive saying the malt must be added. The time in the line must be 0.
P (pause) – "Pause" («Пауза»): heat to the specified temperature and hold it for the set time. When the time runs out, Samovar switches to the next program line. The temperature and time must be greater than 0.
W (wait) – "Wait" («Ожидание»): do nothing and wait until the operator switches to the next program line. Heating and cooling are off; the stirrer and pump work on the line's schedule. The temperature and time are 0.
B (boil) – "Boil" («Кипячение»): boil for the set time. 30 seconds before the time runs out, Samovar sends a message that hops must be added. That is, if hops must be added several times, there must be several boil lines. You can use just one, but you will have to track the hop addition time yourself. The temperature must be 0, the time greater than 0.
C (cool) – "Cooling" («Охлаждение»): cool to the set temperature. The cooling water supply valve opens and the cooling pump turns on (if one is used). The time must be 0.
F (ferment) - "Fermentation" («Брожение»): hold the set temperature by heating and cooling. Time 0 - hold indefinitely, until the line is changed manually; time greater than 0 (in minutes, up to 43200) - go to the next line when it runs out, see Fermentation Program.
A – "Autotune" («Автотюнинг»): automatic tuning of the heating PID controller coefficients at the set temperature. When it finishes, the Kp, Ki, Kd coefficients are saved in the settings (Beer tab), and Samovar moves to the next line. The time is 0, the stirrer is off.
L – "Lua" («Lua»): the stage is controlled by a Lua script from a file on Samovar (only in firmware with Lua support, see About the Lua Scripting Language). When you choose type L, the "Lua stage" («Lua-этап») window opens: in it you choose the script file (any .lua file from Samovar's memory), set the stage timeout in seconds (1–65535) and, if needed, the parameters the script will receive in the arg table. The temperature, device and sensor are not set for such a line. The script must call setNextProgram(); if it does not manage to do so before the timeout or ends with an error, brewing stops.
If the program lines run out, Samovar turns off heating and finishes the program with the message "Mashing program finished" («Программа затирания завершена»).
At each transition to a new line the message "Transition to program line No. N" («Переход к строке программы №N») arrives with the line parameters. If "Turn on the buzzer when the program changes" («Включать зуммер при смене программы») is enabled in the Settings (Main tab), the buzzer also sounds.
The next collapsible field is the mashing program description in free text format (up to 250 bytes). It is saved together with the program in the backup file and is sent to the cloud at the start of the brewing session, for example:
"Vienna. 25 L. Mashing 64/67/72/78, boil 60 min, hops 33 g at 60, 30 and 5 min."
Explanations based on the starting program loaded by default.
Attention. There are line types that ignore time or ignore temperature. A program with an incorrectly filled line will not be accepted: when you try to set it, the message "Program error." («Ошибка программы.») appears with the number of the wrong line and the reason (for example, "Line 1: "Pause" - temperature and time greater than 0 are required" («Строка 1: «Пауза» - нужны температура и время больше 0»)), and at the start of brewing a message with the number of the faulty line appears.
Line 01. Malt dough-in temperature. Temperature 45° . Time 0
Water is poured into the mash vessel and heating is turned on. If a boost heating element is used, it also turns on.
In "Boost" («Разгон») mode, Samovar will keep heating the boiler up to 44°C.
Then the "Boost" mode turns off and heating is controlled by the PID controller, to approach the set temperature smoothly.
After the temperature of 45° is reached (more precisely, 44.7° with a tolerance of 0.3°, more on the tolerance below), Samovar shows the message "Malt dough-in temperature reached!" («Достигнута температура засыпи солода!»), and "Waiting for malt dough-in" («Ожидание засыпи солода») appears in the status line. Samovar will hold this temperature and wait indefinitely.
When the malt is added, the temperature in the mash tun starts to drop, and Samovar increases heating to hold the temperature.
After the malt is added, press "Next" («Далее») in the main window of the "Beer" («Пиво») mode. Execution of line No. 2 will begin
Line 02. Pause. Temperature: 45° . Time 1
Holding the temperature of 45° for 1 minute and an automatic transition to line No. 3. The message "Transition to program line No. 3; Temperature rest: 60.00°, time: 1.00 min" («Переход к строке программы №3; Температурная пауза: 60.00°, время: 1.00 мин») will be sent
Line 03. Pause. Temperature: 60° . Time 1
To reach the temperature, Samovar gives the regulator the "Boost" («Разгон») command. A few degrees before the target temperature the boost heating element turns off, the main heating element keeps working in "Boost" mode and then under the PID controller, i.e. the heater works on the same principle as for line No. 1
Depending on the boiler volume, heating the last fractions of a degree can take a long time. So the time count for a line starts when the temperature is short of the set one by the tolerance. The tolerance is the "Setpoint overshoot" («Вылет за уставку») field of the line's sensor on the Settings - Temperature tab: from 0.3° to 3°; a value below 0.3° (including 0) is counted as 0.3°. The new value takes effect immediately after the settings are saved, including during brewing. For line No. 3 with a tolerance of 0.3°, the count starts at 59.7°, and the message "Temperature rest of 60.00° reached. Waiting 1.00 minutes." («Достигнута температурная пауза 60.00°. Ждем 1.00 минут.») arrives.
If during the rest the temperature drops below the tolerance (for example, after topping up), the time is not counted in full: the greater the undershoot, the slower the count. With a tolerance of 0.3° and a temperature of 58.35° (an undershoot of 1.65°), a minute is counted as half a minute. With an undershoot of 3° or more, the count stops and the message "Hold paused: temperature below target" («Пауза выдержки: температура ниже цели») arrives; after recovery, "Hold resumed" («Выдержка продолжена»). Heating works all this time. Overheating above the set temperature does not slow the count. The time of a manual pause (the "Pause" («Пауза») button) is also not counted toward the hold.
When the execution time is over, Samovar automatically moves on to the next program line
Line 04. Wait. Temperature 0.00. Time 0.
Wait for an operator command, doing nothing. No time is counted. Heating does not work either. The stirrer and pump, if set in the line, work.
Line 05. Boil. Temperature 0.00. Time 1.
Boil for the set time. No temperature value is entered in the line, only the time counts; zero time is not allowed. Samovar heats the boiler with a setpoint of BOILING_TEMP + 5° (the algorithm for reaching the temperature is the same as for line No. 1; the status line shows "Boil - heating" («Кипячение - нагрев»)).
Samovar detects the start of boiling by itself: when the temperature on the line's sensor is not below 98° and stops rising for about a minute. Then the message "Boiling mode started" («Начался режим кипячения») arrives, the time count begins, and heating is switched to the "Regulator voltage/power in heating and boiling mode" («Напр./мощность регулятора в режиме нагрева и кипения») value from the Beer tab; the boost heating element works during boiling only if "Use boost heating element during boiling" («Использовать разгонный тэн при кипении») is enabled there. If boiling is not detected within 120 minutes, brewing stops with a message to check the boiler sensor, the liquid volume and the lid.
30 seconds before the line time runs out, Samovar sends the message "Add the hops!" («Засыпьте хмель!»), turns on the buzzer and makes a stepper motor step (for a hop dispenser, see Additive Dispensers). If hops must be added several times, there must be several boil lines: on moving to the next "Boil" («Кипячение») line, boiling is not detected again and the time count starts at once. You can use just one line, but you will have to track the hop addition time yourself.
The boiling temperature for your equipment is set manually, in the Samovar_ini.h file, the line #define BOILING_TEMP 98.9. If the boiler temperature exceeds BOILING_TEMP + 5°, Samovar performs an emergency heating shutdown.
Line 06. Cooling. Temperature 30. Time 0
Cool to the set temperature. The time is not counted. Heating turns off, the cooling water supply valve opens and the cooling pump turns on at full power (if pump control is enabled in the firmware). When the temperature on the line's sensor drops to the set one, the valve closes, the pump stops and Samovar moves on to the next line. If the boiler has not cooled within 120 minutes, brewing stops with a message to check the sensor, the water supply and the valve.
To skip cooling with the "Next" («Далее») button while the wort is hotter than the target, the press must be repeated within 10 seconds; Samovar warns about this with a message.
The command buttons are at the very bottom of the window:
Save program («Сохранить программу») - the mashing program together with its description will be saved to the programbackup.txt file in your browser's Downloads folder.
Load program («Загрузить программу») - load a mashing program from a file. Both a file saved with the "Save program" button and a plain text file with program lines are accepted.
Set program («Установить программу») - set the program in Samovar's memory for execution. The message "Program saved." («Программа сохранена.») will appear.
Clear program («Очистить программу») - delete all program lines from Samovar's memory (with confirmation).
There is also a second way to get a recipe, without saving a file to your computer: press "Load recipe from XML"; in "Beer" («Пиво») mode the "Beer recipes from the site" («Рецепты пива с сайта») card is shown at the top of the page that opens - the samovar-tool.ru recipe catalog, from which a recipe is chosen right in the browser. For details, see the page on loading a recipe from a BeerXML file.
During operation, as in the other modes, the operation log is saved to internal memory and to the cloud. Charts are plotted.
* How do I make the Beer program load your recipe by default?
The factory example program is set in the prepare_default_program_for_mode() function of the sensorinit.h file. Do not rely on the line number: it changes between releases.
Set and save the program for an upcoming brew through the web interface. Change the source only if you need a different factory example, which is created when there is no user program.
After changing the factory example, the firmware must be rebuilt and uploaded again. After every Samovar version update, the change will have to be repeated.