Not a member yet?
Click here to register.

Forgotten your password?
Request a new one here.
You must login to post a message.

04/11/2024 6:33 PM
Zemona Welcome

04/11/2024 9:19 AM
Mrbones and sgupta, coffee drink ?

04/10/2024 1:09 AM
welcome cup, Ed K

04/09/2024 5:34 PM
TheJak99 Welcome

04/07/2024 1:28 PM
fifer and SamSpade, welcome to forum

In Memory Of Ginny

Latest Donations
dmccallum - 10.00
JackH - 25.00
snwcmpr - 10.00
Anonymous - 2.00
Anonymous - 5.00
Users Online
Guests Online: 1

Members Online: 0

Total Members: 8,201
Newest Member: Zemona

View Thread

Who is here? 1 guest(s)
 Print Thread
TC4 - Artisan application software


JimG wrote:A plot from my second roast using Artisan

That looks really nice!

Those markers underneath are your power and fan settings are they? I take it the power and fan control are based on the usual OT1 and IO3 outputs on the TC4? I must try this.

Do you have similar options for controlling the filtering with Artisan as with Bourbon?

Edited by Bhante on 06/05/2011 5:09 PM


JimG wrote:
A plot from my second roast using Artisan to both log and control. Using the custom event buttons, I set things up where button presses in Artisan controlled the heater output and the fan on my Hottop.

There are still some things I would like to have changed with the RoR plotting. But Artisan and the TC4 are getting along fairly well these days :)


Are you using your environmental temp as feedback for the heater control and bean temp for the fan control? Can you elaborate on how you have this set up? Practically speaking, how can you discern any useful control input from the ROR curve. Could you use an example to illustrate? Thanks to all who contributed !


Bhante wrote:
Those markers underneath are your power and fan settings are they? I take it the power and fan control are based on the usual OT1 and IO3 outputs on the TC4? I must try this.

Yes, each marker coincides with a button press. OT1 is controlling a 25A SSR for the heater. IO3 is controlling a Darlington transistor for the 12V fan.


Do you have similar options for controlling the filtering with Artisan as with Bourbon?

Sort of. There is a very good filter, but it is not active in real time. It is applied only after something triggers a redraw. Making it active in real time is one of the comments I've offered to the Artisan team.



bvandyken wrote:
Are you using your environmental temp as feedback for the heater control and bean temp for the fan control? Can you elaborate on how you have this set up? Practically speaking, how can you discern any useful control input from the ROR curve. Could you use an example to illustrate? Thanks to all who contributed !

Hi, Bart

I watch bean temp and bean RoR. Environmental temps are a secondary consideration. The fan is pretty ineffective for temperature control. I use it mostly to move smoke around ;)

The RoR is of most interest after FC. I try to keep it between 0 and 10 degrees F per minute following first crack. The curve needs to be smoother to be really useful. That part is a work in progress.

I set this up by creating new event buttons. The 'documentation' field contains the outgoing command text to the TC4. For 25% heater power the text of the command is "OT1,25". You configure the button as "Serial command".

I am using a slightly altered version of Artisan 0.5.b2. The download version has a little quirk that requires putting a \n character on the command text. This is a solved problem in the current working code, but the distribution builds are lagging.

I have installed aArtisan v1.05 on the TC4 and Artisan 0.5.0b2 on two different computers, and can't get it running on either, but with completely different problems in both cases. First I installed on a laptop with Intel core2duo and Win XP SP3 (English). I kept getting an error - "Exception Error: sample() 'NoneType' object is non iterable".

Also I have problems with the channel settings: I set ET channet to none and BT channel to 1. ET Y(x) and BT Y(x) I left blank, because I have no idea what they mean (actually I did try putting in some text, but that was quickly rejected). At a subsequent stage (not immediately however) I cannot open the device dialog again at all. I found the only way I could open it was to reset the channels ET/BT to 1/2 using resedit, then the device dialog opened normally. This is independent from the above error.

Celsius is set as default on the TC4, and I set Celsius mode in Artisan also.

Then I tried it on an Asus EeePC 1008PG running Win 7 Starter (German). The first time I tried starting Artisan it opened with normal speed. The first time I ran it it gave no error message, but did not plot any temperature. When I tried pressing the off button, the processor seemed to be overloaded. It took quite a few minutes to switch the off button off, and the graph subsequently changed its appearance (eg black bars at top and bottom of the graph). It subsequently gave an error message, but as I was diverted at that point I didn't record it. Now it takes several minutes just to open the program, and when I press run it gives the same error message as the other notebook. Closing the application also takes ages.

Unfortunately, the beta versions of Artisan 0.5.x have had some issues with respect to serial communications. In particular, the code opens and closes the serial port frequently. This causes the Arduino to reset, which in turn causes it to miss some important commands coming from the host computer.

The problems are all fixed in at least one version of the working source, and they are in the process of being merged into a new release. I think that is planned to happen sometime during the next week.

The Artisan guys have been very receptive over the last couple of weeks to making the changes needed to take better advantage of the TC4's capabilities. It is a "smart" device and can do more than log temperatures.

I can only run the tweaked version from my Ubuntu laptop, which has the toolchain needed to run the application from source. So unless you have the necessary python interpreter, PyQt package, etc., the source won't do you much good.

I've given the Artisan team a diff file with some suggested changes for displaying RoR in real time. And Sebastien has fixed the serial port issues. So I am optimistic that the next release will fix the problems you (and I) have had with 0.5.b1 and 0.5.b2.



JimG wrote:The Artisan guys have been very receptive over the last couple of weeks to making the changes needed to take better advantage of the TC4's capabilities. It is a "smart" device and can do more than log temperatures.

Now we have Temperature and its differential by time; next should be its integral over time. This could give some very interesting information about the relative take-up of heat energy and should clearly show when the beans go exothermic. Could be very interesting also in conjunction with BT, ET and exhaust temperature, on those roasters where one is measureable.

A number of derivative features could also be interesting: eg energy change after the start of first crack (measured from a standardised drop in RoR); plotting an integral of electrical (gas would be more difficult) power side by side with the temperature integral, to highlight absorption of heat for water vaporisation and later the exothermic energy; if we could find a solution to the problem of finding the right multipliers we could even subtract one from the other!

It is only a shame the energy flow in the exhaust and in heat transfers would be very difficult to monitor, otherwise we could precisely map all the changes in bound energy throughout the roast (I've left a gauntlet on the table for you Bart; take it whenever you're ready).

The Artisan team has released version 0.5.0 on their project site:

I have tried the windows version only. I'm glad to report that all of the issues Bhante and I reported using the TC4 with the previous beta releases have been fixed. A lot of coding happened the last few days.

While the program may support more, I've found that a maximum of 7 "programmable" event buttons can be added and still fit comfortably on the screen. To control my Hottop's fan and heater, I have set up the following event buttons:

Label   Description  Type Value  Action      Documentation
HTR-0     0% heater  Power  0    Serial command  OT1,0
HTR-25   25% heater  Power  1    Serial command  OT1,25
HTR-50   50% heater  Power  2    Serial command  OT1,50
HTR-75   75% heater  Power  3    Serial command  OT1,75
HTR-100 100% heater  Power  4    Serial command  OT1,100
FAN-25   25% fan     Fan    1    Serial command  IO3,25
FAN-50   50% fan     Fan    2    Serial command  IO3,50

When you press one of these buttons, a few things happen. First, the action requested in the Documentation field happens. In our case, it sends a command to the TC4 over the serial port.

Second, an event is registered, using the description field, in the roast event log.

Finally, a marker, labeled by the Type field and Value field, is placed on the graph.

To support Artisan on your TC4/Arduino, download and install aArtisan v1.05 from our TC4 googlecode site:



JimG wrote:I'm glad to report that all of the issues Bhante and I reported using the TC4 with the previous beta releases have been fixed.

I delayed my planned roast yesterday hoping for the release, and downloaded it a few minutes after it was posted, but unfortunately was unable to use it. I installed it and tried fiddling with it a little bit, but it was so slow on my EeePC it was totally unusable. It seems to be incredibly processor-intensive (just with the basic settings, no events or devices defined). It was so slow even checking a checkbox in the user settings sometimes took a minute, and most of the screen would go blank with a message that the program does not respond. Is that because it is written in Python? (Python is little more than a buzz-word to me, but I know it is supposed to be a very high level language).

My impression so far is that in many respects it is a wonderful program with wonderful potential, but if my experiences are not unrepresentative, it would seem to need some serious attention to processing efficiency. Not everybody will want to use a high-powered computer for their roaster. Is the roasting code modularly separated from the cupping database etc?

There is a special version for older processors which would be worth my trying when I can find the time, but in their description they refer to the instruction set in old celeron processors so I am not sure if it would really benefit me. I have an Intel Atom N450 CPU at 1.66GHz, and 2GB RAM.

What might make more of a difference perhaps is that I still have the default Windows 7 Starter OS (oh, what a monstrosity!) - if I can find the time to install XP that might help. (I've always wanted to learn Linux, but it is a steep learning curve).

I'll be watching for developments however, because I hope it will be a good way to go in the future. And thanks for your tips on your settings Jim, I was going to ask!

What I did notice from fiddling with the program on my other computer though is that the user interface for sending commands to the roaster is very cumbersome. I see from your post that you effectively have to pre-program all event permutations on the event buttons, which is far from ideal. A much more satisfactory approach would be to have an extra control panel window (I suspect ideally separately positionable, depending on your monitor size) with a slider and plus/minus buttons for each setting (power, fan etc), which visually displays the current setting in the form of the slider. I.e. to increase power just click on the + below the power slider a few times or drag the slider to the desired position, and to ?ncrease the fan do likewise with the fan slider.

Is the physical control using potentiometers still possible, and can it be integrated with the Artisan screen? That would be really nice. Can Artisan receive the necessary information from the Arduino at present?


PS - I noticed in the pArtisan code the RC2000 and RF2000 commands - has Artisan retained them after all? I thought that was going to be dropped.
Edited by Bhante on 06/11/2011 2:05 PM
I have not experienced the delays you describe on my windows or Ubuntu computers. The program is not lightning fast, but very usable on my CPU's.

Hopefully there will be opportunities to add more TC4 features to Artisan as its development continues. It is a very large undertaking, with many motivated contributors. So I think patience will work to the TC4 community's best advantage here.

The old commands were left in place because they don't cause any harm and the whole command picture was fuzzy until right before release. In my current working aArtisan source, they are gone. Try to ignore them if they bother you Grin

I'm having a strange problem with my TC4/picaxe setup and Artisan.

I have modified my picaxe code to accept a READ/n command to suit Artisan 0.5.0.

When I send repeated READ/n commands from a serial terminal program on my laptop I get instant response back from the picaxe with amb, tc1, tc2 data. I can keep getting new readings almost as fast as I can send the command.

When I try Artisan 0.5.0, it only seems to get a new reading approximately every 2 1/4 seconds.

I have Artisan set up with 19200, 8, N, 1 with 1 second timeout and 1 second sample interval.

Any ideas? Is Artisan still expecting the amb, ch1, ch2/n data format?


EDIT: Downloading 0.5.1 now. I'll see if that helps.

EDIT: Nope, Still over 2 seconds per reading.

EDIT: Artisan keeps sending CHAN;1200/n commands between each READ/n command. Is that normal? Do I need to acknowledge the CHAN command was received?
Edited by greencardigan on 06/20/2011 6:35 AM
I see you figured out most of what I was going to tell you ;)

Artisan, as of 0.5.0, sends two commands when comm's are initiated with the TC4:

1. CHAN,xxxx\n : where xxxx = pattern indicating the active channels on the TC4. The default of CHAN,1200\n puts ET on TC1 and BT on TC2. This is selectable in the artisan settings for the arduino/TC4. The remote is expected to adapt the output stream accordingly.

2. UNIT,F\n or UNIT,C\n : self explanatory. The remote is expected to switch units on command.

You must acknowledge the CHAN command with a line of text beginning with #

The aArtisan code replies with "# Active channels set to xxxx\n", but I believe artisan only looks for the # leading character.

There is no need to ack the UNIT command.

Edited by JimG on 06/20/2011 7:00 AM
Getting there...

I am now send back an acknowledgement after the CHAN;1200/n command and after that Artisan only sends READ/n commands.

But it's still not doing reads at 1 second intervals. It is now doing reads approximately every 1.3 seconds (I counted 47 reads in 1 minute).

With the sample interval set at 1 second, it almost seems like Artisan is waiting 1 sec from when it receives data from the TC4 until it sends the next read command. Which is making the true sample interval 1 second + the time taken for the TC4 to respond to the read/n command?

Or am I still missing something??
Not sure about how the cycle timing is controlled in artisan. Hopefully the delay in serial comm's is not additive.

FWIW, aArtisan makes readings continuously and simply sends the most recent set when a READ command is received. So there is only a very short delay in the read/respond transaction.

Here's the time stamp info from the Artisan log files comparing Artisan versions 0.4.1 and 0.5.1.

Both were using the same picaxe program, just repsonding to the relevent read command.

Version 0.4.1 - Average sample interval = 1.011 seconds


timex': [2.7210000000000001, 3.657, 4.6550000000000002, 5.6849999999999996, 6.6989999999999998, 7.6970000000000001, 8.7270000000000003, 9.7249999999999996, 10.755000000000001, 11.769, 12.766999999999999, 13.797000000000001, 14.795, 15.824999999999999, 16.838999999999999, 17.837, 18.867000000000001, 19.881, 20.879000000000001, 21.908999999999999, 22.907, 23.937000000000001, 24.951000000000001, 25.949000000000002, 26.978999999999999, 27.977, 29.007000000000001, 30.021000000000001, 31.018999999999998, 32.048999999999999, 33.063000000000002, 34.061, 35.091000000000001, 36.088999999999999, 37.119]

Version 0.5.1 - Average sample interval = 1.490 seconds


'timex': [4.6230000000000002, 6.1050000000000004, 7.6020000000000003, 9.0839999999999996, 10.566000000000001, 12.064, 13.545999999999999, 15.042999999999999, 16.541, 18.023, 19.521000000000001, 21.003, 22.484999999999999, 23.981999999999999, 25.463999999999999, 26.962, 28.459, 29.940999999999999, 31.439, 32.920999999999999, 34.402999999999999, 35.901000000000003, 37.398000000000003, 38.896000000000001, 40.380000000000003]

Jim, can you check what sample interval you are getting.

Edited by greencardigan on 06/21/2011 6:17 AM
Where are you getting the log files?



JimG wrote:
Where are you getting the log files?


The text file that Artisan creates when you save.

I am getting the same result: around 1.3 seconds per READ. I'm going to try setting the cycle time to 2 seconds and see what changes.

Looking through the artisan code, I can see two things that explain this behavior:

1. The sampling function uses the cycle time parameter as a delay between samples rather than to define a true cycle period.

2. Sampling cannot be done while the window is being redrawn. This was causing exceptions and crashes in previous versions, I believe. So the code inserts 50 ms delays to allow a redraw to complete if one is active.

Seems like the first item above could easily be changed. I don't think the second item is much of an issue.

Thanks for investigating! My suspicions were correct. I assume you will you make the artisan team aware of this issue?

Point 2 explains why I was missing samples when panning the graph around.
Yes, I will pass along the message. In fact, I may take a stab at fixing it myself, and then pass along the solution B)

Brad -

The artisan guys have fixed the timing loop problem in their current working source. I tested it yesterday and these are the sample times I recorded:

..... 'timex': [4.735, 5.735, 6.75, 7.75, 8.766, 
9.781, 10.797, 11.813, 12.828, 13.828, 14.844,
15.891, 16.891, 17.891, 18.906, 19.906, 20.922,
21.938, 22.985, 23.985, 24.985, 25.985, 27.0, 28.016,
29.031, 30.063, 31.063, 32.063, 33.078, 34.094,
35.11, 36.125, 37.156, 38.156, 39.156, 40.172,
41.188, 42.203, 43.203, 44.219, 45.235, 46.25,
47.266, 48.281, 49.297, 50.297, 51.344, 52.344,
53.344, 54.36, 55.36, 56.375, 57.391, 58.438,
59.438, 60.438, .....

It is not a perfect 1.0 (more like 1.015) seconds between samples, but much closer, and probably good enough for our purposes.

I think this fix will be included in the upcoming 0.5.2 release.

Edited by JimG on 06/26/2011 11:56 AM

Can Artisan receive commands from the TC4 like pBourbon can? Crack markers etc.
No, Artisan only expects to receive input from the TC4 as the response to a query. Roast events can be marked by clicking on buttons on the PC.


I'm also interested in using the event buttons on Artisan as the controller of my Quest M3's heater/fan. As you defined, when you press, say HTR-25, the "Documentation" as defined as "OT1,25" would be sent to TC4. What signal would be sent by aArtisan/TC4 over OT1 when receiving such signal? How about the "IO3,50" analog signal as well? I'm thinking about how to connect the OT1 or IO3 to a SSR or transistor in controlling the heater/fan or vice versa.

Thank you for answering.

Edited by petershek on 07/03/2011 6:26 AM
Jump to Forum:

Similar Threads

Thread Forum Replies Last Post
Finally Switching to Artisan Roasterscope Dataloggers/Controllers/Rate of Rise Meters 17 02/28/2024 7:19 AM
Artisan 2 vs Roastime 4 R1 Bullet Roaster 3 01/08/2024 11:53 AM
Unable to get Artisan Scope's PID to control heating Dataloggers/Controllers/Rate of Rise Meters 4 08/01/2023 9:11 AM
Artisan PID turns heater back on during cool down Dataloggers/Controllers/Rate of Rise Meters 2 07/03/2023 12:31 PM
Artisan Talking Alarms? ROASTING SOFTWARE APPS 4 06/10/2023 12:05 PM
Homeroasters Association Logo, and all Content, Images, and Icons © 2005-2016 Homeroasters Association - Logos are the property of their respective owners.
Powered by PHP-Fusion Copyright © 2024 PHP-Fusion Inc
Released as free software without warranties under GNU Affero GPL v3
Designed with by NetriX
Hosted by skpacman