Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
E3d v6 Extruder Thermistor Table
#1
I have been having trouble getting a working table for my E3d v6 Extruder Thermistor and have spend several days working on it.
I wanted to document my process here so that others can review my work for any math, logic or procedural errors. As well as provide a reference for others who are working on their own tables.

Step 1: The Thermistor
The thermistor that came with my v6 extruder is a Semitec 104GT-2 100kOhm NTC Thermistor. Who's data sheet can be found here: http://www.atcsemitec.co.uk/gt-2-glass-thermistors.html
Fortunately, the data sheet lists the resistances for given temperatures. Rather than mess around with the Beta or other math I decided to build my table form these values directly.

Step 2: The Board
I have a Da Vinci 1.0 "Model 0" type board, jumper JP1 to reset, no pins.
(Note: Your board may have different circuit layouts, resistors or voltages.)

Step 3: The Thermistor Circuit:
Using my meter I was able to trace the layout of the circuit.
Vref to R27, R27 to the thermistor and to R29 (in parallel with C29), R29 to ground.
*see attached diagrams
(Note: For my purposes I labeled R27 "R1" and R29 "R2")

Step 4: Values
Using my meter I identified the Vref as 3.3V (3.26 measured)
(Note: Though the Vref value does affect the math, it did not affect the final table numbers as that is a function of the ratio between Vref and Vtemp.)
Using the SMC codes I calculated the resistor values
R27, Code: [472], Rated Value: 4700 Ω
R29, Code: [103], Rated Value: 10000 Ω
(Note: I was not able to confirm these values with my meter as the measured values were way off. I realized that being on the board I had no idea what other components they may be in parallel with :unsure: So unless I am overlooking something(?), I will go with the assumption that they are valued at what they are rated as.)
As I understand it C29 is just a filter capacitor and will not have any affect on the table calculations, so I ignored it.

Step 5: The Math
The Thermistor and R29(R2) are in parallel so there combined resistance(Rp) should be the calculated by:
Rp = 1/( (1/Rt) + (1/R2) )
Reference: http://en.wikipedia.org/wiki/Series_and_...l_circuits

Given the value of R27(R1) and the calculated value of Rp I should be able to calculate the measured voltage (Vt) using the voltage divider formula:
Vt = (Rp/(R1+Rp)) * Vref
Reference: http://en.wikipedia.org/wiki/Voltage_divider

Given the calculated measured voltage (Vt) I should be able to calculate the ADC(Analog to Digital Conversion) number using the formula
ADC = (Vt/Vref)* (Max value in Number Range)
(Note: I got the Max value in Number Range from another post on this board = 1023. I guess this is 10bit ACD? = 2^10 = 1024, so a range from 0 to 1023)
Reference: http://www.microchip.com/forums/m512372.aspx


Finally with the ADC value I can calculate my table values using the formula:
Value 1 = ADC*4, Value 2 = Temp °C *8
(Note: I got this formula from another post on this board. As I understand it we multiply by 4 because we are oversampling the input (4 times I assume) to reduce noise? And we multiply the temperature by 8 to increase the spread of the values for better ? um err precisions? Here my understanding breaks down, but I understand it enough to know that the multipliers are part of the ADC process and how to apply them Wink

Step 6: The Table
With the formulas and values I made up a spread sheet to calculate the table and entered in the temperature resistance values from my thermistor's data sheet. Remembering to convert from the data sheet values of KΩ to Ω.

Step 7: the Application
This is the step I am on as of the time of this post.
I loaded up the table and did some quick initial testing with promising results.
I will need to do some more testing comparing various temperatures, Measured vs. Reported, and see how accurate and usable my table is. If I encounter any major issues or problems I will update in this thread.


Please review my work and let me know if I made any errors or are on the wrong track. Any help is appreciated.
I hope this is helpful to anyone else working on the similar issue.


FYI:
Here is the table I initially calculated, prior to testing.
We will see how well this works. Wink

36 values
{{68, 2400},{79, 2320},{91, 2240},{105, 2160},{123, 2080},{144, 2000},{169, 1920},{199, 1840},{237, 1760},{281, 1680},{336, 1600},{403, 1520},{483, 1440},{580, 1360},{695, 1280},{831, 1200},{988, 1120},{1164, 1040},{1357, 960},{1561, 880},{1767, 800},{1966, 720},{2148, 640},{2306, 560},{2437, 480},{2441, 400},{2619, 320},{2676, 240},{2715, 160},{2742, 80},{2759, 0},{2769, -80},{2776, -160},{2780, -240},{2782, -320},{2783, -400}}[Image: DaVinci1.0Circuit.jpg][Image: ThermistorCircuit.jpg]
Reply
#2
Just wondering if you have tried out your table and how it did. Any updates?
Reply
#3
I got a chance to do some testing last night.
My probe thermometer is reading the heater block colder that reported.
Ranging from 115°C measured at 120°C (off by 5°C) to 200°C measured at 220°C (off by 20°C)
I am having real difficulty with my probe thermometer, how I press it in place has a huge impact on read values. :unsure: So I am not very confident about the accuracy of my measurements with my probe thermometer. (My fault for using a $20 cooking thermometer ) However, the temperature difference definitely gets greater as the heater temperature increases, so there is probably some inaccuracy with my table?

Even without tuning the PID it has the most stable temperature curve I have managed so far. My earlier attempts at tables would osculate wildly.
PID tuning ran fine and everything was just as stable after.

Testing via the melt characteristics of my filament has yielded excellent results!
I am using some Hatchbox black ABS with a melt temp of 230°C. With the stock extruder this stuff has had some pretty good results over a wide range of temperatures.
Set at 230°C it printed beautifully. No problems with adhering to the bed. No print artifacts to indicate over heating or under heating.
I am VERY happy with the results.
(see attached pictures)
The test prints are "Spiral Vase", that is one parameter thick so I can calibrate the extrusion multiplier.
They will get very "melty" if the extruder is running too hot. Or have gaps and voids if the if the extruder is running too cold.
The spiral vase print is air and water tight. (I filled it with water and let is sit for a hour no leaks) better than anything I was able to do with the stock extruder

I then tried one of my more difficult files to print.
This File: Slytherin Crest for some reason would jam my stock extruder every. single. time. (multiple settings, multiple filaments)
I ran it at 50% size to save time. It ran fine, no issues. B)

So then I loaded my problem filament. A Neon Green Glow in the Dark. (I LOVE the color and glow of this filament but it has NEVER successfully printed without jamming.) This filament has a much narrow working temperature range.
The initial calibration print at a temp of 225°C was a bit "melty". 220°C yielded ok results, 115°C and the extruder wheel started to slip.
I am very happy with these results, it shows that my table is giving me similar results as I had with the stock thermistor.
I tried to do a full print with the problematic filament but was having some trouble getting the first layer to sick. I had not setup up any special temp settings for first layer yet, and decided to mess with that another time.

Oh the whole I feel that I have a good initial table to work with.
The next step is to get a better thermometer for testing the measured temperature vs reported.
But for now at least I can get the new extruder working with satisfactory results! Smile[Image: HollowCube1.jpg][Image: HollowCubeCloseup.jpg][Image: SpiralVaseCloseup.jpg][Image: Slytherin.jpg]
Reply
#4
Hoi Aaron,

I feel having the same problem, with the E3D thermistor connected on the breakoutboard on the extruder, my reading seems to be a bit off.
At this moment, i compensate manualy, but i would like to get it spot on, so i can use the manufacters settings.
Where is your table, how do in put in in repetier?
Thanks
Reply
#5
Aaron, did you connect the thermistor to the breakout board, or directly to the motherboard? It seems values are not far off from user_thermistortable0 in repetier configuration.h. I suppose you copy them over there. (and configure define EXT0_TEMPSENSOR_TYPE 5), then reflash.
Reply
#6
I am currently connected to the break out board. Though I intend to run a direct line eventually.
I wonder if that could be part of the inaccuracy issue?

I read in a firmware development bug thread that the thermistor readings were going crazy when the repurposed cooling fan was on (via the breakout board). It had to do with the fan speed control pulses getting into the thermistor, presumably through some common grounding point on the break out board? They fixed it in the firmware (changed the fan speed control mode), but I do not trust the board. And being that I am only using it as a connector now I am going to remove it completely. I will let you know if it makes any difference.

My table.
Not wanting to remove the original data, so I could easily revert, I put my table in the "user defined thermistor table 2" (0 being the stock thermistor data, 1 the bed thermistor data)

#define EXT0_TEMPSENSOR_TYPE 7


#define NUM_TEMPS_USERTHERMISTOR2 36
#define USER_THERMISTORTABLE2 {{68, 2400},{79, 2320},{91, 2240},{105, 2160},{123, 2080},{144, 2000},{169, 1920},{199, 1840},{237, 1760},{281, 1680},{336, 1600},{403, 1520},{483, 1440},{580, 1360},{695, 1280},{831, 1200},{988, 1120},{1164, 1040},{1357, 960},{1561, 880},{1767, 800},{1966, 720},{2148, 640},{2306, 560},{2437, 480},{2441, 400},{2619, 320},{2676, 240},{2715, 160},{2742, 80},{2759, 0},{2769, -80},{2776, -160},{2780, -240},{2782, -320},{2783, -400}}

FYI:
I tried putting my values (R and beta) into the GENERIC_THERMISTORTABLE and have it auto calculate the table at startup, but this gave me the same kind of weird results that the on-line table calculators did.
Reply
#7
Because generic doesn't do the 8/4 multiplier
Reply
#8
Update -
I removed the breakout board. Direct wiring the thermistor and (repurposed) 5v fan .
This had no effect on the thermistor temperature values.

During the rewire I broke the wire on my thermistor and replaced it. Changing the thermistor (to one of the same make and model) had no effect on the temperature values.

Note: I had a terrible time replacing the thermistor. The original fiberglass sleeving got frayed and need to be replaced. The generic replacement fiberglass sleeving I got was too big for both to fit in the hole. I eventual used high Temp RTV silicon to insulate the wires so they would not short against the heater block. (I used "sensor Safe" version of silicone. I have no idea what that means but it sounded like a good idea.)
I am not happy with the setup and will change it once I can get some new "proper" fiberglass sleeving.

I have been having a lot of failed prints, jams and print quality issues sense the overhall. But I suspect these are extruder (thermal creep) and setting issues (temp and retraction settings) and (hopefully) not related to the thermistor. :unsure:
Reply
#9
Quote:I am currently connected to the break out board. Though I intend to run a direct line eventually.
I wonder if that could be part of the inaccuracy issue?

I read in a firmware development bug thread that the thermistor readings were going crazy when the repurposed cooling fan was on (via the breakout board). It had to do with the fan speed control pulses getting into the thermistor, presumably through some common grounding point on the break out board? They fixed it in the firmware (changed the fan speed control mode), but I do not trust the board. And being that I am only using it as a connector now I am going to remove it completely. I will let you know if it makes any difference.

My table.
Not wanting to remove the original data, so I could easily revert, I put my table in the "user defined thermistor table 2" (0 being the stock thermistor data, 1 the bed thermistor data)

#define EXT0_TEMPSENSOR_TYPE 7




#define NUM_TEMPS_USERTHERMISTOR2 36
#define USER_THERMISTORTABLE2 {{68, 2400},{79, 2320},{91, 2240},{105, 2160},{123, 2080},{144, 2000},{169, 1920},{199, 1840},{237, 1760},{281, 1680},{336, 1600},{403, 1520},{483, 1440},{580, 1360},{695, 1280},{831, 1200},{988, 1120},{1164, 1040},{1357, 960},{1561, 880},{1767, 800},{1966, 720},{2148, 640},{2306, 560},{2437, 480},{2441, 400},{2619, 320},{2676, 240},{2715, 160},{2742, 80},{2759, 0},{2769, -80},{2776, -160},{2780, -240},{2782, -320},{2783, -400}}

FYI:
I tried putting my values (R and beta) into the GENERIC_THERMISTORTABLE and have it auto calculate the table at startup, but this gave me the same kind of weird results that the on-line table calculators did.

Hello Aaron,
I can't find these settings, can you help me out a little?
Under what tabs can i find these settings?

Thanks,

Rudy
Reply
#10
Sorry Aaron,

Missed you explanation, due to looking on a small smartphonescreen!

Thanks you for the detailed info!
Greetings,
Rudy
Reply
#11
[Update]
I have been looking at the e3D forums and other users of the V6 nozzle have reported having temperature read issues. I am not sure if they are related but it seems there is a marked difference in temperature between the inside of the heater block (Thermistor), the outside of the heater block (probe) and the nozzle (probe)
With lots of arguments about /how/ to measure etc.
It seems the only way to get an "accurate" read is to take the temp inside the heater block. Sliding a small thermocouple probe inside the melt tube.

e3D did state that they run ABS at 240c instead of 230c in their machines.
I am guessing this is compensate for the nozzle being a bit cooler?

The next step will be to get a better thermometer (on order) and give that a try and see if I can get some better numbers.
I am also considering trying to temporarily or permanently remove the "extra" resister form the thermistor circuit and see if that has any effect.
Reply
#12
So you found what you needed?
Reply
#13
O
Quote:So you found what you needed?
Oh yess! And printing with it now.
E3d speels to be in the correct region now, testing with Carbon fiber, normal settings like before on my prusa, Works very Nice .
Greetings from belgium!
Reply
#14
I am in the process of installing the e3d v6 in my davinci. I am wondering why you are using type 7 when then e3d v6 manual says to use type 8? Which setting should I use?

Text from e3d manual under configure firmware:

Repetier
Use thermistor definition number 8:

#define EXT0_TEMPSENSOR_TYPE 8
Or select "ATC Semitec 104-GT2" if using the Online Configuration Tool (v091)

For safety it is strongly recommended to do the following:

Limit the Max PWM value (EXT0_PID_MAX xxx in the config file) to ensure that current is limited to a safe value.
Set the Minimum defect temperature to ensure that the thermistor shorting out is caught by the firmware.
New in Online Configuration Tool (v092) are the two options to also improve safety:

Decouple hold variance and Decouple min temp. rise to detect the thermistor coming loose. These must be set appropriately for your system to ensure that they work properly.
Upload the new firmware to your electronics.
Reply
#15
Type 8 would work if it wasn't a davinci lol

He's using type 7 to keep type 5's stock table. You can also use type 5 and just replace the table (and comment out the original).
Reply
#16
yes this have been said and explained several times - https://forum.voltivo.com/showthread.php?tid=8308
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)