topbanner.gif
Login
Username

Password




Not a member yet?
Click here to register.

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

renatoa
11/24/2022 8:17 AM
Trick or... crack... er... Grin

allenb
11/24/2022 8:12 AM
Happy Thanksgiving to all

renatoa
11/23/2022 3:28 AM
Birdman and dpineau coffee drink

allenb
11/21/2022 5:46 PM
lig76ct Welcome

Rich Saurman
11/21/2022 5:22 PM
Hi! New member starting with SR540. I am brand new and slowly getting better results with this roaster. I am interested in any roasting pointers.

In Memory Of Ginny
Donations

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

Members Online: 0

Total Members: 7,717
Newest Member: dpineau

View Thread

Who is here? 1 guest(s)
 Print Thread
TC4 with aArtisanQ_PID
sebiiksbcs
Nice that there's still development on this. I have been looking at the code and saw that there were changes in the way the buttons are checked, too? (buttons.keyPressed / buttons.keyChanged) Is this more efficient now?

Next question, I see that there are the two arrays profile_name[40] and profile_description[80], however it looks like only the first 20 bytes of the name and 40 bytes of the description are ever accessed (to be displayed on the LCD) or am I missing something here? Anyway in my custom branch I have reduced the name array to 20 and done away entirely with the description as I don't use it, instead I am displaying the first 5 times and temps of the profile.

TL;DR I believe many bytes of RAM can be saved by reducing array sizes.

Actually while I am here, I was wondering how many of you still use the firmware for standalone as I've implemented profile editing commands via serial monitor. If there is interest I could "revert" my code to be compatible with the original branch and share it ...
 
renatoa
A lot of memory can be saved in the TC code area, there is no need to let the J and T type termocouples code alive and eat space, when only K is used.

Me too added a PROF(ile) command, for fully profile management via serial, but is there just for the record, because switched to other profiling paradigm, based on DE and FC moments only as targets.

Not sure what you mean "as standalone", my goal in TC4ESP was been to use it as standalone as possible, getting rid of any computer tethering, and I think I succeeded... but with other memory resources, not available for Uno boards.
So yes, I am roasting with the board only, all time. However, every roast data points are stored in the board memory, and I can dump later via serial directly in Artisan .csv format, for desktop graph, analyse, archiving, etc.
 
greencardigan

Quote

sebiiksbcs wrote:
Nice that there's still development on this. I have been looking at the code and saw that there were changes in the way the buttons are checked, too? (buttons.keyPressed / buttons.keyChanged) Is this more efficient now?


First change in a few years woohoo.
I was working on another project (hot air reflow controller) and wanted this mode for it.

The buttons.keyPressed / buttons.keyChanged have been in there for a long time. They are used if you have the LCDapter code active. If using the other I2C LCD option it use the code in checkButtonPins().

Quote


Next question, I see that there are the two arrays profile_name[40] and profile_description[80], however it looks like only the first 20 bytes of the name and 40 bytes of the description are ever accessed (to be displayed on the LCD) or am I missing something here? Anyway in my custom branch I have reduced the name array to 20 and done away entirely with the description as I don't use it, instead I am displaying the first 5 times and temps of the profile.

TL;DR I believe many bytes of RAM can be saved by reducing array sizes.


I haven?t looked at it too closely but I think your right, it looks like only half of memory allocated gets used. Also the profile_name and profile_description don?t get used at all unless it is running in standalone mode which is currently the only time buttons are checked and the LCD can display alternative views.

Quote


Actually while I am here, I was wondering how many of you still use the firmware for standalone as I've implemented profile editing commands via serial monitor. If there is interest I could "revert" my code to be compatible with the original branch and share it ...

I?m not aware of many using the standalone mode. I added it for myself many moons ago but found the uploading of profiles too cumbersome. I?m assuming that most users are connecting to Artisan roasting software.

I?d be still interested in seeing it. If I get around to it I could try to tidy up the code to save memory (will look at the thermocouple code as suggested by renatoa ThumbsUp)
 
greencardigan

Quote

renatoa wrote:

A lot of memory can be saved in the TC code area, there is no need to let the J and T type termocouples code alive and eat space, when only K is used.

Me too added a PROF(ile) command, for fully profile management via serial, but is there just for the record, because switched to other profiling paradigm, based on DE and FC moments only as targets.

Not sure what you mean "as standalone", my goal in TC4ESP was been to use it as standalone as possible, getting rid of any computer tethering, and I think I succeeded... but with other memory resources, not available for Uno boards.
So yes, I am roasting with the board only, all time. However, every roast data points are stored in the board memory, and I can dump later via serial directly in Artisan .csv format, for desktop graph, analyse, archiving, etc.

Yes, this is what standalone mode is referring to in the code. No connection to any other device while roasting. Using profiles stored on the TC4 eeprom.
 
sebiiksbcs

Quote

I?d be still interested in seeing it. If I get around to it I could try to tidy up the code to save memory (will look at the thermocouple code as suggested by renatoa :ThumbsUp:)


Edit: wow, directly pasting the code seemed to break the layout. I've attached the cmndreader.cpp and cmndreader.h files.



This is only the respective "doCommand" function in cmndreader.cpp, of course you'd have to add all the class, prototype, initialization etc. stuff. Also I have made quite some modifications on your code just so I could better read and understand it, and to save some bytes of memory here and there so the firmware could run standalone and talk to artisan at the same time without crashing.

Hope this makes sense, not sure what other mods I made that might prevent the code from running, but since you wrote the firmware I guess you'll figure it out! Let me know if anything's missing.
sebiiksbcs attached the following file:
cmndreader.zip [6.77kB / 344 Downloads]
 
renatoa

Quote

greencardigan wrote:
...I could try to tidy up the code to save memory (will look at the thermocouple code as suggested by renatoa ThumbsUp)


Check the modified thermocouple code in the TC4ESP custom libraries folder:

https://github.co...ermocouple

The new usingK(T/J) defines are the flags that invalidates big chunks of code, for each unused TC code.
 
czeffy66
I thought I would share my adventures with ARDUINO UNO WiFi REV2. My understanding was that these boards are kind of compatible with each other, at least this one with uno, they just added the integrated WIFI, I thought it might be good feature in the future. Unfortunatelly when I tried to compile the aArtisanQ_PID, I have got all kind of variables not in the scope messages and did not compile. I even installed everything twice, I thought I did something wrong. When I had an idea to compile it on uno and it worked, so I ordered an UNO REV3. Now I hope that REV3 is compitable with the original.
 
renatoa
For me the last build, 6_8 compiles just fine. Check attached.
Please check the integrity of your Arduino environment.
...
renatoa attached the following image:
image_2021-03-01_170830.png
 
czeffy66
Interesting. I wonder why it worked to compile for UNO and not for WIFI. Anyhow, thanks....
Edited by czeffy66 on 03/02/2021 11:23 AM
 
czeffy66
I have loaded the 6_8 and still the same. I am runing on windows 10.
Here are the faults
C:\Users\Vince\Documents\Arduino\libraries\aArtisanQ_PID\aArtisanQ_PID.ino: In function 'void setup()':
C:\Users\Vince\Documents\Arduino\libraries\PWM16/PWM16.h:157:25: error: 'COM2A1' was not declared in this scope
#define IO3_PCORPWM _BV(COM2A1) | _BV(COM2B1) | _BV(WGM20) // phase correct PWM
^
C:\Users\Vince\Documents\Arduino\libraries\aArtisanQ_PID\aArtisanQ_PID.ino:1411:17: note: in expansion of macro 'IO3_PCORPWM'
pwmio3.Setup( IO3_PCORPWM, IO3_PRESCALE_8 ); // setup pmw frequency ion IO3
^~~~~~~~~~~
C:\Users\Vince\Documents\Arduino\libraries\PWM16/PWM16.h:157:25: note: suggested alternative: 'COMMAND'
#define IO3_PCORPWM _BV(COM2A1) | _BV(COM2B1) | _BV(WGM20) // phase correct PWM
^
C:\Users\Vince\Documents\Arduino\libraries\aArtisanQ_PID\aArtisanQ_PID.ino:1411:17: note: in expansion of macro 'IO3_PCORPWM'
pwmio3.Setup( IO3_PCORPWM, IO3_PRESCALE_8 ); // setup pmw frequency ion IO3
^~~~~~~~~~~
C:\Users\Vince\Documents\Arduino\libraries\PWM16/PWM16.h:157:39: error: 'COM2B1' was not declared in this scope
#define IO3_PCORPWM _BV(COM2A1) | _BV(COM2B1) | _BV(WGM20) // phase correct PWM
^
C:\Users\Vince\Documents\Arduino\libraries\aArtisanQ_PID\aArtisanQ_PID.ino:1411:17: note: in expansion of macro 'IO3_PCORPWM'
pwmio3.Setup( IO3_PCORPWM, IO3_PRESCALE_8 ); // setup pmw frequency ion IO3
^~~~~~~~~~~
C:\Users\Vince\Documents\Arduino\libraries\PWM16/PWM16.h:157:53: error: 'WGM20' was not declared in this scope
#define IO3_PCORPWM _BV(COM2A1) | _BV(COM2B1) | _BV(WGM20) // phase correct PWM
^
C:\Users\Vince\Documents\Arduino\libraries\aArtisanQ_PID\aArtisanQ_PID.ino:1411:17: note: in expansion of macro 'IO3_PCORPWM'
pwmio3.Setup( IO3_PCORPWM, IO3_PRESCALE_8 ); // setup pmw frequency ion IO3
^~~~~~~~~~~
C:\Users\Vince\Documents\Arduino\libraries\PWM16/PWM16.h:164:28: error: 'CS21' was not declared in this scope
#define IO3_PRESCALE_8 _BV(CS21) // 0x02, divide by 8
^
C:\Users\Vince\Documents\Arduino\libraries\aArtisanQ_PID\aArtisanQ_PID.ino:1411:30: note: in expansion of macro 'IO3_PRESCALE_8'
pwmio3.Setup( IO3_PCORPWM, IO3_PRESCALE_8 ); // setup pmw frequency ion IO3
^~~~~~~~~~~~~~
exit status 1
'TIMSK1' was not declared in this scope
 
renatoa
The Uno Wifi use a different chip than the Uno, having different registers.
But the Uno Wifi was thought as a drop in replacement, so there is a emulation register feature, mapping the old register names to the new registers, allowing you to reuse the old code for the Uno.
In Arduino IDE (v1.8) there is a builtin Uno Wifi board, having register emulation enabled, this is what I used and compiled.
However, if you installed the "Arduino megaAVR Boards", that contains a rev2 of the Arduino Uno Wifi, the register emulation is now an option, disabled by default ! and have to be checked, else old ATmega328 code won't compile.

All the errors above are about those registers.
 
czeffy66
Yes you are right, I have the latest UNO WiFi Rev2 board which has the new ATmega4809 processor. I had the emulation on but did not work. I have tried both ways in fact and I get similar messages.
 
rsatchel
Hi,

I have had a TC4 V7.00 shield in my drawer for a while. Finally have some time to start playing with it, as I build a Corretto roaster.

First I went through the (old) guide in this post: https://homeroast...load_id=23
The google code repo linked http://code.googl...loads/list unfortunately no longer exists.

So then I found what I believe to be the latest version of the Arduino software - obtained from post #17 in this thread
https://homeroast...rowstart=0

I am using Arduino version 1.8.16. After I unzip the archive and compile I am getting the following error in the cmndreader.h header file:
cmndreader.h:43:10: fatal error: cmndproc.h: No such file or directory

I have confirmed that the header file in question is indeed not present in the downloaded zip file. Just to be sure I downloaded again, with the same result.

Am I using the wrong software, or should I be obtaining the cmndreader.h header file from somewhere else?
 
renatoa
cmndproc is a library, should be in a separate folder.
The folders structure should look as:
...\Arduino\aArtisanQ_PID_6_7(8)
...\Arduino\libraries\... many libraries, each in own folder
...\Arduino\libraries\cmndproc
...

The libraries can be downloaded from:
https://github.co.../libraries
 
prs16001
Hi, I had to do a full re-install of windows on the PC I use for roasting. I'm trying to get my TC4 back to where it was previously but I seem to be missing something. I'm using aArtisanQ_PID_6_3 and Artisan 2.4.4.
In user.h I'm using CONFIG_PWM to control the heater and the fan is controlled with a different controller. Previously Artisan would show the SV in the LCD, I'm using a background follow.
The current setup is not showing the SV in the LCD.

In the arduino serial monitor it is only returning the ambient, ET, BT and nothing for heater, fan or SV

16:06:39.912 -> 80.5,74.2,77.2,0,0,0
(PID ON)
(OT1;50 followed by READ)
16:06:55.574 -> 80.5,74.2,77.2,0,0,0.00
(OT2;50 followed by READ)
16:07:26.644 -> 80.5,74.2,77.3,0,0,0.00
(PID OFF followed by read)
16:07:44.862 -> 80.5,74.1,77.4,0,0,0

Any guidance would be appreciated. I have the setup done based on the sticky "Using a TC4 with Artisan Roaster Scope". I have attempted a roast but it is not working properly. The heater output starts to drop during the roast and stops following the background profile.
Thanks
Edited by prs16001 on 07/11/2022 8:11 PM
 
renatoa
Added in Artisan the extra devices called ArduinoTC456 (required for HTR and FAN) and ...78 (required for SV) ?
Check attached image
renatoa attached the following image:
image_2022-07-12_211619348.png
 
prs16001
Thanks for the reply, extra devices were added with heater and fan for ArduinoTC4 56 and SV and Ambient for ArduinoTC4 78. I do have the ambient readout which is read from the TC4 based on the serial log.

Should artisan populate that lcd using artisan PID which is what Iím using?
 
renatoa
No idea, never was been able to use the Artisan PID, reacts way too slow for my machines, for any P setting.
When "PID firmware" of TC4 device is checked, SV is 7th parameter of the TC4 packet.

If you want to know what is the SV requested by Artisan, whatever PID method is used, then check the SV slider in the Control dialog.
This way you can see what is the SV Artisan requests based on profile it is trying to follow.
 
prs16001
Thanks for the reply, I was going to post my settings for the device, extras, events, buttons, sliders and control just to make sure I have everything properly checked but I don't seem to have the ability to attach images.
 
allenb
Hi prs, let us know what steps you are taking in trying to post images so we can let you know what to do.
1/2 lb and 1 lb drum, Siemens Sirocco fluidbed, presspot, chemex, cajun biggin brewer from the backwoods of Louisiana
 
prs16001
In the "quick reply" area I'm not seeing anything to attach a picture, just "display an image from URL address". In the preview window there is the attachment option and I have added the pictures but they don't get attached. Each picture is < 500 pixels and the largest file is 51 kB, total size is 160 kB for the 6 images.
 
CK
Try typing a quick reply and click "preview reply". After that, you can then add the image using the "choose file" button that becomes available at the bottom of page. After you select your image, click "post reply" without previewing it again. Should work.
Technivorm Moccamaster, Urbanic070s, Breville SGP, Breville Barista Express, Transparent Roaster, Roaster908
 
prs16001
Thanks for the help.
Attached are images of the settings for device, extras, events, buttons, sliders and control. I just want to make sure they are correct.
prs16001 attached the following images:
artisan_config.png artisan_pid_control.png artisan_sliders.png artisan_buttons.png artisan_extras.png artisan_device.png
 
allenb
Thanks CK for helping prs with posting images!
1/2 lb and 1 lb drum, Siemens Sirocco fluidbed, presspot, chemex, cajun biggin brewer from the backwoods of Louisiana
 
Jump to Forum:

Similar Threads

Thread Forum Replies Last Post
aArtisanQ_PID thermocouple jumps when active PID channel Dataloggers/Controllers/Rate of Rise Meters 16 06/10/2021 9:57 AM
Loading aArtisanQ_PID in Arduino Dataloggers/Controllers/Rate of Rise Meters 14 05/28/2018 8:32 PM
Help with aArtisanQ_PID Specifying Temps Dataloggers/Controllers/Rate of Rise Meters 7 08/03/2017 7:05 PM
TC4 aArtisanQ_PID or Standard Library Dataloggers/Controllers/Rate of Rise Meters 45 01/24/2016 12:17 PM
aArtisanQ_PID 5,3 with TC4 display problem Dataloggers/Controllers/Rate of Rise Meters 14 01/23/2016 11:15 AM
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 © 2022 PHP-Fusion Inc
Released as free software without warranties under GNU Affero GPL v3
Designed with by NetriX
Hosted by skpacman