Commit Graph

56 Commits

Author SHA1 Message Date
etagle
a11eb50a3e Refactor and optimize Stepper/Planner
Better encapsulation and considerably reduce stepper jitter
2018-05-20 06:23:58 -05:00
Scott Lahteine
99ecdf59af Smarter MIN, MAX, ABS macros
Use macros that explicitly avoid double-evaluation and can be used for any datatype, replacing `min`, `max`, `abs`, `fabs`, `labs`, and `FABS`.

Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-13 04:52:56 -05:00
Scott Lahteine
8f8c6a9bc4
Move get_axis_position_mm to Planner (#10718) 2018-05-12 09:59:11 -05:00
Scott Lahteine
306f0f2135
Move Stepper::synchronize to Planner (#10713)
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-12 01:38:02 -05:00
Scott Lahteine
a225d2e99e Fix compilation with UBL and Arc/Bézier
Fix #10660
2018-05-09 00:40:37 -05:00
Scott Lahteine
19f189b4e5
Add UBL support for G2/G3 and G5 (#10648) 2018-05-08 11:10:45 -05:00
Scott Lahteine
af1950a63e Improve sync of stepper positions 2018-05-06 01:24:14 -05:00
Scott Lahteine
d7b699ec34 Fewer includes of vector_3.h 2018-05-01 07:05:18 -05:00
Scott Lahteine
36b97bde9f clear_block_buffer, kill_current_block in quick_stop 2018-04-13 22:04:53 -05:00
Eduardo José Tagle
57a899a412 [2.0.x] 6th-order jerk-controlled motion planning in real-time for AVR (#10373) 2018-04-11 18:13:42 -05:00
etagle
a29adde5c0 Implement BEZIER_JERK_CONTROL
Enable 6th-order jerk-controlled motion planning in real-time.
Only for 32bit MCUs. (AVR simply does not have enough processing power for this!)
2018-04-07 21:03:28 -05:00
Scott Lahteine
e8e60263c8 Scale feedrate (mm/s to deg/s) for SCARA 2018-04-06 19:47:48 -05:00
Scott Lahteine
1cb810ff1c
[2.0.x] Automatically reset stepper timeout (#10179)
* Automatically reset stepper timeout in manage_inactivity

Any code that adds moves to the planner can skip resetting the stepper timeout. We can let `idle` / `manage_inactivity` reset the timer whenever it detects any moves in the planner.

* blocks_queued => has_blocks_queued
2018-03-21 19:30:06 -05:00
Scott Lahteine
2057177184 Make enums into implicit char 2018-03-06 23:39:56 -06:00
Scott Lahteine
930720bbbb
Fix broken reverse planner (#9943)
From #9914 by @Sebastianv650
2018-03-04 21:19:06 -06:00
Scott Lahteine
2bd252b501
[2.0.x] LIN_ADVANCE v1.5 (#9712) 2018-02-23 00:53:29 -06:00
Thomas Moore
786746404b [2.0.x] Apply feedrate to nozzle movement for kinematic machines (#8778) 2018-02-04 00:26:05 -06:00
Scott Lahteine
4f5e087ff4 Planner anti-stutter by Sebastian Popp 2018-01-14 21:07:10 -06:00
Scott Lahteine
5bc2acc072 Restore position_float to fix LIN_ADVANCE 2017-12-21 16:45:46 -06:00
Scott Lahteine
933f76fda3 Option to disable all volumetric extrusion 2017-12-19 19:51:25 -06:00
Scott Lahteine
09d13f186f
Correct unskew, after all 2017-12-15 14:24:20 -06:00
Scott Lahteine
368c124de8 Fix Planner::unskew parity with skew 2017-12-13 17:46:48 -06:00
Scott Lahteine
cf2193c07f Comment, fix filament width sensor 2017-12-13 02:32:34 -06:00
Scott Lahteine
3255712343 Skew Correction for UBL
Also remove unused grid slicing function when using UBL segmented.
2017-12-11 03:08:15 -06:00
Scott Lahteine
3db5303bfe _buffer_line => buffer_segment 2017-12-11 00:27:06 -06:00
Scott Lahteine
73e32925e4 References are better for array args 2017-12-11 00:27:06 -06:00
AnHardt
b3daf6b5db [2.0.x] better reverse pass (#8722)
* repair reverse_pass()

And make it readeble.
This was broken a long time ago.
Not competely unfunctional but far from optimal.

* Minor speedup when calling calculate_trapezoid_for_block

2 float / to 1 foat / and 2 float *

* Various style changes
2017-12-08 21:38:45 -06:00
Scott Lahteine
85c6ffbe0d Discard all "continued" blocks on interrupted move 2017-12-08 02:32:58 -06:00
Scott Lahteine
de3d3b9cb1 Put FORCE_INLINE before static 2017-12-08 00:46:22 -06:00
Scott Lahteine
840289e7cc Use block cleaning instead of split flag 2017-12-06 22:22:58 -06:00
AnHardt
a993c5227d Don't split first_move while homing or probing
While homing or probing it might be bad if the stop/trobe triggers during the first part and the second is still in the buffer.
2017-12-06 14:13:05 +01:00
Scott Lahteine
a2372cfab5 Fix SKEW_CORRECTION without leveling 2017-12-05 18:48:34 -06:00
Scott Lahteine
4b612f590c Split first move to planner for better chaining 2017-12-04 15:27:47 -06:00
Scott Lahteine
dd8febca1a Revert "Merge pull request #8611 from thinkyhead/bf2_planner_split_first"
This reverts commit 824980e70e, reversing
changes made to aa7efb96bf.
2017-12-03 17:50:19 -06:00
Scott Lahteine
3a97de52ef Split first move to planner for better chaining
Address #8573, #8595
2017-12-03 01:27:14 -06:00
Scott Lahteine
8056120195 Rename inverse_mm_s => inverse_secs 2017-12-02 20:28:09 -06:00
Scott Lahteine
000b3b3117 Comment/cleanup of motion code 2017-12-02 01:09:55 -06:00
Scott Lahteine
0154e3480c New feature: BED_SKEW_CORRECTION 2017-12-01 19:39:49 -06:00
Scott Lahteine
dd3ce40826 Drop Planner::position_float, use int types 2017-11-30 17:43:31 -06:00
Scott Lahteine
a52fec6ac4 Planner class parity with 1.1.x 2017-11-30 15:55:08 -06:00
Scott Lahteine
60adc6ff02 Display filwidth ratio in terms of E mm 2017-11-18 07:01:49 -06:00
Scott Lahteine
1e8afb66b7 Fix a planner comment 2017-11-16 16:57:47 -06:00
Scott Lahteine
cba9c1cf9e Add pre-calculated planner.e_factor 2017-11-10 03:14:24 -06:00
Scott Lahteine
0cfb936dd1 Clarify some motion code 2017-11-08 22:15:55 -06:00
Scott Lahteine
f8393a0908 Operate in Native Machine Space 2017-11-04 00:05:38 -05:00
Scott Lahteine
3e8754a38a Add/correct time units on planner vars / M205 B 2017-10-29 18:47:21 -05:00
Scott Lahteine
0ceec1f166 Fix leveling_active_at_z warning 2017-10-26 22:22:54 -05:00
Scott Lahteine
3e3911fb81 Use planner.leveling_active for all leveling systems 2017-10-14 02:18:31 -05:00
Scott Lahteine
32c607ffe2 Ensure fade factor is recalculated if fade height changes 2017-10-14 02:18:31 -05:00
Scott Lahteine
ca1e47375c Move fade_scaling_factor_for_z to Planner 2017-10-14 02:18:31 -05:00