There used to be a single stage where an extruder reversal could occur,
but since PR #2591 reversals can happen up to two times per trapezoid.
Reset LA_phase when ADV_INIT is set, since it is re-inizialized only
when needed a few lines afterward. This improves performance by avoiding
to check the phase continuosly to the end of the trapezoid.
Likewise, always set ADV_INIT during the first cruising step, also to
force a LA_phase reset.
PR #2591 made LA compression always account for retractions instead of
discarding the current compression steps. While this fixed overextrusion
in short segments followed by wipes, it uncovered another issue in how
the compression steps are spread during the trapezoid calculations
leading to gaps in segments followed by retractions (as highlighted by
/some/ prints in #2693).
LA1.5 always computes the required target compression steps for a
segment at nominal speed. Because of how the extra steps are allocated
using multiples of the accelerating frequency, if the segment is
truncated before cruising is reached, an additional cycle of steps can
be inserted before deceleration starts. Deceleration is also not
guaranteed to be symmetric where up to _two_ cycles can be skipped
depending on the stepping cycle, leading to a situation where a
symmetric acceleration/deceleration block will lead up to a cycle of
accumulated compression.
While forcing an the extra step during deceleration is possible by
tweaking the error term (eISR_Err), this doesn't guarantee balance in
all cases. The underlying issue is that the function is aiming a
compression which cannot be reached (nominal speed), and not at the
effective max speed reached in the trapezoid, thus moving the average
result higher over time.
We fix this by calculating the effective maximum speed (and compression)
reached during the trapezoid, which stops compression on the required
cycle irregardless of the error term, balancing the result.
This is the first unoptimized POC: this is not for production: a lot of
calculations are redundand and could work directly in steps/s^2.
This saves nearly all of additional FLASH usage of previous commit. It is only 70B worse than if no skipping is done in temperature compensation gcode G76.
There is no known purpose of this call.
lcd_temp_calibration_set() is switching on/off pinda temperature compensation from LCD settings menu (this is called "Temp. cal." on LCD).
st_current_init() does nothing on Einsy board, it enables and sets motor current selecting outputs on Rambo board (it used to be called digipot in history)
* Update EEPROM_FSENSOR_PCB documentation
* Update IR sensor check
* Rename IR messags and add UNKNOWN state
* Update code to use new messages
* To be continued
* Move fsensor related things from ultralcd.h to fsensor.h
* Use defined Thresholds
* IR sensor auto detection "0.3 or older" and "0.4 or newer" when trigger status changes.
Typo fixes
Doxygen documentation
* Cleanup spaces
* Revert PF-build.sh changes
* re-add space in messages
* revert doxygen snytax
* Remove double _Undef
* Fix indentation and doxygen syntax
* Fix indentation
* Better message handling
* Fix indentation
* Fix indentation
* More indentation fixwa
* Extract common code into manage_inactivity_IR_ANALOG_Check
Saves ~60B of code
* Revert indentation changes on fsensor.cpp
* Keep the selftest IR sensor part disabled
Everything shall happen at runtime
* Fix indentation fsensor_update
* Fix another misleading indentation in fsensor_update
Co-authored-by: Alex Voinea <voinea.dragos.alexandru@gmail.com>
Co-authored-by: D.R.racer <drracer@drracer.eu>
* Combine repeated calls into functions with much less parameters -> 2KB
down.
* Save some bytes by removing unnecessary 1-character strings: "x" -> 'x'
used in SERIAL_xxx printing macros.
This is also saves some CPU cycles
* Fix compilation for MK25S and MK3
* Copy surrounding indentation
* Fix compilation for a rare HW setup
* rename mesh_planXX_buffer_line back to mesh_plan_buffer_line
* Remove active_extruder from remaining plan_buffer_line_destinationXYZE
calls and one more fix of indentation
Increase the flattened response in the e-jerk conversion from the 1-4.5
region to 0.3-4.5 (same slope). This brings a 0.3 LA10 e-jerk to a 3.45
LA15 equivalent.
This will better handle the legacy Pretty PETG/CFPETG v3 profiles.
* Add and update missing translations
- updated in Firmware/ files the missing `c=xx` column and `r=yy` rows.
- added missing translations to lang/lang_en*.txt
Everyone is developing and adding messages to serial and especially to LCD PLEASE add `//// c=xx` or `//// c=xx r=yy` comments.
Preparing translations files without that information is a pain in the ... and takes way more time for somebody else
to review to code as it would take you.
* No need to have `MSG_abcde` again in comments `////` in `messages.c`
* German translation
* Missed a space
* Use the same format as somewhere else
* French translation.
I am not a native French speaking person, so please excuse my mistakes I may have done.
* Spanish translation.
I am not a native Spanish speaking person, so please excuse my mistakes I may have done.
* CZ translation
* Fix typos
* Another fix
It is
Dimmwert and not Dim Wert
* Fix issues reported by `lang-check.py`
* Add "difficult" messages containing `%`
* Updated MSG and German translation
* removed a translation as it breaks the language selection
* No need to wait until any-key is pressed
* No need to wait any-key is pressed
* Fixed two LF issues
* Updated PO files
ready to be send to translators
* Add missing italian translations
* Improve some existing italian translations
* More italian fixes
* More italian fixes
* Add exceptions in editorconfig for po files to avoid recoding
* Fix typo
Thanks @DRracer for pointing out
* Italian translation by @wavexx
* Update po/new/*.po files
* Update after merging MK3 branch
* Update French translation and some c=xx comments
Big thanks to @awenelo @carlin57 for helping with the french translations and their comments.
* Update po files after French translation
* Fixed most `lang-check.py` reported translation errors for Czech and German.
Two Czech have to be reviewed as these are too long.
One German is correct as it is shown in c=20 r=2 but is 1 char longer than this to split the message.
One German translation seams to be to long but have to review the actual max length
* Fix `lang-check.py` Spanish translation errors
There have been quite lot TOO long messages,
Can't imagine that nobody every complained about that.
* Fix `lang-check.py` Italian translations errors
* Update not_tran and not_used files after fixing several translations
* Some more error fixes and update of `po` files
* Polish translation
* Czech updated
* Fix typo
* no need to translate `\x00` if it is the same
* Polish: Runouts->Koniec
* Polish: Runouts->Konce f ... hopefully the last change
* Added MK2.5/s auto power mode to eeprom doxygen
* Final updates.
- Compiled all versions with multi-languages
- Compiled all versions with EN_ONLY
- updated all /lang/po/Firmware*.* files
* Add crlf attributes for po files
As done for editorconfig, this similarly forces git to handle
po files consistently in DOS format.
* Further improvent of IT translations
* Updated translation
Added cleanup to PF-build.sh
* remove lang/not_tran* and lang/not_used mistakenly added into the PR
Co-authored-by: DRracer <drracer@seznam.cz>
Co-authored-by: Yuri D'Elia <wavexx@thregr.org>
Co-authored-by: D.R.racer <drracer@drracer.eu>
As pointed out by @leptun, with MMUs the combination of old/new filament
profiles in the same print is a likely scenario as we transition towards
LA1.5. Reset the detection state also with K0.
Move la10c_reset into finishAndDisableStepper, which is called in both
via lcd_print_stop() and indirectly via M84, saving some space.
M84 is checked-for to determine a complete file, so it's a superior
candidate to G80 (which some people avoid due to MBL issues).
Allow the LA 1.5 MAX value to be configured in Configuration_adv.h.
Define a customizable LA10<>15 detection threshold in function of the
above limit.
Clamp the result of of the LA10->15 return value to always
respect the new LA_K_MAX.
* MK3S IR sensor detection and safe operational range fix
* debug, change of fsensor_IR_check behavior
* more doc + disable debug print voltage
* fix displaying MSG_04_OR_NEWER and MSG_03.... kudos to @ovariludovit
* better handling of fsensor not responding scenario