Prusa-Firmware/Firmware
Yuri D'Elia cc96a47e7f Implement temperature model autotuning
Calibrate C/R values via univariate minimization using golden section.
This is done in several passes:

- Bootstrap C by setting an initial high R value
- Calibrate R at the requested working temperature
- Cooldown
- Refine C to the final value
- Estimate R losses for a subset of fan speeds
- Interpolate remaining values to speed-up the process

This results in robust values which are tailored to the current
filtering constants, and avoid having to sample for an extended
time to reach the required resolution.

The refining pass could avoid cooldown if the recording buffer was at
least twice as large, so that we could record both the heating and the
steady-state, saving _considerable_ time.
2022-07-25 17:30:22 +02:00
..
variants Implement temperature model autotuning 2022-07-25 17:30:22 +02:00
adc.cpp Decouple temperature ISR from ADC readings 2022-07-25 17:30:21 +02:00
adc.h Decouple temperature ISR from ADC readings 2022-07-25 17:30:21 +02:00
asm.h Simplify GETPC() 2022-02-02 21:06:58 +01:00
AutoDeplete.cpp Comment. 2019-01-04 19:56:15 +01:00
AutoDeplete.h Add filament auto deplete engine for multi-material prints with MMUv2. 2019-01-03 22:58:25 +01:00
backlight.cpp Add newline at the end of file 2020-09-15 14:56:41 +02:00
backlight.h General fixes and improvements to code 2019-10-31 19:07:20 +02:00
BlinkM.cpp
BlinkM.h
boards.h
bootapp.c Remove unused/broken bootapp code 2021-03-03 16:31:30 +02:00
bootapp.h Fix usage of RAMEND 2021-06-12 13:16:12 +02:00
cardreader.cpp When over the SD limit, continue from the last sorted file 2022-07-15 15:46:01 +03:00
cardreader.h When over the SD limit, continue from the last sorted file 2022-07-15 15:46:01 +03:00
cmdqueue.cpp Merge remote-tracking branch 'upstream/MK3_3.11.1' into mk311_sync 2022-07-04 16:14:23 +02:00
cmdqueue.h Add a uart RX timeout 2022-02-11 12:49:11 +01:00
config.h Rename ADC callback 2022-07-25 17:30:22 +02:00
Configuration_adv.h Disable sorting speedtest 2022-07-04 18:06:54 +02:00
Configuration.cpp some improvements 2019-07-10 16:29:40 +02:00
Configuration.h Merge remote-tracking branch 'upstream/MK3_3.11.1' into mk311_sync 2022-07-04 16:14:23 +02:00
ConfigurationStore.cpp Allow to save/restore temperature model settings 2022-07-25 17:30:22 +02:00
ConfigurationStore.h Fix and simplify M214 data types and default config initialization. 2022-04-28 14:36:51 +02:00
conv2str.cpp
conv2str.h
Dcodes.cpp Decouple temperature ISR from ADC readings 2022-07-25 17:30:21 +02:00
Dcodes.h Improve/fix D23 for M2.5/S printers 2021-06-25 08:46:55 +02:00
doxyfile Updated doxygen docs to work better with confluence. 2019-07-19 13:51:55 +02:00
eeprom.cpp remove firstrun 2022-02-04 13:27:43 +01:00
eeprom.h Allow to save/restore temperature model settings 2022-07-25 17:30:22 +02:00
fancheck.cpp Rename check_fans>readFanTach manageFans>checkFans 2022-07-25 17:30:21 +02:00
fancheck.h Rename check_fans>readFanTach manageFans>checkFans 2022-07-25 17:30:21 +02:00
fastio.h Change arduino IO to fastio where possible 2022-01-30 11:22:43 +00:00
Firmware.ino
first_lay_cal.cpp Gracefully dump the queue + fixes to fancheck 2020-11-09 21:49:56 +02:00
first_lay_cal.h Rename lay1cal_preheat() to lay1cal_wait_preheat(). 2019-09-12 00:19:20 +02:00
fsensor.cpp Disable IR_SENSOR due to the injected ADC read for now 2022-07-25 17:30:21 +02:00
fsensor.h MK3s IR sensor improvement (#2698) 2020-06-03 16:14:56 +02:00
heatbed_pwm.cpp Remove unnecessary assignment 2021-06-21 06:47:59 +02:00
la10compat.cpp Re-adjust LA10->15 conversion 2020-09-07 21:44:34 +02:00
la10compat.h Adjust E-jerk in LA10 compatibility mode 2020-02-03 15:42:27 +01:00
language.c Merge remote-tracking branch 'upstream/MK3_3.11.1' into mk311_sync 2022-07-04 16:14:23 +02:00
language.h _O() macro 2022-07-01 16:01:51 +02:00
lcd.cpp Fix fullscreen message lcd_update handling 2022-07-15 15:45:34 +03:00
lcd.h Fix indentation 2022-02-06 11:01:35 +01:00
le.sh make all shell scripts executable 2018-12-10 07:09:03 -07:00
macros.h More macros 2020-09-11 18:48:44 +03:00
Marlin_main.cpp Implement temperature model autotuning 2022-07-25 17:30:22 +02:00
Marlin.h Implement temperature model autotuning 2022-07-25 17:30:22 +02:00
MarlinSerial.cpp Remove ancient SNMM code in the MK3 branch 2022-02-15 15:58:33 +01:00
MarlinSerial.h Fix typo from long ago 2022-02-04 16:28:49 +01:00
menu.cpp Merge branch 'MK3' into MK3_3.12_Optimizations 2022-02-10 10:36:31 +01:00
menu.h Cardreader progressbar code 2021-02-25 20:25:32 +02:00
mesh_bed_calibration.cpp Add static assert 2022-02-10 09:47:37 +01:00
mesh_bed_calibration.h Optimise if-statments in world2machine_clamp 2022-02-01 18:37:41 +00:00
mesh_bed_leveling.cpp Use memset instead of nested for-loop to zero a 2d array 2021-08-02 19:20:51 +00:00
mesh_bed_leveling.h Remove undefined function 2022-01-30 11:39:29 +00:00
messages.cpp Merge remote-tracking branch 'upstream/MK3_3.11.1' into mk311_sync 2022-07-04 16:14:23 +02:00
messages.h Merge remote-tracking branch 'upstream/MK3_3.11.1' into mk311_sync 2022-07-04 16:14:23 +02:00
mmu.cpp Split fan checks out of temperature.cpp 2022-07-18 17:53:27 +02:00
mmu.h Merge pull request #3413 from leptun/MK3_fix_timer_polling 2022-02-17 09:00:13 +01:00
motion_control.cpp Abort arc on planner hard stop 2022-04-29 20:38:48 +02:00
motion_control.h Fix and simplify M214 data types and default config initialization. 2022-04-28 14:36:51 +02:00
optiboot_xflash.cpp Merge remote-tracking branch 'upstream/MK3_3.11.1' into mk311_sync 2022-07-04 16:14:23 +02:00
optiboot_xflash.h Rename w25x20cl to xflash 2021-04-06 10:16:47 +02:00
pat9125.cpp TWI timeout 2022-02-17 00:05:09 +01:00
pat9125.h TWI timeout 2022-02-17 00:05:09 +01:00
pins_Einsy_1_0.h Allow SN get only on the Einsy 2022-02-11 13:11:13 +01:00
pins_Rambo_1_0.h Remove ancient SNMM code in the MK3 branch 2022-02-15 15:58:33 +01:00
pins_Rambo_1_3.h Remove ancient SNMM code in the MK3 branch 2022-02-15 15:58:33 +01:00
pins.h Move SDA/SCL pins into pins.h for fastio compatibility 2021-01-29 17:48:59 +01:00
planner.cpp Split fan checks out of temperature.cpp 2022-07-18 17:53:27 +02:00
planner.h Replace EXTRUDE_MINTEMP with the configurable extrude_min_temp 2022-05-11 20:07:38 +02:00
printers.h Remove commented out defines. 2019-07-10 17:40:33 +02:00
qr_solve.cpp
qr_solve.h
rbuf.c
rbuf.h
Sd2Card.cpp Change arduino IO to fastio where possible 2022-01-30 11:22:43 +00:00
Sd2Card.h Change return types of two functions uint8_t 2022-01-30 11:39:24 +00:00
SdBaseFile.cpp Return SdBaseFile into previous state 2021-01-28 09:41:30 +01:00
SdBaseFile.h Remove temporary changes from SdBaseFile.h 2021-01-28 09:42:50 +01:00
SdFatConfig.h
SdFatStructs.h
SdFatUtil.cpp Introduce STACK_GUARD_MARGIN in all variants 2021-06-12 12:08:53 +02:00
SdFatUtil.h Introduce STACK_GUARD_MARGIN in all variants 2021-06-12 12:08:53 +02:00
SdFile.cpp SDFile - fix errorneous offset computation 2021-03-30 11:33:42 +02:00
SdFile.h Remove commented debug code 2021-02-10 11:18:59 +01:00
SdInfo.h
SdVolume.cpp
SdVolume.h Extract gcode filter from SdBaseFile into SdFile + optimization 2021-01-27 09:33:28 +01:00
Servo.cpp change boolean to bool 2021-07-20 08:03:17 +02:00
Servo.h
sm4.c Merge pull request #1263 from metacollin/calfix 2022-02-15 09:26:42 +01:00
sm4.h Fix sm4.h line ending 2021-01-22 18:57:24 +02:00
sound.cpp Fix misleading indentation warnings by expanding tabs 2021-06-21 06:52:52 +02:00
sound.h Merge remote-tracking branch 'upstream/MK3' into rebase-testing-ground-v2 2022-01-30 11:43:16 +00:00
speed_lookuptable.cpp Move speed lookup defs into a separate source 2019-05-24 17:08:32 +02:00
speed_lookuptable.h Fix MUL24x24R24 comment 2022-02-09 00:26:46 +01:00
spi.c
spi.h
static_assert.h static_assert - portable solution compatible with C++98 2018-09-27 19:59:29 +02:00
stepper.cpp Remove ADC pullup checks 2022-07-25 17:30:21 +02:00
stepper.h Pack endstop flags 2022-02-04 15:24:43 +01:00
stk500.h
swi2c.c Merge remote-tracking branch 'upstream/MK3' into MK3_PAT9125_I2C 2021-01-29 18:28:55 +01:00
swi2c.h
swspi.cpp
swspi.h
system_timer.h Move millis_nc to system_timer.h 2022-07-18 17:53:27 +02:00
temp_model.h Implement temperature model autotuning 2022-07-25 17:30:22 +02:00
temperature.cpp Implement temperature model autotuning 2022-07-25 17:30:22 +02:00
temperature.h Implement temperature model autotuning 2022-07-25 17:30:22 +02:00
thermistortables.h Implement MIN/MAX AMBIENT safety checks 2020-08-01 17:38:10 +02:00
timer02.c split timer0 and timer2 initialization. Move timer2 init early 2021-01-31 17:18:32 +02:00
timer02.h split timer0 and timer2 initialization. Move timer2 init early 2021-01-31 17:18:32 +02:00
Timer.cpp Implement timer elapsed function 2022-07-04 18:05:49 +02:00
Timer.h Implement timer elapsed function 2022-07-04 18:05:49 +02:00
TimerRemaining.h Fix Timer_test broken by conditional translation for SYSTEM_TIMER_2. 2019-01-28 19:29:31 +01:00
tmc2130.cpp Merge remote-tracking branch 'upstream/MK3_3.11.1' into mk311_sync 2022-07-04 16:14:23 +02:00
tmc2130.h Scale extruder motor current linearly with speed. (#2813) 2021-04-23 16:06:28 +02:00
tone04.c Merge remote-tracking branch 'upstream/MK3' into MK3_PAT9125_I2C 2021-01-29 18:28:55 +01:00
tone04.h ALTFAN implementation (#2692) 2020-06-01 17:58:15 +02:00
twi.cpp Make twi timer local to the wait function 2022-02-17 09:22:18 +01:00
twi.h TWI timeout 2022-02-17 00:05:09 +01:00
uart2.c Change printf_P without format arguments and NL to puts_P only 2021-01-22 18:56:05 +02:00
uart2.h
ultralcd.cpp Protect pid_tuning_finished behind temperature.cpp 2022-07-25 17:30:22 +02:00
ultralcd.h Merge remote-tracking branch 'upstream/MK3_3.11.1' into mk311_sync 2022-07-04 16:14:23 +02:00
uni_avr_rpi.h
util.cpp Simplify printer_smodel_check 2022-05-22 17:57:47 +00:00
util.h M552 - Printer IP address 2021-02-02 13:21:16 +02:00
vector_3.cpp
vector_3.h
xflash_dump.cpp Simplify GETPC() 2022-02-02 21:06:58 +01:00
xflash_dump.h Crash if pullups get enabled on the thermistor inputs 2022-02-01 12:34:07 +01:00
xflash_layout.h Make layout static regardless of what is enabled 2022-02-17 09:34:09 +01:00
xflash.c xflash: add xflash_multipage_program and documentation 2021-06-08 15:25:16 +02:00
xflash.h xflash: add xflash_multipage_program and documentation 2021-06-08 15:25:16 +02:00
xyzcal.cpp Rename temperature_isr to soft_pwm_isr 2022-07-25 17:30:21 +02:00
xyzcal.h Calibration: detect biased PINDA and retry calibration 2021-03-12 05:04:49 +01:00