Monday, December 14, 2020

Artisan v2.4.4

This version improves some established automation features to better support the control of preheat and between batches protocols.

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!

This version, as every other version this and the last years, was supported by the amazing Randy (Buckeye Coffee Roasters, USA). Compliment!

Also Tigran (Typhoon Roaster, Russia), Frank (KapoK, Taiwan)  and Marko & Paul (, Germany) supported this release.

The following individuals and operations (in no specific order) did support the development of this version with their donation: Fred Pagles, Daniel (Neue kaffeerösterei Plauen), Graham Kennedy, Steven Kelleher, Maillard Trading (Crescendo Coffee Roasters), Gregory Froelich, Boris & Valentin (KAFFEEMODUL), Dennis Garrett, Dan Strickland, Kristian & Andreas (Garage Risteriet), Paul Johnsen, Mark Jacob, Abbey & Darrell (BYGood Coffee & Tea), Robert Denson, Mark Culet, Luke Fisher, Luigi (Latte Art), Damian Gronsky, Gregory Piferi, Philipp Pallentin, 謝​天恩, Barrett Simmons, John Mosher, Michele (MicheleYoungArt), Jochen Weber, Adam Glass, Michael Kane, David (Cooperativa Carlos Díaz Cajina), Mario Holste, Eray Yelkenci, David DeGan, Julien Dougoud, Wolfgang May, John Lehet, and Richard Glynn.

We would like to thank especially those that are supporting this project regularly: Frans (Kostverlorenvaart), Tije De Jong, Paolo (His Majesty the Coffee), Matthias Theobald, Dan (Fat Rabbit Coffee), David Austin, Jaroslav (doubleshot), Budiono (ASLAN COFFEE), Thomas Husband, Mark (Velvet Sunrise Coffee Roasters), Rosemary Levine, Arnoud (Amsterdam Roasters) and Phil Dawes.

Now get active! Contribute ideas, report issues, help to improve the documentation and correct and extent the localizations as wuyi-levard (Chinese) and Richard Rodrigues (Spanish) did for this version. If you are short in time, consider to contribute with a donation to enable us to develop the next version.

Download now!

Your Artisan team

Marko, Dave, and Michael

What's New?

This version is intended as a bug fix release in the v2.4.x series and thus mainly increases the overall stability and performance of the app. However, we could squeeze some additional functionality in as well. For the full list of additions, changes and fixes consult the Detailed Release History.

Machine and Device Support

This version extends the set of supported machines by PLC equipped machines from Nordic, machines from Fabrica Roasters as well a machine setup for MCR Series machines configured to report readings in Celsius instead of Fahrenheit. We also added support for the new ambient humidity Phidget HUM1001. Finally, new profile importers for Rubase and Aillio RoastWorld have been added and the Cropster XLS importer has been improved.


Artisan was always strong on automation with its strong alarm system, the time and temperature-based event replay mechanism and its PID controller. This version adds alarm sets that allows to store and quickly recall lists of alarms defined for different purposes like preheats, roasts, and between patch protocols. Also the Ramp-Soak pattern mechanism of the internal PID controller allows now to switch between 3 different sets of patterns. Each Ramp-Soak element can now trigger an action, similar to those alarm actions, on its completion. Alarm sets, Ramp-Soak patterns as well as event palettes feature now a label to tag them with a memorable label and allow their recall by name. Ramp-Soak patterns are saved along profiles and can be loaded from a foreground or background profile.

Alarms can initiate a wide range of action types allowing automation of many features within Artisan. Among them are Ramp-Soak patterns and standard as well as custom buttons.  The Artisan Command action provides access to these features. Here are all such commands supported by Artisan with the ones introduced in v2.4.4 in bold type face.

Artisan Commands addressing the PID
  • PIDon
    turns PID on
  • PIDoff
    turns PID off
  • PIDtoggle
    toggles the PID state
  • pidmode(<int>)
    sets PID mode to 0: manual, 1: RS, 2: background follow
  • pidSource(<int>)
    selects the PID input source with <int> 0: BT, 1: ET (Software PID); <int> in {0,..,3} (Arduino PID)
  • pidRS(<rs>)
    activates the PID Ramp-Soak pattern list by number or label
  • p-i-d(<p>,<i>,<d>)
    sets the p-i-d parameters of the PID
  • pidSV(<int>)
    sets the PID target set value SV
  • adjustSV(<int>)
    increases or decreases the current target SV value by <int>

Further Artisan Commands
  • sleep(<float>)
    add a delay of <float> seconds
  • autoCHARGE(<bool>)
    enables/disables autoCHARGE
  • autoDROP(<bool>)
    enables/disables autoDROP
  • playbackmode(<int>)
    sets playback mode to 0: off, 1: time, 2: BT, 3: ET
  • tare(<int>)
    tare channel <int> with 1 => ET, 2 => BT, 3 => E1c1, 4: E1c2,..
  • openProperties
    opens the Roast Properties dialog
  • alarms(<bool>)
    enables/disables alarms
  • alarmset(<as>)
    activates the alarm set with the given number or label
  • palette(<p>)
    activates palette <p> with <p> either a number 0-9 or a palette label
  • loadBackground(<filepath>)
    loads the .alog profile at the given filepath as background profile
  • clearBackground
    clears the current background profile
  • popup(<msg>[,<int>])
    shows popup with message <msg> which optionally automatically closes after <int> seconds
  • message(<msg>)
    shows message <msg> in the message line
  • button(<name>)
    activates button <name>, with <name> one of from { START, CHARGE, DRY, FCs, FCe, SCs, SCe, DROP, COOL, OFF } 
  • setCanvasColor(<color>)
    sets canvas color to the RGB-hex <color> like #27f1d3
  • resetCanvasColor
    resets canvas color

Note that command actions can be sequenced by using a semicolon in-between single commands. Eg. the sequence

pidmode(0); pidSV(180); PIDon; sleep(300); PIDoff

is valid and configures the PID to manual mode with target temperature 180C and turns it on for 5 minutes. Note further that sequences of different action types can be combined using a Multiple Event event action that triggers (hidden) button actions, each grouping a list of potential different action type.

Examples on how to put alarms, Ramp-Soak patterns and those Artisan Commands to action are given in our parallel post on Supporting Between Batch Protocols.


This version adds labels also to event palettes and allows to switch off the polyfit RoR calculation introduced in Artisan v2.4.2 as with low-noise signals the standard algorithm performs better in some cases. Finally, as a tribute to the Dutch Computer Scientist and receiver of the Turing Award, Edsger W. Dijkstra, we added the Dijkstra font option. This allows to render Artisan graphs in the beautiful handwriting of E.W.D. as digitalised by Luca Cardelli, another hero in Computer Science. Select it under menu Config >> Curves, last tab UI.

Happy Roasting!