Who is here? 1 guest(s)
 Print Thread
TC4 with aArtisanQ_PID
Excellent! Just saw your reply just when i was ready to post the following:

Try uncommenting the //#define ROR_CHAN 0 line. Not sure if that make any difference but won't hurt to have it active.

I can't see any other issues in your user.h file.

Pin 9 has been the default OT1 pin for a long time now.

A few more thoughts/suggestions/questions.

1. What version were you running previously? There has been a few changes since version 5.x.

2. User.h has this option: #define HTR_CUTOFF_FAN_VAL xx
This tells it to set OT1 power to zero if the OT2 duty is below xx which will be the case on boot up.

3. What TC4 port do you have your zero cross detecter connected to?

4. Try this in arduino serial monitor.
- Set baud rate to 19200
- Set line ending to NL
- send READ command. TC4 should respond with ambient, ch1, ch2 temps
- send PID;ON command
- send READ command again. TC4 should respond with ambient, ch1, ch2 temps and followed by heater duty, fan duty and PID set variable
- send OT2;50 to set fan duty to 50%
- send OT1;50 to set heater duty to 50%
- send READ command again to see if OT2 and OT1 commands worked and values are returned.


James211 wrote:
I had one line that I missed that hadn't been commented out.

Which line was this?
Well, it was a few things. I reached out Jim G and he mentioned 6.2 required a ZCD, but then I realized that the actual version I was using was 6.2.2, the release you posted within the last few hours. He mentioned the PWM lines I needed to comment out and it was fixed. Team effort in the end. Thank you all. Still trying to figure out the power slider though. Jim is walking me through a few things to resolve, I'll post when finished.
Thanks for the info, I assumed you were using 6.2 as the user.h file you sent was not the 6.2.2 version.

Jim and I have been making a few updates lately to cater for a few different hardware variations. 6.2.2 hasn't been 'released' as the latest version yet, but you shouldn't have issues with it.

Interesting that the sliders are not working still. Does the TC4 duty change now when you set up buttons in Artisan with commands? Or when sending commands through the arduino serial terminal?
Still no luck with sliders or buttons. Jim asked me try a few different things and nothing seems to work. I get a duty reading for about a second and then back to zero.

As for serial, I'm not sure if I'm missing something, but here's what I'm doing. I open Arduino Serial Monitor, I type in say "OT1,30" and I get no response and I see no effect in Artisan. Can the TC4 be connected to both Artisan and Arduino at the same time? I didn't think that was possible. Let me know if I'm doing something wrong.

Thank you.


Will2 wrote:

... Blower, therefore no heating, does not work when ZCD connected to I/O3, only to I/O2.

I think the problem is this.
I have at version 6.2 ZCD connected to I/O2.
I was unable to ever put into operation with ZCD in I/O3.
Is connected pin + 5V ZCD?s to power?
Now it is seen in user_h that ZCD is connected to I/O2, the problem will be different.
Question remains: pin +5V.
Try putting a jumper across pins 2 and 3 of the analogue input on your TC4. Do this for both ANLG1 and ANLG2 ports.

You can't have the serial monitor connected at the same time as Artisan. Can you confirm what happens in serial monitor when you follow the steps I posted a few posts back?
I have a question using Q_PID 6.2 with the TC4 in a stand alone configuration, no computer hooked to it.
What is suppose to start the roaster/program? So far, the only way I can start if is by turning the blower pot back some and then back to 100%.
Also, how do you select between profile 1 and profile 2?

I am giving my soon a Livia 90 and building him a 250 gram air roaster so he can roast fresh beans for espresso. I'm setting the roaster up so no computer is required, all he has to do is dump 150-250 grams of beans in it, press a button (right now, turn the pot) and dump the roasted beans out when finished. I have it set up and working great with profile 1 dialed in for a good roast curve. I'm using a second TC4 and the computer to monitor/chart the roast curve. I thought I would also set up profile 2, but changing profiles does not seem to be an option in the stand alone configuration.

I also had the Android Blue Tooth setup on it and thought about setting it up, but that kept causing problems when I had to make changes with the computer. Before I realized that was the problem, I actually swapped out the ATMEGA328P where I thought it had gone belly up because it kept giving me those stack errors you get when the boot loader is corrupted. That was also with a button I could hold to disconnect the TX/RX that's supposed to be opened when transferring data, so I pulled the Bluetooth out.
Edited by BenKeith on 02/06/2017 10:58 PM
Hi Ben,
watch this video:
roasting starting to press SW2 (reset time), but in fact begins roasting after the fan is running.
Change the roasting profile was possible when I would pressed the SW1 - first button from right (at time 00:17).
in the video is a lot of things wrong, do not take the example of all.
Looks like you are still having to turn the fan pot to make the roaster start. Reset on makes the timer go back to zero.

For some reason, it's not loading/reading Profile 2. It's trying to change but shooting blanks when it does with just white squares.
If you send your Profile_Loader.ino,
tomorrow I can try on my TC4.
Thanks for the offer but I have four TC4 Shields. Three are fully built controllers and one is one I was playing with the Android App with that's just on a UNO 3 with the BlueTooth
I down loaded a fresh copy of 6.2 to try a new Profile loader. If that doesn't help, I will try another TC4. I have everything loaded on three different computers so I will try a different computers version.

I've never done much with aArtisanQ_PID so I know very little about it. I played with the Android App Brad has but never really spent much time with it and have never tried a roast with it. Now I'm wanting to make a stand alone controller and RoastLogger does not support that function.

Right now, my wife thinks her list of things she wants me to do is more important than playing with a TC4.
Edited by BenKeith on 02/07/2017 3:48 PM
I have two pieces tc4, one with a 2x16 LCD, the second with 4x20 LCD
I would like to know how to clear the contents of the EEPROM.
Because if I want to change the content of any of the profiles, never can use a smaller number of characters in the name or description of the profile, otherwise they remain displayed characters from the previous one.
Hi Ben,

I haven't used the standalone mode for years but I'm assuming it still works as we haven't changed that part of the code I don't think.

Here's some info that should get you going.

First make sure you have set in user.h to run standalone mode. That will enable the LCDapter buttons to work.

// Roasting software
// Comment out all if using TC4 stand alone
//#define ARTISAN
//#define ANDROID

Also check this line and set to the number of profiles you loaded to the eeprom with the profile loader sketch.

#define NUM_PROFILES 2 // number of profiles stored in EEPROM

Will2's roaster starts the heater when the fan is started due to a 'feature' in the code designed to protect the element in an air roaster. It stops the heater coming on when the fan is set to a value below the user defined value. The latest updates to the code have made this zero by default, so the heater will come on regardless of the fan level.

// cut power to Heater if fan duty is less than HTR_CUTOFF_FAN_VAL (to protect heater in air roaster). Set to 0 for no cutoff
#define HTR_CUTOFF_FAN_VAL 0 // default

When on the normal display mode (with tems displayed):
- Button 1 with enable or disable the PID.
- Button 2 will reset the roast timer/counter.
- Button 3 is not used at this stage.
- Button 4 will change to the roast profile selection display mode.

When in the Roast Profile Selection mode, the display should show the Profile name on top row, Profile descriptuion on second and third rows, and the PID parameters on the bottom row. This is assuming you have a 4x20 LCD.
- Button 1 will scroll to previous roast profile.
- Button 2 will scroll to the next roast profile.
- Button 3 will select the currently displayed roast profile.
- Button 4 will also select the currently displayed roast profile and switch the display back to the main temperature display.

If you were using bluetooth or USB to computer, you can also change profiles by sending a PID;Px command where x is the profile number.

Leaving the bluetooth module connected to the TX/RX lines will stop you using the USB connection. I have a switch on my control box the disconnects the bluetooth module when I want to use USB.

If this doesn't help, you should attach your Profile_Loader.ino file as suggested by Will2 so we can make sure it's all ok.


Will2 wrote:

I have two pieces tc4, one with a 2x16 LCD, the second with 4x20 LCD
I would like to know how to clear the contents of the EEPROM.
Because if I want to change the content of any of the profiles, never can use a smaller number of characters in the name or description of the profile, otherwise they remain displayed characters from the previous one.

I'm not sure how to erase the eeprom but I'm sure it's possible.

What about writing a profile with blank characters? Something like this.

char profile_description[80] = "                        "


BenKeith wrote:
For some reason, it's not loading/reading Profile 2.

I think you have to load each profile separately. For example, if you want two profiles loaded, then you have to run the profile loader sketch twice. Each time with the appropriate profile info.
OK, that was it.

I loaded profile 1
and then loaded profile 2.
Then I loaded 6.2 and the controller has both profiles now and can select between them

I'm doing two so if he wants to roast some beans for pour over coffee, he will have the option. 1 for espresso, 2 for a lighter pour over.

So, because of the heater safety feature is why I have to jockey the fan control pot to make the roaster come on.

I'm doing this to try and make things as simple as possible for my son. In a couple of months we will be going out there (south Texas) so I'm getting things idiot proof.
He has never used an espresso machine or roasted coffee so I have to teach him all of it in a few weeks we will be there. That means Grinder, Livia 90 and roaster has to be fully dialed in before I get there.
Paul Varga
Hello everyone, Im new to the forum. I see alot of very good info regarding the TC4 and using artisan roasting software. I have just finished building a homemade roaster. What I have done is i converted a Otis Spunkmyer convection cookie oven into a roaster. I have some issues that maybe someone could help me with. I am trying to control an ac fan with the artisan QPID and all I can get the fan to do is either be full on or off. There is no speed control. Originally i was using the aArtisan sketch and the fan speed was being controlled but not correctly... It was revving . I have tryed several versions of the qpid sketches and the result is the same. I have a arduino uno r3 and the TC4 board. Im not using PID, not even sure how to! All I want is the fan to be able to be controlled. The heat works fine. If there is more information that is needed to assist me just let me know. I am using a crydom d2425 ssr for the heat and a d2525-10 for the fan. I have the zero cross detector hooked up to IO3 and OT2 hooked up to the -10 relay. I have checked all my wiring and everything seems to be hooked up correctly.
Edited by Paul Varga on 02/09/2017 9:08 PM
To control an AC fan you need to use -10 random fire SSR and a zero cross detector.
Hi, and Welcome

Have a look at the following two links to info regarding the aArtisanQ_PID use.



It shows a few things that may help you.

1. Zero cross detector - this is required when trying to control an AC fan speed using phase angle control. It allows the Arduino to properly change the fan speed.

2. Random Fire solid state relay - also required to be able to control an AC fan speed using phase angle control.

The PID features in aArtisanQ_PID are optional.
Paul Varga
Thanks for the info. I have looked at alot of posts all over different forums, I have the zero cross detector and I am using the -10 relay. Im convinced there is something in the code that needs uncommented in the user.h file or something like that. I have the circuit wired up as shown in the sample wiring for using an AC fan that was on the website where i purchased the TC4
Edited by Paul Varga on 02/09/2017 9:25 PM
Just saw your post update re using ZCD and random fore SSR.

Check your settings in the user.h file.

Also, the LED on the UNO (pin 13) should flash when the UNO is receiving input from the zero cross detector.
Are you familiar with downloading code from github? Try loading the latest aArtisanQ_PID code. Version 6_2_2.


Go through each setting in user.h carefully and ask if you have questions.
Paul Varga
Yes, I have been on that site. I will download 6.2.2, I currently have up to 6.2
I am very new to arduino code so I have no IDEA. lol. I do have a electronics engineering degree though so Im not in the dark when it comes to electronics. I will mess with it in the morning. I dont see 6.2.2. I just see up to 6.2
Edited by Paul Varga on 02/09/2017 9:47 PM
Jump to Forum: