You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _development/code_structure.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -225,7 +225,7 @@ See [the Input Shaping page](/docs/features/input_shaping.html) for details on t
225
225
### Fixed-Time Motion
226
226
Marlin 2.1.3 introduces Fixed-Time Motion as an alternative method to get more precise step and direction timing along with its own Linear Advance and Input Shaping handlers. Fixed-Time Motion also uses the Stepper ISR to do regular stepping, but it also has a periodic `idle` task to handle state changes.
227
227
228
-
Since Fixed-Time motion requires significantly more resources than the standard motion system to pre-calculate its precise pulse timings, it requires a faster processor and more RAM.
228
+
Since Fixed-Time Motion requires significantly more resources than the standard motion system to pre-calculate its precise pulse timings, it requires a faster processor and more RAM. However, FTM is also very optimized, so it requires fewer resources than you might expect, and should run well on leaner ARM boards.
229
229
230
230
As this system matures it will likely become default for fast 32-bit boards, but the original motion system will be preserved for slower processors and for simpler motion systems that don't need the most precise timing.
Copy file name to clipboardExpand all lines: _gcode/M493.md
+79-40Lines changed: 79 additions & 40 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,23 +10,50 @@ requires: FT_MOTION
10
10
eeprom: true
11
11
12
12
codes: [ M493 ]
13
-
related: [ M593 ]
13
+
related: [ M494, M593 ]
14
14
15
15
parameters:
16
16
17
17
- tag: S
18
18
optional: true
19
-
description: Set Fixed-Time motion mode OFF (0) / ON (1).
19
+
description: Set Fixed-Time Motion mode enabled / disabled.
20
20
values:
21
-
- tag: bool
21
+
- tag: 0
22
+
description: Disabled
23
+
- tag: 1
24
+
description: Enabled
25
+
26
+
- tag: T
27
+
optional: true
28
+
description: Set the state for Axis Synchronization.
29
+
values:
30
+
- tag: 0
31
+
description: Disabled
32
+
- tag: 1
33
+
description: Enabled
34
+
35
+
- tag: P
36
+
optional: true
37
+
description: Enable/disable Linear Advance aka Pressure Advance.
38
+
values:
39
+
- type: bool
40
+
tag: state
22
41
23
-
- tag: X|Y
42
+
- tag: K
24
43
optional: true
25
-
description: Set the vibration compensator [input shaper] mode for X / Y axis. Note.
26
-
Users and slicers must remember to set the mode for both axes!
44
+
description: Set the gain for Linear Advance aka Pressure Advance.
45
+
values:
46
+
- type: float
47
+
tag: gain
48
+
49
+
- tag: C
50
+
optional: true
51
+
description: |
52
+
Set the vibration compensator [input shaper] mode for the specified axes.<br/>
53
+
NOTE: Users and slicers must remember to set the mode for both X and Y!
27
54
values:
28
55
- tag: 0
29
-
description: NONE (No input shaper)
56
+
description: No Input Shaper
30
57
- tag: 1
31
58
description: ZV (Zero Vibration)
32
59
- tag: 2
@@ -44,23 +71,9 @@ parameters:
44
71
- tag: 8
45
72
description: MZV (Mass-based Zero Vibration)
46
73
47
-
- tag: P
48
-
optional: true
49
-
description: Enable/disable Linear Advance.
50
-
values:
51
-
- type: bool
52
-
tag: state
53
-
54
-
- tag: K
55
-
optional: true
56
-
description: Set the gain for Linear Advance.
57
-
values:
58
-
- type: float
59
-
tag: gain
60
-
61
74
- tag: D
62
75
optional: true
63
-
description: Set the Dynamic Frequency mode.
76
+
description: Set the Dynamic Frequency mode. (Available when there is a Z axis and/or Extruder to follow.)
64
77
values:
65
78
- tag: 0
66
79
description: Disabled
@@ -71,39 +84,67 @@ parameters:
71
84
72
85
- tag: A
73
86
optional: true
74
-
description: Set the Base Frequency for Input Shaping on the X axis.
87
+
description: Set the Base Frequency for Input Shaping on the specified axes.
75
88
values:
76
89
- type: float
77
90
tag: Hz
78
91
79
-
- tag: B
92
+
- tag: F
80
93
optional: true
81
-
description: Set the Base Frequency for Input Shaping on the Y axis.
94
+
description: |
95
+
Set the Frequency Scaling factor for Input Shaping on the specified axes.<br/>
96
+
(Available when there is a Z axis and/or Extruder to follow.)
82
97
values:
83
98
- type: float
84
-
tag: Hz
99
+
tag: scale
85
100
86
-
- tag: F
101
+
- tag: I
87
102
optional: true
88
-
description: Set the Frequency Scaling factor for Input Shaping on the X axis.
103
+
description: Set the Zeta for Input Shaping on the specified axes.
89
104
values:
90
105
- type: float
91
-
tag: scale
106
+
tag: zeta
107
+
range: [ 0.01, 1.0 ]
92
108
93
-
- tag: H
109
+
- tag: Q
94
110
optional: true
95
-
description: Set the Frequency Scaling factor for Input Shaping on the Y axis.
111
+
description: Set the Vibration Tolerance for Input Shaping on the specified axes.
96
112
values:
97
113
- type: float
98
-
tag: scale
114
+
tag: vtol
115
+
range: [ 0.0, 1.0 ]
116
+
117
+
- tag: X
118
+
optional: true
119
+
description: Flag to apply `A`,`C`,`F`,`I`,`Q` to the X axis. (If no axis parameters are given then XY is assumed.)
120
+
values:
121
+
- type: flag
122
+
123
+
- tag: Y
124
+
optional: true
125
+
description: Flag to apply `A`,`C`,`F`,`I`,`Q` to the Y axis. (If no axis parameters are given then XY is assumed.)
126
+
values:
127
+
- type: flag
128
+
129
+
- tag: Z
130
+
optional: true
131
+
description: Flag to apply `A`,`C`,`F`,`I`,`Q` to the Z axis. (If no axis parameters are given then XY is assumed.)
132
+
values:
133
+
- type: flag
134
+
135
+
- tag: E
136
+
optional: true
137
+
description: Flag to apply `A`,`C`,`F`,`I`,`Q` to the E axis. (If no axis parameters are given then XY is assumed.)
138
+
values:
139
+
- type: flag
99
140
100
141
example:
101
142
102
-
- pre: Enable Fixed-Time motion with Linear Advance gain 0.22
143
+
- pre: Enable Fixed-Time Motion with Linear Advance gain 0.22
103
144
code: M493 S1 P1 K0.22
104
145
105
-
- pre: Enable Fixed-Time motion with ZVD Input Shaping
106
-
code: M493 S1 X2 Y2 A37 B37 D0 P1 K0.18
146
+
- pre: Enable Fixed-Time Motion with ZVD Input Shaping on X and Y
147
+
code: M493 S1 XY C2 A37 D0 P1 K0.18
107
148
post: This also sets the IS Frequency to 37Hz for X and Y, disables Dynamic Frequency mode, and enables Linear Advance with a gain of 0.18.
108
149
109
150
---
@@ -124,21 +165,19 @@ Use a slicer that provides custom G-code macros for layer change. For example yo
124
165
125
166
- In the the Starting G-code enable Fixed-Time Motion with something like:
126
167
```
127
-
M493 S1 X2 Y2 D0 ; Enable ZVD Input Shaping
168
+
M493 S1 XY C2 D0 ; Enable ZVD Input Shaping
128
169
```
129
170
130
171
- In *Kiri:Moto* enable **Infill > Fill Type > Vase**. Then add the following under **Setup > Machine > Gcode Macros > Layer** to run a test range of 15Hz to 60Hz:
- In *Prusa Slicer* you'll enable **Spiral vase**. Then add the following to your **Printer Settings > After layer change G-code** to run a test range of 15Hz to 60Hz:
- In *Cura*, you'll first need to add the .py file in [this repository](//www.github.com/dsdanielko/cura-ringing-tower-script/) to your Cura "scripts" folder. Reopen Cura, enable **Spiralize Outer Contour** and set **Minimum Layer Time** to 0. Then go to **Extensions > Post Processing > Modify G-Code**. Click **Add a script** in the window that opens and use the dropdown menu to find **Input Shaping**. Make sure the **Motion planning type** dropdown is set to **M493**. The default frequency settings will let you test a range of 15Hz to 60Hz.
0 commit comments