Who is here? 1 guest(s)
 Print Thread
TC4+ Arduino coffee roaster shield (TC4-compatible)
mg512
Update: The board finally has a proper name - the TC4+. And boards are now available on Tindie as well as via the website: https://www.tindi...no-shield/
 
marcov
Hi, congrats for the board and for the effort you put to set all this up.

Did you do some measurement to evaluate the accuracy of temperature measurement given by TC with voltage regulator and MOSFET ON? I am asking you this because these 2 components should generate quite a bit of heat that could make CJC measurement less accurate.

Where is the CJC IC placed? I'd expect on the back of the board, just below the TCs connector.
 
renatoa
If there is a ground plane generous enough, then there shouldn't be a big temperature gradient across the whole board ...
Anyway, I seen setups where the whole electronics is in an enclosure just near RC, reading on LCD even +40 C for AT at the end of roast, so there could be worse Grin
Edited by renatoa on 01/23/2019 10:48 AM
 
marcov
In order to be as accurate as possible, you really need to have the cold junction temperature measurement done as close to the junction as possible.

This is especially important for boards with high temperature gradients or heating up unevenly. That's why I'd like to know something more about it.
 
renatoa
Check board image at tindie:
https://cdn.tindi...US-KIT.png

The two smd chips that can be seen are the temp sensor in the left, the smaller with 8 pins, near the Arduino pins 5-6-7, and ADC the other smd chip, with 14 pins.
 
mg512
Thank you for the interest, Marcov! That's actually a very interesting point! For temperature sensor location, renatoa has it almost right: On the picture of the board, the large 14-pin IC is indeed the ADC for the thermocouples, with the 8-pin header for the TC connections just above. The temperaturer sensor for CJC is just to the left of the ADC, the very small 5-pin IC. (The larger 8-pin IC is the EEPROM chip.) This is as close to the ADC and TC header as I could get the sensor. Putting it on the back would have made manufacturing of the board a lot more complicated (and expensive), plus I would expect the same side to more closely match the temperature.

I did some tests when I first designed the board, against a TC4, and results were all within a degree C of each other. I don't think I wrote down those, but if there's strong interest I could look into running a few more tests to confirm.

If you are concerned about this, or want the absolute maximum in accuracy, you could mount the MOSFET vertically instead of flat on the board, that way heat transfer to the board would be minimal. Or even mount it off-board with a short 3-pin cable.
 
marcov
thanks mg512 for the details. The position of the T sensor IC doesn't seem too bad in the end. I'm going to place an order for the TC4+ soon smile
 
mg512

Quote

marcov wrote:

thanks mg512 for the details. The position of the T sensor IC doesn't seem too bad in the end. I'm going to place an order for the TC4+ soon smile


Got it! All ready to go, will send you a tracking code on Monday when the post is open. smile

And to elaborate a bit more on the cold-junction compensation, the ideal solution of course would be to use a thermocouple chip that has the CJC integrated on-chip. The main problem (aside from cost) with that is that it would break compatibility with existing TC4 Arduino sketches. But, long term, that's something I am considering, especially if I were to make a completely new board altogether. ;)
 
renatoa
yep, is the way I went for my TC4ESP soon coming architecture, not expensive at all, full compatibility with the main TC4 sketch preserved, and the results are impressive...
What's more important, the solution can be applied immediately for existing installation, minimal rewiring and firmware reloading.
 
marcov

Quote

mg512 wrote:

Got it! All ready to go, will send you a tracking code on Monday when the post is open. smile


Great! Take your time, I am in no hurry.

Quote

mg512 wrote:

And to elaborate a bit more on the cold-junction compensation, the ideal solution of course would be to use a thermocouple chip that has the CJC integrated on-chip.


I don't think so, the ideal solution would be a dedicate temperature sensor that is as close as possible to the screw terminal. I used to work for a company manufacturing temperature sensors, and their solution was to have a hole in the PCB just underneath the screw terminal, and put on the other side of the PCB a digital temperature IC with a good enough accuracy.

Anyway, I'd be glad to have a review of your / renatoa boards and give some feedback if you plan to open source them.
 
Ilovehash
Is TC4+ compatible with MEGA 2560? Is the flyback diode necessary? If so, for 20V 2A DC motor, what would be the appropriate diode to use? I believe 400x only get up to 1A which might not be sufficient.
 
mg512
I think the Mega won't work, since the I2C pins are different. The aArtisan code also uses some specific timer registers of the Atmega328P that's on the Uno, I wouldn't be sure those are the same on the 2560. Is there any specific reason you want to use the Mega?

The flyback diode is necessary, yes. Or at least, there's a high risk of damaging the MOSFET without it. There is higher current versions of the 400x diodes, see e.g. the table on the wikipedia page: https://en.wikipedia.org/wiki/1N400x_general-purpose_diodes
 
mg512
Oh, to add to that: If you are building a roaster out of a popcorn machine, the DC motor almost certainly was attached to a bridge rectifier made up of four diodes. The easiest thing to do is to simply reuse one of those - they ought to be the right specification for the motor, obviously.
 
Ilovehash
Reusing diode on the popcorn machine fan rectifier is a wonderful idea. Do you have capacitor across the motor on TC4+? I heard some people have problem with Arduino being reset due to DC motor power issues. What about noise from PWM? Do we need to filter it? As to MEGA2560 question, I thought it has more memory to handle aArtisan sketch. My impression is some configuration might run out of memory on an UNO.
 
renatoa
You can save significant amounts of memory commenting out the unused thermocouple types in the TC code.
For example if your TC type is K, then the code dealing with J and T types is simply occupying memory without never being used. And is a lot if bytes... hundreds.
Already did this, PM me for the files if you want to test.
 
mg512

Quote

Ilovehash wrote:

Reusing diode on the popcorn machine fan rectifier is a wonderful idea. Do you have capacitor across the motor on TC4+? I heard some people have problem with Arduino being reset due to DC motor power issues. What about noise from PWM? Do we need to filter it?


The motor in my popcorn machine had a few (small) capacitors across the positive and negative terminals, positive and motor housing, and negative and motor housing. I left those in place, but I didn't add any extra ones.

The only times I've had issues is when switching the motor on from 0 to 100% duty cycle, and even then only on a 24V power supply (when the motor is nominally about 20V). That plainly triggers an overcurrent protection in the power supply, and hence everything including the Arduino resets. I tried adding an extra capacitor but that didn't help. I'm sure a correctly specified capacitor would do the trick, but I've just never been bothered - I don't even usually use the fan at 100% anyway, and going 0->80% isn't an issue. Also never happened on the 19.5V laptop power brick I was using previously. I have also never had any issues with PWM noise, despite always running the fan at a partial duty cycle. Between the capacitors that came with the motor, and those on the voltage regulator on the TC4+, that seems to filter out plenty.

So, I would leave any capacitors that are already there in place. And I wouldn't worry about it beyond that, unless you actually run into problems. Even then, just gradually increasing fan speed would almost certainly be enough.



Quote

Ilovehash wrote:
As to MEGA2560 question, I thought it has more memory to handle aArtisan sketch. My impression is some configuration might run out of memory on an UNO.


Ah, okay. I wouldn't worry too much about that, again unless you run into a specific issue with it. I think it would really only happen if you wanted to enable _all_ the aArtisan features at the same time, like both PWM and phase-angle control simultaneously, but that would not even make sense except in the most exotic of configurations. Even then, as renatoa points out, there's plenty of unused code that you could comment out if needed.
 
AlexMunt
Hello to all, and thanks to you for sharing all this information. Awosome!!
I have some questions about the shield and its configurations. I don't know if I can post here , sorry if I'm wrong.
I bought a TC4+ a few weeks ago. Works fine on a Arduino Uno and aArtisanQ_PID loaded on it, with CONFIG_PAC2; Artisan 1.5.0 instaled, configured, and works well too. ( at this time only with Heater and temp. sensors)
My idea is to build an electric drum roaster, so I need to control a heater (230VAC resistor), a fan (230VAC, motor 32W), and the drum speed (12VDC gear box motor 40rpm).
On OT1 I have the Heater and works fine, with SSR.
On OT2 I have nothing yet but will be the Fan, with the ZCD on IO2.
On IO3, PWM 3,9KHz, to control a 12VDC motor. On this one I don't know how to configure the third comand from Artisan? Could you tell me if I can do it? And how.

The ET and the BT works fine.
Didn't test the bluetooth yet, but I will.

Very excited so far by the TC4, and thanks a lot!!
 
greencardigan
Just use the IO3;X command to change the PWM output on the IO3 output. Essentially the same as the set up for OT1 and OT2.

For example, set up a slider with the serial Command IO3;{}

Or buttons with serial command IO3;100 etc.
 
mg512
Also make sure you're using the latest version of the aArtisanQ_PID sketch. IIRC in earlier versions you couldn't do PWM on IO3 if you were using PAC config.

And let us know how it goes! smile
 
AlexMunt
Thank you both for the fast answer.
I have downloaded aArtisanQ_PID_6_7.zip from Greencardigan's github page, 4 months old docuemnt. I think is the latest version.

I will test the button and the slider with IO3, and let you know the results.
Thanks again,
 
AlexMunt

Quote

AlexMunt wrote:

Thank you both for the fast answer.
I have downloaded aArtisanQ_PID_6_7.zip from Greencardigan's github page, 4 months old docuemnt. I think is the latest version.

I will test the button and the slider with IO3, and let you know the results.
Thanks again,


Hello,
I have tested the slider and the button like Greencardigan told me, but no output on IO3. Maybe I don't have the proper user.h file configuration?
 
mg512

Quote

AlexMunt wrote:
Hello,
I have tested the slider and the button like Greencardigan told me, but no output on IO3. Maybe I don't have the proper user.h file configuration?


I think you have to set CONFIG_PAC2_IO3HTR to enable the IO3 command when in PAC mode. If that doesn't help either, try CONFIG_PWM, just to see if it's a software or hardware issue.
 
greencardigan
The IO3 output should still work in CONFIG_PAC2 mode.

How are you confirming that it's not working? Have you got a multimeter to check the output on the IO3 output pin?
 
AlexMunt

Quote

greencardigan wrote:

The IO3 output should still work in CONFIG_PAC2 mode.

How are you confirming that it's not working? Have you got a multimeter to check the output on the IO3 output pin?


I can't see the output signal, using an osciloscope,
Signal 1 is the OT1 on 3,9KHz configured (nolmaly I have it on 8Hz)
Signal 2 is the IO3, and should be a 3,9KHz PWM, but is not.

[img]farm8.staticflickr.com/7856/46738965274_2a4aa9951a.jpg20190325_073558 by Alexandru Bogdan Munteanu, en Flickr[/img]
Just don't know where I'm wrong, congiguring, measuring?
 
mg512
Are you measuring that directly on the IO3 pin?
 
Jump to Forum: