Welcome! Log In Create A New Profile

Advanced

reprap-host's Extruder excerciser gives wrong temperature but testing code worked

Posted by Andromodon 
Hello. I have a problem. It created a little smoke last weekend and burnt up my nichrome wire (it was 8 ohms, now it's 32 ohms), also melting my high-temperature JB weld in the process, but that's another story.

The Extruder Excerciser program in reprap-host doesn't seem to give the right temperature. When the thermistor is in 28 C ambient, it reads 19 C. When the thermistor is in boiling water, it reads 26 C, and when it's in ice water, it reads 17C.

I know my circutry is working correctly, because the thermistor test program at the end of [reprap.org] works correctly when I replace the temptable with the EPCOS 100K table from the Thermistors page (http://reprap.org/bin/view/Main/Thermistor).

Things to note:
* I'm using the single arduino firmware V1.3.
* I was careful to edit the 'ThermistorTable.h' file in /hardware/libraries/ThermoplastExtruder to reflect the EPCOS 100K table used in the test.
* I know the "Extruder Excerciser" is communicating with the arduino, because I can turn the extruder motor on and off with it.

Any thoughts? I'm about to rebuild the metal parts of my extruder again, and it would be great we could find the culperit before I break the new one. smiling smiley smiling smiley smiling smiley Thanks for your help
I thought I should post this info too. They're my settings in my RepRap preferences:

There's a lot of them. I think most of them are defaults except Port, Extruder0_Beta=4066, and Extruder0_Rz=333960.

Here is the rest, incase I missed something:


Reprap properties [reprap.org]
#Sun Jun 08 19:57:52 CDT 2008
WorldName=RepRap-World
CommsDebug=false
Extruder0_ColourR(0..1)=0.3
Extruder0_XYSpeed(0..255)=230
Extruder1_Beta(K)=3480
Extruder1_OutlineSpeed(0..1)=0.6
Extruder1_Reverse(ms)=0
SelectedColourR(0..1)=0.6
RadiusFactor=0.7
SelectedColourG(0..1)=0.2
Extruder1_NozzleWipeStrokehot smileymm)=15
Extruder0_NozzleWipeDatumY(mm)=12
BoundFactor=3.0
Extruder0_OutlineSpeed(0..1)=0.6
Extruder0_ExtrusionInfillWidth(mm)=0.7
Extruder0_ExtrusionSpeed(0..255)=200
Extruder1_OffsetY(mm)=0
Extruder0_IncrementedStart=false
Extruder0_NozzleWipeFreq=4
Extruder1_NozzleWipeDatumhot smileymm)=20
Extruder1_ExtrusionSize(mm)=0.7
Extruder0_ExtrusionDelayForHatch(ms)=1000
Extruder0_CoolingPeriod(s)=40
ZAxisAddress=4
Debug=false
Extruder1_InfillSpeed(0..1)=1.0
Extruder1_NozzleClearTime(s)=-1
DisplaySimulation=true
Extruder1_Rz(ohms)=29000
Extruder0_hm(C/pwr)=1.7
Extruder0_NozzleClearTime(s)=-1
MovementSpeedZ(0..255)=212
Extruder1_IncrementedStart=false
Extruder0_NozzleWipeDatumhot smileymm)=20
Extruder1_CoolingPeriod(s)=10
Extruder1_MaterialType(name)=PDMS
WorkingZ(mm)=300
Extruder1_Capacitor(F)=0.0000001
Extruder0_Address=8
Extruder0_MaterialType(name)=HDPE
Extruder0_ShortSpeed(0..1)=1
Extruder1_Offsethot smileymm)=0
WorkingLocation=reprap-wv.stl
Extruder0_RandomStart=false
Extruder1_MinimumZClearance(mm)=0
Extruder0_ExtrusionSize(mm)=0.7
Extruder0_t0(0..255)=0
Extruder0_Capacitor(F)=0.0000001
Extruder1_ColourB(0..1)=0.3
Extruder1_InfillOverlap(mm)=0
MouseZoomFactor=50
MouseTranslationFactor=50
Extruder1_ExtrusionDelayForHatch(ms)=1000
WorkingY(mm)=300
BackFactor=2.0
Extruder1_AngleSpeedFactor(0..1)=0.5
NumberOfExtruders=2
Extruder1_ColourR(0..1)=0.3
ZAxisTorque(%)=100
Extruder1_hb(C)=20
Extruder1_ColourG(0..1)=0.6
Extruder0_InfillSpeed(0..1)=1.0
Extruder0_NozzleWipeStrokeY(mm)=15
Extruder1_ShortSpeed(0..1)=1
Extruder0_Reverse(ms)=0
MachineColourB(0..1)=0.3
Extruder0_OffsetZ(mm)=0
Extruder0_Beta(K)=4066
Extruder0_MaxSpeed(0..255)=230
Extruder1_AngleSpeedLength(mm)=2.5
WorkingOffsetZ(mm)=-2
BaudRate=19200
FrontFactor=0.001
RememberWindowPosition=false
YAxisTorque(%)=100
Extruder0_InfillOverlap(mm)=0
Extruder1_t0(0..255)=0
Extruder1_ExtrusionHeight(mm)=0.8
Extruder1_ShortLength(mm)=1.5
UnselectedColourB(0..1)=0.3
ZAxisScale(steps/mm)=320
Extruder1_hm(C/pwr)=1.7
MachineColourG(0..1)=0.4
Extruder1_MaxSpeed(0..255)=230
Workinghot smileymm)=300
YAxisScale(steps/mm)=11.4855
Extruder0_AngleSpeedLength(mm)=2.5
XAxisAddress=2
IdleZAxis=true
XAxisScale(steps/mm)=11.4855
Extruder0_Rz(ohms)=333960
Extruder0_NozzleWipeStrokehot smileymm)=15
Extruder0_ExtrusionDelayForBorder(ms)=1000
Extruder1_ExtrusionInfillWidth(mm)=0.7
Extruder0_OffsetY(mm)=0
UnselectedColourR(0..1)=0.3
Extruder0_hb(C)=20
Extruder1_NozzleWipeEnabled=false
UnselectedColourG(0..1)=0.3
Extruder1_ExtrusionOverRun(mm)=2
MachineColourR(0..1)=0.3
Extruder1_NozzleWaitTime(s)=10
Geometry=nullcartesian
WorkingOffsetY(mm)=-24.85
Extruder0_AngleSpeedFactor(0..1)=0.5
Extruder1_Address=9
XAxisTorque(%)=100
Extruder0_ColourB(0..1)=0.6
AxisCount=3
Extruder0_ShortLength(mm)=1.5
Extruder1_ExtrusionSpeed(0..255)=200
Port(name)=/dev/ttyUSB0
BackColourB(0..1)=0.9
Extruder1_RandomStart=false
Extruder0_ExtrusionOverRun(mm)=2
Extruder0_MinimumZClearance(mm)=0
Extruder0_ExtrusionTemp(C)=110
FastSpeed(0..255)=200
Extruder1_NozzleWipeStrokeY(mm)=15
Extruder0_ExtrusionHeight(mm)=0.8
Extruder1_ExtrusionDelayForBorder(ms)=1000
Extruder0_ColourG(0..1)=0.3
Extruder0_Offsethot smileymm)=0
Subtractive=false
YAxisAddress=3
Extruder0_NozzleWipeEnabled=false
Extruder1_XYSpeed(0..255)=230
Extruder1_OffsetZ(mm)=0
BackColourR(0..1)=0.9
Extruder0_NozzleWaitTime(s)=10
WorkingOffsethot smileymm)=-17.3
SelectedColourB(0..1)=0.2
BackColourG(0..1)=0.9
Extruder1_NozzleWipeFreq=4
Extruder1_NozzleWipeDatumY(mm)=12
Extruder1_ExtrusionTemp(C)=-273
LOL! I guess Z creates an exploding ball. LOL

Z( Z( Z(
I guess not...
Andromodon Wrote:
-------------------------------------------------------
> LOL! I guess Z creates an exploding ball. LOL
>
> Z( Z( Z(


Nope, wrong axis. It's X that does it:

hot smiley hot smiley hot smiley
smiling smiley Thanks. smiling smiley

Lest anyone think otherwise, the question and problem in the first message still stands. smiling smiley

Any thoughts? smiling smiley
It would really help if someone with a working RepRap that uses a thermistor could post the values of R1 and R2 that are actually on their board, together with their ~/.reprap/reprap.properties file and their .../reprap-arduino-firmware-1.3/library/ThermoplastExtruder/ThermistorTable.h file.

Comparing working versions of those files with my own might let me know if it is a configuration problem or something more illusive.

Thanks in advance for your help!
emt
Re: reprap-host's Extruder excerciser gives wrong temperature but testing code worked
June 16, 2008 07:45AM
Hi

Did you change the properties file as per the instructions?

Extruder0_Beta(K) 550.0
Extruder0_Capacitor(F) 0.000003
Extruder0_Rz(ohms) 4837

That is what I have and I get reasonable results. No good putting up my Thermistor table because it is different to yours.

I had a little trouble setting mine up. In the end I fitted 2 thermistors one of which I use to check temperature by measuring resistance. I found a table on the thermistor manufacturers site that gave resistance/temp data. It was pretty coarse but you could interpolate readings to get a pretty good idea of temperature.

Nophead helped a great deal with info here:-

[hydraraptor.blogspot.com]


Regards

Ian
Wow.. I feel stupid... smiling smiley That was the problem. Now, cool iced water gives 5C (probably wasn't in thermal equilibrium yet) and boiling water gives 96C. Yay. smiling smiley

Why aren't we using the Beta and Rz associated with the actual thermistor? Or, if these parameters are meant to be some sort of constants, why are they visible to the end user? Does this have something to do with the PIC/arduino transition? If so, would it be possible to have a check box that says "Using an Arduino?" and then when it's clicked, those three confusing parameters disappear from the settings box? That would be nice. There have to be others out there beside myself that aren't good at following directions. smiling smiley

Thanks for your help, Ian!
emt
Re: reprap-host's Extruder excerciser gives wrong temperature but testing code worked
June 17, 2008 06:15AM
Hi

These parameters are due to the PIC/Arduino transition. It makes the Arduino emulate the PIC as that was what the host software was actually written for. Over time I guess the host will develop in a different way as the Arduino becomes the focus of hardware development.

Your also right that it would be nice to have a check box but you must remember the software is largely a voluntary effort and things are in a constant state of flux.

I think Zach has put an enormous effort into the Arduino software and documentation for which I for one am extremely grateful.

Many others have also given freely of their time and certainly without the community help I certainly would not be where I am with Reprap (which out of interest is getting close to being able to build my first part)

If you really want to change something the source is always available for DIY hacking and if it is of benefit I am sure the mods would be incorporated into the release code.


Regards

Ian
...a kind of "put your money where your mouth is" suggestion. smiling smiley I understand.
I wish I had found this thread 2 days ago: I had exactly the same problem.

I think the core of the problem is in
/hardware/libraries/ThermoplastExtruder_SNAP_v1/ThermoplastExtruder_SNAP_v1.h:
...
//
// constants for temp/pic temp conversion. from reprap.properties.dist
//
#define BETA 550.0
#define CAPACITOR 0.000003
#define RZ 4837
#define ABSOLUTE_ZERO 273.15
...

but
reprap-host-src-20080523/lib/reprap.properties.dist says otherwise:
...
Extruder1_Beta(K)=3480
Extruder1_Capacitor(F)=0.0000001
...

I think life will be easier for future reprapers if someone with write access to the source code could keep the 2 files again in sync.
Are these two files supposed to be in sync? I'm not sure.

I AM pretty sure that '.../reprap-arduino-firmware-1.3/library/ThermoplastExtruder/ThermistorTable.h' and '~/.reprap/reprap.properties' are not supposed to be kept in sync. smiling smiley The values in ThermistorTable.h are supposed to reflect the actual physical thermistor used, while the values in reprap.properties are supposed to be set to certain values no matter what thermistor you use (if you're using an Arduino based system). It's confusing, and should be addressed.

Does that at all relate to your problem?

I, personally, am not in the software-editing stage right now (I currently have my hands full with work and building the robot itself), so I cannot make the software change. I expect that, as support for the older pic-based-electronics are phased out, this aspect of the properties dialog in reprap_host will be more Arduino friendly. smiling smiley
Andromodon Wrote:
-------------------------------------------------------
> Are these two files supposed to be in sync? I'm
> not sure.
>
> I AM pretty sure that
> '.../reprap-arduino-firmware-1.3/library/Thermopla
> stExtruder/ThermistorTable.h' and
> '~/.reprap/reprap.properties' are not supposed to
> be kept in sync. smiling smiley The values in
> ThermistorTable.h are supposed to reflect the
> actual physical thermistor used, while the values
> in reprap.properties are supposed to be set to
> certain values no matter what thermistor you use
> (if you're using an Arduino based system). It's
> confusing, and should be addressed.


Andy,

Agreed on this: ThermistorTable.h must hold the values for the actual components.
But (if I got it right), the Arduino emulates the PIC by converting the temperture to a clock count to make the host happy.

This is done in routine calculatePicTempForCelsius: It converts a Celsius temperature to an estimated thermistor resistance which is then converted to a clock count. The resistance formula uses the parameters in ThermoplastExtruder_SNAP_v1.h and these must match the ones in the host, since the host will use the inverse formula to get the temperature.
Sorry, only registered users may post in this forum.

Click here to login