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.
2016-11-19 01:28:47 -06:00
Florian Heilmann
d08867986e
Add autotemp capabilities to M104
...
This allows M104 to pass the F and B parameters to enable autotemp as well
2016-11-17 11:28:19 -06:00
Sebastianv650
c11b2bb777
Bugfix LIN_ADV
...
Advance has nothing todo with Z_AXIS, strange copy&paste error?
2016-11-17 11:28:19 -06:00
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.
2016-11-13 13:34:12 +01:00
Scott Lahteine
f663220e87
Store Mix factors as reciprocals and multiply
2016-11-12 15:19:18 -06:00
Scott Lahteine
1864b282c5
Implement reversed CORE options
2016-11-05 23:47:51 -05:00
Scott Lahteine
0269347682
Merge pull request #5141 from thinkyhead/rc_old_slowdown_what
...
OLD_SLOWDOWN does nothing, so remove it
2016-11-03 23:30:43 -05:00
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.
2016-11-03 17:01:17 +01:00
Scott Lahteine
12167bc8f3
OLD_SLOWDOWN does nothing, so remove it
2016-11-02 01:28:19 -05:00
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.
2016-11-01 08:08:47 +01:00
Scott Lahteine
8dc7807d85
Add support for CoreYZ to planner.buffer_line
2016-10-30 16:16:28 -05:00
Scott Lahteine
1cf878fdb1
Calculate dm and e-steps earlier in planner
2016-10-30 16:16:28 -05:00
Scott Lahteine
75dbb71dd7
Replace block.busy with a block.flag bit
2016-10-30 16:16:28 -05:00
Scott Lahteine
c7f22f688f
buffer_line can calculate while it's waiting
2016-10-29 17:08:42 -05:00
Scott Lahteine
3fcf915808
Fix uninitialized var in reset_acceleration_rates
2016-10-24 11:55:41 -05:00
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.
2016-10-23 12:47:46 +02:00
Scott Lahteine
5f5a55a0de
Add a ZERO macro to clear arrays
2016-10-22 10:07:18 -05:00
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.
2016-10-22 04:54:59 -05:00
esenapaj
1e1edeadd3
Fix for the commit dc2cb84
(Revert acceleration limiting to avoid overflow)
...
・Add forgotten '\'
2016-10-18 18:07:20 +09:00
Scott Lahteine
dc2cb8454c
Revert acceleration limiting to avoid overflow
2016-10-17 17:08:41 -05:00
Scott Lahteine
4d89652bc2
Apply minor optimizations to planner.cpp
2016-10-12 04:42:15 -05:00
Scott Lahteine
1092319b19
Adapt speed/jerk code based on Prusa MK2 branch
2016-10-12 04:42:14 -05:00
Scott Lahteine
8e1cc9332a
Replace block flag bools with flag bits
...
…and apply const to some method parameters
2016-10-10 23:17:49 -05:00
Scott Lahteine
c5cac486f5
Use a, b, c instead of lx, ly, lz
2016-10-09 14:34:24 -05:00
Josef Pavlik
f8c2473a71
Improve planner kinematics, fix delta ABL
2016-10-09 13:32:46 -05:00
Scott Lahteine
761593b74b
Cleanup some vars, use of min/max
2016-10-02 06:34:56 -05:00
Scott Lahteine
d19cfcfc1d
max_jerk array, DEFAULT_XYJERK => DEFAULT_[XY]JERK
2016-10-02 06:34:56 -05:00
Scott Lahteine
e7dc174f30
More detailed debugging of G28 delta
2016-10-02 02:18:57 -05:00
Scott Lahteine
ecf7cdde65
Augment planner/stepper getters/setters
2016-09-29 01:27:37 -05:00
Scott Lahteine
ea0dbee3c9
Enable ABL by type, support bilinear on cartesian
2016-09-25 23:35:37 -05:00
Scott Lahteine
22ece0081e
Pass array pointer to unapply_leveling
2016-09-23 15:39:01 -05:00
Scott Lahteine
cbc158eb62
Add a proper flag for ABL enabled
2016-09-23 15:39:01 -05:00
Scott Lahteine
c6142aa2a1
Minor cleanups in Marlin_main.cpp
2016-09-23 03:03:14 -05:00
Scott Lahteine
0427f3cc3b
Use memcpy/memset in planner
2016-09-23 03:03:14 -05:00
Scott Lahteine
6b9bf8e8fe
Add Planner::sync_from_steppers
...
Use to sync the planner after an interrupted move (when not overriding
the logical position).
2016-09-23 03:03:14 -05:00
Scott Lahteine
be11a8a938
Fix debug in Planner::buffer_line
2016-09-23 03:03:13 -05:00
Scott Lahteine
6335acbf5c
Patch bug in linear unapply_leveling
2016-09-23 03:03:13 -05:00
Scott Lahteine
77639672d7
Move NONLINEAR bed leveling to planner
...
This is in advance of moving non-linear bed leveling to the planner
class.
2016-09-18 13:50:38 -05:00
Scott Lahteine
9429c7db89
Use ABC indices in delta[]
2016-09-18 13:50:38 -05:00
Scott Lahteine
c109399bf6
Fix planner leveling and rename arguments
...
Use lx, ly, lz for “logical” positions
2016-09-13 03:33:01 -05:00
Scott Lahteine
6ab54c60b1
Add conditionals for kinematics, leveling
2016-09-13 03:32:59 -05:00
Scott Lahteine
9248cfb0ad
Bed leveling that accounts for home XYZ
2016-09-10 13:47:21 -05:00
Scott Lahteine
6ac9d895ca
Tweak Filament Width variables
2016-09-10 13:29:25 -05:00
Scott Lahteine
d554c1dda8
Clean up planner kernel pass methods
2016-08-30 14:16:13 -05:00
Scott Lahteine
a485a19052
Added optional planner logging
2016-08-27 20:12:22 -05:00
Scott Lahteine
ab59280075
MIN_SEGMENTS_FOR_MOVE => MIN_STEPS_PER_SEGMENT
...
Follow-up to #4666
2016-08-21 08:56:03 -05:00
Scott Lahteine
27b80b1dd1
Merge pull request #4667 from thinkyhead/rc_M211_sw_endstop_switch
...
M211: Enable/Disable Software Endstops
2016-08-21 06:44:00 -05:00
Scott Lahteine
2f223b8c79
Use ABC and XYZ for "3"
2016-08-21 00:10:08 -05:00
Scott Lahteine
01d4703429
PREVENT_DANGEROUS_EXTRUDE => PREVENT_COLD_EXTRUSION
...
Also improve the documentation of this and related options, and set
EXTRUDE_MINTEMP to 170 everywhere.
2016-08-20 23:35:27 -05:00
Scott Lahteine
374f8d2014
dropsegments => MIN_SEGMENTS_FOR_MOVE
2016-08-20 18:52:15 -05:00
Scott Lahteine
628dcbc764
extruder_multiplier => flow_percentage
2016-08-18 22:13:47 -05:00
Scott Lahteine
b73203a0b7
Move some includes around to uncover missing deps
2016-08-02 19:37:46 -07:00
Scott Lahteine
d8945e8464
Fix Z_HEAD index for COREYZ
2016-08-02 15:05:17 -07:00
Scott Lahteine
f83369b79c
Update refresh_positioning - no need for obj ref
2016-07-31 18:01:13 -07:00
Scott Lahteine
844a4e799e
Account for DELTA in Planner::refresh_positioning
2016-07-29 18:41:11 -07:00
Scott Lahteine
753283e020
inverse_second => inverse_mm_s
2016-07-28 16:35:18 -07:00
Scott Lahteine
83e1d90ca3
Undo errant optimization of block->millimeters
2016-07-28 16:26:52 -07:00
Scott Lahteine
169c21b477
Merge pull request #4402 from thinkyhead/rc_consistent_positioning
...
Account for coordinate space offsets
2016-07-24 19:23:20 -07:00
Scott Lahteine
d8e5af6834
Use RAW_POSITION for MBL in planner.set_position_mm
2016-07-24 17:20:36 -07:00
Scott Lahteine
d8f2876753
Replace some float division with multiplication
2016-07-24 13:27:50 -07:00
Scott Lahteine
ddde785b37
Code formatting in planner.cpp
2016-07-24 13:27:50 -07:00
Scott Lahteine
f8b5749235
Replace division in planner with multiplication
2016-07-24 13:27:49 -07:00
Scott Lahteine
b921f6b69d
Optimize calculation of block->millimeters for DELTA
2016-07-24 13:27:49 -07:00
Scott Lahteine
3e2b3353b0
Fix axis indices for COREYZ
2016-07-23 19:02:14 -07:00
Scott Lahteine
4e67a85a5d
Macros to loop over axes
2016-07-23 13:09:28 -07:00
Scott Lahteine
4226f56f53
Revert the planner acceleration logic somewhat
2016-07-20 19:19:47 -07:00
Scott Lahteine
209f5c03d0
Fewer temporary vars in planner accel limit
2016-07-20 18:29:29 -07:00
Scott Lahteine
9f9fe043ba
Apply sq macro throughout
2016-07-17 13:29:41 -07:00
Scott Lahteine
93ba5bddd7
Append units to feedrate variables
2016-07-17 13:29:41 -07:00
Scott Lahteine
05da02f0a2
Implement MIXING_EXTRUDER and SWITCHING_EXTRUDER
2016-07-17 10:53:10 -07:00
Scott Lahteine
0554b65d22
Merge pull request #4284 from thinkyhead/rc_serial_ln_macros
...
Sled-probe sanity fix, conditionals for remaining types of leveling
2016-07-12 16:36:33 -07:00
Scott Lahteine
e974ac63ef
Init matrix in planner.init
2016-07-12 15:55:27 -07:00
esenapaj
58177a1602
Suppress warnings
2016-07-12 08:22:24 +09:00
João Brázio
664232140d
Fixes somes compiler warnings
2016-06-23 03:12:55 +01:00
Scott Lahteine
ef3bef6b9e
Fix feedrate in gcode_T (max_feedrate is mm/s)
2016-06-16 16:03:14 -07:00
Scott Lahteine
6d62a4ffc8
Patch LIN_ADVANCE for style and forward-compatibility
2016-06-09 21:03:27 -07:00
Sebastianv650
fb8e880734
Add LIN_ADVANCE
2016-06-09 21:03:27 -07:00
Scott Lahteine
72c6f2923f
axis_steps_per_unit => axis_steps_per_mm
2016-06-09 17:04:51 -07:00
Scott Lahteine
80ab749563
Rename acceleration locals for clarity
2016-06-09 17:04:51 -07:00
Scott Lahteine
3b08eb1eeb
acceleration_st
=> acceleration_steps_per_s2
2016-06-09 17:04:51 -07:00
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`
2016-06-09 17:04:50 -07:00
Reid Rankin
16212432c9
G20/21 and M149 support, and code_value() refactor
...
This is an update of MarlinDev PR #196 .
G20/21: support for switching input units between millimeters and
inches.
M149: support for changing input temperature units.
In support of these changes, code_value() and code_value_short() are
replaced with an array of functions which handle converting to the
proper types and/or units.
2016-06-08 16:51:10 -07:00
Scott Lahteine
49ecaf774d
Rename some auto/locals to avoid name conflict
2016-06-07 15:38:45 -07:00
Scott Lahteine
c2362c1b3c
Apply Marlin coding standards to MBL class
2016-06-03 21:43:32 -07:00
Edward Patel
c06de0f097
MBL: Added keeping MBL active when homing single axises for #3750
2016-06-03 21:42:29 -07:00
Scott Lahteine
381bc6f0b0
set_position => set_position_mm
2016-06-02 17:16:19 -07:00
Scott Lahteine
470d5ac09f
Apply static to Planner class
2016-05-30 16:22:41 -07:00
Scott Lahteine
5172d4ba40
COREYZ stepper, planner, endstop, babysteps
2016-05-23 13:58:40 -07:00
esenapaj
1a97442d19
Follow-up the PR #3643(Temperature singleton)
...
Follow-up the PR #3643(Temperature singleton)
・Change from fanSpeedSoftPwm[0] to thermalManager.fanSpeedSoftPwm[0] in planner.cpp
It fix compilation error when FAN_SOFT_PWM is enabled.
・Remove declaration of setExtruderAutoFanState() in temperature.h
Because that function was abolished.
・Change from babystepsTodo to thermalManager.babystepsTodo in ultralcd.cpp
It fix compilation errors when BABYSTEPPING is enabled.
2016-05-05 18:01:39 +09:00
Scott Lahteine
084f6b5b44
Temperature singleton class
2016-05-04 19:42:12 -07:00
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
2016-05-03 17:07:37 -07:00
Scott Lahteine
7fd0243048
Cleanup, debug strings in Planner::adjusted_position
2016-05-02 20:11:27 -07:00
Scott Lahteine
96f51f400f
Planner singleton class
2016-04-30 17:26:50 -07:00
Scott Lahteine
5e4e535ce8
Stepper and Endstops as singleton objects
2016-04-30 17:26:50 -07:00
Scott Lahteine
e38baaa23e
Fix an acceleration anomaly by making locals signed
2016-04-25 14:17:20 -07:00
Scott Lahteine
fce1e843b9
Patch steps rate comment in trapezoid function
2016-04-24 19:38:58 -07:00
Scott Lahteine
a4062a47ac
Rename baricuda variables
2016-04-19 19:43:38 -07:00
Scott Lahteine
c5a2ce4366
Merge pull request #3446 from thinkyhead/rc_fixup_M206_and_mesh
...
Fix home_offset handling and account for it in G29
2016-04-11 16:49:01 -07:00
Scott Lahteine
b1bb1c7989
Merge pull request #3466 from thinkyhead/rc_look_for_leveling_bug
...
Add CORE support to st_set_position and plan_set_position
2016-04-11 16:45:00 -07:00
Scott Lahteine
e087a99a10
Some cleanup of st_get_pos functions
2016-04-11 15:13:42 -07:00