Prusa-Firmware/Firmware
Yuri D'Elia 02a36c498c Release excess pressure within cruising blocks
LA assumes all the nozzle pressure is released at the end of each
extrusion, which makes calculating the required pressure advance during
travels and retracts not normally necessary.

This is not always true in our planner, since the E axis is explicitly
ignored when not in use, but also due to E-jerk allowing a non-linear
jump in speed. And since the compression factor is currently tied by XYZ
axes and not independently calculated, this can result in a wrong
estimation of final pressure in several conditions.

To avoid overburdening the planner, change the underlying assumptions
about backpressure:

1) Pressure is no longer lost when LA is disabled: if a retract is
followed by an unretract of the same length, the pressure will be likely
maintained entirely. This also holds true during travels, as long as the
retract length can overcome all the backpressure (which is the case in
all but the most noodly materials)

2) Pressure is released as soon as possible during travels: we now
enable LA also during travels, but under the sole condition of undoing
excess pressure.

We do that by checking for backpressure at the start of any segment
without an acceleration phase that doesn't have any E-steps (a result
which can happen due to the above). If pressure is not nominal, we run
the extruder in reverse at maximum jerk as long as the segment allows
us, since proper acceleration would be prohibitive at this stage. As the
pressure difference resulting by the above is still _very_ low, any wipe
or short travel will be able to equalize the nozzle pressure *before*
extrusion is resumed, avoiding ooze.
2020-04-09 00:46:57 +02:00
..
variants Merge pull request #2470 from leptun/MK3_Adjusted_mintemp 2020-02-07 08:54:50 +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
BlinkM.cpp
BlinkM.h
Configuration.cpp some improvements 2019-07-10 16:29:40 +02:00
Configuration.h Version changed (3.9.0-RC1 build 3272) 2020-02-17 16:47:56 +01:00
ConfigurationStore.cpp Fixup prefix echomagic for the LA config report 2019-05-24 17:08:32 +02:00
ConfigurationStore.h Adding the microstepping resolution for all axis to the eprom config which is persisted during M500 for Mk3 and Mk3S 2019-03-19 21:39:59 +00:00
Configuration_adv.h Decouple XYZ relative from E relative. 2020-03-05 11:22:35 +02:00
Dcodes.cpp Merge pull request #2568 from 3d-gussner/MK3_Dcodes_move 2020-04-03 11:12:30 +02:00
Dcodes.h Move few D-codes command from Marlin_main to Dcodes 2020-03-30 16:53:58 +02:00
Firmware.ino LCD menu optimalization - LiquidCrystal_Prusa removed 2018-07-16 23:23:15 +02:00
Marlin.h ♻️Code optimization 2020-04-02 14:44:44 +03:00
MarlinSerial.cpp Optimized LiquidCrystal class 2018-06-08 14:35:47 +02:00
MarlinSerial.h More than 7.5KB saved by slight refactoring of printing to serial line 2019-07-12 10:10:56 +02:00
Marlin_main.cpp Remove empty line 2020-04-09 00:46:57 +02:00
Sd2Card.cpp reinitialize the timestamp to ensure enough time to receive response for 0xFF sent. 2019-08-11 17:57:41 -04:00
Sd2Card.h Fix for Toshiba FlashAir (or other) SD card initialization - add clock cycles between sending CMD0 and CMD8. Redone for MK3 branch) 2019-08-08 15:45:59 -04:00
Sd2PinMap.h
SdBaseFile.cpp Support for more special characters allowed in file names (^ + = [ ] ; 2019-08-27 13:47:58 +02:00
SdBaseFile.h
SdFatConfig.h
SdFatStructs.h
SdFatUtil.cpp Fix compiler warning: sketch/SdFatUtil.cpp:49:7: warning: unused variable 'i' [-Wunused-variable] 2018-07-25 15:19:10 +02:00
SdFatUtil.h
SdFile.cpp
SdFile.h Optimized LiquidCrystal class 2018-06-08 14:35:47 +02:00
SdInfo.h
SdVolume.cpp
SdVolume.h
Servo.cpp
Servo.h
Timer.cpp Fix Timer_test broken by conditional translation for SYSTEM_TIMER_2. 2019-01-28 19:29:31 +01:00
Timer.h Store timer period in TimerRemaining. 2018-06-11 23:41:36 +02:00
TimerRemaining.h Fix Timer_test broken by conditional translation for SYSTEM_TIMER_2. 2019-01-28 19:29:31 +01:00
adc.c IR sensor gen. II 2019-09-16 00:43:37 +02:00
adc.h Fix ADC index overflow 2018-07-17 17:55:04 +02:00
backlight.cpp General fixes and improvements to code 2019-10-31 19:07:20 +02:00
backlight.h General fixes and improvements to code 2019-10-31 19:07:20 +02:00
boards.h MK3 configuration files, renamed EINY to EINSY 2018-02-01 17:10:41 +01:00
bootapp.c New lang, arduino 1.8.5 - boot_app debug output 2018-10-18 16:20:14 +02:00
bootapp.h New lang, arduino 1.8.5 - boot_app debug output 2018-10-18 16:20:14 +02:00
cardreader.cpp Use combined creation/modification file time stamps for sorting 2020-02-14 09:09:15 +01:00
cardreader.h Use combined creation/modification file time stamps for sorting 2020-02-14 09:09:15 +01:00
cmdqueue.cpp Fix kill messages 2019-11-29 22:49:22 +02:00
cmdqueue.h Fix repeated power panic restarted print from beginning or jumped at most 65536 B back in file printed from SD card. 2019-08-23 19:30:20 +02:00
config.h Merge pull request #2520 from MRprusa3d/PFW-x001bPR 2020-03-26 17:36:18 +01:00
conv2str.cpp LCD menu optimalization - conversion functions - source separation 2018-07-16 17:23:35 +02:00
conv2str.h LCD menu optimalization - conversion functions - source separation 2018-07-16 17:23:35 +02:00
doxyfile Updated doxygen docs to work better with confluence. 2019-07-19 13:51:55 +02:00
eeprom.cpp EEPROM_BABYSTEP_Z using removal 2019-10-01 16:57:37 +02:00
eeprom.h Version to 1.0.1 2020-03-30 16:24:20 +02:00
fastio.h
first_lay_cal.cpp Rename lay1cal_preheat() to lay1cal_wait_preheat(). 2019-09-12 00:19:20 +02:00
first_lay_cal.h Rename lay1cal_preheat() to lay1cal_wait_preheat(). 2019-09-12 00:19:20 +02:00
fsensor.cpp Code cleanup 2020-03-30 16:50:50 +03:00
fsensor.h Code cleanup 2020-03-30 16:50:50 +03:00
heatbed_pwm.cpp 🎨Change CRLF line ending to LF 2020-04-02 19:32:13 +03:00
io_atmega2560.h "disable_z()" for Delta PSU II 2019-03-25 23:28:25 +01:00
la10compat.cpp Adjust E-jerk in LA10 compatibility mode 2020-02-03 15:42:27 +01:00
la10compat.h Adjust E-jerk in LA10 compatibility mode 2020-02-03 15:42:27 +01:00
language.c Fix language related warnings in LANG_MODE 0 2019-07-29 15:55:42 +03:00
language.h Hard reset and readded change 2020-01-31 14:47:44 +01:00
lcd.cpp fix the knob long-press causing hang in modal dialogs 2019-10-01 17:13:36 +02:00
lcd.h Merge branch 'MK3' into MK3_Translations 2019-09-12 16:28:36 +03:00
le.sh make all shell scripts executable 2018-12-10 07:09:03 -07:00
menu.cpp Merge remote-tracking branch 'upstream/MK3' into MK3_LA15 2019-12-04 17:27:23 +01:00
menu.h Fix Live K, allow "Advance K" to be translated 2019-12-05 15:18:24 +01:00
mesh_bed_calibration.cpp Revert "Mesh bed leveling testing" 2020-01-29 23:07:53 +02:00
mesh_bed_calibration.h Mesh by 3d-gussner, fixed difference between mbl points coordinates and coordinates used in planner for corrections, mbl settings menu update 2019-03-14 01:52:44 +01:00
mesh_bed_leveling.cpp 7x7 points mesh bed leveling 2019-02-14 10:57:58 +02:00
mesh_bed_leveling.h
messages.c Fix build with LA_LIVE_K 2020-02-02 18:02:37 +01:00
messages.h Display "POWER PANIC DETECTED" when possible 2020-01-29 21:08:56 +01:00
mmu.cpp Merge pull request #2526 from leptun/MK3_decouple_XYZE_relative_mode 2020-03-26 18:58:20 +01:00
mmu.h Show FINDA state as N/A if last received response is older than 1s. 2019-10-31 17:45:22 +01:00
motion_control.cpp
motion_control.h
optiboot_w25x20cl.cpp Fix optiboot erase function after address 0xFFFF 2019-12-08 08:43:43 +02:00
optiboot_w25x20cl.h Added support for a secondary boot loader, based on the OptiBoot project, 2018-06-14 15:13:21 +02:00
pat9125.c Return correct status from pat9125_update_bs 2020-02-06 16:39:08 +01:00
pat9125.h FS: Improve reliability on speeds with poor optical tracking 2020-02-06 15:27:22 +01:00
pins.h Fix compiler warnings macro redefined. 2019-03-05 15:56:20 +01:00
pins_Einsy_1_0.h Merge branch 'MK3' into MK3-PFW-1024 2019-11-29 13:07:45 +02:00
pins_Rambo_1_0.h MK2.5 IR_SENSOR_PIN modified 2019-02-11 14:32:21 +01:00
pins_Rambo_1_3.h debug gcodes (fans, bed analysis) moved to Dcodes, HOST_KEEPALIVE_FEATURE simplified 2019-03-06 19:56:48 +01:00
planner.cpp Release excess pressure within cruising blocks 2020-04-09 00:46:57 +02:00
planner.h Merge branch 'MK3' into MK3_fix_selftest_Z_crash2 2020-01-22 14:56:54 +02:00
printers.h Remove commented out defines. 2019-07-10 17:40:33 +02:00
qr_solve.cpp
qr_solve.h
rbuf.c T-codes for MMU_V2: initial version 2018-07-09 13:57:36 +02:00
rbuf.h T-codes for MMU_V2: initial version 2018-07-09 13:57:36 +02:00
sm4.c Merge remote-tracking branch 'prusa3d/MK3_dev' into simplify_EEPROM_M500 2018-10-08 15:58:49 +02:00
sm4.h New XYZ calibration with image processing 2018-03-13 12:55:35 +01:00
sound.cpp General fixes and improvements to code 2019-10-31 19:07:20 +02:00
sound.h Toggle Sound 2019-08-31 16:56:14 +03:00
speed_lookuptable.cpp Move speed lookup defs into a separate source 2019-05-24 17:08:32 +02:00
speed_lookuptable.h Move calc_timer into speed_lookup_table for planner reuse 2019-05-24 17:08:32 +02:00
spi.c New SPI (do not use Arduino SPI class) 2018-03-29 17:42:41 +02:00
spi.h New ML support - W25X20CL external spi flash support 2018-06-08 00:20:28 +02:00
static_assert.h static_assert - portable solution compatible with C++98 2018-09-27 19:59:29 +02:00
stepper.cpp Release excess pressure within cruising blocks 2020-04-09 00:46:57 +02:00
stepper.h Correctly reset the PAT9125 filament counters 2020-02-05 16:21:27 +01:00
stk500.h Added support for a secondary boot loader, based on the OptiBoot project, 2018-06-14 15:13:21 +02:00
swi2c.c Fix compiler warning arduino-1.6.9/hardware/tools/avr/avr/include/avr/delay.h:36:2: warning: #warning "This file has been moved to <util/delay.h>." [-Wcpp] 2018-07-23 13:47:15 +02:00
swi2c.h SWI2C for PAT9125 simplified/optimized 2018-07-12 17:55:38 +02:00
swspi.cpp
swspi.h
system_timer.h Re-enable Tone 2019-07-30 16:05:40 +03:00
temperature.cpp Merge pull request #2520 from MRprusa3d/PFW-x001bPR 2020-03-26 17:36:18 +01:00
temperature.h Merge pull request #2520 from MRprusa3d/PFW-x001bPR 2020-03-26 17:36:18 +01:00
thermistortables.h New ML support - menu tunning, startup 2018-06-10 16:04:32 +02:00
timer02.c Merge branch 'MK3' into MK3_TONE 2019-11-29 23:16:46 +02:00
timer02.h Re-enable Tone 2019-07-30 16:05:40 +03:00
tmc2130.cpp ♻️Code optimization 2020-04-02 14:44:44 +03:00
tmc2130.h Fix compiler warnings 2019-07-16 17:31:56 +02:00
uart2.c Merge remote-tracking branch 'prusa3d/MK3_dev' into simplify_EEPROM_M500 2018-10-08 15:58:49 +02:00
uart2.h MMU - communication, check after start, code cleaning 2018-08-07 20:37:59 +02:00
ultralcd.cpp ♻️Code optimization 2020-04-02 14:44:44 +03:00
ultralcd.h updated messages + slight refactoring to save some bytes 2020-03-26 15:07:48 +01:00
uni_avr_rpi.h Revert "Revert "Save 80B of flash and 8B of RAM and fix compiler warning:"" 2018-07-23 13:35:38 +02:00
util.cpp default nozzle diameter for farm mode 2019-09-23 17:13:33 +02:00
util.h default nozzle diameter for farm mode 2019-09-23 17:13:33 +02:00
vector_3.cpp
vector_3.h
w25x20cl.c Added support for a secondary boot loader, based on the OptiBoot project, 2018-06-14 15:13:21 +02:00
w25x20cl.h Added support for a secondary boot loader, based on the OptiBoot project, 2018-06-14 15:13:21 +02:00
xyzcal.cpp Conditional translation for SYSTEM_TIMER_2 because we want to have posibility to switch between old/new implementation. 2019-01-27 22:48:51 +01:00
xyzcal.h XYZ calibration - accuracy improvement 2018-03-27 17:27:41 +02:00