Tuesday, November 26, 2019

Artisan v2.1

This is the Artisan version we will use to prove Scott Rao wrong (or right). We extended Artisan in various ways to facilitate the application of his roasting theory.  Thanks Scott, for pushing us!

Thank You!

The Artisan project runs on donations from individuals and companies recognising the value of Artisan for their work or leisure. Consider supporting this project with your donation!

Especially the support by the roasting machine industry is extremely important. Sadly this version was supported only by one party. Randy of Buckeye Coffee Roasters (USA) supported our project through the years with significant financial donations and helped with words and deeds. Artisan would not be what it is without you! 

Also the following individuals and small roasting operations from all over the planet (in no specific order) did support the development of this version with their donation: Masuda Masaru, Jodi (Calm Waters Coffee Roasters, USA), Gurushabd Khalsa, Dustin (Wild Calf LLC, USA), Frank Pattie, Stephanie (AM Brew Coffee World, Namibia), James Crook, Sascha (Hot Roasted Love, Germany), Steven Kelleher, Scott Milliman, Dominique (Tumbuka, France), Matthias Theobald, 성현 주, Stephen Egge, Chad (Ghost Town Coffee Roasters, USA), Gerald (Meister Zenger Coffee, Austria), Teddy Lianto, Rosemary Levine, Robert (Fathom Coffee, USA), Douglas Voss, Björn Nilsson, John Danza, Alencar Delgado, Joe (O-JOE Coffee & Food, Canada), Tiago (Brazuca Coffee, The Netherlands), Mario Ruggiero, Ernest Young, Thomas Husband, Mergim (Baristafabrik, Germany), John Fier, Tije De Jong, Henrik Bo Carlsen, Simen Martinussen, Henrik (Ahoi Kaffeemanufaktur, Germany), Peter Matthies, Rosemary Levine, Jan Van der Weel, Luca Pinello, Dave (Dave's Koffiebranderij, The Netherlands), Tom Kernan, Dennis Schmitz, and Sam Kern.

This version also features improved translations for French, Greek and Brazilian Portuguese. Dear Nico, Fotis (Coffee Lovers, Editors & Trainers) and Rodrigo (King Cafés), thanks for "wasting" your time on preparing those!

Many people reported issues and suggested features using the Artisan Issue Tracker. Three persons were especially productive. Thanks Dave, Dennie and arkenamun!

We thank especially those, that are supporting this project regularly like Tolga (onetake coffee), Germany), Peter (Bethells Beanz, New Zealand), Arnoud (Het Hoofdkwartier, The Netherlands), Colin (Ironside Roasting Co., USA), Manfred (Werksbrandt, Germany), Brian (Batdorf & Bronson Coffee Roasters, USA), Team (Atlas Coffee Importers Inc., USA), Arch Getty, and Frans (Kostverlorenvaart, The Netherlands)!

This version is for you!

Nothing would have been possible without this wonderful team. Rui who kept the automatic build system running, Michael who is keeping the documentation up to date and Dave who, among many other things, designed and implemented the cool Analyzer, featured in this version (see below).

Thank You!

What's New?

This version adds a number of things and fixes many small issues that have been reported with the previous version. See the detailed change log for the full list of additions, changes and fixes. In this post we describe a few of those that are most prominent. 

Let's start with those that will help us to experiment with Scott Rao's suggestions, most of which were realised by extensions to Artisans symbolic formula mechanism and alarm mechanism (see below). We follow here the trend to low-code platforms, which allows non-developers to adjust applications easily to their demands (see applications of symbolic formulas to get an idea of the power of this concept).

For Scott

It is often difficult to decide on the ideal amount of smoothing to be applied to the RoR curve. Either the RoR curve is too smooth or too noisy to observe its flicks and crashes. Why not render a second RoR signal at a different smoothing level, or also a third?

Scott suggests not to apply any gas changes in the window from 45sec before to 45s after the first-crack start. This example shows how to turn the canvas dark while the roast passes this danger zone.

Scott suggests to lower the gas at 12% development ratio (DTR) to prevent the flick at 16% DTR. Well, why not define an Artisan rule that just does this for you?

Flicks in the RoR occur where the RoRoR (the RoR of the RoR thus the second-order derivate) get's positive. Why not let Artisan mark those critical moments?

Dave has been wanting to find a way to rate a profile for "goodness" with respect to following a "good" RoR curve. He came up with the Profile Analyzer which has a lot similarity to the CM quality criteria described in the post How Close?, but goes way beyond trying to quantify the magnitude of flicks and crashes.

Not strictly related to Scott, but also based on some extension of the symbolic formula mechanism:

User Interface Improvements

You can now place a picture in the background of your profiles as you see in the pictures above.

2. More LCD Windows

For a while you can open an extra window showing the main LCDs (time, ET and BT) at the size you want. Artisan 2.1 comes now with separate windows also for the RoR, Extra Device and PID LCDs (menu View).

3. Dragging of Annotations

Time and temperature annotations of the foreground profile can be dragged around.

4. Three Sizes for Custom Events Buttons

You can now choose the size of custom event buttons in the buttons tab of the Events dialog (Config >> Events, 2nd tab)




5. Custom Opacity

You can now choose the opacity of the legend, the statistic summary and the new analytics boxes in the Color dialog (menu Config >> Colors).

6. Reworked Statistic Summary

The Stat Summary box content was re-organized. Its content is now structured as follows: core information on the roast (batch number, title, date, ambient data, machine), information on the green beans (name in two lines, screen size, density, moisture and batch size), and information on the roasted beans (density, moisture, color, AUC, roasting & cupping notes). Besides the transparency of the box (see above), also the line length can be configured (menu Config >> Statistics). The content of the statistic summary box can now be directly exported (menu File >> Save Statistics

7. Dark Mode

This is the first Artisan version that supports the dark mode of macOS.

8. Exports

The RoR data has been added to Excel exports. Moreover, a copy table button has been added to several tables to make a copy of the data (roast data, roast events,...) in tab separated format to the clipboard. If the ALT-click (OPTION on macOS) is pressed on pressing the Copy button a rendered variant will be copied as shown below for the events table of a roast.

|  Time |   ET   |   BT   | Description |  Type | Value |
| 00:04 | 217.6C | 198.2C |             | Speed |   35  |
| 00:57 | 155.6C | 80.6C  |     508     | Speed |   60  |
| 01:16 | 155.7C | 84.9C  |             | Power |  100  |
| 04:51 | 194.9C | 163.6C |    500.5    | Speed |   55  |
| 05:55 | 205.2C | 177.3C |             | Power |   60  |
| 06:08 | 205.7C | 179.6C |     493     | Speed |   50  |
| 06:35 | 207.4C | 184.6C |             | Power |   40  |
| 06:56 | 207.5C | 187.7C |    470.5    | Speed |   35  |
| 08:37 | 212.9C | 196.0C |     568     | Speed |  100  |
| 11:26 | 180.2C | 186.3C |     538     | Speed |   80  |

Machine Support

Machine setups for popular VINT Phidget sets, available as ready-to-use packages from the Artisan shop, have been added that allow a one click configuration. There is a 2xTC setup based on the TMP1101, a 2xRTD low-noise setup based on two TMP1200 as featured in On Idle Noise using a one-in-two configuration, and an ambient extension based on the PRE1000 & HUM1000. There is also a setup for the older Phidget "databridge".

Furthermore, the setup of the Coffeetool Rxx machines has been extended by the control part for machines that support this, Drum Speed and Air Flow has been added to the the Buhler Roastmaster setup, support for further automatic and manual variants of Coffed machines (SR3/5/15/25/60) and support for the upcoming Atilla GOLD_plus_7'' II has been added.


The artisan.plus inventory service module now displays the type of subscription and the subscription expiration date.


The Recent Roasts mechanism has been extended to also keep properties of the roasted beans (weight, moisture, density,..) if the ALT (OPTION on macOS) key is held while pressing the + button in the Roast Properties dialog (menu Roast >> Properties). Additionally, if a recent roast is recalled from the New menu while the ALT (OPTION on macOS) key is held, the properties are just copied in the current roast properties dialog, but a new recording is not yet started.

Alarms, Actions and Commands

The set of  alarm actions  has been extended by actions to set and reset the canvas color as well to turn the event playback on and off
  • Set Canvas Color :  expects a hex color string like #0D0D0D or a color name like red in the description field of the alarm rule
  • Reset Canvas Color
  • Playback ON
  • Playback OFF
For dependent alarm rules that specify a dependency via their "If Alarm" condition unequal to 0 and have the "From" condition set to "If Alarm" interpret their time and temperature condition relative to the time and temperature at which the specified "If Alarm" fired. See ALARMS TRIGGERED BY BUTTONS for an example.

The Multiple Event action has been added to the list of default buttons (like ON, FCs, DRY,..) actions. It expects a list of custom button numbers to be triggered in the command/description field and supports also the command sleep(<n.m>) to add a corresponding delay in seconds between the button invocations.

The set of Artisan Command button and event actions has been extended by
  • PIDon, PIDoff, PIDtoggle to change the internal PID state
  • pidmode(<n>) with n one of 0: manual, 1: Ramp/Soak, 2: background follow
  • playbackmode(<n>) with n one of 0: off, 1: time, 2: BT, 3: ET
The set of MODBUS Command button and event actions has been extended by
  • writeWord(slaveId,register,value) to write 32bit decimal numbers