Jump to content
Ultimaker Community of 3D Printing Experts
neiriow

E3D Thermocouple mount on UMO+

Recommended Posts

Hi to the community !

I'm new on the forum and I hope my post is in the good section. I read several posts without fixing my problem yet, so don't hesitate to redirect me if you think this problem already exist in the forum.

I'm an engineering student working on a 3D printing project. I've bought a UMO+ and am trying to adapt it for high temperature printing materials.

I received 2 E3D v6 hotend bowden full kits (one 1.75mm diameter and the other is 3mm diameter) and try to mount it on my new UMO+. My goal is to print at high temperatures (more than 300°C) and I decided to buy a Thermocouple with the v1 electronic board. I'm a beginner in 3D printing and encounter difficulties to understand how to do it.

After reading lot of things on the internet I understood (correct me if i'm wrong) that :

 

  • UMO+ works with v2.X.X electronics
  • UMO+ works with a PT100 (thermistor with better capacities than normal thermistors)
  • UMO+ needs a Thermocouple board to work with Thermocouple
  • Marlin is prepared for Thermocouple with AD595 (but the external board i've bought is AD597A)

I'm not sure how to connect the Thermocouple external board to the UMO+ PCB and what modification I have to do in marlin.

I'm also facing a voltage issue. I bought the 12v version of the E3D v6 hotend full kit instead of the 24v (for the UMO+ electronic board). I read on this forum that I can adapt the PID settings in Marlin reducing the max current on the 0 to 255 scale for both the Heater cartridge and the new fan (that comes with the E3D full kit). But I'm not sure what formula I should use to find this maximum.

(I read about a 40W 12V heater cartridge mounted on a 24v board with the PID max current of 95 instead of 255 but mine is a 25W 12V and I measure only 9V when I put the max at 95 in marlin)

Thank you for your help !

 

Share this post


Link to post
Share on other sites

My 2 (euro) cents on this topic.

As you say, the UMO+ uses a v2.1 board, which has the electronics in place to read temperature from a PT100 thermistor. Using another thermistor or a thermocouple won't work.

The easiest is probably using a free analog pin from the micro-controller (E.g. from Exp.4) and re-assign the pin in Marlin.

Wrt the thermocouple amplifier, AD595 and AD597 are similar in term of output voltage curve, the difference is in the 'preferred' ambient temperature (the AD595 performs better at ambient T° around 25°c, and for the AD497 it is 60°C). Apart from that they are interchangeable and you can still select AD595 in the Marlin build.

I can't comment on the 12V cartridge (I have a 24v one, but still on the workbench ;) )

 

Share this post


Link to post
Share on other sites

Why not swap the 12V heater with a 24V heater. E3D offers a 24V version. Operating a 12V heater on 24V to me looks like asking for trouble. The power drawn of this 40W 12 heater on 24V is 160W. If something goes wrong that heater might melt.

Concerning the AD597A I only see that Marlin supports AD595. Look into the datasheet if they are exchangeable.

 

Share this post


Link to post
Share on other sites

95/255*24=8.94 so 9V is just what would be expected. 128 should get you 12V.

So many questions!

The AD595 board needs power (I think it's 5V but not certain). The output of the AD595 is 0V for 0C, 5V for 500C and linear in betwen. I think the AD597 has the exact same specifications but not certain. Do you have specifications for the board somewhere? Anyway I think it's fine. Or you can use the PT100. Most PT100 work fine up to 800C. You can't solder to these devices as most solder melts at 250C and even pure lead solder melts around 300C. So you have to crimp. There are inexpensive products (just a few pennies) made from soft metals (copper) that crimp tight to the wiring.

Using the thermocouple would require a change to the firmware (very simple change in configuration.h - it's all commented very clearly - you don't know how to program).

Regarding the PID settings, start off by dividing the P,I,D values by the difference in voltage to achieve the same result.

In other words in your case, on the old heater, 24V got you 40W and on the new heater 24V gets you 100W (if 12V gets you 25W then 24V will get you 100W and it will melt that heater) then you want to multiply everything by 0.4 I suppose. Except it's non linear.

Then you can run autotune on the heater to refine the PID values to be ideal.

 

Share this post


Link to post
Share on other sites

Well, Thank you for all your answers !!!

As you say, the UMO+ uses a v2.1 board, which has the electronics in place to read temperature from a PT100 thermistor. Using another thermistor or a thermocouple won't work.

The easiest is probably using a free analog pin from the micro-controller (E.g. from Exp.4) and re-assign the pin in Marlin.

Now I know it's hard to connect the thermocouple directly on the "temp1" port. I won't loose time looking for this. I already thought to connect the thermocouple board to another port of the Ultimainboard. As you tell me the Exp 4 could maybe work but why not the serial port ? Does it matter which one I choose ?

I also have difficulties to find the good pin number I have to use. I know I have to modify the part of the pins.h file in Marlin that correspond to the board I've configured in Configuration.h (I did the test to swap to pins number and it works).

I suppose my issue come from the method I use to determine the pin I want :

  1. First I identify which port I'm gonna use on the Ultimainboard (For exemple I want to know the pin number of HEATER 1)
  2. Then I search which signal correspond to this port looking on the electrical schema of the port I've chosen (In this case PE4)
  3. Then I look which pin match this signal on the ATMEGA2560 electrical schema (PE4 is in front of the pin 6)
  4. In marlin I put this pin number in the line that match what i want to use the port for (#define HEATER_0_PIN 6)

Following those step I should have by default 6 in this line of the firmware but I have 2 Instead. So I'm doing something wrong to identify this pin number but I don't know what it is...

Why not swap the 12V heater with a 24V heater. E3D offers a 24V version. Operating a 12V heater on 24V to me looks like asking for trouble. The power drawn of this 40W 12 heater on 24V is 160W. If something goes wrong that heater might melt.

Concerning the AD597A I only see that Marlin supports AD595. Look into the datasheet if they are exchangeable.

You're right it's one solution and I know I made a big mistake ordering a 12V version of the hotend kit. But now that I have it, I would like to find a way to use it for delivery time reason and money too of course. Why would limit the PID current max would be dangerous ? Do you think this max could disappear and the power could raise up to 160W instantly ?

95/255*24=8.94 so 9V is just what would be expected. 128 should get you 12V.

So many questions!

The AD595 board needs power (I think it's 5V but not certain). The output of the AD595 is 0V for 0C, 5V for 500C and linear in betwen. I think the AD597 has the exact same specifications but not certain. Do you have specifications for the board somewhere? Anyway I think it's fine. Or you can use the PT100. Most PT100 work fine up to 800C. You can't solder to these devices as most solder melts at 250C and even pure lead solder melts around 300C. So you have to crimp. There are inexpensive products (just a few pennies) made from soft metals (copper) that crimp tight to the wiring.

Using the thermocouple would require a change to the firmware (very simple change in configuration.h - it's all commented very clearly - you don't know how to program).

Regarding the PID settings, start off by dividing the P,I,D values by the difference in voltage to achieve the same result.

In other words in your case, on the old heater, 24V got you 40W and on the new heater 24V gets you 100W (if 12V gets you 25W then 24V will get you 100W and it will melt that heater) then you want to multiply everything by 0.4 I suppose. Except it's non linear.

Then you can run autotune on the heater to refine the PID values to be ideal.

Thank you for the formula I wasn't sure it was linear.

Here are the board specifications I have :

So what I should do for the thermocouple would be :

  1. Connect the thermocouple board to a free port of the Ultimainboard
  2. Change the thermo sensor type in marlin (easy)

And for the Heater :

  1. Connect the heater to the original heater 1 port of the Ultimainboard
  2. Change the PID setting dividing the P,I and D constant by the voltage ratio
  3. Run autotune

About Autotune, I understood how it works (GCode that heat several times at a specific temperature) but I don't get how you have the new Kp, Ki and Kd values after the test. Is it automatically changed in the firmware ? Do I have to read them with a software (like printrun) ?

I'm gonna work on this, thanks to your help, soon and give you a feedback then of course !

 

Share this post


Link to post
Share on other sites

Hey guys,

I have a slightly related question. I am changing over to E3D V6 on my UMO, and have elected to used the k-type thermocouples sold by e3d with the standard/original UMO amplifier board. Will I need to change any of the firmware configurations for this?

Thanks for any help

 

Share this post


Link to post
Share on other sites

@Macua85

Normally you won't have any modifications to do cause your UMO already works with a thermocouple.

If it does not work with a thermocouple yet you should do as gr5 said :

 

Using the thermocouple would require a change to the firmware (very simple change in configuration.h - it's all commented very clearly - you don't know how to program).

 

Yes you'll have to change the temperature sensor settings. It's true that it's very clear in the firmware. In the Configuration.h file (It's written in such a way that lot of simple configurations can be done in this file) section "Thermal Settings" you'll find :

 


//===========================================================================
//=============================Thermal Settings ============================
//===========================================================================
//
//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
//
//// Temperature sensor settings:
// -2 is thermocouple with MAX6675 (only for sensor 0)
// -1 is thermocouple with AD595
// 0 is not used
// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
// 3 is Mendel-parts thermistor (4.7k pullup)
// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)
// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)
// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
// 10 is 100k RS thermistor 198-961 (4.7k pullup)
// 11 is 100k beta 3950 1% thermistor (4.7k pullup)
// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
// 13 is 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE"
// 20 is the PT100 circuit found in the Ultimainboard V2.x
// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
//
// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k
// (but gives greater accuracy and more stable PID)
// 51 is 100k thermistor - EPCOS (1k pullup)
// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)
//
// 1047 is Pt1000 with 4k7 pullup
// 1010 is Pt1000 with 1k pullup (non standard)
// 147 is Pt100 with 4k7 pullup
// 110 is Pt100 with 1k pullup (non standard)
#define TEMP_SENSOR_0 20
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 0

You only have to change the #define TEMP_SENSOR_0 line as it's said in your case you'll have to select the thermocouple with AD595 using the code -1 (Instead of 20 in my exemple)

 

Share this post


Link to post
Share on other sites

As you tell me the Exp 4 could maybe work but why not the serial port ? Does it matter which one I choose ?

 

 

Well, any free port will work, but it needs to be an analog port. Serial is a digital one. That's why I mentioned Exp4, as there is a header with 5v and A/D ports....

 

About Autotune, I understood how it works (GCode that heat several times at a specific temperature) but I don't get how you have the new Kp, Ki and Kd values after the test. Is it automatically changed in the firmware ? Do I have to read them with a software (like printrun) ?

 

Yes, you need to issue the auto-tune command from a console (pronterface or whatever you like)

 

Share this post


Link to post
Share on other sites

It seems I'm getting close to my goal. The thermocouple board give me a good voltage that correspond to the a coherent temperature. The heater 12v seems to work well too with the current max configured at 128. So now the only problem I have is that I don't understand how I can find the pin number I want to use for my TEMP_0_PIN.

I'm trying to use the EXP4 port I found the +5V, the GND and want to input the signal buy the ADC12 pin for exemple. ADC12 correspond to the 85 pins on the ATMEGA2560 but it doesn't read the temperature when I configure this pin in Marlin.

As I explained you before even for ports that are already connected I can't find the good pin number :

 

I suppose my issue come from the method I use to determine the pin I want :

 

  1. First I identify which port I'm gonna use on the Ultimainboard (For exemple I want to know the pin number of HEATER 1)
  2. Then I search which signal correspond to this port looking on the electrical schema of the port I've chosen (In this case PE4)
  3. Then I look which pin match this signal on the ATMEGA2560 electrical schema (PE4 is in front of the pin 6)
  4. In marlin I put this pin number in the line that match what i want to use the port for (#define HEATER_0_PIN 6)

Following those step I should have by default 6 in this line of the firmware but I have 2 Instead. So I'm doing something wrong to identify this pin number but I don't know what it is...

 

Share this post


Link to post
Share on other sites

It is actually much simpler than that...

Arduino uses the 'pin names', not the processor pin numbers.

By default TEMP_0_PIN is on ADC8, so we just enter '8' as port number

If you take ADC12, just enter 12 as port number.

(To make it nice you could use the macros defined in Arduino, like 'A12' for ADC12, but Marlin tends to use the 'straight numbers')

 

Share this post


Link to post
Share on other sites

o.O

Why don't you just use a PT100 sensor with the Ultimainboard V2? There are PT100's that go up to 500°C for continuous operation...

PT100's are pretty much the best temperature sensors for this application. Easy to use, and very good accuracy.

Plus, the Ultimainboard 2.1 is one of the best Marlin platforms on the market... (While the old UMO electronics are the opposite :D)

Example PT100 sensor: http://www.mouser.ch/ProductDetail/Heraeus-Sensor-Technology/32208548/?qs=sGAEpiMZZMunegBHAOsZDxa9NeBQvzc30ZVQYpf%2FJfSZRksT0sBR9Q%3D%3D

(Edit: http://www.mouser.compart number if the link doesn't work: 956-32208548)

Actually my first hit on Mouser's search. You might find a better one http://www.mouser.ch/Alle-Hersteller/Sensors/Temperature-Sensors/_/N-7gz50Z0Zscv7?Keyword=pt100&FS=True&Ns=Pricing%7C0.

/edit: With a bit of searching, you might even find an encapsulated one just like E3D's original NTC. Mounting that one would be easier than the one I linked above.

 

Share this post


Link to post
Share on other sites

The heater 12v seems to work well too with the current max configured at 128

 

Actually I think I thought about this wrong. If you put in 128 what really happens is it is at 24V for half the time and 0V for half the time. But the power is V*V/R. In other words it is proportional to the voltage squared. So actually that means it is at 100W half the time and 0W half the time or an average of 50W. That's too much. So better to go for a PWM setting of 64 which is 24V for 1/4 of the time and 0V for 3/4 of the time. The volt meter may claim this is only 6V on average - which is true - but it's still 25W on average. So I think you may need to set it to 64 for a max setting.

This non-linearity issue will affect PID values also in a not-clear way. I would probably just cut the PID values by about 1/4 or 1/3 and try those initially.

 

Share this post


Link to post
Share on other sites

Hi every body and thank you for your help.

I didn't answer earlier cause I was overbooked, sorry !

I use the Exp4 and it works well ! (I understood the usage of 'pin numbers' and it's much easier to do modifications on the Ultimaker now. I'm a beginner you know ...)

I ran autotune and find very different constants each time. It seems very unstable and it doesn't really improve the temperature regulation. Anyway It's not really important because the only consequence it's that at the beginning, the temperature goes 10/15 degrees upper than what I ask. Then it stabilized well at the good temperature.

I was able to use the E3D hotend at 350°C without any problem with the Thermocouple and the 12V heater but when I decided to try to print with the heated bed (the E3D hotend working with PLA at normal temperature 210°C) the electronic board stopped and restarted.

I thought it came from the fact I use too much power. I tried to change the PID heater current max to 64 as adviced by gr5

 

Actually I think I thought about this wrong. If you put in 128 what really happens is it is at 24V for half the time and 0V for half the time. But the power is V*V/R. In other words it is proportional to the voltage squared. So actually that means it is at 100W half the time and 0W half the time or an average of 50W. That's too much. So better to go for a PWM setting of 64 which is 24V for 1/4 of the time and 0V for 3/4 of the time. The volt meter may claim this is only 6V on average - which is true - but it's still 25W on average. So I think you may need to set it to 64 for a max setting.

This non-linearity issue will affect PID values also in a not-clear way. I would probably just cut the PID values by about 1/4 or 1/3 and try those initially.

 

 

But the result is exactly the same. When both, the heater and the heated bed are working, the electronic board stop. I tried to connect the old 24v heater cartridge (Ultimaker's one) and it works without any electronic stop. I think the problem come from an instant power consumption over the circuit board limit. In fact the 24v 1/4 of the time (with 64 as a current max) may generate a very high instant power consumption. It works alone but adding the power consumption of the heated bed it may be over the circuit board limit.

I ordered a new 24v version of the E3D heater so the problem should be resolved...

 

Why don't you just use a PT100 sensor with the Ultimainboard V2? There are PT100's that go up to 500°C for continuous operation...

PT100's are pretty much the best temperature sensors for this application. Easy to use, and very good accuracy.

Plus, the Ultimainboard 2.1 is one of the best Marlin platforms on the market... (While the old UMO electronics are the opposite :D)

Example PT100 sensor: http://www.mouser.ch/ProductDetail/Heraeus-Sensor-Technology/32208548/?qs=sGAEpiMZZMunegBHAOsZDxa9NeBQvzc30ZVQYpf%2fJfSZRksT0sBR9Q%3d%3d

(Edit: Mouser part number if the link doesn't work: 956-32208548)

Actually my first hit on Mouser's search. You might find a better one in that category.

/edit: With a bit of searching, you might even find an encapsulated one just like E3D's original NTC. Mounting that one would be easier than the one I linked above.

 

Thank you for your advice. I'll try to use the E3D thermocouple for the moment. I just have one question : Do you think the Ultimaker's PT100 could mesure temperatures up to 400°C ? I can't find datasheets...

Anyway I'm close to my goal now. I still have problems with E3D hotend cause the PLA doesn't come out the head regularly but maybe the problem comes from the feeds and I'll work on a new feeder to check...

 

Share this post


Link to post
Share on other sites

The reason why your PSU still shuts down is because you can't actually reduce the current of your heaters. You can only limit the maximum PWM duty cycle which results in a certain limited average current. But when the heater is on, it just draws full current. And when both heaters are on at the same time, it crashes.

So - yes you're correct. While the heating element is very slow to react to current, it only cares about the average current flow. This average current generated with the PWM is nice and all, but the electronics are much more sensitive to these high instant currents...

I'm a bit surprised that UM decided to leave such little headroom when they selected their power supply...

/edit:

Don't know about UM's PT100. Not all PT100 are suitable for high temperatures, which probably means the part they took isn't suitable for more than 300°C (because they don't need it to be).

 

Share this post


Link to post
Share on other sites

I think UMO has a dual amplifier maybe? Look at the UMO dual extruder kit - see if it comes with an ad595 board. I'm too lazy to look at my existing UMO to see if it has a board with 2 connections. Now if you are asking about UMO+ which doesn't use thermocouple but instead uses PT100 then I think you are out of luck. But there's no reason you can't have nozzle1 use PT100 and nozzle2 user thermocouple with AD595 board as the firmware lets you choose which sensor type but you need all the hardware to support each type of sensor.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Terms of Use Privacy Policy