Skip to content

BrewTroller v2.7 Manual (develop)

mattreba edited this page Jun 16, 2015 · 34 revisions

BrewTroller User Manual

Obtaining the Firmware

The latest develop branch of this repository is available here: https://github.com/OSCSYS/brewtroller/archive/develop.zip

Configuring the Firmware Source Code

This section covers changes that must be made before the firmware source is compiled and uploaded to a target device.

Hardware Profile Configuration

The BrewTroller firmware supports several different target device types. Each target device supported has a unique HWProfile.h file that configures BrewTroller for target device. These HWProfile.h files are stored in a HWProfiles folder structure within the source code. Currently, the source code is configured for use with the OpenTroller DX1. To configure BrewTroller for another device type simply locate the HWProfile.h file for your target device in the HWProfiles folder and replace the HWProfile.h file in the root folder of the BrewTroller firmware.

Compile-Time Configuration Options

The long-term goal for this project is to eliminate the need to configure and compile source code entirely. There are however a few options that are currently only available if enabled in the source prior to uploading. These options are configured in the Config.h file of the source code.

Unit (Metric/Imperial)

BrewTroller defaults to Imperial units (F/Gallons/Pounds). If you wish to use with Metric units you must uncomment the //#define USEMETRIC line by removing the proceeding '//':

#define USEMETRIC

Smart HERMS HLT

This option dynamically alters the HLT setpoint based on the mash setpoint and error. Error refers to the difference between the actual temperature and setpoint.

Buzzer Modulation

By default, an alarm condition will cause the configured alarm output to be activated constantly. This option causes the alarm output to be modulated or pulsed instead.

Mash Averaging

This option allows the mash temperature to be determined by averaging multiple sensor values together. You can optionally add the AUX1, AUX2 and/or AUX3 temperature sensors to the mash average.

Uploading the Firmware

Obtaining the Customized Arduino Integrated Development Environment (IDE)

This branch of BrewTroller is designed to be used with a customized version of the Arduino 1.0.5-R2 development environment. The official Arduino IDE has been customized to support the ATMEGA1284P microcontroller used by BrewTroller/OpenTroller devices and also includes libraries not included with Arduino that BrewTroller requires.

The custom IDE is available for both Windows and Mac systems:

Upload Procedure

  • Make sure the target device is connected via USB to the system being used to upload the firmware.

  • Launch the customized Arduino IDE.

  • Select ATMEGA1284P Board from the Tools-Board menu

  • Select the appropriate serial port for your target device from the Tools-Serial Port menu

  • Click the upload button → or select Upload from the File menu

User Interface Overview

BrewTroller boots to the Home Screen displaying the firmware version. An unlock icon in the upper right corner of the screen indicates that the user interface (UI) is unlocked and the encoder can be used to switch between logical screens. Clicking the encoder will lock the user interface on the active screen causing the encoder input to be sent to the screen. A click held for one second or longer will unlock the user interface.

Configuration Not Found

When you first upload the BrewTroller firmware you may receive a message stating "Configuration Not Found" followed by a menu with two choices: Initialize EEPROM, Cancel. You should select Initialize EEPROM to erase any previous settings and force default values.

System Setup

The BrewTroller firmware must be configured for your specific brewing system once it has been loaded to the target device.

Navigate to and lock the Home Screen. Click the encoder to launch the Main Menu. Select System Setup.

System Settings

Boil Temp

When the Boil Kettle output uses PWM this setting defines the temperature at which the Auto Boil logic should switch from full power to Boil Power.

Boil Power

When the Boil Kettle output uses PWM this setting defines the power level needed to hold the boil once the boil temperature has been reached if Auto Boil logic is used.

Evaporation Rate

This setting exposes the calculation factor used to determine the amount of liquor lost to evaporation during the boil. This is used to calculate recipe volumes.

Grain Displacement

This setting exposes the calculation factor used to determine the amount of volume grain will consume in the mash tun. This is used by the user interface to detect capacity issues with recipes.

Grain Liquor Loss

This setting exposes the calculation factor used to determine the amount of liquor lost to grain absorption. This is used to calculate recipe volumes.

Temperature Sensors

This menu is used to assign specific temperature sensors to vessels/functions. Use the encoder to navigate between the available sensor functions:

  • HLT: Hot Liquor Tank

  • Mash: Mash Tun

  • Kettle: Boil Kettle

  • H2O In: Water input temperature displayed on Chill screen

  • H2O Out: Water output temperature displayed on Chill screen

  • Wort Out: Wort output temperature displayed on Chill screen (typically used with counterflow chiller)

  • AUX 1: User-defined sensor displayed on AUX screen

  • AUX 2: User-defined sensor displayed on AUX screen

  • AUX 3: User-defined sensor displayed on AUX screen

Click the encoder for access to the following menu options:

  • Scan Bus: Scan the 1-Wire bus for an attached sensor that has not been previously assigned to a function

  • Delete Address: Clear the assigned sensor address

  • Clone Address: Copy the address from another vessel/function allowing a single sensor to be used for multiple functions

  • Cancel: Return to vessel/function selection

  • Exit: Exit Temperature Sensor menu

Note: It is recommended to attach a single sensor to the bus and assign its function. Then add a second sensor and assign it’s function. Repeat until all sensors have been detected and assigned. If multiple unassigned sensors are connected to the bus it will be more difficult to determine which sensor was found during a scan.

Vessel Settings

This menu provides access to vessel specific settings including heat output and volume/capacity settings. In addition, this menu exposes a Bubbler sub-menu that provides configuration for the intermittent bubbler system.

Vessel Settings:

  • PWM: The optional output to be used for Pulse Width Modulation (PWM) heat output. PWM is used to pulse an output for a percentage of time. This is typically used with electric heating elements and provide variable output power from 0-100% instead of simply on or off.

  • PWM Period: When a PWM output has been configured this controls the length of time that represents the entire PWM period including the percentage of time the output is active and the remaining inactive time.

  • PWM Res: This is used to control the number of increments available within the PWM period. For example, with the a PWM period of 1.0s and a PWM resolution of 120 the output time will increase in increments of 8.3ms. This is helpful to align the PWM output with the source AC power frequency. When using a resolution of 120 with 60Hz power each increment represents half of an AC cycle. For manual control of the boil kettle it may be helpful to use a smaller resolution of 60 or 30 so that fewer increments are required to adjust power output.

  • P Gain, I Gain and D Gain: The PWM output level is controlled by the PID algorithm. PID combines three different calculations to determine the output level: Proportional (P) represents current error, Integral (I) represents past error and Derivative (D) represents predicted error. The Gain settings allow these three calculations to be weighted.

  • PID Limit: This sets the output percentage resulting from the PID algorithm. The default value of 100 does not impose a limit.

  • Hysteresis: This setting is used to control when the Vessel Heat output profile is enabled. This heat control is completely independent of the optional PWM logic controlled in the previously described settings. Hysteresis is used to avoid rapid switching between Vessel Heat and Vessel Idle output profiles. A value of 1.0 degree caused the Heat profile to be enabled if the current temperature is 1.0 degrees or more below the setpoint. The Heat profile will remain on until the setpoint is reached.

  • Volume Sensor: This indicates the analog input to be used for volume measurement, if any.

  • Capacity: This indicates the maximum capacity of the vessel and is used to validate program recipe settings.

  • Dead space:

  • Volume Calibration

  • Clone Settings

Bubbler Settings:

  • Output

  • Interval

  • Duration

  • Delay

Output Profiles

RS485 Outputs

Step Automation

Triggers

RGB Setup

Display

This menu is used to adjust LCD brightness and contrast.

Initialize EEPROM

Use this option to erase all settings and reset to initial values.

Clone this wiki locally