Commit Graph

2870 Commits

Author SHA1 Message Date
Yuri D'Elia c40e3b550d Remove stubs and live K by default 2019-06-10 19:34:00 +02:00
Yuri D'Elia 0239f4bce1 Update/compute advance steps inside calculate_trapezoid_for_block
Do not store the block e_D ratio, store directly the computed
compression factor so that we can recompute the advance steps
quickly and update them in sync with the acceleration rates.
2019-06-05 20:25:26 +02:00
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