1
0
mirror of https://github.com/MarlinFirmware/Marlin.git synced 2024-11-29 23:07:42 +00:00

BEZIER_JERK_CONTROL => S_CURVE_ACCELERATION

This commit is contained in:
Scott Lahteine 2018-05-26 01:58:06 -05:00
parent 9186123676
commit 949ee7afe9
64 changed files with 144 additions and 200 deletions

View File

@ -118,7 +118,7 @@ script:
# Add a Sled Z Probe, use UBL Cartesian moves, use Japanese language
#
- opt_set LANGUAGE kana_utf8
- opt_enable Z_PROBE_SLED SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE BEZIER_JERK_CONTROL
- opt_enable Z_PROBE_SLED SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE S_CURVE_ACCELERATION
- opt_disable SEGMENT_LEVELED_MOVES
- opt_enable_adv BABYSTEP_ZPROBE_OFFSET DOUBLECLICK_FOR_Z_BABYSTEPPING
- build_marlin

View File

@ -612,15 +612,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -273,6 +273,8 @@
#error "FILAMENT_CHANGE_LOAD_LENGTH is now FILAMENT_CHANGE_FAST_LOAD_LENGTH. Please update your configuration."
#elif ENABLED(LEVEL_BED_CORNERS) && !defined(LEVEL_CORNERS_INSET)
#error "LEVEL_BED_CORNERS requires a LEVEL_CORNERS_INSET value. Please update your Configuration.h."
#elif defined(BEZIER_JERK_CONTROL)
#error "BEZIER_JERK_CONTROL is now S_CURVE_ACCELERATION. Please update your configuration."
#endif
#define BOARD_MKS_13 -47

View File

@ -637,15 +637,14 @@
#define DEFAULT_EJERK 10.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -617,15 +617,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -665,15 +665,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -624,15 +624,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -617,15 +617,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -617,15 +617,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -605,15 +605,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -618,15 +618,14 @@
#define DEFAULT_EJERK 1.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -605,15 +605,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -616,15 +616,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -627,15 +627,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -617,15 +617,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -636,15 +636,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -627,15 +627,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -621,15 +621,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -621,15 +621,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -627,15 +627,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -599,15 +599,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -599,15 +599,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -623,15 +623,14 @@
#define DEFAULT_EJERK 4.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -632,15 +632,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -617,15 +617,14 @@
#define DEFAULT_EJERK 4.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -632,15 +632,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -632,15 +632,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -617,15 +617,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -617,15 +617,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -621,15 +621,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -629,15 +629,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -637,15 +637,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -621,15 +621,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -621,15 +621,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -657,15 +657,14 @@ Black rubber belt(MXL), 18 - tooth aluminium pulley : 87.489 step per mm (Huxley
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -617,15 +617,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -615,15 +615,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -630,15 +630,14 @@
#define DEFAULT_EJERK 3.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -648,15 +648,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -668,15 +668,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -617,15 +617,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -617,15 +617,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -628,15 +628,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -646,15 +646,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -617,15 +617,14 @@
#define DEFAULT_EJERK 20.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -617,15 +617,14 @@
#define DEFAULT_EJERK 20.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -627,15 +627,14 @@
#define DEFAULT_EJERK 1.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -617,15 +617,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -699,15 +699,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -699,15 +699,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -699,15 +699,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -704,15 +704,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -689,15 +689,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -689,15 +689,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -682,15 +682,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -692,15 +692,14 @@
#define DEFAULT_EJERK 20.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -630,15 +630,14 @@
#define DEFAULT_EJERK 4.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -620,15 +620,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -612,15 +612,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -622,15 +622,14 @@
#define DEFAULT_EJERK 5.0
/**
* Realtime Jerk Control
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
* Because this is computationally-intensive, a 32-bit MCU is required.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define BEZIER_JERK_CONTROL
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z Probe Options =============================

View File

@ -221,7 +221,7 @@ void Planner::init() {
delay_before_delivering = 0;
}
#if ENABLED(BEZIER_JERK_CONTROL)
#if ENABLED(S_CURVE_ACCELERATION)
// This routine, for AVR, returns 0x1000000 / d, but trying to get the inverse as
// fast as possible. A fast converging iterative Newton-Raphson method is able to
@ -726,7 +726,7 @@ void Planner::init() {
// Return the result
return r11 | (uint16_t(r12) << 8) | (uint32_t(r13) << 16);
}
#endif // BEZIER_JERK_CONTROL
#endif // S_CURVE_ACCELERATION
#define MINIMAL_STEP_RATE 120
@ -743,7 +743,7 @@ void Planner::calculate_trapezoid_for_block(block_t* const block, const float &e
NOLESS(initial_rate, uint32_t(MINIMAL_STEP_RATE));
NOLESS(final_rate, uint32_t(MINIMAL_STEP_RATE));
#if ENABLED(BEZIER_JERK_CONTROL)
#if ENABLED(S_CURVE_ACCELERATION)
uint32_t cruise_rate = initial_rate;
#endif
@ -764,12 +764,12 @@ void Planner::calculate_trapezoid_for_block(block_t* const block, const float &e
accelerate_steps = MIN(uint32_t(MAX(accelerate_steps_float, 0)), block->step_event_count);
plateau_steps = 0;
#if ENABLED(BEZIER_JERK_CONTROL)
#if ENABLED(S_CURVE_ACCELERATION)
// We won't reach the cruising rate. Let's calculate the speed we will reach
cruise_rate = final_speed(initial_rate, accel, accelerate_steps);
#endif
}
#if ENABLED(BEZIER_JERK_CONTROL)
#if ENABLED(S_CURVE_ACCELERATION)
else // We have some plateau time, so the cruise rate will be the nominal rate
cruise_rate = block->nominal_rate;
#endif
@ -777,7 +777,7 @@ void Planner::calculate_trapezoid_for_block(block_t* const block, const float &e
// block->accelerate_until = accelerate_steps;
// block->decelerate_after = accelerate_steps+plateau_steps;
#if ENABLED(BEZIER_JERK_CONTROL)
#if ENABLED(S_CURVE_ACCELERATION)
// Jerk controlled speed requires to express speed versus time, NOT steps
uint32_t acceleration_time = ((float)(cruise_rate - initial_rate) / accel) * (HAL_STEPPER_TIMER_RATE),
deceleration_time = ((float)(cruise_rate - final_rate) / accel) * (HAL_STEPPER_TIMER_RATE);
@ -797,7 +797,7 @@ void Planner::calculate_trapezoid_for_block(block_t* const block, const float &e
block->accelerate_until = accelerate_steps;
block->decelerate_after = accelerate_steps + plateau_steps;
block->initial_rate = initial_rate;
#if ENABLED(BEZIER_JERK_CONTROL)
#if ENABLED(S_CURVE_ACCELERATION)
block->acceleration_time = acceleration_time;
block->deceleration_time = deceleration_time;
block->acceleration_time_inverse = acceleration_time_inverse;
@ -2118,7 +2118,7 @@ bool Planner::_populate_block(block_t * const block, bool split_move,
}
block->acceleration_steps_per_s2 = accel;
block->acceleration = accel / steps_per_mm;
#if DISABLED(BEZIER_JERK_CONTROL)
#if DISABLED(S_CURVE_ACCELERATION)
block->acceleration_rate = (uint32_t)(accel * (4096.0 * 4096.0 / (HAL_STEPPER_TIMER_RATE)));
#endif
#if ENABLED(LIN_ADVANCE)

View File

@ -110,11 +110,11 @@ typedef struct {
uint32_t accelerate_until, // The index of the step event on which to stop acceleration
decelerate_after; // The index of the step event on which to start decelerating
#if ENABLED(BEZIER_JERK_CONTROL)
uint32_t cruise_rate; // The actual cruise rate to use, between end of the acceleration phase and start of deceleration phase
uint32_t acceleration_time, // Acceleration time and deceleration time in STEP timer counts
deceleration_time;
uint32_t acceleration_time_inverse, // Inverse of acceleration and deceleration periods, expressed as integer. Scale depends on CPU being used
#if ENABLED(S_CURVE_ACCELERATION)
uint32_t cruise_rate, // The actual cruise rate to use, between end of the acceleration phase and start of deceleration phase
acceleration_time, // Acceleration time and deceleration time in STEP timer counts
deceleration_time,
acceleration_time_inverse, // Inverse of acceleration and deceleration periods, expressed as integer. Scale depends on CPU being used
deceleration_time_inverse;
#else
uint32_t acceleration_rate; // The acceleration rate used for acceleration calculation
@ -769,7 +769,7 @@ class Planner {
return target_velocity_sqr - 2 * accel * distance;
}
#if ENABLED(BEZIER_JERK_CONTROL)
#if ENABLED(S_CURVE_ACCELERATION)
/**
* Calculate the speed reached given initial speed, acceleration and distance
*/

View File

@ -107,7 +107,7 @@ int32_t Stepper::counter_X = 0,
uint32_t Stepper::step_events_completed = 0; // The number of step events executed in the current block
#if ENABLED(BEZIER_JERK_CONTROL)
#if ENABLED(S_CURVE_ACCELERATION)
int32_t __attribute__((used)) Stepper::bezier_A __asm__("bezier_A"); // A coefficient in Bézier speed curve with alias for assembler
int32_t __attribute__((used)) Stepper::bezier_B __asm__("bezier_B"); // B coefficient in Bézier speed curve with alias for assembler
int32_t __attribute__((used)) Stepper::bezier_C __asm__("bezier_C"); // C coefficient in Bézier speed curve with alias for assembler
@ -155,7 +155,7 @@ volatile signed char Stepper::count_direction[NUM_AXIS] = { 1, 1, 1, 1 };
uint32_t Stepper::ticks_nominal;
uint8_t Stepper::step_loops, Stepper::step_loops_nominal;
#if DISABLED(BEZIER_JERK_CONTROL)
#if DISABLED(S_CURVE_ACCELERATION)
uint32_t Stepper::acc_step_rate; // needed for deceleration start point
#endif
@ -367,7 +367,7 @@ void Stepper::set_directions() {
#endif // !LIN_ADVANCE
}
#if ENABLED(BEZIER_JERK_CONTROL)
#if ENABLED(S_CURVE_ACCELERATION)
/**
* We are using a quintic (fifth-degree) Bézier polynomial for the velocity curve.
* This gives us a "linear pop" velocity curve; with pop being the sixth derivative of position:
@ -1091,7 +1091,7 @@ void Stepper::set_directions() {
return (r2 | (uint16_t(r3) << 8)) | (uint32_t(r4) << 16);
}
#endif // BEZIER_JERK_CONTROL
#endif // S_CURVE_ACCELERATION
/**
* Stepper Driver Interrupt
@ -1460,7 +1460,7 @@ uint32_t Stepper::stepper_block_phase_isr() {
// Calculate new timer value
if (step_events_completed <= current_block->accelerate_until) {
#if ENABLED(BEZIER_JERK_CONTROL)
#if ENABLED(S_CURVE_ACCELERATION)
// Get the next speed to use (Jerk limited!)
uint32_t acc_step_rate =
acceleration_time < current_block->acceleration_time
@ -1491,7 +1491,7 @@ uint32_t Stepper::stepper_block_phase_isr() {
else if (step_events_completed > current_block->decelerate_after) {
uint32_t step_rate;
#if ENABLED(BEZIER_JERK_CONTROL)
#if ENABLED(S_CURVE_ACCELERATION)
// If this is the 1st time we process the 2nd half of the trapezoid...
if (!bezier_2nd_half) {
// Initialize the Bézier speed curve
@ -1689,12 +1689,12 @@ uint32_t Stepper::stepper_block_phase_isr() {
// make a note of the number of step loops required at nominal speed
step_loops_nominal = step_loops;
#if DISABLED(BEZIER_JERK_CONTROL)
#if DISABLED(S_CURVE_ACCELERATION)
// Set as deceleration point the initial rate of the block
acc_step_rate = current_block->initial_rate;
#endif
#if ENABLED(BEZIER_JERK_CONTROL)
#if ENABLED(S_CURVE_ACCELERATION)
// Initialize the Bézier speed curve
_calc_bezier_curve_coeffs(current_block->initial_rate, current_block->cruise_rate, current_block->acceleration_time_inverse);

View File

@ -117,7 +117,7 @@ class Stepper {
static int32_t counter_X, counter_Y, counter_Z, counter_E;
static uint32_t step_events_completed; // The number of step events executed in the current block
#if ENABLED(BEZIER_JERK_CONTROL)
#if ENABLED(S_CURVE_ACCELERATION)
static int32_t bezier_A, // A coefficient in Bézier speed curve
bezier_B, // B coefficient in Bézier speed curve
bezier_C; // C coefficient in Bézier speed curve
@ -149,7 +149,7 @@ class Stepper {
static uint8_t step_loops, step_loops_nominal;
static uint32_t ticks_nominal;
#if DISABLED(BEZIER_JERK_CONTROL)
#if DISABLED(S_CURVE_ACCELERATION)
static uint32_t acc_step_rate; // needed for deceleration start point
#endif
@ -328,7 +328,7 @@ class Stepper {
return timer;
}
#if ENABLED(BEZIER_JERK_CONTROL)
#if ENABLED(S_CURVE_ACCELERATION)
static void _calc_bezier_curve_coeffs(const int32_t v0, const int32_t v1, const uint32_t av);
static int32_t _eval_bezier_curve(const uint32_t curr_step);
#endif