Yuri D'Elia
048628083a
Remove clear_current_adv_vars()
...
The pressure state is already reset implicitly at the end of each block,
meaning an extruder switch will never have to reset the internal state
anyway.
We clear the internal backpressure in the following conditions:
- when switching to a non-LA block
- when quickStop is called
- when the scheduler is idling (losing pressure)
2019-06-05 20:25:19 +02:00
Yuri D'Elia
7d33089d9a
Remove use_advance_lead
...
The per-step state is kept implicitly using nextAdvanceISR,
while the current pressure is decoupled anyway.
2019-06-05 20:25:12 +02:00
Yuri D'Elia
dc436b71fe
Fix position_float after a quickStop condition
2019-06-05 20:25:05 +02:00
Yuri D'Elia
fa454f61e4
Drop unused "speed_lookup_table.h" from planner.cpp
2019-06-05 20:24:58 +02:00
Yuri D'Elia
cda9ed4a1d
Reset LA state more carefully during stop conditions
2019-06-04 16:22:40 +02:00
Yuri D'Elia
1bed8cfa94
Don't call fsensor_st_next_block repeatedly during the last step
...
Rely on st_block_begin to perform a single call instead of calling
block_chunk for each advance tick in the last step
2019-06-04 16:22:33 +02:00
Yuri D'Elia
8ce1c04740
Remove useless "extruder under pressure" flag
...
That's exactly what LA does
2019-06-04 16:22:27 +02:00
Yuri D'Elia
bca5618145
Save/restore K during a power panic
2019-06-03 17:33:19 +02:00
Yuri D'Elia
84009e1e8e
Do a full fsensor_update() when initializing the sensor
...
This correctly populates the "extruder info" details even when
the menu is entered for the first time after starting a print.
2019-06-03 17:32:57 +02:00
Yuri D'Elia
fa7c0fb2c9
Avoid triggering LA during a Z-priming move
...
When recovering from a pause, the nozzle is often primed while
being lowered. If LA is triggered under such a move, the pressure
advance will be wasted.
2019-06-03 17:32:51 +02:00
Yuri D'Elia
d2432056bd
Elide fsensor_st_block_begin, saving some cycles/bytes
2019-06-03 17:32:43 +02:00
Yuri D'Elia
5cd0177389
Cleanup fsensor_st_block_begin
2019-06-02 18:17:59 +02:00
Yuri D'Elia
b4bf79297f
Remove unneeded includes from fsensor
2019-06-02 01:08:03 +02:00
Yuri D'Elia
c50b1c0351
Rework the filament counter logic
...
- Move direction checks out of fsensor: fsensor_counter is now
always in the same direction as e_steps
- Check the filament chunk after e_steps have been physically done,
using the real e_step count so far
2019-06-01 22:08:00 +02:00
Yuri D'Elia
51d6904dad
Multiply the step rate when grouping advance steps
2019-05-27 14:44:09 +02:00
Yuri D'Elia
a742afcebd
Remove version check
2019-05-26 22:43:06 +02:00
Yuri D'Elia
4772532524
Allow Live-K to be used on stock 3.7.1 using a stub
2019-05-26 22:14:31 +02:00
Yuri D'Elia
47d2562510
Typos
2019-05-26 21:06:29 +02:00
Yuri D'Elia
823f7b069c
Fix filament sensor direction again
2019-05-26 21:06:22 +02:00
Yuri D'Elia
9d834925c0
Recalculate LA_phase correctly
2019-05-26 17:06:21 +02:00
Yuri D'Elia
3abb2188df
Fixup initial error by defect
2019-05-26 16:59:45 +02:00
Yuri D'Elia
ab478ec281
Save another 144b by avoiding a calc_timer copy
2019-05-26 16:42:03 +02:00
Yuri D'Elia
20694aeabc
Save 316 bytes by avoiding advance_spread copies
2019-05-26 16:41:56 +02:00
Yuri D'Elia
a28fb65bb2
Optimize advance_spread further
2019-05-26 16:41:50 +02:00
Yuri D'Elia
daa8007de5
Allow to exclude Live K from the build
2019-05-26 16:41:45 +02:00
Yuri D'Elia
6f6cef65b5
Revert "Correctly handle direction for the filament sensor"
...
This reverts commit aae03ad83e
.
2019-05-26 16:41:37 +02:00
Yuri D'Elia
bddc3e84ab
Use WRITE_NC directly in the isr
2019-05-25 21:52:06 +02:00
Yuri D'Elia
aae03ad83e
Correctly handle direction for the filament sensor
2019-05-25 21:51:59 +02:00
Yuri D'Elia
935a798236
Speedup advance_spread for common divisors
2019-05-25 21:51:52 +02:00
Yuri D'Elia
fa7ecfc38e
Check for serial roughtly in the middle of the stepper isr
2019-05-25 18:41:28 +02:00
Yuri D'Elia
0a26de1e7f
Allow to live-tune K during a print
2019-05-25 18:41:21 +02:00
Yuri D'Elia
282b502393
Improve the distribution of the advance steps
2019-05-24 17:08:32 +02:00
Yuri D'Elia
294bf4068d
Improve debug messages
2019-05-24 17:08:32 +02:00
Yuri D'Elia
53b77bab36
Do not operate on the prev block when already in use
2019-05-24 17:08:32 +02:00
Yuri D'Elia
aae5cce28f
Use the nominal frequency to merge ticks
2019-05-24 17:08:32 +02:00
Yuri D'Elia
c6dbcc494f
Typo
2019-05-24 17:08:32 +02:00
Yuri D'Elia
942c38c18b
Minor reformatting
2019-05-24 17:08:32 +02:00
Yuri D'Elia
9586d71adb
Mention LA_DEBUG_LOGIC
2019-05-24 17:08:32 +02:00
Yuri D'Elia
a1be8b6784
Initialize current_adv_steps correctly
...
Initialize at 0 both on startup and on reset on regular (non-LA)
segments to avoid cumulating errors.
2019-05-24 17:08:32 +02:00
Yuri D'Elia
707849e6c4
Use a define instead of hard-coding a divider
2019-05-24 17:08:32 +02:00
Yuri D'Elia
a2fa8e5313
Rewrite the advance_isr scheduler
2019-05-24 17:08:32 +02:00
Yuri D'Elia
2d3fe3197c
Move calc_timer into speed_lookup_table for planner reuse
2019-05-24 17:08:32 +02:00
Yuri D'Elia
9425b6b07a
Planner: do not recalculate max_adv_steps, since it doesn't change
2019-05-24 17:08:32 +02:00
Yuri D'Elia
2c8e04bd5f
Planner: use the correct block when updating LA factors
2019-05-24 17:08:32 +02:00
Yuri D'Elia
3b528196dd
Fixup prefix echomagic for the LA config report
2019-05-24 17:08:32 +02:00
Yuri D'Elia
520cb491b2
Move speed lookup defs into a separate source
2019-05-24 17:08:32 +02:00
Yuri D'Elia
ebdc5e35e7
Remove two more OCR1A direct manipulations
...
Use _NEXT_ISR and st_reset_timer to correctly reinitialize and
re-schedule the advance ticks.
2019-05-24 17:08:32 +02:00
Yuri D'Elia
cbf1a85ec3
Switch original LA implementation with LA1.5
...
This discards several Prusa optimizations for LA1.0.
We'll re-implement those later if needed.
Debugging is turned on.
2019-05-24 17:08:32 +02:00
Yuri D'Elia
bf0c60dd45
Factor-out some repetition into fsensor_step
2019-05-24 17:08:32 +02:00
Yuri D'Elia
124540a06f
Adapt LA changes to ConfigurationStore
2019-05-24 17:08:32 +02:00