{"id":13482897,"url":"https://github.com/artisan-roaster-scope/artisan","last_synced_at":"2026-04-15T09:02:31.895Z","repository":{"id":28625078,"uuid":"32143825","full_name":"artisan-roaster-scope/artisan","owner":"artisan-roaster-scope","description":"artisan: the world's most trusted roasting software","archived":false,"fork":false,"pushed_at":"2026-03-31T16:38:12.000Z","size":1006403,"stargazers_count":1154,"open_issues_count":29,"forks_count":325,"subscribers_count":71,"default_branch":"master","last_synced_at":"2026-04-03T02:18:48.425Z","etag":null,"topics":["aillio","coffee","coffee-roasting","fuji","hottop","modbus","phidgets","probat","roasting","thermocouple","yoctopuce"],"latest_commit_sha":null,"homepage":"https://artisan-scope.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/artisan-roaster-scope.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["artisan-roaster-scope"],"custom":"https://artisan-scope.org/donate/"}},"created_at":"2015-03-13T08:35:11.000Z","updated_at":"2026-04-02T17:20:02.000Z","dependencies_parsed_at":"2023-10-03T18:46:03.673Z","dependency_job_id":"8a73286a-6e6b-4d74-b5f3-6bdbad89a6f6","html_url":"https://github.com/artisan-roaster-scope/artisan","commit_stats":null,"previous_names":[],"tags_count":91,"template":false,"template_full_name":null,"purl":"pkg:github/artisan-roaster-scope/artisan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artisan-roaster-scope%2Fartisan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artisan-roaster-scope%2Fartisan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artisan-roaster-scope%2Fartisan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artisan-roaster-scope%2Fartisan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/artisan-roaster-scope","download_url":"https://codeload.github.com/artisan-roaster-scope/artisan/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artisan-roaster-scope%2Fartisan/sbom","scorecard":{"id":209589,"data":{"date":"2025-08-11","repo":{"name":"github.com/artisan-roaster-scope/artisan","commit":"75ba99143ce4e02755b875a43c3ca5a0af65072a"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.1,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 20 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/codespell.yml:1","Warn: no topLevel permission defined: .github/workflows/mypy.yml:1","Warn: no topLevel permission defined: .github/workflows/pylint.yaml:1","Warn: no topLevel permission defined: .github/workflows/pytest.yaml:1","Warn: no topLevel permission defined: .github/workflows/ruff.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact continuous not signed: https://api.github.com/repos/artisan-roaster-scope/artisan/releases/239419922","Warn: release artifact v3.2.0 not signed: https://api.github.com/repos/artisan-roaster-scope/artisan/releases/226839373","Warn: release artifact v3.1.4 not signed: https://api.github.com/repos/artisan-roaster-scope/artisan/releases/215990508","Warn: release artifact v3.1.0 not signed: https://api.github.com/repos/artisan-roaster-scope/artisan/releases/186580470","Warn: release artifact continuous does not have provenance: https://api.github.com/repos/artisan-roaster-scope/artisan/releases/239419922","Warn: release artifact v3.2.0 does not have provenance: https://api.github.com/repos/artisan-roaster-scope/artisan/releases/226839373","Warn: release artifact v3.1.4 does not have provenance: https://api.github.com/repos/artisan-roaster-scope/artisan/releases/215990508","Warn: release artifact v3.1.0 does not have provenance: https://api.github.com/repos/artisan-roaster-scope/artisan/releases/186580470"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 1 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"89 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2023-120 / GHSA-45c4-8wx5-qw6w","Warn: Project is vulnerable to: GHSA-5m98-qgg9-wh84","Warn: Project is vulnerable to: GHSA-7gpw-8wmc-pm8g","Warn: Project is vulnerable to: GHSA-8495-4g3g-x7pr","Warn: Project is vulnerable to: PYSEC-2024-26 / GHSA-8qpw-xqxj-h4r2","Warn: Project is vulnerable to: GHSA-9548-qrrj-x5pj","Warn: Project is vulnerable to: PYSEC-2023-246 / GHSA-gfw2-4jvh-wgfg","Warn: Project is vulnerable to: GHSA-pjjw-qhg8-p2p9","Warn: Project is vulnerable to: PYSEC-2023-250 / GHSA-q3qx-c6g2-7pw2","Warn: Project is vulnerable to: PYSEC-2023-251 / GHSA-qvrw-v9rv-5rjx","Warn: Project is vulnerable to: PYSEC-2021-76 / GHSA-v6wp-4m6f-gcjg","Warn: Project is vulnerable to: PYSEC-2023-247 / GHSA-xx9p-xxvh-7g8j","Warn: Project is vulnerable to: PYSEC-2019-182 / GHSA-8867-vpm3-g98g","Warn: Project is vulnerable to: PYSEC-2012-8 / GHSA-p3h7-3c45-qj4v","Warn: Project is vulnerable to: PYSEC-2019-181 / GHSA-p86x-652p-6385","Warn: Project is vulnerable to: PYSEC-2018-34 / GHSA-2fc2-6r4j-p65h","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: PYSEC-2019-108 / GHSA-9fq2-x9r6-wfmf","Warn: Project is vulnerable to: PYSEC-2018-33 / GHSA-cw6w-4rcx-xphc","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2017-1 / GHSA-frgw-fgh6-9g52","Warn: Project is vulnerable to: GHSA-3c5c-7235-994j","Warn: Project is vulnerable to: GHSA-3f63-hfp8-52jq","Warn: Project is vulnerable to: PYSEC-2021-41 / GHSA-3wvg-mj6g-m9cv","Warn: Project is vulnerable to: PYSEC-2020-77 / GHSA-3xv8-3j54-hgrp","Warn: Project is vulnerable to: PYSEC-2020-80 / GHSA-43fq-w8qq-v88h","Warn: Project is vulnerable to: GHSA-44wm-f244-xhp3","Warn: Project is vulnerable to: GHSA-4fx9-vc88-q2xc","Warn: Project is vulnerable to: PYSEC-2021-35 / GHSA-57h3-9rgr-c24m","Warn: Project is vulnerable to: PYSEC-2020-172 / GHSA-5gm3-px64-rw72","Warn: Project is vulnerable to: PYSEC-2021-331 / GHSA-7534-mm45-c74v","Warn: Project is vulnerable to: PYSEC-2021-92 / GHSA-7r7m-5h27-29hp","Warn: Project is vulnerable to: PYSEC-2020-78 / GHSA-8843-m7mw-mxqm","Warn: Project is vulnerable to: PYSEC-2023-227 / GHSA-8ghj-p4vj-mr35","Warn: Project is vulnerable to: PYSEC-2014-87 / GHSA-8m9x-pxwq-j236","Warn: Project is vulnerable to: PYSEC-2022-10 / GHSA-8vj2-vxx3-667w","Warn: Project is vulnerable to: PYSEC-2021-36 / GHSA-8xjq-8fcg-g5hw","Warn: Project is vulnerable to: PYSEC-2016-6 / GHSA-8xjv-v9xq-m5h9","Warn: Project is vulnerable to: PYSEC-2021-42 / GHSA-95q3-8gr9-gm8w","Warn: Project is vulnerable to: PYSEC-2022-168 / GHSA-9j59-75qj-795w","Warn: Project is vulnerable to: PYSEC-2014-10 / GHSA-cfmr-38g9-f2h7","Warn: Project is vulnerable to: PYSEC-2020-76 / GHSA-cqhg-xjhh-p8hf","Warn: Project is vulnerable to: PYSEC-2021-40 / GHSA-f4w8-cv6p-x6r5","Warn: Project is vulnerable to: PYSEC-2021-69 / GHSA-f5g8-5qq7-938w","Warn: Project is vulnerable to: PYSEC-2021-139 / GHSA-g6rj-rv7j-xwp4","Warn: Project is vulnerable to: PYSEC-2015-16 / GHSA-h5rf-vgqx-wjv2","Warn: Project is vulnerable to: PYSEC-2016-5 / GHSA-hggx-3h72-49ww","Warn: Project is vulnerable to: PYSEC-2020-84 / GHSA-hj69-c76v-86wr","Warn: Project is vulnerable to: PYSEC-2016-7 / GHSA-hvr8-466p-75rh","Warn: Project is vulnerable to: PYSEC-2015-15 / GHSA-j6f7-g425-4gmx","Warn: Project is vulnerable to: GHSA-j7hp-h8jx-5ppr","Warn: Project is vulnerable to: PYSEC-2019-110 / GHSA-j7mj-748x-7p78","Warn: Project is vulnerable to: GHSA-jgpv-4h4c-xhw3","Warn: Project is vulnerable to: PYSEC-2022-42979 / GHSA-m2vv-5vj5-2hm7","Warn: Project is vulnerable to: PYSEC-2021-37 / GHSA-mvg9-xffr-p774","Warn: Project is vulnerable to: PYSEC-2020-83 / GHSA-p49h-hjvm-jg3h","Warn: Project is vulnerable to: PYSEC-2022-8 / GHSA-pw3c-h7wp-cvhx","Warn: Project is vulnerable to: PYSEC-2021-93 / GHSA-q5hq-fp76-qmrc","Warn: Project is vulnerable to: PYSEC-2020-82 / GHSA-r7rm-8j6h-r933","Warn: Project is vulnerable to: PYSEC-2014-23 / GHSA-r854-96gq-rfg3","Warn: Project is vulnerable to: PYSEC-2016-8 / GHSA-rwr3-c2q8-gm56","Warn: Project is vulnerable to: PYSEC-2020-81 / GHSA-vcqg-3p29-xw73","Warn: Project is vulnerable to: PYSEC-2020-79 / GHSA-vj42-xq3r-hr3r","Warn: Project is vulnerable to: PYSEC-2021-70 / GHSA-vqcj-wrf2-7v73","Warn: Project is vulnerable to: PYSEC-2016-9 / GHSA-w4vg-rf63-f3j3","Warn: Project is vulnerable to: PYSEC-2014-22 / GHSA-x895-2wrm-hvp7","Warn: Project is vulnerable to: PYSEC-2022-9 / GHSA-xrcv-f9gm-v42c","Warn: Project is vulnerable to: OSV-2022-715","Warn: Project is vulnerable to: PYSEC-2021-137","Warn: Project is vulnerable to: PYSEC-2021-138","Warn: Project is vulnerable to: PYSEC-2021-317","Warn: Project is vulnerable to: PYSEC-2021-38","Warn: Project is vulnerable to: PYSEC-2021-39","Warn: Project is vulnerable to: PYSEC-2021-94","Warn: Project is vulnerable to: PYSEC-2022-42980","Warn: Project is vulnerable to: PYSEC-2023-175","Warn: Project is vulnerable to: GHSA-8qvm-5x2c-j2w7","Warn: Project is vulnerable to: PYSEC-2021-47 / GHSA-5jqp-qgf6-3pvh","Warn: Project is vulnerable to: GHSA-mr82-8j83-vxmv","Warn: Project is vulnerable to: PYSEC-2020-175 / GHSA-7fcj-pq9j-wh2r","Warn: Project is vulnerable to: PYSEC-2023-292 / GHSA-9w2p-rh8c-v9g5","Warn: Project is vulnerable to: PYSEC-2021-112 / GHSA-hwfp-hg2m-9vr2","Warn: Project is vulnerable to: PYSEC-2019-156 / GHSA-xp76-357g-9wqq","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: PYSEC-2023-114","Warn: Project is vulnerable to: PYSEC-2025-49 / GHSA-5rjg-fvgr-3xxf","Warn: Project is vulnerable to: PYSEC-2021-95 / GHSA-8ch4-58qp-g3mp","Warn: Project is vulnerable to: PYSEC-2018-79"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codespell.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/artisan-roaster-scope/artisan/codespell.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codespell.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/artisan-roaster-scope/artisan/codespell.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/codespell.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/artisan-roaster-scope/artisan/codespell.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/mypy.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/artisan-roaster-scope/artisan/mypy.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/mypy.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/artisan-roaster-scope/artisan/mypy.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/mypy.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/artisan-roaster-scope/artisan/mypy.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pylint.yaml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/artisan-roaster-scope/artisan/pylint.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pylint.yaml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/artisan-roaster-scope/artisan/pylint.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/artisan-roaster-scope/artisan/pytest.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/artisan-roaster-scope/artisan/pytest.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ruff.yaml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/artisan-roaster-scope/artisan/ruff.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ruff.yaml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/artisan-roaster-scope/artisan/ruff.yaml/master?enable=pin","Warn: pipCommand not pinned by hash: .ci/install-linux.sh:35","Warn: pipCommand not pinned by hash: .ci/install-linux.sh:36","Warn: pipCommand not pinned by hash: .ci/install-macos.sh:65","Warn: pipCommand not pinned by hash: .github/workflows/codespell.yml:41","Warn: pipCommand not pinned by hash: .github/workflows/codespell.yml:42","Warn: pipCommand not pinned by hash: .github/workflows/mypy.yml:41","Warn: pipCommand not pinned by hash: .github/workflows/mypy.yml:42","Warn: pipCommand not pinned by hash: .github/workflows/mypy.yml:43","Warn: pipCommand not pinned by hash: .github/workflows/pylint.yaml:43","Warn: pipCommand not pinned by hash: .github/workflows/pylint.yaml:44","Warn: pipCommand not pinned by hash: .github/workflows/pylint.yaml:45","Warn: pipCommand not pinned by hash: .github/workflows/pytest.yaml:61","Warn: pipCommand not pinned by hash: .github/workflows/pytest.yaml:62","Warn: pipCommand not pinned by hash: .github/workflows/pytest.yaml:63","Info:   0 out of   9 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of  14 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}}]},"last_synced_at":"2025-08-17T00:30:49.775Z","repository_id":28625078,"created_at":"2025-08-17T00:30:49.776Z","updated_at":"2025-08-17T00:30:49.776Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31833837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T07:17:56.427Z","status":"ssl_error","status_checked_at":"2026-04-15T07:17:30.007Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aillio","coffee","coffee-roasting","fuji","hottop","modbus","phidgets","probat","roasting","thermocouple","yoctopuce"],"created_at":"2024-07-31T17:01:06.521Z","updated_at":"2026-04-15T09:02:31.860Z","avatar_url":"https://github.com/artisan-roaster-scope.png","language":"Python","readme":"\u003cimg align=\"right\" src=\"https://raw.githubusercontent.com/artisan-roaster-scope/artisan/master/wiki/screenshots/artisan.png\" width=\"70\"\u003e\n\nArtisan\n==========\nVisual scope for coffee roasters\n\n[![Latest release](https://img.shields.io/github/release/artisan-roaster-scope/artisan.svg)](https://github.com/artisan-roaster-scope/artisan/releases/latest)\n[![Pre-release](https://img.shields.io/github/release-pre/artisan-roaster-scope/artisan.svg)](https://github.com/artisan-roaster-scope/artisan/releases/continuous)\n![Github Latest Releases](https://img.shields.io/github/downloads/artisan-roaster-scope/artisan/latest/total)\n![License](https://img.shields.io/github/license/artisan-roaster-scope/artisan.svg)\n[![Windows/Mac/Linux build](https://img.shields.io/appveyor/ci/roasterdave/artisan.svg?label=Windows/Mac/Linux%20builds)](https://ci.appveyor.com/project/roasterdave/artisan)\n[![pylint](https://github.com/artisan-roaster-scope/artisan/actions/workflows/pylint.yaml/badge.svg?branch=master\u0026event=push)](https://github.com/artisan-roaster-scope/artisan/actions?query=workflow:pylint+event:push+branch:master)\n[![Mypy](https://github.com/artisan-roaster-scope/artisan/actions/workflows/mypy.yml/badge.svg?branch=master)](https://github.com/artisan-roaster-scope/artisan/actions/workflows/mypy.yml)\n[![Ruff](https://github.com/artisan-roaster-scope/artisan/actions/workflows/ruff.yaml/badge.svg?branch=master)](https://github.com/artisan-roaster-scope/artisan/actions/workflows/ruff.yaml)\n[![pytest](https://github.com/artisan-roaster-scope/artisan/actions/workflows/pytest.yaml/badge.svg?branch=master)](https://github.com/artisan-roaster-scope/artisan/actions/workflows/pytest.yaml)\n![coverage](./src/coverage.svg)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n\n\n*WARNING: pre-release (continuous) builds may not work.  Use at your own risk.*\n\n\nSummary\n-------\n\nArtisan is a software that helps coffee roasters record, analyze, and control roast profiles. When used in conjunction with a thermocouple data logger or a proportional–integral–derivative controller (PID controller), this software can automate the creation of roasting metrics to help make decisions that influence the final coffee flavor.\n\nArtisan is listed on [Awesome Python Applications](https://github.com/mahmoud/awesome-python-applications).\n\nDonations\n---------\n\nThis software is open-source and absolutely free to use, also in commercial settings.\n\nIf you think Artisan is useful to you, contribute financially to its further development. Send any amount via my [PayPal.Me page](https://www.paypal.me/MarkoLuther). Thanks!\n\n\u003e *Home roasting enthusiasts often donate 10-100.- (in $ or EUR), while small roasting businesses and consultant that use Artisan in their daily work tend to donate 100-300.- (in $ or EUR). For extra tech support, please inquire.*\n\n\n![](https://github.com/artisan-roaster-scope/artisan/blob/master/wiki/screenshots/artisan-cover.png?raw=true)\n\n[Download](https://artisan-scope.org/download/) (macOS/Windows/Linux/RPi)\n\n[Installation Instructions](https://github.com/artisan-roaster-scope/artisan/blob/master/wiki/Installation.md)\n\n[Documentation](https://artisan-scope.org/docs/)\n\n\nPLEASE FOLLOW AND TAG US!\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003ca href=\"https://www.facebook.com/ArtisanScope\"\u003e\u003cimg src=\"https://github.com/artisan-roaster-scope/artisan/blob/master/wiki/screenshots/facebook-square.svg?raw=true\" width=\"30\"\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003ca href=\"https://www.instagram.com/artisanscope/\"\u003e\u003cimg src=\"https://github.com/artisan-roaster-scope/artisan/blob/master/wiki/screenshots/instagram-square.svg?raw=true\" width=\"30\"\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003ca href=\"https://www.youtube.com/channel/UCEp-DH_Y7sBR3-X3FWomgog\"\u003e\u003cimg src=\"https://github.com/artisan-roaster-scope/artisan/blob/master/wiki/screenshots/youtube-svgrepo-com.svg?raw=true\" width=\"30\"\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003ca href=\"https://masto.ai/@artisan\"\u003e\u003cimg src=\"https://github.com/artisan-roaster-scope/artisan/blob/master/wiki/screenshots/mastodon-icon-svgrepo-com.svg?raw=true\" width=\"30\"\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003ca href=\"https://www.linkedin.com/company/artisan-plus\"\u003e\u003cimg src=\"https://github.com/artisan-roaster-scope/artisan/blob/master/wiki/screenshots/linkedin-svgrepo-com.svg?raw=true\" width=\"30\"\u003e\u003c/a\u003e\n\n\n[![Star History Chart](https://api.star-history.com/svg?repos=artisan-roaster-scope/artisan\u0026type=Date)](https://star-history.com/#artisan-roaster-scope/artisan\u0026Date)\n\n\u003ca id=\"version_history\"\u003e\u003c/a\u003e\nVersion History\n---------------\n\n\n[Detailed Release History](wiki/ReleaseHistory.md)\n\n\n| Version | Date  | Comment |\n|---------|------:|---------|\n| [v4.0.2](https://github.com/artisan-roaster-scope/artisan/releases/tag/v4.0.2) | Feb\u0026nbsp;7,\u0026nbsp;2026 | Bug fixes |\n| [v4.0.0](https://github.com/artisan-roaster-scope/artisan/releases/tag/v4.0.0) | Jan\u0026nbsp;28,\u0026nbsp;2026 | Adds UI modes, adds support for [Lebrew RoastSee NEXT](https://lebrewtech.com/products/roastsee-next) and [Acaia Pyxis Black (2025)](https://eu.acaia.co/products/pyxis-black), 2DOF software PID implementation with interpolated gain scheduling, bumpless transfer and filtering, general stability and performance improvements.\u003cbr\u003e:heart: \u003cb\u003eRelease Sponsor: [artisan.plus](https://artisan.plus/)\u003c/b\u003e :heart: |\n| [v3.4.0](https://github.com/artisan-roaster-scope/artisan/releases/tag/v3.4.0) | Oct\u0026nbsp;31,\u0026nbsp;2025 | Adds support for [Kraffe](https://artisan-scope.org/machines/kraffe/), [Berto](https://artisan-scope.org/machines/berto/), [Nordic PLC](https://artisan-scope.org/machines/nordic/), [Prisma](https://artisan-scope.org/machines/prisma/), additional [Easyster](https://artisan-scope.org/machines/easyster/) and [Proaster](https://artisan-scope.org/machines/proaster/) models, the latest [Cogen](https://artisan-scope.org/machines/cogen/) and [Toper](https://artisan-scope.org/machines/toper/) roasters, and updates setups for [Sweet Coffee Italia](https://artisan-scope.org/machines/sci/) and [Joper](https://joper-roasters.com/) machines. Adds support for [Tasi TA612C 4-channel](https://artisan-scope.org/devices/meters/) and [Shelly energy meters](https://artisan-scope.org/devices/shelly/), as well as the ability to import Cropster profiles through drag-and-drop. Enables multi-day coffee fermentation experiments. Adds Czech and improved Chinese, Korean, and Spanish localizations. Updates the internal PID algorithm with advanced algorithmic and the app icon for the glass era (last version featuring legacy builds supporting macOS 10.13+ and Window 8).\u003cbr\u003e:heart: \u003cb\u003eRelease Sponsor: [artisan.plus](https://artisan.plus/)\u003c/b\u003e :heart: |\n| [v3.2.0](https://github.com/artisan-roaster-scope/artisan/releases/tag/v3.2.0) | Jun\u0026nbsp;23,\u0026nbsp;2025 | Adds [batch manager](https://doc.artisan.plus/docs/batch-manager) and support for the Acaia relay scales [UMBRA](https://acaia.co/products/umbra-lunar) and [COSMO](https://buy.artisan.plus/Acaia-Cosmo-Scale) (last version supporting macOS 12, Ubuntu 22.04 and RedHat 8.4).\u003cbr\u003e:heart: \u003cb\u003eRelease Sponsor: [Acaia](https://acaia.co/)\u003c/b\u003e :heart: |\n| [v3.1.4](https://github.com/artisan-roaster-scope/artisan/releases/tag/v3.1.4) | May\u0026nbsp;1,\u0026nbsp;2025 | Fixes backward compatibility with some existing MODBUS configurations broken by v3.1.2 |\n| [v3.1.2](https://github.com/artisan-roaster-scope/artisan/releases/tag/v3.1.2) | Apr\u0026nbsp;30,\u0026nbsp;2025 | Adds roast defects weight, event replay ramping, event dragging, [Aillio Bullet R2](https://artisan-scope.org/machines/aillio/) support, [IMF machine control](https://artisan-scope.org/machines/imf/) setups, extended support for [Giesen machines](https://artisan-scope.org/machines/giesen/), fixes [Loring autoCHARGE/DROP](https://artisan-scope.org/machines/loring/), adds [Carmomaq's Stratto Lab sample roaster](https://artisan-scope.org/machines/carmomaq/), [Phidget motor controllers](https://artisan-scope.org/devices/phidgets/#45-dc-motor-control), support for energy meters, [ROEST CSV import](https://artisan-scope.org/machines/roest/), improved Cropster import, many small fixes and UI improvements |\n| [v3.1.0](https://github.com/artisan-roaster-scope/artisan/releases/tag/v3.1.0) | Nov\u0026nbsp;22,\u0026nbsp;2024 | Adds support for induction heated [Gemma machines by Sweet Coffee Italia](https://artisan-scope.org/machines/sci/), the latest [Santoker machines](https://artisan-scope.org/machines/santoker/) connecting via Bluetooth, [Primo roasting machines](https://artisan-scope.org/machines/primo/), [ColorTrack](https://artisan-scope.org/devices/colortrack/) sensors, [Stronghold](https://stronghold.coffee/) profile import, and [Phidget stepper controllers](https://artisan-scope.org/devices/phidgets/) and more.\u003cbr\u003e:heart: \u003cb\u003eRelease Sponsor: [Algrano](https://algrano.com/artisan?utm_source=artisan_blog\u0026utm_medium=referral\u0026utm_campaign=algrano_x_artisan\u0026utm_content=blog)\u003c/b\u003e :heart: |\n| [v3.0.2](https://github.com/artisan-roaster-scope/artisan/releases/tag/v3.0.2) | Aug\u0026nbsp;20,\u0026nbsp;2024 | Bug fixes |\n| [v3.0.0](https://github.com/artisan-roaster-scope/artisan/releases/tag/v3.0.0) | Aug\u0026nbsp;1,\u0026nbsp;2024 | Adds [roast scheduling](https://doc.artisan.plus/docs/schedule/) support\u003cbr\u003e:heart: \u003cb\u003eRelease Sponsor: [artisan.plus](https://artisan.plus/)\u003c/b\u003e :heart: |\n| [v2.10.4](https://github.com/artisan-roaster-scope/artisan/releases/tag/v2.10.4) | Mar\u0026nbsp;21,\u0026nbsp;2024 | Bug fixes |\n| [v2.10.2](https://github.com/artisan-roaster-scope/artisan/releases/tag/v2.10.2) | Feb\u0026nbsp;29,\u0026nbsp;2024 | Adds support for machines from [Mill City Roasters](https://millcityroasters.com/), the [IKAWA PRO X](https://www.ikawacoffee.com/), the standard WinUSB driver for the [Aillio R1](https://aillio.com/) on Windows, the [Digi-Sense 20250-07 IR](https://www.coleparmer.com/i/digi-sense-ir-thermometer-thermocouple-probe-input-and-nist-traceable-calibration-30-1/2025007), and the [Extech 42570 IR](https://www.extech-online.com/index.php?main_page=product_info\u0026cPath=78_21_35\u0026products_id=99).\u003cbr\u003e|\n| [v2.10.0](https://github.com/artisan-roaster-scope/artisan/releases/tag/v2.10.0) | Nov\u0026nbsp;28,\u0026nbsp;2023 | Adds support for [Bühler Roastmaster](https://www.buhlergroup.com/global/de/products/roastmaster_coffeeroaster.html), [Joper](https://joper-roasters.com/), and [Cogen](https://cogen-company.com/) roasting machines, the Phidget [DAQ1000](https://phidgets.com/?prodid=622), [DAQ1200](https://phidgets.com/?prodid=623), [DAQ1300](https://phidgets.com/?prodid=624), [DAQ1301](https://phidgets.com/?prodid=625), macOS AppleSilicon support, Raspbian Bookworm 64bit build, extra devices to [Roast Comparator](https://artisan-roasterscope.blogspot.com/2020/05/roast-comparator.html) and many performance and stability improvements.\u003cbr\u003e:heart: \u003cb\u003eRelease Sponsor: [Paolo Scimone Coffee Consulting](https://www.paoloscimone.com/)\u003c/b\u003e :heart:|\n| [v2.8.4](https://github.com/artisan-roaster-scope/artisan/releases/tag/v2.8.4) | Jun\u0026nbsp;21,\u0026nbsp;2023 | Adds official integration with [Kaleido](https://www.kaleido-roaster.com/) roasters as well as dark mode support on Windows and Linux (last version supporting macOS 11, but newer legacy builds still support macOS 10.13 and newer)\u003cbr\u003e:heart: \u003cb\u003eRelease Sponsor: [BC Roasters](https://bcroasters.com/)\u003c/b\u003e :heart: |\n| [v2.8.2](https://github.com/artisan-roaster-scope/artisan/releases/tag/v2.8.2) | Dec\u0026nbsp;21,\u0026nbsp;2022 | Adds support for [Sivetz fluid bed roasting machines](https://artisan-scope.org/machines/sivetz/), [Santoker Q Series and R Series roasters](https://artisan-scope.org/machines/santoker/), the [Yocto Watt module](https://artisan-scope.org/devices/yoctopuce/#Yocto-Watt), the [Phidget DAQ1500](https://artisan-scope.org/devices/phidgets/#DAQ1500), and speeds up the [Designer](https://artisan-roasterscope.blogspot.com/2019/05/using-artisan-designer.html) (last version supporting macOS 10.15, but legacy builds of v2.8 still supports macOS 10.13+) |\n| [v2.8.0](https://github.com/artisan-roaster-scope/artisan/releases/tag/v2.8.0) | Oct\u0026nbsp;21,\u0026nbsp;2022 | Adds support for new [Besca models](https://artisan-scope.org/machines/besca/), [Diedrich DR machines](https://artisan-scope.org/machines/diedrich/), [Titanium Roasters](https://artisan-scope.org/machines/titanium/), Eurotherm variants of [San Franciscan machines](https://artisan-scope.org/machines/sf/), the [Plugin Roast 2.0 module](https://www.pluginroast.com.br/) and [CMS machines from  Coffee Machines Sale](https://artisan-scope.org/machines/cms/), adds [Roast Comparator](https://artisan-roasterscope.blogspot.com/2020/05/roast-comparator.html) phases widget and auto time axis modes\u003cbr\u003e:heart: \u003cb\u003eRelease Sponsor: [Coffee Machines Sales](https://cmsale.com/)\u003c/b\u003e :heart: |\n| [v2.6.0](https://github.com/artisan-roaster-scope/artisan/releases/tag/v2.6.0) | Mar\u0026nbsp;11,\u0026nbsp;2022 | Adds support for a number of additional machines, the new [Phidget HUB0001](https://www.phidgets.com/?prodid=1202) and the [Phidget VCP100x](https://www.phidgets.com/?tier=3\u0026catid=16\u0026pcid=14\u0026prodid=953) modules, the new generation [Acaia](https://acaia.co/) [Pearl-S](https://acaia.co/collections/coffee-scales/products/pearl-model-s)/[Pearl2021](https://acaia.co/collections/coffee-scales/products/pearl)/[Lunar2021](https://acaia.co/products/lunar_2021) scales, adds a CHARGE timer, quadratic and RoR projections, an enhanced cursor coordinates widget, LCD cursor function, PDF reports, BBP support to [Roast Comparator](https://artisan-roasterscope.blogspot.com/2020/05/roast-comparator.html), some [Roast Simulator](https://artisan-roasterscope.blogspot.com/2020/05/roast-simulator.html) enhancements, a slider mapping calculator, an [artisan.plus](https://artisan.plus) custom blend editor, notifications, many keyboard shortcuts, Ukrainian localization, performance and stability improvements as well as macOS and Windows legacy builds\u003cbr\u003e:heart: \u003cb\u003eRelease Sponsor: [Showroom Coffee](https://showroomcoffee.com/)\u003c/b\u003e :heart: |\n| [v2.4.6](https://github.com/artisan-roaster-scope/artisan/releases/tag/v2.4.6)  | Jul\u0026nbsp;30,\u0026nbsp;2021 | Adds [energy and CO2 calculator](https://artisan-roasterscope.blogspot.com/2021/07/tracking-energy-consumption-co2.html), new setups for [Probat UG and G Series machines](https://artisan-scope.org/machines/kirsch/) with control functionality, the new [FZ94 EVO](https://www.coffee-tech.com/products/shop-roasters/fz94-evo/) machine by [Coffee-Tech](https://artisan-scope.org/machines/coffeetech/), as well as machines of [Roastmax](https://artisan-scope.org/machines/roastmax/), [Craftsmith](https://artisan-scope.org/machines/craftsmith/) and [Carmomaq](https://artisan-scope.org/machines/roastmax/), updates [Giesen setups](https://artisan-scope.org/machines/giesen/) to control additional actors on larger machines, adds support for the [Yoctopuce modules Yocto-0-10V-Rx, Yocto-milliVolt-Rx and Yocto-Serial](https://artisan-scope.org/devices/yoctopuce/), extends Chinese and Spanish translations and adds translations for Vietnamese, Danish, Latvian, Slovak and Scottish (last version supporting Windows 8, but legacy build of v2.6.0 supports Windows 8)\u003cbr\u003e:heart: \u003cb\u003eRelease Sponsor: [Sweet Maria's](https://github.com/artisan-roaster-scope/artisan/blob/v2.4.6)\u003c/b\u003e :heart: |\n| [v2.4.4](https://github.com/artisan-roaster-scope/artisan/releases/tag/v2.4.4)  | Dec 14, 2020 | Adds machine setups for the [Nordic PLC](https://artisan-scope.org/machines/nordic/) and [Fabrica Roasters](https://artisan-scope.org/machines/fabrica/), importers for [Rubasse](https://rubasseroasters.com/) and [Aillio](https://aillio.com/) RoastWorld, as well as PID Ramp/Soak pattern actions and templates (last version supporting Raspbian Stretch) |\n| [v2.4.2](https://github.com/artisan-roaster-scope/artisan/releases/tag/v2.4.2)  | Oct\u0026nbsp;2,\u0026nbsp;2020 | Adds [support for machines of over 40 brands](https://artisan-scope.org/machines/index) including the [Probat PIII series](https://www.probat.com/en/products/shoproaster/produkte/roasters/p-series-probatino/), [IKAWA v3 CSV](https://www.ikawacoffee.com/) and [RoastLog profile](https://roastlog.com/) import,  \"[Source Han Sans](https://en.wikipedia.org/wiki/Source_Han_Sans)\" and \"[WenQuanYi Zen Hei](https://en.wikipedia.org/wiki/WenQuanYi)\" font options providing complete Chinese, Korean and Japanese character sets, sliders Bernoulli mode, and [WebSocket communication](https://artisan-scope.org/devices/websockets/) (last version supporting macOS 10.13 and 10.14; note that legacy builds of v2.6.0 and v2.8.0 again supports those systems) |\n| [v2.4.0](https://github.com/artisan-roaster-scope/artisan/releases/tag/v2.4.0) | Jun 3, 2020 | Adds [Roast Comparator](https://artisan-roasterscope.blogspot.com/2020/05/roast-comparator.html), [Roast Simulator](https://artisan-roasterscope.blogspot.com/2020/05/roast-simulator.html), and [Profile Transposer](https://artisan-roasterscope.blogspot.com/2020/05/profile-transposer.html), Cropster, IKAWA and Giesen Software profile import, flexible [automatic file name generator](https://artisan-roasterscope.blogspot.com/2020/05/autosave-file-naming.html), [special event annotations](https://artisan-roasterscope.blogspot.com/2020/05/special-events-annotations.html), large PhasesLCDs, support for [Twino/Ozstar roasting machines](https://artisan-scope.org/machines/twino-ozstar/) and the [Giesen IR sensor](https://artisan-scope.org/machines/giesen/), S7 and MODBUS protocol optimizations and extensions, support for additional Phidgets and Yoctopuce IO modules |\n| [v2.1.2](https://github.com/artisan-roaster-scope/artisan/releases/tag/v2.1.2)  | Dec\u0026nbsp;24,\u0026nbsp;2019 | Bug fixes |\n| [v2.1.1](https://github.com/artisan-roaster-scope/artisan/releases/tag/v2.1.1)  | Nov\u0026nbsp;29,\u0026nbsp;2019 | Bug fixes |\n| [v2.1.0](https://github.com/artisan-roaster-scope/artisan/releases/tag/v2.1.0) | Nov\u0026nbsp;26,\u0026nbsp;2019 | Adds [profile analyzer](https://artisan-roasterscope.blogspot.com/2019/11/analyzer.html), [extended symbolic formulas](https://artisan-roasterscope.blogspot.com/2019/11/symbolic-formulas-basics-new-variables.html), [background images](https://artisan-roasterscope.blogspot.com/2019/11/background-images.html), forward looking alarms and alarms triggered by temperature differences, support for the [Atilla](https://www.atilla.com.br/) GOLD plus 7\" II, the [Besca Bee sample roaster](https://www.bescaroasters.com/roaster-detail/14/Sample-Roasters/Besca-Bee-Coffee-Roaster), additional [Coffed](https://coffed.pl/en) machines (SR3/5/15/25/60), [Coffeetool Rxx](https://coffeetool.gr/product-category/coffeeroasters/) machines with control, and [popular Phidget sets](https://artisan-scope.org/devices/phidget-sets/) (incl. the one featured in [On Idle Noise](https://artisan-roasterscope.blogspot.com/2019/03/on-idle-noise.html)) |\n| [v2.0.0](https://github.com/artisan-roaster-scope/artisan/releases/tag/v2.0.0)  | Jun\u0026nbsp;4,\u0026nbsp;2019 | New icon and new look! Adds support for the [artisan.plus](https://artisan.plus/) inventory management service, [Coffee-Tech Engineering Silon ZR7](https://www.coffee-tech.com/products/shop-roasters/silon-zr-7-shop-roaster/), [Has Garanti HGS and HSR series](http://www.hasgaranti.com.tr/en/products/shop-type-products/shop-type-roasting-coffee-machine.html), [Kaldi Fortis](https://eng.homecaffe.net/product/kaldi-fortis-grande-coffee-roaster/126/category/223/display/1/), and the forthcoming [Behmor 1kg](https://behmor.com/jake-kilo-roaster/) |\n| [v1.6.2](https://github.com/artisan-roaster-scope/artisan/releases/tag/v1.6.2) | Mar\u0026nbsp;20,\u0026nbsp;2019 | Enables communication with Phidgets under the Mac OS X 10.14 security framework |\n| [v1.6.1](https://github.com/artisan-roaster-scope/artisan/releases/tag/v1.6.1) | Mar\u0026nbsp;10,\u0026nbsp;2019 | Adds support for the [Sedona Elite 2in1 roaster](http://www.buckeyecoffee.com/sedona-elite-roasters.html), the [Probat Roaster Middleware](https://www.probat.com/en/products/shoproaster/produkte/roasters/probatone-series/), the [Aillio R1](https://aillio.com/) v2 firmware incl. the new [IBTS IR sensor](https://medium.com/@aillio/the-start-of-something-39aa01d08fa9), the Phidgets [REL1000](https://www.phidgets.com/?tier=3\u0026catid=46\u0026pcid=39\u0026prodid=966), [REL1100](https://www.phidgets.com/?tier=3\u0026catid=46\u0026pcid=39\u0026prodid=720), [REL1101](https://www.phidgets.com/?tier=3\u0026catid=46\u0026pcid=39\u0026prodid=721), and [DAQ1400](https://www.phidgets.com/?tier=3\u0026catid=49\u0026pcid=42\u0026prodid=961), the Phidget RC Servo API ([Phidget RCC 1000](https://www.phidgets.com/?tier=3\u0026catid=21\u0026pcid=18\u0026prodid=1015), [Phidget 1061](https://www.phidgets.com/?tier=3\u0026catid=21\u0026pcid=18\u0026prodid=1032), and [Phidget 1066](https://www.phidgets.com/?tier=3\u0026catid=21\u0026pcid=18\u0026prodid=1044)), the [Yocotopuce Meteo](http://www.yoctopuce.com/EN/products/usb-environmental-sensors/yocto-meteo-v2) ambient sensor and the [Yocotopuce IR](http://www.yoctopuce.com/EN/products/usb-environmental-sensors/yocto-temperature-ir) module, adds Brazilian portuguese translations and updated French translations |\n| [v1.5.0](https://github.com/artisan-roaster-scope/artisan/releases/tag/v1.5.0)  | Oct\u0026nbsp;17,\u0026nbsp;2018 | Adds [ArtisanViewer mode](https://artisan-roasterscope.blogspot.com/2020/06/working-together-artisan-artisanviewer.html), Phidgets IO VoltageRatio, Program 78 and Program 910 devices, and support for manual [Besca roasting machines](https://www.bescaroasters.com/) |\n| [v1.4.0](https://github.com/artisan-roaster-scope/artisan/releases/tag/v1.4.0) | Oct\u0026nbsp;3,\u0026nbsp;2018 | Adds time guide, additional PhasesLCD configurations, export/convert to Excel and import/export to Probat Pilot v1.4, channel tare, playback DROP event, always ON mode, support for ambient data and Phidget ambient sensors [HUM1000](https://www.phidgets.com/?tier=3\u0026catid=14\u0026pcid=12\u0026prodid=644) and [PRE1000](https://www.phidgets.com/?tier=3\u0026catid=64\u0026pcid=57\u0026prodid=719), [PID P-on-Measurement/Input mode](http://brettbeauregard.com/blog/2017/06/introducing-proportional-on-measurement/), improved curve smoothing, machine support for [Atilla GOLD plus 7\"](http://www.atilla.com.br/p/atilla-5kg-gold-plus/), [Besca roasting machines](https://www.bescaroasters.com/), [Coffee-Tech Engineering Ghibli](https://www.coffee-tech.com/products/commercial-roasters/ghibli-r15/) and [Diedrich Roasters](https://www.diedrichroasters.com/)\n| [v1.3.1](https://github.com/artisan-roaster-scope/artisan/releases/tag/v1.3.1) | May\u0026nbsp;20,\u0026nbsp;2018 | Adds support for [Fuji PID PXF](https://www.fujielectric.com/products/instruments/products/controller/PXF.html) |\n| [v1.3.0](https://github.com/artisan-roaster-scope/artisan/releases/tag/v1.3.0) | Apr\u0026nbsp;15,\u0026nbsp;2018 | Adds Siemens S7 support, MODBUS BCD decode, color themes, extraction yield calculator, support for machines of [Aillio](https://aillio.com/), [BC Roasters](http://www.buckeyecoffee.com/), [Bühler](http://www.buhlergroup.com/), [Coffed](http://coffed.pl/), [Coffee-Tech](https://www.coffee-tech.com/), [Coffeetool](http://coffeetool.gr/), [Giesen](http://www.giesencoffeeroasters.eu/), [IMF](http://www.imf-srl.com/), [K+M](https://www.kirschundmausser.de/), [Loring](https://loring.com/), [Proaster](http://proaster.coffee/), [San Franciscan](http://www.sanfranroaster.com/), [Toper](http://www.toper.com/), [US Roaster Corp](http://www.usroastercorp.com/) |\n| [v1.2.0](https://github.com/artisan-roaster-scope/artisan/releases/tag/v1.2.0) | Dec\u0026nbsp;21,\u0026nbsp;2017 | Adds [replay by temperature](https://artisan-roasterscope.blogspot.de/2017/10/profile-templates.html), support for [Phidgets API v22](https://www.phidgets.com/docs/Operating_System_Support), Phidgets USB devices [USB 1002](https://www.phidgets.com/?tier=3\u0026catid=2\u0026pcid=1\u0026prodid=2), [1014](https://www.phidgets.com/?tier=3\u0026prodid=9), [1017](https://www.phidgets.com/?tier=3\u0026catid=46\u0026pcid=39\u0026prodid=15) and VINT devices [HUB0000](https://www.phidgets.com/?tier=3\u0026catid=2\u0026pcid=1\u0026prodid=643), [TMP1100](https://www.phidgets.com/?tier=3\u0026catid=14\u0026pcid=12\u0026prodid=725), [TMP1101](https://www.phidgets.com/?tier=3\u0026catid=64\u0026pcid=57\u0026prodid=726), [TMP1200](https://www.phidgets.com/?tier=3\u0026catid=14\u0026pcid=12\u0026prodid=968), [OUT1000](https://www.phidgets.com/?view=search\u0026q=OUT1000),[OUT1001](https://www.phidgets.com/?tier=3\u0026catid=2\u0026pcid=1\u0026prodid=712), [OUT1002](https://www.phidgets.com/?tier=3\u0026catid=2\u0026pcid=1\u0026prodid=713), [OUT1100](https://www.phidgets.com/?tier=3\u0026catid=2\u0026pcid=1\u0026prodid=714), [VOLTCRAFT PL-125-T2](https://www.conrad.de/de/temperatur-messgeraet-voltcraft-pl-125-t2-200-bis-1372-c-fuehler-typ-k-j-kalibriert-nach-werksstandard-ohne-zertifi-1012836.html), as well as the [VOLTCRAFT PL-125-T4](https://www.conrad.de/de/temperatur-messgeraet-voltcraft-pl-125-t4-200-bis-1372-c-fuehler-typ-k-j-kalibriert-nach-werksstandard-ohne-zertifi-1013036.html), improved RoR and dropout handling  (last version supporting Mac OS X 10.12 and Linux glibc 2.17; first version requiring the Phidget v22 driver)|\n| [v1.1.0](https://github.com/artisan-roaster-scope/artisan/releases/tag/v1.1.0) | Jun\u0026nbsp;10,\u0026nbsp;2017 | Adds [Recent Roast Properties](https://artisan-roasterscope.blogspot.de/2017/06/recent-roast-properties.html), [Aillio Bullet R1](https://aillio.com) profile import and support for [Probat Probatone 2](https://artisan-roasterscope.blogspot.de/2017/06/probat-probatone.html) (last version supporting OS X 10.9, Windows XP/7 and 32bit OS versions; last version supporting the Phidget v21 driver)|\n| [v1.0.0](https://github.com/artisan-roaster-scope/artisan/releases/tag/v1.0.0) | Feb\u0026nbsp;24,\u0026nbsp;2017 | Adds [internal software PID](https://artisan-roasterscope.blogspot.de/2016/11/pid-control.html), external MODBUS PID control, Apollo DT301, Extech 755, fast MODBUS RTU, [AUC](https://artisan-roasterscope.blogspot.de/2016/11/area-under-curve-auc.html), RPi build, and additional translations |\n| [v0.9.9](https://github.com/artisan-roaster-scope/artisan/releases/tag/v0.9.9) | Mar\u0026nbsp;14,\u0026nbsp;2016 | Adds [batch and ranking reports, batch conversions, follow-background for Fuji PIDs, additional keyboard short cuts, and designer improvements](https://artisan-roasterscope.blogspot.de/2016/03/artisan-v099.html) (last version supporting OS X 10.7 and 10.8) |\n| [v0.9.8](https://github.com/artisan-roaster-scope/artisan/releases/tag/v0.9.8) | Oct\u0026nbsp;21,\u0026nbsp;2015 | Adds US weight and volume units and extended [symbolic expressions and plotter](http://artisan-roasterscope.blogspot.de/2015/10/signals-symbolic-assignments-and-plotter.html), [ln()/x^2 approximations](http://artisan-roasterscope.blogspot.de/2015/10/natural-roasts.html) |\n| [v0.9.7](https://github.com/artisan-roaster-scope/artisan/releases/tag/v0.9.7) | Jul\u0026nbsp;29,\u0026nbsp;2015 | Bug fixes |\n| [v0.9.6](https://github.com/artisan-roaster-scope/artisan/releases/tag/v0.9.6) | Jul\u0026nbsp;20,\u0026nbsp;2015 | Bug fixes |\n| [v0.9.5](https://github.com/artisan-roaster-scope/artisan/releases/tag/v0.9.5) | Jul\u0026nbsp;6,\u0026nbsp;2015 | Adds [Batch counter](https://artisan-roasterscope.blogspot.de/2015/07/batch-counter.html) and app settings export/import (last Windows Celeron and Mac OS X 10.6 version)|\n| [v0.9.4](https://github.com/artisan-roaster-scope/artisan/releases/tag/v0.9.4) | Jun,\u0026nbsp;6,\u0026nbsp;2015 | Bug fixes |\n| [v0.9.3](https://github.com/artisan-roaster-scope/artisan/releases/tag/v0.9.3) | May\u0026nbsp;15,\u0026nbsp;2015 | Adds Phidget [1051](https://www.phidgets.com/?tier=3\u0026catid=14\u0026pcid=12\u0026prodid=43), [Hottop KN-8828B-2K+](http://artisan-roasterscope.blogspot.de/2015/05/hottop-kn-8828b-2k.html), and one extra background curve |\n| [v0.9.2](https://github.com/artisan-roaster-scope/artisan/releases/tag/v0.9.2) | Jan\u0026nbsp;16,\u0026nbsp;2015 | Bug fixes |\n| v0.9.1 | Jan, 3, 2015 | Adds [Acaia](http://acaia.co/) scale support and WebLCD QR code |\n| v0.9.0 | Nov 17, 2014 | MODBUS ASCII/TCP/UDP, Yocto [Thermocouple](http://www.yoctopuce.com/EN/products/usb-environmental-sensors/yocto-thermocouple) and [PT100](http://www.yoctopuce.com/EN/products/usb-environmental-sensors/yocto-pt100), Phidget 1045 IR, Phidget 1046 Wheatstone Bridge wiring, Phidgets async mode, Polish translations, [LargeLCDs, WebLCDs](https://artisan-roasterscope.blogspot.de/2016/03/lcds.html), 2nd set of roast phases, [volume calculator](https://artisan-roasterscope.blogspot.de/2014/11/batch-volume-and-bean-density.html), moisture loss and organic loss, container tare, RoR delta span, [phasesLCDs showing Rao's development ratio](https://artisan-roasterscope.blogspot.de/2017/02/roast-phases-statistics-and-phases-lcds.html) |\n| v0.8.0 | May\u0026nbsp;25,\u0026nbsp;2014 | Phidget IO, Phidget remote, Arduino TC4 PID, Mastech MS6514 |\n| v0.7.5 | Apr\u0026nbsp;6,\u0026nbsp;2014 | Bug fixes |\n| v0.7.4 | Jan\u0026nbsp;13,\u0026nbsp;2014 | Bug fixes |\n| v0.7.3 | Jan\u0026nbsp;12,\u0026nbsp;2014 | Bug fixes |\n| v0.7.2 | Dec\u0026nbsp;19,\u0026nbsp;2013 | Bug fixes |\n| v0.7.1 | Dec\u0026nbsp;2,\u0026nbsp;2013 | Bug fixes |\n| v0.7.0 | Nov\u0026nbsp;30,\u0026nbsp;2013 | Phidget 1046/1048, phases LCDs, xkcd style, extended alarms, [Tonino](http://my-tonino.com/) support |\n| v0.6.0 | Jun\u0026nbsp;14,\u0026nbsp;2013 | Monitoring-only mode, sliders, extended alarms, [Modbus RTU](http://artisan-roasterscope.blogspot.de/2013/05/more-modbus.html), Amprobe TMD-56, [spike filter](http://artisan-roasterscope.blogspot.de/2013/05/fighting-spikes.html), additional localizations |\n| v0.5.6 | Nov\u0026nbsp;8,\u0026nbsp;2012 | Bug fixes  (last Mac OS X 10.4/10.5 version) |\n| v0.5.2 | Jul\u0026nbsp;23,\u0026nbsp;2011 | Delta DTA PID support, automatic CHARGE/DROP |\n| v0.5.0 | Jun\u0026nbsp;10,\u0026nbsp;2011 | HHM28, wheel graph, math plotter, multiple and [virtual devices, symbolic expressions](https://artisan-roasterscope.blogspot.de/2014/04/virtual-devices-and-symbolic-assignments.html), [custom buttons](http://artisan-roasterscope.blogspot.de/2013/02/events-buttons-and-palettes.html) |\n| v0.4.0 | Apr\u0026nbsp;10,\u0026nbsp;2011 | Localization, events replay, [alarms](http://artisan-roasterscope.blogspot.de/2013/03/alarms.html), profile designer |\n| v0.3.4 | Feb\u0026nbsp;28,\u0026nbsp;2011 | [Arduino TC4](http://www.mlgp-llc.com/arduino/public/arduino-pcb.html), TE VA18B, delta filter |\n| v0.3.3 | Feb\u0026nbsp;13,\u0026nbsp;2011 | Fuji PXR5/PXG5, manual device, keyboard shortcuts, Linux |\n| v0.3.0 | Jan\u0026nbsp;11,\u0026nbsp;2011 | New profile file format |\n| v0.2.0 | Dec\u0026nbsp;31,\u0026nbsp;2010 | CENTER 300, 301, 302, 303, 304, 305, 306, VOLTCRAFT K202, K204 300K, 302KJ, EXTECH 421509 |\n| v0.1.0 | Dec\u0026nbsp;20,\u0026nbsp;2010 | Initial release |\n\n----\nLicense\n-------\n\n[![](http://www.gnu.org/graphics/gplv3-88x31.png)](http://www.gnu.org/copyleft/gpl.html)\n","funding_links":["https://github.com/sponsors/artisan-roaster-scope","https://artisan-scope.org/donate/","https://www.paypal.me/MarkoLuther"],"categories":["\u003ca id=\"tag-science\" href=\"#tag-science\"\u003eScience\u003c/a\u003e"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartisan-roaster-scope%2Fartisan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fartisan-roaster-scope%2Fartisan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartisan-roaster-scope%2Fartisan/lists"}