285 Commits (6080ac566a118d92235fdd43724b4489a63ce58b)

Author SHA1 Message Date
AnHardt 13eebd11cf volatile_block_buffer_runtime_us
`block_buffer_runtime_us` is mangled in the planner and in the stepper-ISR.
So it needs to be volatile and interrupt protected.
8 years ago
Scott Lahteine fc2fc828b3 Prettify LIN_ADVANCE code with the positive condition 8 years ago
Scott Lahteine 1929502e15 Add const to some variables 8 years ago
Scott Lahteine 2da4d22520 Pretty up ADVANCE code 8 years ago
Scott Lahteine af024e1d7c Pretty up coast / reverse jerk code 8 years ago
Scott Lahteine 3f3b5c86d8 Slightly shrink code for jerk-based reduction of safe_speed 8 years ago
MagoKimbra 5383212a28 Fix Mesh without Fade Height 8 years ago
Scott Lahteine 3391c785c6 Support for distinct E factors 8 years ago
Scott Lahteine 0dfe95eaba Adjust formatting in Planner 8 years ago
Scott Lahteine 84ff78c1e3 Pass the fade factor to mbl.get_z 8 years ago
Scott Lahteine 8d14420331 Fix compile without ENABLE_LEVELING_FADE_HEIGHT 8 years ago
Scott Lahteine 092e949b58 Merge pull request #5169 from thinkyhead/rc_core_inverted
Support for COREYX, COREZX, COREZY
8 years ago
Scott Lahteine e9e4208ff1 Merge pull request #5274 from Sebastianv650/improve_smooth_moves
Improvement for ENSURE_SMOOTH_MOVES
8 years ago
Scott Lahteine f6f77d34a1 Add a fade factor for mesh leveling 8 years ago
Sebastianv650 8190483eeb Improvement for ENSURE_SMOOTH_MOVES
Instead of waiting for a single long block, compare the complete block
buffer runtime for the long_move() check.
8 years ago
Sebastianv650 de89dc9f04 Ensure smooth print moves even with LCD enabled
lcd_update can take so much time that the block buffer gets drained if
there are only short segments. This leads to jerky printer movements for
example in circles and a bad print quality.

This change implements a simple check: Only if the block currently
executed is long enough, run lcd_update.
This also means the printer will not show actual values on the LCD nor
will it respond to buttons pressed. A option that keeps the menu
accessible is also available.
Aditionaly, slow down if a block would be so fast that adding a new
block to the buffer would take more time. In this case, the buffer would
drain until it's empty in worst case.
8 years ago
Florian Heilmann d08867986e Add autotemp capabilities to M104
This allows M104 to pass the F and B parameters to enable autotemp as well
8 years ago
Sebastianv650 c11b2bb777 Bugfix LIN_ADV
Advance has nothing todo with Z_AXIS, strange copy&paste error?
8 years ago
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
Scott Lahteine f663220e87 Store Mix factors as reciprocals and multiply 8 years ago
Scott Lahteine 1864b282c5 Implement reversed CORE options 8 years ago
Scott Lahteine 0269347682 Merge pull request #5141 from thinkyhead/rc_old_slowdown_what
OLD_SLOWDOWN does nothing, so remove it
8 years ago
Sebastianv650 d448500643 Account for moves with negative E movements
Added a rule so that LIN_ADVANCE isn't used for moves with negative E movements (de_float will be negative in this cases).
I also added a more detailed comment to make it more clear what the if statement does.
8 years ago
Scott Lahteine 12167bc8f3 OLD_SLOWDOWN does nothing, so remove it 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 8dc7807d85 Add support for CoreYZ to planner.buffer_line 8 years ago
Scott Lahteine 1cf878fdb1 Calculate dm and e-steps earlier in planner 8 years ago
Scott Lahteine 75dbb71dd7 Replace block.busy with a block.flag bit 8 years ago
Scott Lahteine c7f22f688f buffer_line can calculate while it's waiting 8 years ago
Scott Lahteine 3fcf915808 Fix uninitialized var in reset_acceleration_rates 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 5f5a55a0de Add a ZERO macro to clear arrays 8 years ago
Sebastianv650 9818d97587 Fix Z-hops during retract/prime lead to blobs
We don't want to have retract/prime movements done with LIN_ADVANCE, that's also true with simultaneously executed Z-hops.
8 years ago
esenapaj 1e1edeadd3 Fix for the commit dc2cb84 (Revert acceleration limiting to avoid overflow)
・Add forgotten '\'
8 years ago
Scott Lahteine dc2cb8454c Revert acceleration limiting to avoid overflow 8 years ago
Scott Lahteine 4d89652bc2 Apply minor optimizations to planner.cpp 8 years ago
Scott Lahteine 1092319b19 Adapt speed/jerk code based on Prusa MK2 branch 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 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 761593b74b Cleanup some vars, use of min/max 8 years ago
Scott Lahteine d19cfcfc1d max_jerk array, DEFAULT_XYJERK => DEFAULT_[XY]JERK 8 years ago
Scott Lahteine e7dc174f30 More detailed debugging of G28 delta 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 c6142aa2a1 Minor cleanups in Marlin_main.cpp 8 years ago
Scott Lahteine 0427f3cc3b Use memcpy/memset in planner 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