95 Commits (c11b2bb7776baa9c1d977d6fc5c9133e4fd72ad3)

Author SHA1 Message Date
Sebastianv650 e3ffb58fbd Save some cycle inside the planner
planner.h:
fan speed is used to set integer variables, so no need for long.
Basicaly a byte should be enough for all the fan things, as it's 0-255?

planner.cpp:
Save some float multiplications.
We could squeeze out even more by defining feedrate_percentage,
saved_feedrate_percentage and flow_percentage as float instead of int.
Everytime they are used in the time-critical planner, they are casted to
float and multiplied by 0.01. Not done jet, as they are used in LCD menu
functions I don't know well enough.
8 years ago
Sebastianv650 f9bea7968f BugFix for incorrect E-speed calculation
The extrusion speed was wrong due to a not high enough precision of
esteps to XY steps, therefore now the target float values are used to
calculate the ratio between XY movement and extrusion speed.
The e_speed_multiplier8 was replaced by an absolute multiplier called
abs_adv_steps_multiplier8, therefore one multiplication and bitshift can
be saved inside the stepper ISR. Due to this, also extruder_advance_k is
better suited inside the planner and not the stepper files any more.
8 years ago
Scott Lahteine 23f05f8be7 Use bit-length types in block_t 8 years ago
Scott Lahteine 75dbb71dd7 Replace block.busy with a block.flag bit 8 years ago
Scott Lahteine 8e787304c9 const float ref args in planner.h 8 years ago
Sebastianv650 c397b9d60a Planner acceleration bugfix and speedup v2
.) Use already existing inverse_millimeters instead of /
block->millimeters.
.) Prevent overflow during acceleration calculation by checking if float
is necessary. Idea modified from Sailfish.
.) Save two uint32_t or even float multiplications by checking if
step[AXIS] has steps and if max acceleration is lower than accel. If
not, there is no need to check this axis.
8 years ago
Scott Lahteine 8e1cc9332a Replace block flag bools with flag bits
…and apply const to some method parameters
8 years ago
Scott Lahteine 5ce5a9c822 Marlin: planner.h tweak 8 years ago
Scott Lahteine d963020532 Sort out some header dependencies 8 years ago
Scott Lahteine c5cac486f5 Use a, b, c instead of lx, ly, lz 8 years ago
Josef Pavlik f8c2473a71 Improve planner kinematics, fix delta ABL 8 years ago
Scott Lahteine d19cfcfc1d max_jerk array, DEFAULT_XYJERK => DEFAULT_[XY]JERK 8 years ago
Scott Lahteine ecf7cdde65 Augment planner/stepper getters/setters 8 years ago
Scott Lahteine ea0dbee3c9 Enable ABL by type, support bilinear on cartesian 8 years ago
Scott Lahteine 22ece0081e Pass array pointer to unapply_leveling 8 years ago
Scott Lahteine cbc158eb62 Add a proper flag for ABL enabled 8 years ago
Scott Lahteine 6b9bf8e8fe Add Planner::sync_from_steppers
Use to sync the planner after an interrupted move (when not overriding
the logical position).
8 years ago
Scott Lahteine c109399bf6 Fix planner leveling and rename arguments
Use lx, ly, lz for “logical” positions
8 years ago
Scott Lahteine 9248cfb0ad Bed leveling that accounts for home XYZ 8 years ago
Scott Lahteine d554c1dda8 Clean up planner kernel pass methods 8 years ago
Scott Lahteine b73203a0b7 Move some includes around to uncover missing deps 8 years ago
Scott Lahteine f8b5749235 Replace division in planner with multiplication 8 years ago
Scott Lahteine 9f9fe043ba Apply sq macro throughout 8 years ago
Scott Lahteine 93ba5bddd7 Append units to feedrate variables 8 years ago
Scott Lahteine 05da02f0a2 Implement MIXING_EXTRUDER and SWITCHING_EXTRUDER 8 years ago
Scott Lahteine ef3bef6b9e Fix feedrate in gcode_T (max_feedrate is mm/s) 9 years ago
Scott Lahteine 6d62a4ffc8 Patch LIN_ADVANCE for style and forward-compatibility 9 years ago
Sebastianv650 fb8e880734 Add LIN_ADVANCE 9 years ago
Scott Lahteine 72c6f2923f axis_steps_per_unit => axis_steps_per_mm 9 years ago
Scott Lahteine 446515ab79 Adjust spacing in block_t 9 years ago
Scott Lahteine 3b08eb1eeb `acceleration_st` => `acceleration_steps_per_s2` 9 years ago
Scott Lahteine cb4704e07a Rename some planner acceleration vars
- `per_sq_second` => `per_s2`
- `per_sqr_second` => `per_s2`
- `axis_steps_per_sqr_second` => `max_acceleration_steps_per_s2`
9 years ago
Scott Lahteine 49ecaf774d Rename some auto/locals to avoid name conflict 9 years ago
Scott Lahteine 47b5c55c29 Implement the delayed-move technique 9 years ago
Scott Lahteine 381bc6f0b0 set_position => set_position_mm 9 years ago
Scott Lahteine ff53819856 Drop FORCE_INLINE in planner.h
This change actually does increase the binary size by about 12 bytes,
but how does it affect performance?
9 years ago
Scott Lahteine 470d5ac09f Apply static to Planner class 9 years ago
Scott Lahteine 5172d4ba40 COREYZ stepper, planner, endstop, babysteps 9 years ago
Scott Lahteine 516e79bbda Declare extruder_duplication_enabled in Marlin.h 9 years ago
Scott Lahteine 6398d497b3 Ultimate followup to Stepper/Planner patch
- Search all symbols and apply prefixes where needed
- Encapsulate some private methods
- Inline some setters
- Make `microstep_mode` a public method
9 years ago
Scott Lahteine 96f51f400f Planner singleton class 9 years ago
Scott Lahteine 0da744b7b0 Further cleanup of comments, partial Doxygen-style
Following up on #3231
9 years ago
jbrazio 5e5d250832 Added gplv3 header to all Marlin files 9 years ago
Scott Lahteine 4bbea5124d Support for multiple PWM fans 9 years ago
Scott Lahteine 0c7f7ebcfb Styling adjustments (PR#2668 & PR#2670)
Keep "astyled" reformatting
9 years ago
Richard Wackerbarth 6292d9e815 Rename ENABLE_AUTO_BED_LEVELING
With the introduction of the #if ENABLED(…)

reads better than
9 years ago
Scott Lahteine bf6eb93c61 Overridable Options - Part 10 (PR#2562)
Apply `ENABLED` / `DISABLED` macros to planner files.
9 years ago
Andrew Lenharth a0ae9e30df don't pass integer by reference, inefficient. (PR#2547) 9 years ago
Scott Lahteine 0fca084ea6 Make EEPROM reproducible in GCode
With these changes the output of `M503 S0` is all you need to restore
the EEPROM. Building on this it is straightforward to save and restore
the EEPROM state using the SD card or external GCode file.

- Added `M145` to set “heatup states” for the LCD menu
- Added `M420` to toggle Mesh Bed Leveling
- Added `M421` to set a single Mesh coordinate
- Extended `Config_PrintSettings` with added M codes
- Cleaned up some comments here and there
10 years ago
Scott Lahteine ccddc280be Apply three more commits 10 years ago