This is where I will announce the most recent version of RoastLogger and list the version information advising the changes made: 

RoastLoggerTC4 sketch updated to version 3.4  8/11/2016

This is a minor update to the RoastLoggerTC4 sketch with the following new functionality:

  • Added user.h options to set the heater and fan level to be applied when RoastLogger sends an eject command (user clicks eject beans in RoastLogger).
  • Modified phase_ctrl.cpp so that, when using AC_FAN, both the fan and heater are forced off if the ZCD fails or loses mains connection. 
  • Some users have had difficulty setting the various options in user.h to enable the AC fan/blower control functionality.  This update adds a new folder to the distribution which contains a version of user.h with the settings changed to support AC fan control.  This can be used as an example of the settings required or can be swapped with the default user.h to provide AC fan control.  See the new folder “user_h for AC fan” for details.

Version 2.4.0 25/6/2016

This update contains a new version 1.3 25/6/2016  of the RoastLogger Updater to fix an issue with executable permissions for the USB HID readers not being set correctly in some operating system versions.  This only affect users reading USB HID devices via the DMM tab who found that, after an update, they could not run the relevant USB HID reader without manually setting the execute permission.

Only the Updater is changed in this update so the RoastLogger version remains as 2.4.0.  If you do not use a USB HID device connected via the DMM tab or do not have a problem connecting to it then there is no need to download this version. 

If you do have this problem then you can either set the execute permission for the USBHIDReader manually as described in section 5 of the Troubleshoot webpage or you can proceed as follows:

1.  Run your current version of RoastLogger and select menu item “Help > Update RoastLogger” to update to the latest version .
2.  Run the latest version (containing the new updater) obtained from 1. above and again select menu item “Help > Update RoastLogger” to update to the latest version.  This time you will be using the new updater which should correctly set the required execute permissions.
3.  Remove the previous versions of RoastLogger to avoid confusion over which version to run in future.

Version 2.4.0  9/6/2016

This update is issued to correct all URL links to point to the new RoastLogger website.  The only change in functionality is the update of the included RoastLogger Updater (to version 1.2) which now connects to the new site to download updates and has improved error handling.  All other changes are simply to correct links provided for information in RoastLogger including the help about, help contents and readme documents.

This version has to be downloaded manually by clicking on the RoastLogger.zip link on the downloads page.  If you are currently using version 2.3.9 then it is suggested that there is no need to download this version.  When any future version is released you can download that manually instead.

Version 2.3.9  19/2/2016

This is a minor update to fix one minor bug which could cause distortion of the heater curve on the chart when a previous log is loaded.  The issue only occurred in previous version when all the following specific circumstances applied:

  • Only one temperature input is used (i.e. the T2 temperature in the log is blank).  If T1 and T2 are both used no problem occurs.
  • RoastLogger is used to control the heater and fan rather than just log and chart roasts.
  • The menu option to show the heater and fan curves in the chart is selected.

The fix resolves the issue for previously created and future logs.

Version 2.3.8  25/1/2016

  • This is a minor update to assist those controlling air roasters via the RoastLogger PID and the action tables.  Previous versions of RoastLogger have suspended reading the action tables for 60 seconds after drop in.  This allows actions to be set at temperatures below the drop in temperature which is desirable for control of drum roasters.  This update provides a new Controller menu item to allow the user to choose the 60 second delay or no delay which is more suitable for air roasters.

RoastLoggerTC4 sketch updated to version 3.3

The RoastLoggerTC4 sketch up to and including version 3.1 was intended to provide control of a heater and DC fan via a TC4/C and RoastLogger.  This update adds additional options including the option to control an AC fan/blower driven by an induction motor.  The default options in user.h result in the sketch behaving with the same functionality as previous versions.  To obtain the new functionality you should select the relevant options in user.h before compiling/uploading the sketch. 

Additional functionality provided:

  • Support for AC fans/blowers using induction motors in addition to DC fans.  The AC fan support provides phase angle control for the fan via OT2 and a random fire SSR.  Use of this option requires a zero cross detector  (true on logic low) connected via IO3.  See http://www.mlgp-llc.com/arduino/public/tc4-wiring-small-20111120.jpg for suggested wiring diagram.  This option also provides integral cycle control PWM for the heater via OT1 and a zero cross SSR.  When this option is selected the heater is, by default, controlled using Bresenham’s algorithm which switches individual mains cycles on or off to provide the required power to the heater.  This is good for electric heaters controlled via a SSR but may be switching too fast for some unusual cases such as some gas solenoid valves.  A further option for a slow switching alternate PWM is also provided.  This is on for the current heater setting number of mains zero cross pulses and then off for the remainder of 100 pulses. This will result in one cycle of the valve per second.
  • Support for heater and fan control via 10 K linear potentiometers.  If this is selected either or both of RoastLogger and the 10 K pots can be used to control the heater and fan.  The last change in setting by either is implemented.  If a separate power supply is connected to the Arduino/TC4 then the pots. can be used stand alone without a computer connected.
  • Made limiting the rate of increase in fan setting optional.  The default enables limiting the rate of increase of fan setting to avoid overload and shutdown of Hottop roasters.  Hottop users should ensure this is enabled.
  • Support to assist in protecting air roaster heating elements.  This allows users to set a minimum fan setting below which the heater will be forced off.
  • Added eject command placeholders to act on an eject command from RoastLogger and to send an eject command to RoastLogger.  When the eject beans button is pressed in RoastLogger it sends an eject command to the sketch.  The sketch can also send an eject command to RoastLogger.  If a roast is currently underway RoastLogger will respond by clicking its eject beans button to stop logging and charting. 
  • Modified the sketch and relevant libraries to allow it to compile under the latest version ( 1.6.6 ) of the Arduino IDE.   It is recommended that the sketch is compiled under version 1.6.6 as earlier versions of the Arduino IDE contain a bug in the Arduino Wire library that can cause the Arduino to lock up if a glitch occurs on the I2C bus.  The latest version of the required libraries is included with the sketch.  Please ensure that these latest copies are added to your libraries folder to avoid errors on compiling/verifying the sketch.

Version 2.3.7  5/9/2015

  • This update fixes one issue which only affects Windows 10 users who are using Victor 86 multimeters for input.  These users were experiencing difficulty establishing a reliable connection to the Victor 86.  Microsoft has changed the way it handles these USB HID devices in Windows 10 compared to all previous versions of Windows. 
  • There is no need to update from version 2.3.6 to this version if you are not running RoastLogger on Windows 10 and using Victor 86 multimeters for input.

Version 2.3.6  17/5/2015

  • Adjusted the colour of the bean and environment temperature curves making them slightly darker.  This is to allow them to stand out better against the background.
  • Increased the height of the current roast event markers slightly and added a new menu option “Increase height of roast event markers” to increase the height even further.  This is to help keep the event markers away from the ET curve especially on higher resolution displays.
  • Fixed a minor bug in menu item option “Show event markers in chart”.  Previously this would prevent the redrawing of the markers on turning this item off and then on again if no template curve was loaded.

Version 2.3.5  1/4/2015

  • Added powerful additional smoothing to temperature and RoR curves displayed in the chart.  This additional smoothing can be turned on or off separately for template curves and current roast curves. 
  • RoastLogger already includes a number of strategies to ignore sudden peaks in readings and to provide some mild filtering and smoothing on input data.  With a reasonably good thermocouple installation this is all that is required to produce smooth curves.  This update is to help those users who have a less than adequate installation producing noisy temperature inputs. 
  • The methods applied to achieve this additional post roast smoothing are not suitable for use during a roast but are applied to completed roasts or on loading a previous roast log as the template or as the current roast.
  • This additional smoothing is applied to the curves shown in the chart only.  To preserve accuracy the raw (unsmoothed) data is shown in the event table, the event markers and the roast log.
  • A new smoothing menu allows the user to select various options regarding the degree of smoothing and how and when it is applied.  Tooltips  are provided to describe each option.
  • The option to separately smooth template and current roast curves allows you to load the same log as both the template and current roast with the current roast curves smoothed and the template curves showing the raw data.  This allows you to see the effect of the smoothing to judge what smoothing settings are best for your setup.
  • You can switch template curves between raw and smoothed data at any time including during a roast. 
  • You can switch the current roast curves between raw and smoothed at any time except during a roast when this option is disabled and the raw data is displayed.  At the end of a roast, after pressing eject, the roast curves will be smoothed if the relevant menu option is selected.
  • For an example of the effect of the smoothing see the RoastLogger thread on TMC which includes a chart comparing the raw and smoothed data for a very noisy thermocouple installation.

Version 2.3.4  19/3/2015

  • Added the functionality to adjust the RoR axis maximum and minimum values via the menu option “Set chart axes”.  Selecting either Celsius or Fahrenheit sets the relevant default values for the temperature and RoR axes.  The user can adjust these further via spinners.  Any changes take effect when the “set chart axes” dialog is closed.
  • Added  the Scott Rao ratio to the chart event table and the roast log.  On completion of a roast the Rao ratio is added to the beginning of the log, after any chart title and added to the chart event table.  On loading any log as a template or current roast the Rao ratio is displayed in the chart event table.  In these cases it is calculated from the data in the log so it will display the ratio for any previous log including logs produced before the Rao ratio was calculated by RoastLogger.
  • Updated the code related to saving chart images.  The user is now warned if they attempt to overwrite an existing file so that an alternate filename can be chosen.   The save dialog also suggest a filename representing the current date in YYYY-MM-DD format.  This is selected when the save dialog opens so if you do not want the date as part of your filename just start typing to overwrite it.

Version 2.3.3  12/2/2015

  • Added temperature conversion of Victor 86B output from Celsius to Fahrenheit.  When the chart axis is set to Fahrenheit any connected Victor 86B output is automatically converted to Fahrenheit.  The Victor 86B is the only input device to RoastLogger that can not be switched to output in C or F.  This update allows it to be used by those who prefer to work in Fahrenheit.  The meter itself will, of course, still display readings in C but all the displays, logs and graphs in RoastLogger will display the output in F.  The 86B is a good choice for users who only want to input one temperature to RoastLogger (for two inputs I would recommend a TC4/C).  It is low cost (can be found for less than $40), good quality, outputs temperatures to tenths of a degree which provides good RoR data, communicates via USB HID so does not require any drivers in any operating system and provides smooth output.   It also provides a useful general purpose multimeter.
  • The automatic updater included in RoastLogger has been updated to version 1.1.

Version 2.3.2  1/2/2015

  • There is no need for anyone using version 2.3.1 to update to this version of RoastLogger.  This version has the same functionality as version 2.3.1.  The changes in this version are an attempt to avoid the download warnings that Google Chrome on Windows occasionally issues.  If anyone has any problems downloading or running this version please email me with a brief description of the problem and the operating system you are using.

Version 2.3.1 9/1/2015

  • Fixed one very minor issue with the colour of the RoR template curve which was inadvertently set to the current roast RoR colour in the previous version.

Version 2.3 2/1/2015

  • Added logging and charting of heater and fan settings for those controlling their heater and fan via the RoastLoggers Controller.  When the controller is running the heater and fan settings are logged.  A new Options Menu item “Show heat and fan settings in chart” is provided.  This can be checked and unchecked at any time.  When this item is checked the heater and fan settings are displayed in the chart as the roast progresses.  When unchecked the chart is the same as the previous version of RoastLogger.  Please see the "Screenshots" link on the left for examples of charts with this option checked and unchecked.  Anyone who is not controlling their roast via the Controller should uncheck this option.
  • Logging the heater and fan settings requires changing the format of the roast logs.  In future two formats of logs will be used, the original one and a new one including the heater and fan settings.  If the controller is running the new format log is created otherwise the original format log is created.  Either log can be read with any version of RoastLogger although versions prior to 2.3 will ignore the additional heater and fan information included in the new format log.
  • The heater and fan settings are displayed in the lower fifth of the chart to keep them away from the roast and RoR curves.  If you are using RoastLogger version 2.3 or above, with the above menu item selected, and you load a log which includes heater and fan data then the data will be displayed in the chart as either the current roast (exactly as displayed during the roast) or as a template (shown as dotted lines).
  • I have chosen not to add additional axis labels for this data as this would take up more space that is better used by the chart.  The heater and fan area is banded in 10% steps alternately white and green to indicate the setting.  Precise data is provided by hovering the mouse over a curve to display a tooltip (see below for details).
  • Tooltips have been added to all curves in the chart.  Hovering the mouse over any curve will display a tooltip indicating the name of the curve, the elapsed time in Mins:secs and the value (for example “Fan:  3:25,  30”).
  • Fixed a minor issue which could result in the RoR curve not being cleared properly if a previous roast was not saved and not cleared before loading a different previous roast log.
  • Changed the following properties of the initial chart displayed on a new installation:
    • Temperature axis minimum changed to 40.
    • Time axis maximum changed to 17 minutes. 
The user can, as with all previous versions of RoastLogger, change these to whatever values they wish via the menu option “Set chart axes”.

Version 2.2 22/11/2014

  • Changed the Controller reset button action.  It has always been necessary to cool the roaster until the T1 temperature was below your set drop in temperature before clicking the reset button.  Now the action is to warn the user and refuse to reset if the roaster T1 temperature is above the current set drop in temperature.
  • Added a new menu option “Show Scott Rao development ratio in the status area”.  When this item is selected the Rao ratio (development time / total roast time) is show as a percentage after the roast elapsed time in the status area at the bottom of the main window and in the banner.  Scott recommends development time should be 20% to 25% of total roast time.  By checking or unchecking this menu item and the “Show time after FCs in status area”  menu item it is possible to show the elapsed roast time together with the time after first crack start and/or the Rao development ratio.
  • Previously the status message area was cleared at the end of a roast when using the Controller.  This information is now cleared when the roast log is cleared.  This allows the information to remain visible at the end of a roast for reference.
  • Removed a tooltip that was erroneously attached to the top level options menu.
  • Fixed minor issue with the elapsed time label on the logger tab. 
  • Changed the IDE used to build RoastLogger and the minimum version of Java used for the build and other associated changes.  These are significant changes but should have no consequence for users.

Version 2.1.5 24/8/2014

  • Added the functionality to configure RoastLogger to start up in either of two different modes, full RoastLogger mode, or a mode offering a simplified interface for users who only use the Controller for input/control.  In the simplified mode all input tabs except the Controller are removed.  All controls and menu items associated with the removed input tabs are also removed and the main window title is changed to “RoastLogger Hottop Controller” to distinguish it from the full RoastLogger version.  Whilst this mode is intended for the growing number of Hottop roaster users who control their roaster via an HTRI board it can be used by anyone who uses the Controller for input/control.  To change startup mode check or uncheck the Config. menu > ‘Start in RoastLogger Hottop Controller mode in future’, and then restart RoastLogger.

  • Changed the main window title from "RoastLogger with Arduino Controller" to "RoastLogger & Controller”.  Renamed Arduino Controller  to “Controller”.  Changed the T1 and T2 labels on the banner, main window status area and chart to T1-BT and T2-ET.  Changed a number of other labels and tooltips.

  • Added a menu option to auto open the active action table and close all others.  This should be useful to users with low resolution displays where it is not possible to have all relevant action tables open at the same time.  When this option is checked the following actions cause the tables to open and close automatically:
    •     Start or reset for a new roast - opens the Action at start and reset table and closes other tables
    •     Load beans button pressed - opens the Action at T1 table and closes other tables
    •     First crack stat button pressed - opens the Action at secs. after FC table and closes other tables

  • Changed the default setting for the Controller slider granularity for a new installation to 1% steps (previously default was 5% steps).

  • Updated the Help Contents to cover the above.

  • Updated the splash screen

Version 2.1.3 25/5/2014

  • Rewritten the chart line rendering to improve the appearance of all lines in the chart. 
  • Added a menu option, off by default, to add white borders around the main chart curves (current roast and template roast).  This is intended to make the curves stand out more when they overlay the roast phase bands.
  • Added a menu option, off by default, to add drop shadows to the main, current roast  T1 and T2 curves.  A few users have requested this and it can add a nice decoration if only the current roast curves are shown.  This can, however, cause excessive clutter on the chart when a template is also loaded. 
  • Fixed minor bug on loading a template that could result in the template RoR curve loading over a previous loaded RoR curve.  Now always clears any previous template RoR curve before loading a new template.

Version 2.1.2 1/5/2014

Arduino Controller:

  • Enhanced the Arduino Controller functionality by adding a new method to control the PID settings during a roast.  Previously setpoints could be adjusted based on elapsed time via the setpoint table.  Now, in addition to this, PID settings (setpoints, setpoint ramps and PID tuning parameters) can be adjusted via the main action tables (Action at T1 and Action at secs. after FC).  Controlling the PID via the action tables provides the ability to adjust settings based on bean temperature before first crack and elapsed time after first crack.  Users can choose to control any roast via the setpoint table or the action tables via the new PID commands.
  • Modified the code that manages the PID setpoint table to be compatible with the above and to make it more robust.
  • Changed the logic used on closing RoastLogger if the current roast log has not been saved.
  • Updated the help file contents in accordance with the above.

Version 2.1.1 23/4/2014

Arduino Controller:

  • Fixed an issue with the implementation of the PID included in RoastLogger.  It now produces much better control of a roast.
  • Enabled heater and fan control in one percent steps rather than the previous 5% steps.  Added a menu option to switch the heater and fan slider granularity between the default 5% and 1% steps.  In the default state everything works as with previous versions of RoastLogger.  When the granularity is set to 1% the sliders can be moved in 1% steps and the action tables and PID can control in 1% steps.  The left/right cursor keys move the sliders in 1% steps and the up/down cursor keys move the sliders in 5% steps for faster traversal.  As with the previous version clicking the mouse over the heater or fan slider track causes the thumb to jump directly to the cursor location.
  • Removed the PID autotuner as it has been found that it is not really suitable to find appropriate settings for a coffee roaster.
  • Enabled on the fly changes in the PID tuning parameters during a roast.


  • Added a menu option to change the elapsed time displays to include the time after first crack start in square brackets.
  • Help file updated to reflect the above.

Version 2.1.0 8/4/2014

Arduino Controller:

  • Added a menu option, on by default, to provide a soft start and soft increase to the fan speed.  Anyone controlling a Hottop roaster via a HTRI board** should update to this version and leave this menu item selected (See this advice note and the TMC post dated 9/4/2014 for details).  A soft start or soft increase is applied when this menu item is selected and the current fan setting is less than 50%.  When these conditions are met increases in fan speed settings are limited to a maximum of 25% per second.  The fan slider moves instantly to the users setting but that setting is applied in steps increasing by a maximum of 25% per second.   
  • Changed the fan and heater sliders used in Windows and Linux to provide an action similar to OS X.  Now in all operating systems clicking the mouse anywhere on the slider track causes the slider thumb to jump to that location allowing any setting to be selected with one mouse click.  Previously the default Windows and Linux sliders were used which only move the slider thumb 10% towards the mouse cursor location.
  • Changed the tooltip  associated with the "Connect to USB HID device" check box to clarify how it should be set for various devices.

** HTRI boards can be HTC+TC4C, HTShield+TC4 or RL-HT-CTRL

Version 2.0.9 24/2/2014

  • Added serial commands to allow automatic temperature units selection, based on users chart axis selection, when communicating via RS232 Serial.  Previously automatic temperature units selection was only available when using USB HID communication.  The Arduino Controller now sends command TempC or TempF on serial communication start to indicate the users current chart axis selection.  Please note that the relevant sketches for the Arduino/TC4C have not yet been updated to take advantage of this.
  • The Arduino Controller show/hide button is now disabled on startup and is only enabled when the Arduino Controller is running. 
  • Corrected two menu item tooltips that were attached to the wrong menu items.

Version 2.0.8 10/2/2014

Help Contents:

  • Updated the look of the RoastLogger help contents to match the new look of the RoastLogger website.
  • Topics rearranged into nested structure. 
  • New topics added covering the editable labels, the Arduino Controller action tables and menu, updating the RoastLogger and various other items. 


  • Changed the splash screen on RoastLogger startup.
  • Changed default size of Arduino Controller used on a new installation.

Version 2.0.7 26/1/2014

Arduino Controller PID:

  • Removed the experimental status from the PID included in the Arduino Controller as some users are reporting that they find it provides good control of their roaster.  For Hottops and other roasters that respond very slowly to changes in heater settings and where a fixed weight of beans can be used for each roast, I recommend using the action tables for control rather than the PID.  The PID is more useful for roasters that respond relatively quickly to changes in heater settings or where the weight of beans used for each roast must be varied.

  • Increased the number of segments (rows in table) for the PID setpoint table to 30 which is in line with the documentation.  I had thought that 20 rows was more than anyone would ever use but one user has requested more.

Language localisation:

  • Added Slovak language to the RoastLogger.  Many thanks to Fredy Frisch for providing the translation (using the Language Editor distributed with the RoastLogger). 


  • Updated the RoastLogger website notes on using the PID to include more information on using the PID setpoint table.

  • Updated the help file to include the current menu options and the PID.

  • Updated the readme files included in the distribution

Version 2.0.6 16/12/2013

  • Added an automatic updater to the RoastLogger to make it easy, in future, to update to the latest version without affecting your currently installed version.  This allows you to try the new version before deleting your previous installation.   See this link for details including screenshots.  Key points are:
    • The updater is started by clicking the menu option Help > Update RoastLogger.  The updater then opens and shows the details of the last three updates to the RoastLogger.  To update to the latest version click the Update button.  From version 2.0.6 the above is built into RoastLogger and you only need to select the menu option described above to use it. 
    • If you wish to use the updater to update to version 2.0.6 you can download RoastLogger-Updater.jar separately, drop it into your existing RoastLogger installation (alongside RoastLogger.jar) and double click it to run the updater.

Version 2.0.5 10/12/2013

Cosmetic changes to the chart and action tables as follows:

  • Reduced the margin around the chart to allow slightly larger chart on low resolution screens.
  • Improved the layout of the action tables.  Now, when the user chooses the menu option to limit the table opening to five items,  scroll bars are provided allowing the user to scroll to all settings.
  • Now a new installation defaults to limiting action table heights to show the first 5 items.  This can be changed to show the full 10 items per table using the menu option as previously.
  • Added tooltips to action table headers.

Version 2.0.4 4/12/2013

  • This revision only involves the automatic adjustment of the roast phase bands in the chart to set the maillard/development transition to the last first crack start temperature.  Now automatic adjustment only takes place if the first crack start temperature is between the drying/maillard and the development end temperatures.  This will always be the case in a real roast and ensures that the roast phase bands are not adjusted when the user is testing the RoastLogger by clicking the roast event button(s) whilst not performing a real roast.

Version 2.0.3 22/11/2013

  • Made comparing all the details of any two previous roast logs easier by modifying the template tab.  Previously any two roasts could be loaded and compared in the chart which showed the roast profiles and key roast events.  Now, in addition to this, all the data in both roast logs is loaded to allow direct comparison of all the details recorded in the logs.  The roast log loaded as the template is displayed in the template tab and the roast log loaded as the current roast is displayed in the log tab.
  • When any previous log is loaded as a template or current roast the cursor is now set to the start of the log.  Previously it was set to the end.

Version 2.0.2 31/10/2013

  • Added a menu option to apply moderate digital filtering (smoothing) between the Arduino Controller T1 and T2 inputs and outputs.   Previously no filtering was done by the Arduino Controller as, with a good thermocouple installation,  it is not necessary.  If anyone, using the Arduino Controller, has a device that is producing a noisy input (temperatures moving up and down one or two degree C or so) then they may get better results with this option selected.  Note that whist this may help smooth the readings it also causes some delay in readings so should only be used as a last resort after trying to identify and remove the cause of the noisy readings.
  • Corrected Arduino Controller top level PID menu string which had become linked to a lower level menu string in error.
  • Adjusted the threshold for triggering the load beans event slightly.  Load beans is triggered when the temperature drops rapidly by more than a set gradient.  For users working in Fahrenheit the threshold is unchanged.  For users working in Celsius the threshold has been reduced slightly to bring it into line with the existing threshold in Fahrenheit.

Version 2.0.1 26/10/2013

  • The new options for saving the chart to reduced size .png files have been corrected to save only the chart and not the roast event button.
  • Now returns keyboard focus to the roast event button when the user exits editing either title by pressing the enter key.  The chart line thickness spinner is normally hidden.  If it is visible it will receive the keyboard focus.  The tab key can be used to move the focus between the spinner and the event button.
  • Typo in the new roast phase dialog corrected. 
  • Reduced minimum width of Arduino Controller slightly.
  • The left editable label now has some additional functionality.  As previously, if a previous log is loaded as the current roast, the left label is set to the filename of the log.  Now in addition to this, when the RoastLogger is started, or when the roast log is cleared, the left chart title is set to the current date.  The user can edit this to add a roast title whilst keeping or deleting the date as they wish.  If the title is edited it will be assumed to be a title for the Roast and will be added to the start of the roast log, when the beans are loaded, as "Roast title: [left label text]".  This roast title will also be offered as a suggested filename when the log is saved.

So in summary, the left title label now has the following functions:

  • Indicates the current date if no log is loaded as the current roast.
  • Indicates the filename of any previous log loaded as the current roast.
  • Can be edited by the user to any text before a roast is started and will then be added to the roast log as a roast title and will be offered as a suggested filename when the log is saved.

Version 2.0.0 19/10/2013

This update includes a significant rewrite of the charting facilities of the RoastLogger including the following:

  • Added an option to display RoR curves in the chart.  If this option is selected the current roast or any log loaded as a template or current roast will display an RoR curve in the chart in addition to BT and ET curves.  Note that this will work with your existing logs as well as future logs as the RoR data is recreated from the existing log data using the same logic and filters as used to calculate the original RoR data.
  • Added an option to display roast phase (drying, maillard and development) bands to chart.  Also added an associated dialog to allow the limits of each band to be set.  When first crack start is clicked the maillard/development transition is automatically updated for the current chart to the first crack start temperature.  When any previous log is loaded as a template or current roast the transition is also set automatically to the last loaded log first crack start temperature. 
  • The RoR curves in the chart and the roast phase bands can be turned on or off at any time before, during or after a roast without loss of any data (RoR data is maintained even when not shown in the chart).
  • Updated the saving of charts to .png files.  Now offers three options on the file menu: Save at size shown on screen, save at 600 pixels wide, save at 800 pixels wide.  In each case the aspect ratio shown on the screen is preserved.  The suggested use is to set the chart size on screen to approximately 1.5 times the size of the image required and then to save to that size. 
  • Made changes to the chart line rendering to provide better antialiasing.  Removed menu option "Antialias chart curves" as now always uses antialias.
  • Changed the chart temperature axis to indicate if user has selected C or F in the "Set chart axes" dialog.
  • Other minor cosmetic changes too numerous to mention.
  • Made another minor change to the action of the chart roast event button and the logger tab save & clear log buttons.  Now the  chart roast event button is disabled at the end of a roast and is enabled when the user has saved the log.  If the log has not been cleared it will be auto cleared when starting a new roast.

Version 1.9.3 2/10/2013

Chart tab:

  • Added two editable labels to the chart title panel, one either side of the RoastLogger logo.  By default these labels indicate the filenames of the currently loaded roast log (left label)  and template log (right label).   This action can be disabled by unchecking the relevant item in the options menu.  Hovering the mouse over either label turns it into an editor to change the text.  Moving the focus outside the label by clicking the mouse or using the enter or tab keys closes the editor leaving the label displaying the entered text.
  • Any text entered in the current roast label (left label) is presented as the suggested filename when saving the log.
  • Changed the menu option "Show line thickness spinner in chart" to default to hidden on each start of RoastLogger.  Selecting this menu item now only persists for the current session.  On the first start of a new installation the spinner will be shown in the chart.
  • Changed the RoastLogger logo and the legend shown in the chart.

Logger tab:

  • Changed the action of the logger tab save & clear log buttons.  Previously the save log button also cleared the log and chart ready for the next roast.  Now the actions are separated so you can save the log without clearing the log and chart.  The chart tab roast stage marker button is disabled at the end of each roast until the log and chart are cleared.  If you forget to do this you can always start logging using the logger tab load beans button.  The Arduino Controller uses this button so can always start logging when required.  If logging is started without saving or clearing the previous log and chart the log will be auto saved and cleared with a note added to the notes tab indicating the file name and path used.

Arduino Controller:

  • Improved the handling of swapping the Arduino Controller from USB HID communication to Serial communication.  Now automatically refreshes the serial port list on unchecking the "Use USB HID Communication" checkbox.
  • Improved the handling of invalid serial port selection in the Arduino Controller.  Now warns the user if an obviously invalid serial port is selected. 


  • Added a check on startup to determine if RoastLogger is running on Windows and is installed under the \Windows or \Program Files folders.  If so it warns that it will not be able to save it's settings and requests the user moves the installation to a subfolder of the home or documents folder.

Version 1.9.2 5/8/2013

  • Added USB HID communication to the Arduino Controller.  Previously the Arduino Controller only communicated with RS232 serial devices.  From version 1.9.2 the Arduino Controller can communicate with either RS232 serial or USB HID devices.  A check box is provided on the Arduino tab to allow the user to select either serial or USB HID communication.  The selection persists between sessions.  Currently only the RoastLogger Hottop Controller (RL-HT-CTRL) is capable of communicating via USB HID but it is hoped that other devices will be added in future.
  • USB HID communication is much more robust than serial and does not require any drivers in any operating system.  To use it you just plug in the USB cable and then click start.  The device is found and communication started automatically.  I have tested this new USB HID communication in Windows XP, Windows 7, OS X Lion and Ubuntu.  I do not have Windows 8 or OS X Mountain Lion but it should work with them provided their implementation of USB HID is not broken.
  • Added the facility, when communicating with a USB HID device, for the Arduino Controller to send the users selection of temperature units (Celsius or Fahrenheit) to the roast controller to allow automatic setting of the correct units.  The users selection of the units to use is taken form the setting in the Options | Set chart axes dialog.

Version 1.9.1 17/6/2013 including SerialDMMReader version 0.7 and LanguageEditor version 1.2

This update only affects language translation.  Unless you are interested in language translation you do not need to download this update.

  • The RoastLogger and SerialDMMReader have been updated to internationalize more strings, that is to offer more strings for translation.  In the previous revision I used a wizard in my IDE to extract all the strings for translation and it seems to have missed a random selection of strings for some unfathomable reason.
  • The update of the LanguageEditor involves a  minor change to ensure that, if users extract the default language file from the jar, they can not overwrite any previous translation in the selected language.

Version 1.9 14/6/2013

  • Added multi-language capability to the RoastLogger and the included SerialDMMReader.

  • Added a language editor to the RoastLogger distribution.  The language editor is intended to assist users in extracting language files from the relevant jar files, editing the files by adding a translation for a new language, inserting the resulting language files back into the relevant jar files and testing the result by running the RoastLogger.  The language editor provides guidance on each of these steps to make the process as painless as possible.

This allows users to translate their copy for their own use and, hopefully to send a copy of the translated files to me for inclusion in future distributions of the RoastLogger.

In order to keep the effort required for translation to a minimum only the key text on displayed forms and the relevant tooltip text is offered for translation. 

To use the editor, download and install version 1.9 or above of the RoastLogger, ensure that the RoastLogger is not running, open the LanguageEditor folder and double click the RoastLogger-LanguageEditor.jar then follow the instructions the editor provides.

Version 1.8.3 18/5/2013

  • Changed the action of the chart tab roast stage marker button.  This button can now be used to mark load beans which starts logging and charting.  At the end of a roast (after eject beans has been clicked) the button is disabled.  Once you save or clear the log from the previous roast the button is enabled again allowing the next roast to be started from the chart tab.  Even when this button is disabled a roast can always be started by the log tab load beans button.  In this case if the previous log has not been saved it will be auto saved to the last used location and a note added to the notes tab to advise the file name and path used.
  • Changed the action of the logger tab save log button.  This button now both saves the current log and clears the log and chart ready for the next roast.  Previously it was necessary to click both the save log and clear log buttons to prepare for the next roast.  This change avoids the need for users to remember to click both buttons to prepare for the next roast.  The saved log can always be reloaded via the template tab if you need to view it after saving.
  • Help file updated accordingly.

Version 1.8.2 13/5/2013

  • Minor change to ArduinoController startup/reset code to fix an issue which only affects the following specific case:
User stops and restarts the controller mid roast with either the fan or heater slider set to exactly 50%.  In this specific case only on restarting the slider would show the correct setting but the Arduino would be set to 0.
  • Corrected copyright symbol in roast logs.
  • Updated the help file to include new menu option.

Version 1.8.1 21/4/2013

Alarm tab:

  • Disabled row sorting in the alarm tables as this can cause confusion.  Sorting is not necessary as alarms are performed in the correct order regardless of their position in the table.
  • Fixed issue which, in some circumstances, could stop the "Enable alarms" check box state being restored correctly on startup.
  • Updated help file to include information on the action of the alarm table check boxes.

Options Menu:

  • Changed the default setting (the initial setting used on a new install) of "Show RoR gradients" to checked and "Force windows size/position on start" to unchecked.

Version 1.8   20/4/2013

Alarms tab:

  • Now allows up to 16 separate alarms to be set, 8 to be triggered when a set temperature is reached on T1 (BT) and 8 to be triggered a set number of seconds after first crack starts.
  • An "Enable alarms" check box has been added so that all alarms can be enabled or disabled together. 
  • All alarms now work with all inputs so they can be used with the Arduino Controller if desired.  Unless Arduino Controller users specifically want this it is suggested they uncheck the "Enable alarms" check box.

  •  Increased height of current roast chart marker arrows to provide more clearance from curves.  Users may need to increase chart axis maximum temperature settings to allow more headroom for markers.
  •  Changed the curve smoothing characteristics. 
  •  Added a new menu option to use an alternate chart renderer which applies anti-aliasing to curves.  This renderer also uses less smoothing.
  •  Added a menu option to show a spinner in the chart to allow the current roast line thickness to be set in several steps. 
  •  It is suggested users try the various combinations of line thickness and anti-aliasing/smoothing to determine what works best for them.
  •  Once you have decided what works best for you the spinner can be hidden by unchecking Menu Options | Show line thickness spinner in chart.
  •  As with previous versions only the chart curves are smoothed.  The raw (unsmoothed) data is displayed in the log, all
  •  temperature displays, tables, chart markers etc.

Arduino Controller:
  • Heater and fan sliders now show the initial % setting as soon as a connection to the TC4/Arduino is established.

Help file:

  • Updated in line with the above.

Version 1.7.7   6/12/2012

Arduino Controller:
  • Fixed issue which stopped users Actions menu selection "Always save settings to log" from saving/restoring correctly between sessions.
  • Fixed typo in Actions menu.

Version 1.7.6 - 30/10/2012

Arduino Controller:

  • Fixed a bug which, in some circumstances, prevented the loading of action table settings from a template.
  • Removed the serial tab as it is no longer required.
  • Rearranged the menus for clarity on which apply to the Action Tables an which to the PID.
  • Added an experimental PID to test the suitability of PID control of small coffee roasters.   When the PID is off the action tables control the roast as in previous versions of the RoastLogger.  If the user turns the PID on then all action tables are used as before except that, after the beans are loaded, the action table settings for heater power will be ignored and the PID will be in control of the heater power.  The PID can be set to use bean temperature, environment temperature or RoR on bean temperature as the control variable.  A PID settings table is provided to allow setpoints to be set in up to 30 segments.  Each segment runs for the set number of seconds.  When a segment is entered any setting in the "Setpoint" column is immediately applied and the adjacent checkbox checked to show that the segment is now active.  If  the "Ramp to" column has a setting then the setpoint is ramped in a straight line from the previous setting to achieve the "Ramp to" setting by the end of the segment.
  • Added an experimental PID auto tuner.  It calculates suggested tuning parameters using the standard relay method which is general purpose, not specific to coffee roasters.  Better settings will be found by manual tuning but the auto tuner suggestions may be useful as a starting point. 

The experimental PID and auto tuner are not currently documented in the RoastLogger help file or other documentation.  Please see the relevant post on TMC  and these notes for initial information. 

Version 1.7.5 - 13/10/2012

1. RoastLogger

  • Added an option which, when logging, allows the user to skip remaining roast stages and immediately mark "beans ejected" and stop logging.  This is achieved by pressing the "e" key at any time whilst logging.  This allows users to use the space key to mark the stages in turn and the "e" key to skip to eject.  Hopefully this will make it easier for people who regularly stop their roasts before second crack starts.
2. Arduino Controller

  • Added an option to limit the height of action tables to show 5 actions.  This is to allow people with limited screen height, who do not use more than 5 actions, to have more tables open at one time.

3. RoastLogger-TC4 Arduino sketch

  • Updated sketch to release 2.0a.  This fixes a minor issue in release 2.0 where the banner displayed on an LCD screen indicated the wrong version.  Performance and operation is unaffected.

Version 1.7.4 - 17/6/2012

1. Arduino Controller

  • Added file menu option to clear all action table settings which stops all automatic actions.  Provides a warning first suggesting saving settings before clearing.  To return to automatic action just enter new, or reload saved, action settings.
  • Added file menu options to load default settings in Fahrenheit and Celsius
  • Load and save settings dialogs now set the default file mask to .acs in all operating systems.
  • Slider height reduced slightly and their appearance in recent versions of Ubuntu is now similar to Windows & OS X.
  • Changed default action table setting for the fan to 30%.
  • Now indicates when to load beans by an alert message as well as sounding an alarm

2. Chart

  • Added mild filtering and smoothing to the data used to draw the chart curves.  The log, event markers and event table continue to display the raw data to ensure their accuracy.  When a previous log is loaded as a template or as a roast log the data is again filtered and smoothed before display in the chart.  This means that logs produced with earlier versions of RoastLogger can also be smoothed by this and future versions of RoastLogger.
  • Increased the thickness of lines used to draw the current roast curve.  You can still use the menu option to show thicker lines but now both options are thicker than previously.  Users updating to this version may wish to uncheck the Options menu "Use thick lines in chart for current roast".
  • Fixed an issue which caused the chart title to overwrite the top line of the chart grid in some operating systems.
  • Changed the "Set chart axes dialog" default maximum and minimum values for Celsius and Fahrenheit selections.  Modified wording in dialog.

3. Alarms

  • Changed wording of Alarms dialog.
  • All alarm messages in message area now display for 20 seconds previously was 30 seconds.
  • Fixed an issue which stopped alarm sound and warning sound from playing in some versions of of Linux.

4. Font size menu

  • Fixed an issue which stopped font change menu action working correctly in some versions of Linux.

5. Help File

  • Updated in accordance with the above

Version 1.7.3 - 19/5/2012

  • The Arduino Controller has been updated as follows:
    • Changed Arduino Controller heater and fan sliders to snap to the nearest 5%
    • Cursor keys now have the same action in all operating systems and move the focused slider in 5% steps
    • Action table settings can be any value between 0% and 100% but are rounded to nearest 5% before the action is applied
    • Added new command to advise an Arduino/TC4C when the beans are loaded
    • Improved robustness of serial communication with an Arduino
  • The RoastLogger has been updated as follows:
    • Modified OCR engine to accept unusual 6 and 9 digits as valid digits.  A user with a Coffee-Tech Solar 2 Kg roaster advised that it has a display where the lower horizontal segment of the 9 digit and top horizontal segment of 6 digit is not turned on.  These are now accepted by the RoastLogger.
  • Updated help file accordingly.

Version 1.7.2 - 26/4/2012

Further modifications to the Arduino Controller for TC4 users as follows:

  • Added menu options to save and load (restore) all action table settings.  A number of options are provided depending on user requirements as follows:
    • The controller automatically saves all action table settings before closing and restores them on startup.  If you do not wish to use different settings this is all you need.
    • Users can save and load all action table settings to/from any file so any number of different sets of settings can be maintained.  These could be for different beans or for different ambient temperatures etc.
    • Users can select a menu option to save a copy of all the action table settings to every future roast log.  If this is checked then the settings will be appended to the end of all logs when the the eject beans button is clicked.  A further option allows users to load (restore) the table settings from the currently loaded template.  This allows every log to be used as a template including it's own set of action table settings.  It also allows users to see in the log exactly what settings were used for each roast.
  • Changed the logic associated with setting up for a new roast.  Previously whenever the Arduino Controller was started it automatically set up for a new roast. Now it only takes this action if a roast is not underway (between load beans and eject beans).  This is so that the controller can attempt to recover from the user stopping and starting the controller mid roast.  This is not recommended and not guaranteed but it makes it's best efforts to continue where it left off.  The serialDMMReader could already recover from stop/start mid roast as it only reads data from the Arduino and does not need to know what stage the roast is at, what actions are complete, etc.  The closing and reopening action closes and reopens the serial port and driver so this drastic action can help recover from a glitch in serial communications (possibly due to RFI, electrical problems, bad connections etc.) without affecting the progress of the roast or logging and charting.
  • Cosmetic changes to the action table pane as follows:
    • To stop Windows painting it according to the theme in use.  Now it is more in keeping with the rest of the program.
    • To stop it scrolling which was wasting horizontal space.  Now requires the user to increase the height of the controller window sufficiently to show the contents of any open tables.
  • Updated help file.

Version 1.7.1 - 21/4/2012

  • Major revision of the Arduino Controller to simplify the interface whilst providing much more comprehensive controls for a heater and fan.  This is to make better use of the facilities provided by a TC4.  The major changes are:
    • Major revision to the layout which now allows the following manual controls:
      • Users can define up to 10 temperature on T1 and define heater and/or fan settings to be applied when the temperatures are reached.
      • Users can define up to 10 times in seconds past first crack and define heater and/or fan settings to be applied when the times are reached.
      • Users can define the heater and fan settings to be applied when the Arduino Controller is started or reset.
      • Users can define the desired drop in temperature and, if set, the Controller will auto detect drop in and start logging/charting.
      • Other cosmetic changes to the look of the controller.
    • Removed all PID controls to simplify the interface (despite the above additions) and allow the controller to be narrower leaving more room for the chart.  I may provide new PID controls in the future but for now RoastLogger version 1.7.0 will be the last version to include PID controls.  The existing Arduino sketches work with the new Arduino Controller but the PID is disabled.  If anyone experimenting with the PID controls wants a copy of version 1.7.0 please email me. 
  • Added menu option "Force window size/position on start" so users can choose whether to allow the Operating system to ignore the RoastLoggers request to place them or to force the size and position to the last used.
  • Updated the help file to incorporate the above.

Version 1.7.0 - 10/4/2012 with updated SerialDMMReader to version 0.55

I have recently installed Ubuntu 12.04 LTS to see how the RoastLogger looks on a recent distribution.  I found that it ignores the font sizes requested by the RoastLogger and uses rather large fonts which are not ideal for some of the RoastLogger tabs.  Also Sun/Oracle Java is being removed from Ubuntu distributions due to licence issues.  OpenJDK Java is now distributed with Ubuntu.  This is not entirely compatible with the reference Sun/Oracle version but it is now more difficult for users to install Sun/Oracle Java on Ubuntu.

Whilst the RoastLogger  runs and can be used despite these issues I have made some changes so that it is more user friendly on Ubuntu/OpenJDK as follows:

  • Added save and restore of main window size and position (for both the RoastLogger and the SerialDMMReader) on closing/opening the program.  This was done automatically by Sun/Oracle Java on most Windows and OS X machines but is not done by OpenJDK on some Linux distributions.  The RoastLogger now tries to restore it's size and position before the main window is displayed, if the OS or OpenJDK reset the size and position after this the RoastLogger tries again to restore them once the main window is open.
  • The fonts used by the RoastLogger have been a compromise between what works best between different operating systems.  Recent versions of Ubuntu (and probably other distributions) ignore the font sizes requested by the RoastLoggers and use rather large fonts which do not work well with some of the RoastLogger tabs.  To improve the situation the following changes have been made:
    • Added menu options to increase/decrease the font sizes used throughout the program.
    • Reduced the default font size used in the Chart event table.
    • Reduced the default font used in the Arduino Controller.
  • Updated the help file to cover changing font sizes.

Version 1.6.9 - 9/4/2012 with updated SerialDMMReader to version 0.54

  • Minor update to  the SerialDMMReader to fix an issue which could result in a non-critical error being reported on closing the SerialDMMReader in some operating systems.
  • Minor update to the RoastLogger to fix an issue only affecting OpenJDK users where a non-critical exception occurred when closing the help about dialog.  This was due to OpenJDK not being as compatible with Sun/Oracle Java as we would wish.

Version 1.6.8 - 7/4/2012

  • Fixed a minor bug introduced in the previous version 1.6.7 that would only affect TC4 users using fan speed control.  The bug stopped the fan speed setting, displayed in the Arduino Controller, updating correctly. 
  • Completely rewritten RoR temperature gradient calculation used when not reading from a TC4 (If you connect a TC4 it's RoR data is used).  These RoR calculations are only really meaningful for input devices providing temperature information to tenths of a degree.   To display the RoR data the RoastLogger menu option "Show RoR (temperature gradients)" must be checked.
  • Resolved an incompatibility issue that, under Linux only, stopped the RoastLogger recognising an Arduino Uno.  The udev rule already included in the distribution has been updated to resolve this issue.  See the troubleshooting section for details of how to use this.

Version 1.6.7 - 3/4/2012

  • Minor update for TC4 users.  This update utilises the TC4 RoR  (temperature gradients) data when a TC4 is used as the input device.  To display the RoR data the menu option "Show RoR (temperature gradients)" must be checked.  The TC4 RoR data can be used when connected via the Arduino Controller or the SerialDMMReader.
  • Minor updates to the Arduino sketches as follows:
    • Arduino sketches for Max6675 and Max 38155 updated to limit serial output to one decimal place.
    • RoastLoggerTC4 sketch updated to change order of serial output in logger method to improve responsiveness when RoR data is displayed by RoastLogger.
  • Updated the help file.
  • Updated the image included in the distribution that shows an example setup for OCR (ExampleSetupForOCR.jpg).

Version 1.6.6 - 13/3/2012 with updated SerialDMMReader to version 0.52

  • This is an update to the SerialDMMReader only to fix an internationalisation issue which prevented it working correctly in some regions/locals that do not use the dot as the default decimal separator.

Version 1.6.6 - 13/3/2012

  • Updated the Arduino sketches as follows:
    • RoastLoggerTC4 sketch updated by Jim Gallt to provide PWM control of both heater and fan and to allow different thermocouple types on each of 2 inputs.
    • Remaining sketches updated to provide a consistent way for the user to choose Celsius or Fahrenheit output.
  • Updated the Arduino Controller as follows:
  • Added fan speed control for use with the modified RoastLoggerTC4 sketch.
  • Now automatically selects last used serial port if it exists in port list.
  • Modified to ensure better compatibility with the Arduino Uno startup characteristics.
  • Stopping/starting the Arduino Controller now automatically resets it if necessary.
  • Previously the Arduino Controller converted Celsius input to Fahrenheit if the chart axis was set to Fahrenheit.  Now the users choice of Celsius or Fahrenheit is set in the Arduino sketch before compiling/uploading and is not converted by the Controller.
  • Updated the SerialDMMReader to version 0.51 as follows:
    • Cosmetic changes to SerialDMMReader to improve layout when running under Windows OS.

Version 1.6.5 - 13/2/2012

  • Updated the SerialDMMReader to version 0.50 as follows:
    • Fixed a problem reading a Voltcraft K204 which resulted in failure to read the device after some time.  This problem may also have affected the Center 304/309.
  • The last user selection of USB HID or Serial devices on the DMM tab is now saved and restored between sessions.
  • The readme file on interfacing to a user supplied device or application updated.

Version 1.6.4 - 8/2/2012

  • Updated the SerialDMMReader to version 0.49 as follows:
    • Added ability to read an Arduino to provide a simple interface for those who just want to read one or two temperature inputs from an Arduino via a simpler interface than the Arduino Controller.
    • Now reads Center 309 / Voltcraft K204 once every two seconds.  Previously readings were once per second.
    • Debug output now sent to the RoastLogger DMM tab connection status messages area.
  • Updated Arduino Controller to provide more robust communication with the Arduino.

Version 1.6.3 - 7/2/2012

  • The SerialDMMReader now saves data on the last used device and port on exit and restores them on startup.
  • An option has been added to the SerialDMMReader to auto start on each startup using the above last used data.
  • The SerialDMMReader and Arduino Controller are now compatible with 64 bit versions of Java on Windows. 

Version 1.6.2 - 1/2/2012

  • Increased Arduino controller temperature spinner maximum values to 600 to be suitable for users working in Fahrenheit.
  • Increased Arduino controller time after FC spinner maximum values to 360 seconds.
  • Added tooltips to Arduino controller.
  • Update help file to cover use of the Arduino Controller manual settings.
  • Fixed a SerialDMMReader internationalisation issue which prevented it passing data to the RoastLogger unless the system was set to use the dot decimal separator.  It now ignores the system setting and uses the dot separator.
  • Fixed a SerialDMMReader issue that, in some circumstances, could cause a non-critical error to be reported.
  • Added Arduino sketches to downloads page for the following hardware.
    • Arduino / TC4
    • Arduino / MAX 6675 thermocouple interface chips (sketch includes experimental PID control).
    • Arduino / MAX 31855 thermocouple interface chips (sketch includes experimental PID control).

Version 1.6.1 - 18/1/2012

  • Update to improve error handling and cosmetic issues for the SerialDMMReader.
  • SerialDMMReader now saves window state including size and position on closing.
  • Improved error handling of serial device disconnection (unplugging) during communication.

Version 1.6 - 16/1/2012

  • Added support for reading some serial devices via a new serial DMM reader.  Other devices may be added in future.
  • Combined the two DMM tabs into one tab and added radio buttons to select either USB HID devices or serial devices. 
  • Modified the temperature alarm to deactivate it for the first 60 seconds after drop in.  This is to allow the setting of an alarm temperature below the drop in temperature.
  • Fixed an issue on the Arduino Controller that could prevent correct automatic reconnection after stopping and restarting the controller.
  • Modified the Arduino Controller to discard previous roast serial communication data on starting a new roast.
  • Help and readme files have been updated.

Version 1.5 - 6/10/2011

  • Updated the HID readers for OSX and Windows to version 1.5 to read from both the original and new versions of the Tenma 72-7712 and Uni_T UT322 in addition to the Victor 86 B/C.
  • Added a filter on all DMM inputs to the RoastLogger to assist in filtering out occasional spurious readings due to RFI or bad USB connections.  The filter ignores any one or two consecutive readings that are more than 2 degrees away from the last good reading.  Readings are sent approximately 2 per second so this would equate to a temperature change greater than 2 degrees per second.  In the extreme case where temperatures are changing faster than 2 degrees per second the RoastLogger display will now update every 1.5 seconds (after skipping two readings) instead of the usual 0.5 seconds.
  • Changed default action for a new installation from showing temperature gradients to hiding them.

Version 1.4.4 - 26/5/2011

  • Previously the roast event tables in the chart and the templates tab allowed column sorting and/or rearranging.  These actions have now been disabled to avoid inadvertent rearranging when users click on a column.
  • Previously the banner defaulted to the top left of screen now the last used location is saved / restored between sessions.
  • Previously the Arduino Controller defaulted to the top left of screen now the last used location is saved / restored between sessions.
  • Previously the initial startup of a new installation defaulted to showing the edge/segment dialog now it defaults to hiding it.

Version 1.4.3 - 27/4/2011

  • The Arduino Controller now works under all the operating systems that the RoastLogger works under, i.e. 32 or 64 bit versions of Windows (XP, Vista or Windows 7), Linux and OS X(64 bit intel only for OS X).  Prior to this version it did not work under Linux.
  • Updated the help file and help about box accordingly.

Version 1.4.2 - 12/4/2011

  • Added a menu option to show a banner displaying the temperatures, gradients and elapsed time in large font.  The banner can be repositioned and resized to suit the users needs.
  • Added a popup reset button to Arduino Controller to reset the controller between roasts.  This is necessary to allow the controller to start logging automatically when it detects the beans being loaded.
  • Changed order of panels in Arduino controller to group all manual controls before PID controls.
  • Updated the Windows HID reader to version 1.4 to fix an issue which slowed readings unacceptably when reading from two Victor 86 multimeters in Windows.
  • Fixed a minor issue that could result in the T2 temperature gradient being displayed in the incorrect colour.
  • Updated help file.

Version 1.4 - 15/3/2011

  • Added an Arduino Controller to provide the facility to communicate with and optionally control a coffee roaster via an Arduino.  The Roast Logger can log and chart two temperature inputs from the Arduino and also optionally control electrical heater power either manually or via a software PID running on the Arduino.  The Arduino requires a suitable sketch (software) to communicate with the Roast Logger.  This is available free to anyone who requests it by email (see the feedback section for my email address) and may be used as is or as an example of how to communicate with the Roast Logger to form the basis of your own controller software.
  • Changed the colour of the template curves to make it easier to distinguish them from the current roast.
  • Added a menu option to draw the current roast curves thicker to make it easier to distinguish them from the template curves.
  • Added roast stage markers for end of roast (beans ejected).
  • Limited roast stage marker temperature display to one decimal place.
  • Added a menu option to display a table of roast stage data in the chart.

Version 1.3 - 11/3/2011

  • Changed the roast stage markers to display the time and temperature for the indicated stage.
  • Added the display of roast stage markers, also with time and temperature information, for any loaded template for comparison with the current roast.
  • The roast stage markers can be shown or hidden at any time using a menu option.
  • Added auto save of any previous unsaved roast log when a new log is started.  After autosaving the previous log a new log is created and started for the new roast.   A note is added to the notes tab to advise the location of the autosaved log which will be the last location you saved a log to or, if that does not exist,  your home folder.  This ensures that only one roast is included in each log whilst not delaying the start of logging on the new roast.
  • Added two new buttons to the Templates tab to clear any loaded template and to clear any roast log.
  • Logger tab rearranged and the clear log button now also clears the associated curve from the chart without asking.
  • The clear log button is now disabled whilst logging and when the log has not changed.
  • Added tooltips to the alarms tab to make it clear that alarms can be disabled by clearing the alarm message.
  • Updated the HID readers for OS X and Windows to ver 1.3.1 to correct some typos in the messages.
  • A number of minor cosmetic changes.

Version 1.2.1 - 22/2/2011

  • Fixed a minor bug that only affected reading from a Tenma or Uni-T digital thermometer in degrees Fahrenheit.  Temperatures above 399.9 F were not read correctly.

Version 1.2 - 21/2/2011

  • Added ability to read directly from additional devices for OS X and Windows, Linux is still limited to reading from the Victor 86 B and 86 C only.
  • For OS X and Windows up to two of the following can be used in any mix:
    • Victor 86 B and 86 C
    • Tenma 72-7712
    • Uni-T UT322
    • May also work with Tenma 72-7715 and Uni-T UT325 but these are not available to test
  • A number of minor cosmetic improvements.
  • Updated help file with more help for optical character recognition and for new devices.

Version 1.1 - 17/1/2011

  • This is a significant update to make it much easier to set up for reading from webcams and much more robust and less finicky about reflections and lighting changes in the image.  To achieve this  I have completely rewritten the processing from the captured image to the black and white image for optical character recognition.  
  • Help file updated accordingly.
  • Distribution notes updated accordingly.

Version 1.0 - 31/3/2010

  • Fixed a minor issue which prevented the roast stage markers from displaying during a roast where a digital multimeter or user hardware was providing input to T1.
  • As no further issues have been reported the version has been changed to 1.0.

Version 0.60 - 7/3/2010

  • Added facility to read from up to two multimeters simultaneously.  This means that the logger can now read either or both of it's temperature inputs from a multimeter or webcam.
  • Provided a standard interface to read either or both temperature inputs from a user supplied application/hardware.
  • Added facility to swap the device connected to each temperature input in the case of two simultaneous temperature inputs.
  • Added the full path to the last opened roast template to the properties file to allow a user supplied application to access this information.
  • Modified tab layout to accommodate the above.
  • Help file updated accordingly
  • Distribution notes updated accordingly.
  • Added notes to the distribution to assist in connecting a user supplied application/hardware to the RoastLogger.

Version 0.58 - 5/3/2010

  • Added checkbox to allow users to stop the log scrolling to the latest reading.  This is to facilitate writing notes to the log whilst logging is in progress
  • All HID readers updated to version 1.1.  They now read data from up to two Victor 86 multimeters simultaneously (previously only one could be read).  Please note that the roast logger has not been updated to take advantage of this yet if 2 dmm's are connected it will only read from the first ignoring the second.
  • Increased timeout in Linux HID readers as the Linux HID manager can be a little slow occasionally.
  • Changed threshold default value for LED's from 235 to 225

Version 0.57 - 24/2/2010

  • Tidied up the layout of various tabs to improve the look of the program in Linux.

Version 0.56 - 23/2/2010

  • Added the facility to read from a Victor 86 B multimeter in addition to the Victor 86 C multimeter.  The Victor 86 B has the advantage of reading temperatures to one decimal place but only displays in Celsius.  The 86 C displays in Celsius or Fahrenheit but only to whole degrees.
  • Help file updated to incorporate all changes since version 0.5

Version 0.55 - 17/2/2010

  • Added a general notes tab to automatically load and save any notes the user wishes.  This is for general notes, the roast log should be used for notes specific to a particular roast.
  • Revised temperature gradient calculation to attempt to smooth results where temperatures are measured to decimal fractions of a degree.  Now only updates gradient when temperature changes by 0.5 degrees or more.
  • Loading an existing roast log now resets log dirty flag.  This ensures that the user is not asked to save the log on exit unless the user has changed the log subsequent to loading.
  • Minor changes to the multimeter decoding algorithm.
  • Modified various titles including the status message titles.

Version 0.54 - 25/1/2010

  • Modified algorithm to decode the meter readings from the Victor 86 multimeter.  This has no consequence for users.

Version 0.53 - 19/1/2010

  • Fixed bug which stopped the chart updating correctly when a previous log with temperatures saved as decimal values was reloaded.  
  • Fixed issue which stopped the USB HID reader for OSX working correctly with OS X 10.5.  Now works with 10.5 or above.
  • Added a separate USB HID reader for 64 bit versions of Linux.  This is automatically selected if you are running a 64 bit version of Linux.

Version 0.51 - 17/1/2010

  • Minor update to remove leading zeros from the DMM output.  This is for consistency with the output from the OCR tabs and does not affect the operation of the program.

Version 0.5 - 14/1/2010

  • Added the ability to read temperature data directly (via USB cable) from a Victor 86 C multimeter in addition to reading data using optical character recognition from a webcam image of a roasters display. 
  • Changed name of the program to RoastLogger as it is not now exclusively based on OCR
  • Added option to alarm on OCR/DMM2 temperature rather than OCR1 temperature
  • Added menu option to show the edge/segment detection dialog each startup
  • A number of changes to allow users to overwrite versions of this program with later versions without losing their settings and any changes they have made to the log template
  •  Help file updated to incorporate the above

Version 0.42 - 2/1/10

  • Added option to display temperature gradient(s) in degrees per minute.  Value shown black if positive and red if negative (falling).
  • Tooltip on menu View | edge detection - changed to advise to use this dialog during logging to warn of any image processing problems.
  • Tooltip added for menu Options | Set OCR Parameters.
  • Help file updated to incorporate the above.

Version 0.41 - 24/10/09

  • Added option to mirror the webcam image. This is necessary when using a webcam viewer that insists on providing a mirror image such as Photo Booth in OSX.
  • Changed label of "flip" check boxes to "rotate" to avoid confusion with the new "mirror" check boxes
  • Tooltips on template tab changed
  • Help file updated to cover the above

Version 0.40 - 7/10/09

  • Initial beta release for testing