Friday, October 2, 2020

Artisan v2.4.2


The focus of this release is on extending the one-click configurations to many more machines.

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!

We observe that many persons profit from our work on Artisan. Sadly, only a very small fragment of the fast growing set of users, instructors and manufactures are supporting this project financially (with some notable exceptions like Randy running Buckeye Coffee). This project is now down to 0.08.- EUR donation per download. Not enough to keep this project going!

This version was supported by Randy (Buckeye Coffee Roasters, USA), Nicola (Tostabar, Italy), Hyunjai (Trinitas Novustec, South Korea), Taylor (Arc Roaster / Showroom Coffee, USA) and Marko & Paul (, Germany).

The following individuals and operations (in no specific order) did support the development of this version with their donation: Ben, Henry Levine, Marcel Speek, Steven Kelleher, Reyphilip Sowels, Joshua McWilliam, Jaime O Diaz, Mark Darren Randell, Christian Steidele, Keith Poole, Abdulmohsin Ibrahim, Budiono (Aslan Coffee), Tom Kernan, Troy Truong, Jared Watkins, Rene dela Cruz Stuart, Aaron Wersing, Stephen Hull, Petro Lytvynchuk, Alan Perkins, Stephen Asara, Sinisa Novakovic, Stephen Mitchell, Andrew Freeman, Richard Parkinson and Dalton Moody.

We thank especially those, that are supporting this project regularly: Frans (Kostverlorenvaart), Flint Orr, Colin (Café Mulé & Ironside Roasting), Matthias Theobald, Gary Seeman, Mike (Marvell Street Coffee Roasters), Arch Getty, Rosemary Levine, Tolga (onetake coffee) and Thomas Husband.

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

Your Artisan team
Marko, Dave, and Michael

What's New?

Extended Machine Support

This version adds one-click configuration support for roasting machines of more than 40 additional brands with build in measuring systems allowing Artisan to connect via USB or network directly without the need of any additional hardware:

Further, the configurations for machines of already supported brands got extended as well:

New Profile Imports

We added importers for profiles of the RoastLog service and made the existing IKAWA profile importer compatible with their new v3 CSV file format. We also updated the Aillio Bullet R1 JSON importer to cover their format changes.

Improved Rate-of-Rise Computation

An improved method to compute the Rate-of-Rise signals based on linear polyfits (least squares) has been suggested by PDWest (Issue #502) and integrated based on his initial implementation (PR #503). This technique results in a smoother Rate-of-Rise curve with larger delta-span values for signals containing high-frequency noise without the introduction of any additional delay.

Additional Font Options

Suggested by wuyi-levard, who also provided improved Chinese translations (PR #494) to integrate a set of free fonts with complete character sets for Chinese, and some other Asian languages. On all platforms you can now select as graph font (menu Config >> Curves, last tab "UI") also "Source Han Sans" offering CN, TW, KR, JP character sets and "WenQuanYi Zen Hei" offering CN and TW character sets.

Dynamic Blend Replacements

On working with pre-blends, one has to handle the case when running out of a blend component which in turn has to be replaced by a substitute coffee. The platform and the Artisan app now supports the automatic computation of the corresponding blend recipe transition.

Bernoulli Sliders

Sliders can now be configured to emit values respecting Bernoulli's gas law, translating non-linear between gas flow (slider values) and gas pressure (gas valve). In Bernoulli mode, slider values x are first transformed by function f(x) = (max-min) * ((x-min)/(max-min))^2 + min (with min/max the slider min/max limits) before multiplying by the sliders factor and adding the sliders offset. Thus reducing the slider from 100% to 50% is reducing the value by 4 times instead of 2. For details see the recent discussion on

Interpolating Duplicate Input Filter

Finally, we observed that some devices (eg. Center meters or some Arc/HB roasting machines) return fresh readings only at a rather slow frequency (every 4-5 seconds). 

While this seems to be more of a cosmetic problem, receiving duplicate values by sampling faster than the connected device delivers updated data has negative implications on the derived rate-of-rise signal. Two successive temperature readings correspond to a zero rate-of-rise. As a consequence the resulting rate-of-rise curve contains significant swings even with relative aggressive smoothing settings. 

We added a (destructive) Input Filter that recognises duplicate readings and replaces them with interpolation between the last and the next valid reading. It can be activated and its tolerance can be configured in the Filters tab of the Curves dialog (menu Config >> Curves).

WebSocket Communication

Next to the standard MODBUS and Siemens S7 protocols we added a configurable protocol based on WebSockets exchanging JSON messages.