Tuesday, June 20, 2023

Artisan v2.8.4


We introduce Artisan 2.8.4 which adds a few features and improves stability while staying full compatible with any previous version.


The Artisan project runs on donations from individuals and companies recognizing the value of Artisan for their customers, work or leisure. Consider supporting this project with your donation, or even better, purchase an artisan.plus membership!

We welcome our long time supporter and friend Buckeye Coffee Roasters as Release Sponsor for this release. If you would like to become our release sponsor for a future release, please contact us!

The past month we worked together with the Kaleido team on a deep integration between Artisan and their fine machines. If you want to become a machine sponsor and like to have your machines being well supported and promoted by Artisan, please contact us!

Again the majority of the costs have been on the shoulders of Marko & Paul who created the artisan.plus service to provide some financial basis for the Artisan project.

The following individuals and operations (in no specific order) did support the development of this version with their donation to cover about 7% of the development costs: Bruce Dillingham, Josh Greenberg, Ryan Alberson, George Putilin, Celery (City Coffee Roasters), 梁​晁瑋, Christopher Frothinger, Bruce Shermans (Valley Coffee Co.), David Weirich, Abdulkarim Aledwani, Greg & Kelly, Willy (Mighty Wonders Coffee Roasters), Petro Lytvynchuk, PJ de Weerdt, L'Atelier Judicieux, Richard Bigus, Norman Kuckert, Greg & Kelly (First Wave Coffee), Larry Liebhart, Sinisa Novakovic, Matthew Duerstock, Dan (Roastology Coffee), Daniel Burris, Ron Brown, Kaffeehaus, Morten (CoffeeMind), William Heespelink, Matthew (Ember Coffee), Demian Kollmann, Bradley Huff, Moyock Made Inc., Scott (HighPoint CFO), Steve Engelbrecht, Larry Hopkins, Malcolm Ennis, John Lehet, Ken Austin, Kim Tio Teo, Richard Bennett, Inczeffy Zsolt, Wanda (Top Java Coffee Roasters), Steven Woolet, Robert Denson, Pam Vore, Jason Albasha, Henry Chamberlain​, 野島​浩希, Norman Kuckert, Charles Youngflesh, Alessandro (Bar Nuovo), Amir Rahimi, John Robertson, George Putilin, David Dela Cruz III, あきまん企画, Scott Koehn, Carlos (Coffee Company), Shawn Baker, Leonid Tabakov, Walter A Bednarz, Todd Trebuna, Gregory Ramirez, 許​智維, Jason Kretik, Sompop Ranusawad, Jeffrey (Tugboat Joe Coffee Roasters), D. Scott Nord, George Evans, Milorad Popadic, and Delbert Johnson.

We would like to thank especially the ones on the growing list of those that are supporting this project regularly: Doak Procter, Thomas Husband, Rick  (Software Polish), Oliver Prosperi, Manuel (Caffe Terzi), Steffen Müller, Norman Hardy, Jim (Salvation Coffee Company), Daniel Gerbers, Tolga (onetake coffee), Thomas Husband, Joseph (D'Leon Coffee Roasters), Gary Seeman, Colin (Iron Mule) and Frans Goddijn.

Finally, there are those Artisan geeks that tested continuous builds, beta and release candidate releases, suggesting better translations, changes, new features reporting many issues as well as resolving discussion items which we could resolve for this release: Jason (Hermeteus), Manfred (Werksbrand),  Flint, peterweiser, KingPollux, Terracotta-62, Nico, Steve, poundy, CaffeineThepsadej, lookingafar, ID-JerryChen, Joeky, Durchstanzen, ivanroaster, tkdrumr, Patrick, patioroaster, Case, renatociprianiAlexmitranEspressoMachineWhispererJuppi1252 and wbj828.

Get active! Contribute ideasreport issues, help to improve the documentation and correct and extent the localizations. If you are short in time, consider to contribute with a donation to enable us to develop a next version.

Upgrade now!


Your Artisan team

Dave, Michael and Marko

What's New?

We worked together with our new machine sponsor Kaleido & Beanseeker to deeply integrate their new communication protocols into Artisan. This allows now to take total control over the machine also via WLAN and nicely synchronizes with its state back with Artisan.

Custom Event Buttons

This work led to some extensions of the event button mechanism. There are now additional button actions which allow to set button states (normal/pressed) and a new placeholder variable $ which holds the state of the button. There are now also additional substitutions applied to the event button names supporting localization. For example, \1 is substituted by the translation of the string ON into the selected language. Same holds for \3, however, here the substitution respects the button state and switches to the translation of OFF if the button state is pressed. Similar translated substitutions are available for START/STOP, OPEN/CLOSE and some others. As always, you can find the detailed documentation on the various button actions in the corresponding Help dialog accessible from within the events dialog (menu Config >> Events, 2nd tab Buttons) and some examples in Buttons – Appearance, State, and Action.

Event Marks on ET

Artisan prefers to annotate major event information like time and temperature of CHARGE or DRY on the bean temperature curve (BT). With this version those annotations are rendered on the environmental temperature curve (ET) if the BT curve is hidden (here by a click on the BT LCD).

Windows/Linux Dark Mode

After having introduced dark mode support in v2.1 in 2019 for macOS, we now added dark mode support  for Windows 10 (1607+),  Windows 11, and Linux under Gnome. This requires the UI style set to anything different from WindowsVista (menu Config >> Curves, last tab UI).  Artisan will automatically adjust its menus and dialogs when the display mode is changed to dark.  Note that colors used in the graph area respect the settings in Config >> Colors and as set in Config >> Themes.  The theme Midnight was used for the screenshot below.


There are many other useful additions and changes to be discovered in this version, like the support of a direct Bluetooth BLE connection to IKAWA sample roasters as well as the following fixes relevant for specific configurations.

See the full Release History for all details.

Platform Fixes


  • fixes regression breaking Aillio R1 connection


  • improves Arduino MODBUS RTU compatibility 
  • fixes regression breaking Ardino/TC4 PID source channel configuration


  • fixes problem running only under admin user on some Linux distributions
  • fixes startup issue under Linux Wayland

Nordic, OTesla, Dätgen, KapoK, Opp, and Golden Roasters

  • fixes regression breaking MODBUS Binary/ASCII support used by some Nordic, OTesla, Dätgen, KapoK, Opp, and Golden Roasters machine setups

Probat UG/G

  • fixes an issue sending multiple S7 commands via buttons as used in the Probat UG setups which could lead to a crash

Probat Probatone II

  • fixes an interaction between the ALWAYS ON feature and the Probatone MODBUS keep-alive handling

Reducing Technical Debt

We have been using a static code analyzers (pylint) for some years now to improve code quality. For this version we increased the scope of static analyzer by adding some more tools to our development chain, including type checkers (ruff, mypy, pyright). To help those type checkers out we needed to (partially) annotated our code with types. It turned out to be a mammoth task to add all type annotations and apply the code rewrites needed to make those type checkers and additional static checkers happy. We had to touch more than 50% of the by now 100k lines of code that make up Artisan. Despite all that work we are quite happy about the outcome and the open-source availability of those strong tools which helped us to iron out potential issues before they even could cause troubles.  These tools will improve sustainability, code quality and documentation also for the next Artisan versions and are now the framework we build upon our future changes and additions.