90 Commits (402f1f73077054340e9d4edc9451b1896b09e1c4)

Author SHA1 Message Date
Scott Lahteine ad4ffa1d2f
Use C++ language supported 'nullptr' (#13944) 6 years ago
Marcio Teixeira 15357af67c Backlash cleanup (#13659)
…And save backlash, fil. sensor, ExtUI userdata to EEPROM.
6 years ago
Scott Lahteine 49cf92dc36
Extended condition macros (#13419)
Allow `ENABLED`, `DISABLED`, `PIN_EXISTS`, and `BUTTON_EXISTS` to take multiple arguments. Also add:
- Alias `ANY(...)` for `!DISABLED(...)`
- Alias `ANY_PIN(...)` for `PIN_EXISTS(a) || PIN_EXISTS(b) ...`
- Alias `EITHER(A,B)` for `ANY(...)`
- Alias `ALL(...)` and `BOTH(A,B)` for `ENABLED(...)`
- `NONE(...)` for `DISABLED(...)`
6 years ago
Scott Lahteine 0feeef2604 Update copyright in headers 6 years ago
Scott Lahteine 6de3d34378
M166 Gradients, LCD Menu for 2-channel Mixer (Geeetech A10M/A20M) (#13022) 6 years ago
Scott Lahteine a5e3384691 Pre-apply cosmetic changes to mixing 6 years ago
Scott Lahteine 19fea772e5 Use E_AXIS_N where it makes sense 6 years ago
Marcio Teixeira 6a8fb0f25f Simplify backlash compensation code. (#12813)
- Use `TEST(dm,axis)` to determine directions instead of doing comparisons.
- Remove recomputation of `millimeters` and `delta_mm` since backlash compensation should not affect the distance over which material is extruded.
6 years ago
Marcio Teixeira b22716e938 M425 Backlash Correction (#11061) 6 years ago
Jacob Jordan 8be91677df Fix Skew factors (#12555)
- Ensure Skew factors are calculated from test square measurements
6 years ago
Marcio Teixeira 056561df93 [2.0.x] Enhancements to FILAMENT_RUNOUT_SENSOR (#12069)
- Added FILAMENT_RUNOUT_DISTANCE_MM option
- Added FILAMENT_MOTION_SENSOR option
6 years ago
AnHardt f56968ba0b New Continuous Filament Mixer (#12098) 6 years ago
Scott Lahteine d556dc1865
Fix and improve EEPROM storage (#12054)
* Clean up Temperature PID
* Improve EEPROM read/write/validate
* Group `SINGLENOZZLE` saved settings
* Group planner saved settings
* Group filament change saved settings
* Group skew saved settings
* Group `FWRETRACT` saved settings
6 years ago
Scott Lahteine d6b0fbd771
Use uint8_t for all fan speeds (#12032) 6 years ago
Scott Lahteine c5e5cc5e9f Fix some trailing whitespace, macros 6 years ago
Thomas Moore c437bb08f1 Overhaul of the planner (#11578)
- Move FWRETRACT to the planner
- Combine leveling, skew, etc. in a single modifier method
- Have kinematic and non-kinematic moves call one planner method
6 years ago
Scott Lahteine d882717d98
Save some PROGMEM with constexpr (#11798)
When possible, make `active_extruder` a `constexpr` to save some PROGMEM.
6 years ago
Sam Lane 4f883d5971 [2.0.x] Extruder-Distinct Linear Advance K Factors (#11789) 6 years ago
Scott Lahteine a4b0148365 Easier to find 'static inline' 6 years ago
etagle 1367df2875 Replace double with float, optimize calculation 7 years ago
Scott Lahteine 8eaac0dab3
Add delta feedrate scaling (#11153) 7 years ago
Scott Lahteine bd7f5848f1
Remove JUNCTION_DEVIATION_INCLUDE_E option (#11147) 7 years ago
Eduardo José Tagle edb21f349a Fix stepper/planner block handling, race conditions (#11098)
- Allow planner to alter the deceleration phase of the currently executing block.
- Remove BUSY flag, as it is NON ATOMIC to set bits in the Stepper ISR and Planner at the same time.
7 years ago
Andy Shaw 3b3029c4bf Make max_e_jerk an array to reduce CPU usage (#11118) 7 years ago
Scott Lahteine 50b6204079 Fix LIN_ADVANCE max_e_jerk_factor
According to https://github.com/MarlinFirmware/Marlin/issues/9917#issuecomment-399204568
7 years ago
Scott Lahteine 9d04f47d98 Improvements for junction_deviation_mm
- Drop `max_jerk` with `JUNCTION_DEVIATION`
- Add `max_e_jerk_factor` for use by `LIN_ADVANCE`
- Recalculate `max_e_jerk_factor` when `junction_deviation_mm` changes
- Fix LCD editing of `junction_deviation_mm`
7 years ago
Scott Lahteine a2f521d34b
Add Junction Deviation mm runtime setting (#10990) 7 years ago
etagle 39a7e7720d Adaptive multiaxis step smoothing
- Stepper bugs fixed
- Support MIXING_EXTRUDER with Linear Advance
- Miscellaneous cleanup
7 years ago
Scott Lahteine 2deff0d9b9 Fix/Improve junction deviation
- Respect axis max acceleration limits instead of forcing a fixed acceleration value.
- The `junction_unit_vec` ensures proper handling of entry and exit speeds even when the axes involved have different limits.
7 years ago
Scott Lahteine d259070980 Clean up trailing spaces from vim, etc. 7 years ago
Scott Lahteine aaaf09bda2 BEZIER_JERK_CONTROL => S_CURVE_ACCELERATION 7 years ago
Scott Lahteine 435ecb6b67 Followup to stepper/planner refactor 7 years ago
etagle a4af975873 Fix planner block optimization
- Fixed the planner incorrectly avoiding optimization of the block following the active one.
- Added extra conditions to terminate planner early and avoid redundant computations.
7 years ago
etagle e0ca627033 Planner block HOLD flag
Allows the Stepper ISR to wait until a given block is free for use. Allows Planner to plan the first move, which is split into two.
7 years ago
etagle a11eb50a3e Refactor and optimize Stepper/Planner
Better encapsulation and considerably reduce stepper jitter
7 years ago
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>
7 years ago
Scott Lahteine 8f8c6a9bc4
Move get_axis_position_mm to Planner (#10718) 7 years ago
Scott Lahteine 306f0f2135
Move Stepper::synchronize to Planner (#10713)
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
7 years ago
Scott Lahteine a225d2e99e Fix compilation with UBL and Arc/Bézier
Fix #10660
7 years ago
Scott Lahteine 19f189b4e5
Add UBL support for G2/G3 and G5 (#10648) 7 years ago
Scott Lahteine af1950a63e Improve sync of stepper positions 7 years ago
Scott Lahteine d7b699ec34 Fewer includes of vector_3.h 7 years ago
Scott Lahteine 36b97bde9f clear_block_buffer, kill_current_block in quick_stop 7 years ago
Eduardo José Tagle 57a899a412 [2.0.x] 6th-order jerk-controlled motion planning in real-time for AVR (#10373) 7 years ago
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!)
7 years ago
Scott Lahteine e8e60263c8 Scale feedrate (mm/s to deg/s) for SCARA 7 years ago
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
7 years ago
Scott Lahteine 2057177184 Make enums into implicit char 7 years ago
Scott Lahteine 930720bbbb
Fix broken reverse planner (#9943)
From #9914 by @Sebastianv650
7 years ago
Scott Lahteine 2bd252b501
[2.0.x] LIN_ADVANCE v1.5 (#9712) 7 years ago