MK4duo - calibrazione ntc dell'hotend April 17, 2018 04:51AM |
Registered: 6 years ago Posts: 1,059 |
M305 - Set thermistor and ADC parameters: H[heaters] H = 0-3 Hotend, H = -1 BED, H = -2 CHAMBER, H = -3 COOLER, * A[float] Thermistor resistance at 25°C, B[float] BetaK, C[float] Steinhart-Hart C coefficien, R[float] Pullup resistor value, L[int] ADC low offset correction, O[int] ADC high offset correction, P[int] Sensor Pin
Re: MK4duo - calibrazione ntc dell'hotend April 17, 2018 03:21PM |
Registered: 9 years ago Posts: 6,409 |
Re: MK4duo - calibrazione ntc dell'hotend April 20, 2018 06:12AM |
Registered: 11 years ago Posts: 414 |
--- Prusa i3 Steel (20x20x20) --- Prusa i3 Steel XL (30x30x30)
Motori 200 passi Motori 400 passi
Stepper drive - DRV8825 Stepper drive - DRV8825
RAMPS 1.4 RADDS 1.5
HotEnd IeC HotEnd IeC
FW MK4DUO 4.3.2 FW MK4DUO 4.3.5
Re: MK4duo - calibrazione ntc dell'hotend April 20, 2018 11:22AM |
Registered: 9 years ago Posts: 6,409 |
Re: MK4duo - calibrazione ntc dell'hotend April 21, 2018 08:29AM |
Registered: 11 years ago Posts: 414 |
--- Prusa i3 Steel (20x20x20) --- Prusa i3 Steel XL (30x30x30)
Motori 200 passi Motori 400 passi
Stepper drive - DRV8825 Stepper drive - DRV8825
RAMPS 1.4 RADDS 1.5
HotEnd IeC HotEnd IeC
FW MK4DUO 4.3.2 FW MK4DUO 4.3.5
Re: MK4duo - calibrazione ntc dell'hotend April 21, 2018 01:51PM |
Registered: 6 years ago Posts: 1,059 |
Quote
dc 42
H and L correct for the high and low end of the ADC range, which correspond to low and high temperatures (i.e. the opposite way round). So adjust H to get the room temperature reading right, and L to get high temperature reading right. Theoretically, all thermistor channels should need the same correction. On the later Duet boards with 4.7K series resistors, little or no correction is needed. On the earlier Duet boards with a 1K series resistor, the H correction (for room temperature reading) is often required when using a 100K hot end thermistor.
The B value for that thermistor is quoted for a temperature range of 25 to 85C, which is rather low compared to the range you are likely to be using. You can adjust it to get more accurate readings at higher temperatures. For example, setting B to 4286 will give you the most accurate reading at 100C, and setting B to 4375 will give the most accurate reading at 200C. You may want to consider using these B values for the bed and hot end respectively.
If you do want to adjust the corrections, I recommend you substitute a 100K 1% resistor for the thermistor, then adjust the H parameter to get a reading close to 25C. Then substitute a resistor with a lower value and adjust the L parameter to get the correct high temperature reading. But I you should adjust the B values as I already described before you adjust the L parameter.
Re: MK4duo - calibrazione ntc dell'hotend April 21, 2018 05:20PM |
Registered: 8 years ago Posts: 174 |
Quote
laudix
Ok.
Avendo una differenza tra lettura col multimetro (24,7) e lettura da termistore (22,1) = a 2,6 ho dato il comando M305 L2.6.
Mi aspettavo quindi che cambiasse la lettura del termistore ma nulla è avvenuto.
Sto dimenticando qualcosa?
Un saluto
Re: MK4duo - calibrazione ntc dell'hotend April 22, 2018 07:31AM |
Registered: 11 years ago Posts: 414 |
Send: M305 Recv: Config: M305 H0 Sensor Recv: Config: Pin:0 Recv: Config: Thermistor resistance at 25 C:104200.0 Recv: Config: BetaK value:3950.0 Recv: Config: Steinhart-Hart A coefficien:0.0004289360 Recv: Config: Steinhart-Hart B coefficien:0.0002531646 Recv: Config: Steinhart-Hart C coefficien:0.0000000000 Recv: Config: Pullup resistor value:4700.0 Recv: Config: ADC low offset correction:0 Recv: Config: ADC high offset correction:24 Recv: ok
--- Prusa i3 Steel (20x20x20) --- Prusa i3 Steel XL (30x30x30)
Motori 200 passi Motori 400 passi
Stepper drive - DRV8825 Stepper drive - DRV8825
RAMPS 1.4 RADDS 1.5
HotEnd IeC HotEnd IeC
FW MK4DUO 4.3.2 FW MK4DUO 4.3.5
Re: MK4duo - calibrazione ntc dell'hotend April 22, 2018 05:05PM |
Registered: 9 years ago Posts: 6,409 |
Re: MK4duo - calibrazione ntc dell'hotend April 22, 2018 05:32PM |
Registered: 6 years ago Posts: 1,059 |
Quote
laudix
Ciao Carlo.
Grazie per l'indicazione, ho fatto ulteriori prove, questi i risultati:
- faccio l'assunzione che l'hotend dovrebbe avere la temperatura ambiente dopo ore che è spento
- Temperatura letta dal termistore oscilla tra i 22,0 e 22,1
- temperatura ambiente data dal multimetro 24,6
- Temperatura letta dalla sonda del multimetro attaccata con del nastro all'hotend 25 (ma non ha i decimali, quindi potrebbe essere anche più di un grado rispetto a quella che lo stesso multimetro misura con la sonda interna)
- ho letto la resistenza del termistore con le temperature sopra descritte ed è a 105,9 Khom
- ho fatto scaldare l'hotend di pochi gradi ed ho aspettato che la lettura del termistore scendesse a 22,5 (0,4 gradi superiore alla temperatura a freddo del termistore) che nei miei conti dovrebbero corrispondere ai 25 gradi
- ho letto nuovamente la resistenza del termistore con la temperatura così compensata ed è a 104,2 Khom
Quote
laudix
[*] a questo punto ho dato il comando M305 O2.5
[*] Il comando prende solo interi, quindi non bisogna mettere decimali
[*] lo scostamento c'e' stato ma è stato lievissimo, quindi ho continuato ad aumentare fino a dare M305 O38 che mi da letture sul termistore tra 24,57 e 24,65
[*] a questo punto ho provato a correggere il valore della resistenza con il comando M305 A104200
[*] a questo punto la lettura della temperatura si è spostata a 25,5
[*] ho nuovamente compensato l'ofset Oxx scendendo fino a dare M305 O24 che mi ha riportato la temperatura letta nell'intorno di 24,6
La nuova lettura del comando M305 è quindi la seguente, in evidenza i valori modificati:
Send: M305 Recv: Config: M305 H0 Sensor Recv: Config: Pin:0 Recv: Config: Thermistor resistance at 25 C:104200.0 Recv: Config: BetaK value:3950.0 Recv: Config: Steinhart-Hart A coefficien:0.0004289360 Recv: Config: Steinhart-Hart B coefficien:0.0002531646 Recv: Config: Steinhart-Hart C coefficien:0.0000000000 Recv: Config: Pullup resistor value:4700.0 Recv: Config: ADC low offset correction:0 Recv: Config: ADC high offset correction:24 Recv: ok
Questo pomeriggio tra un passaggio e l'altro della "liegi bastogne liegi" provo a portare la temperatura a 200 gradi per vedere che differenza c'e' con quella letta dalla sonda messa sul nozzle
Un saluto
Recv: Config: Steinhart-Hart C coefficien:0.0000000000
Quote
http://www.giangrandi.ch/electronics/ntc/ntc.shtml
Now, manually adjusting the values of R25 and β in your algorithm is not easy, because both influence the temperature you're currently reading. So, tweaking these values by hand hoping to correct the accuracy is difficult and time consuming as it requires repeated measurements at different temperatures. What I usually do is choosing two points (two temperatures) that are close to the edges of the temperature range I want to measure and I accurately measure the resistance of the NTC. They don't need to be the absolute limits of the range, but as far apart as possible. Then, I use the procedure for determining these parameters described before and I use the results as parameters. If I'm not happy with the accuracy I have, I simply do the two measurements again, as measuring temperatures precisely is harder that it seems.
Re: MK4duo - calibrazione ntc dell'hotend April 22, 2018 05:55PM |
Registered: 8 years ago Posts: 299 |
Quote
onekk
con un termometro a termocoppia ci vado già vicino e aggiusto solo in un range ristretto di poche decine di gradi.
3) devo fare confronti tra vari materiale o risolvere problemi di stampa e devo provare diversi modelli di hotend.
Saluti
Carlo D.
Re: MK4duo - calibrazione ntc dell'hotend April 22, 2018 06:39PM |
Registered: 6 years ago Posts: 1,059 |
Re: MK4duo - calibrazione ntc dell'hotend April 23, 2018 04:58AM |
Registered: 8 years ago Posts: 174 |
Ciao Alberto,Quote
MagoKimbra
......
.....
Ora arriviamo agli offsert.. E qui comincia tutto il discorso che avete fatto... Ma tutte queste misure le avete mai fatte quando c'erano le tabelle??? Io penso di no perché se l'avesse fatte avreste visto come toppavano di diversi gradi.
L[int] vuol dire intero quindi è normale che non prende la virgola, ed è un offset a basse temperature quindi quando è a 20 30 gradi se vi segnala 24, ma in effetti sono 25 se misurati con sonde certe, si regola L per far si che legga 25, ma serve???
O[int] high offset quindi offset ad alte temperature se quando sta a 200 e in effetti sono 201 si regola in modo che legga 201...
....
...
Re: MK4duo - calibrazione ntc dell'hotend April 23, 2018 08:31AM |
Registered: 11 years ago Posts: 414 |
Quote
MagoKimbra
Mi dite dov'è la difficoltà??
--- Prusa i3 Steel (20x20x20) --- Prusa i3 Steel XL (30x30x30)
Motori 200 passi Motori 400 passi
Stepper drive - DRV8825 Stepper drive - DRV8825
RAMPS 1.4 RADDS 1.5
HotEnd IeC HotEnd IeC
FW MK4DUO 4.3.2 FW MK4DUO 4.3.5
Re: MK4duo - calibrazione ntc dell'hotend April 23, 2018 10:32AM |
Registered: 9 years ago Posts: 6,409 |
Re: MK4duo - calibrazione ntc dell'hotend April 23, 2018 10:59AM |
Registered: 11 years ago Posts: 414 |
Quote
MagoKimbra
Se hai quello di immagina e crea allora devi settare NTC3950 quello è perfetto è quello che uso io, e sbaglia di 1 grado 2 ....
--- Prusa i3 Steel (20x20x20) --- Prusa i3 Steel XL (30x30x30)
Motori 200 passi Motori 400 passi
Stepper drive - DRV8825 Stepper drive - DRV8825
RAMPS 1.4 RADDS 1.5
HotEnd IeC HotEnd IeC
FW MK4DUO 4.3.2 FW MK4DUO 4.3.5
Re: MK4duo - calibrazione ntc dell'hotend April 23, 2018 12:45PM |
Registered: 9 years ago Posts: 6,409 |
Re: MK4duo - calibrazione ntc dell'hotend April 24, 2018 11:42AM |
Registered: 6 years ago Posts: 1,059 |
if (WITHIN(s_type, 1, 9)) { const int32_t averagedVssaReading = 2 * adcLowOffset, averagedVrefReading = AD_RANGE + 2 * adcHighOffset; // Calculate the resistance const float denom = (float)(averagedVrefReading - adcReading) - 0.5; if (denom <= 0.0) return ABS_ZERO; const float resistance = pullupR * ((float)(adcReading - averagedVssaReading) + 0.5) / denom; const float logResistance = LOG(resistance); const float recipT = shA + shB * logResistance + shC * logResistance * logResistance * logResistance; /* SERIAL_MV("Debug denom:", denom, 5); SERIAL_MV(" resistance:", resistance, 5); SERIAL_MV(" logResistance:", logResistance, 5); SERIAL_MV(" shA:", shA, 5); SERIAL_MV(" shB:", shB, 5); SERIAL_MV(" shC:", shC, 5); SERIAL_MV(" recipT:", recipT, 5); SERIAL_EOL(); */ return (recipT > 0.0) ? (1.0 / recipT) + (ABS_ZERO) : 2000.0; } void TemperatureSensor::CalcDerivedParameters() { shB = 1.0 / beta; const float lnR25 = LOG(r25); shA = 1.0 / (25.0 - ABS_ZERO) - shB * lnR25 - shC * lnR25 * lnR25 * lnR25;
shC * lnR25 * lnR25 * lnR25
const float recipT = shA + shB * logResistance + shC * logResistance * logResistance * logResistance;
shA = 1.0 / (25.0 - ABS_ZERO) - shB * lnR25
Re: MK4duo - calibrazione ntc dell'hotend April 25, 2018 07:19AM |
Registered: 6 years ago Posts: 1,059 |
Temp Reale | Temp Hotend |
---|---|
169 | 180 |
177 | 200 |
194 | 220 |
208 | 240 |
222 | 260 |
Media | Media |
194 | 220 |
M303 - PID relay autotune: H[heaters] H = 0-3 Hotend, H = -1 BED, H = -2 CHAMBER, H = -3 COOLER, * S sets the target temperature (default target temperature = 150C), C, U, * R 0 = Classic Pid, 1 = Some overshoot, 2 = No Overshoot, 3 = Pessen Pid
Re: MK4duo - calibrazione ntc dell'hotend May 07, 2018 03:48AM |
Registered: 8 years ago Posts: 133 |
Quote
onekk
Ho inserito questo valore nel beta di H0 con M305 H0 B4479
Ho dato il comando per fare il "PID Autotune"
Ho ripetuto lo stesso lavoro un paio di volte, avvicinandomi sempre di più ad un valore "preciso".
Re: MK4duo - calibrazione ntc dell'hotend May 12, 2018 03:00PM |
Registered: 6 years ago Posts: 1,059 |