<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://amberspyglass.co.uk/w/index.php?action=history&amp;feed=atom&amp;title=Steps_per_mm</id>
	<title>Steps per mm - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://amberspyglass.co.uk/w/index.php?action=history&amp;feed=atom&amp;title=Steps_per_mm"/>
	<link rel="alternate" type="text/html" href="http://amberspyglass.co.uk/w/index.php?title=Steps_per_mm&amp;action=history"/>
	<updated>2026-07-04T13:31:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.0</generator>
	<entry>
		<id>http://amberspyglass.co.uk/w/index.php?title=Steps_per_mm&amp;diff=1004&amp;oldid=prev</id>
		<title>Admin at 01:49, 24 February 2021</title>
		<link rel="alternate" type="text/html" href="http://amberspyglass.co.uk/w/index.php?title=Steps_per_mm&amp;diff=1004&amp;oldid=prev"/>
		<updated>2021-02-24T01:49:53Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 01:49, 24 February 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot; &gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To move your motors, GRBL (running on the Arduino) generates electrical pulses on the &amp;quot;STEP&amp;quot; input of the drivers. To move one millimetre, it will generate as many pulses as your ''steps per mm'' setting. So how many pulses per mm?&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To move your motors, GRBL (running on the Arduino) generates electrical pulses on the &amp;quot;STEP&amp;quot; input of the drivers. To move one millimetre, it will generate as many pulses as your ''steps per mm'' setting. So how many pulses per mm?&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In the old days, each pulse would turn the motor one step. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;It &lt;/del&gt;did this by flipping the direction of the current in one of &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;its &lt;/del&gt;two windings; the next pulse would flip the polarity of the other winding, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;then &lt;/del&gt;the first one again, and so on. The order of the polarity flips controls the direction of rotation. Common step sizes are 1.8° (200 steps per revolution) and 0.9° (400 steps per revolution). That means there are 200 (or 400) equally spaced positions at which the shaft of your motor can sit, and each step pulse tells the motor to turn to the next position.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In the old days, each pulse would turn the motor one step. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;The motor driver &lt;/ins&gt;did this by flipping the direction of the current in one of &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the &lt;/ins&gt;two windings &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;of the motor&lt;/ins&gt;; the next pulse would flip the polarity of the other winding, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the next one would flip &lt;/ins&gt;the first one again, and so on. The order of the polarity flips controls the direction of rotation. Common step sizes are 1.8° (200 steps per revolution) and 0.9° (400 steps per revolution). That means there are 200 (or 400) equally spaced positions at which the shaft of your motor can sit, and each step pulse tells the motor to turn to the next position.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Modern drivers, however, support ''microstepping''. This feature gives the driver finer control over the winding currents, beyond full-on and full-on-backwards. By using this finer control, a microstepping driver can position a hybrid stepper motor ''between'' steps. For instance, 8× microstepping (also written 1/8) divides each step into 8 equal intervals. Each pulse causes the motor to move 1/8 of a full step, so a 200 step-per-revolution motor takes 1600 pulses (microsteps) for a complete revolution. Microstepping dramatically increases the positioning resolution, but it does not increase the absolute positioning accuracy against a load. A 1.8°-per-step motor at 8× microstepping is not the same as a 0.9°-per-step motor at 4× microstepping, even though both need 1600 pulses per revolution: assuming the same torque rating and the same load, the latter has half the error (deviation from the commanded position). In other words, microstepping increases precision, but not accuracy. Microstepping does not change the torque the motor can generate, but it makes motion smoother and quieter, which is good even if the extra resolution is not needed. There is very little benefit beyond 16×, because the absolute positioning error due to load and ''sticktion'' makes the finer positioning resolution irrelevant. That said, drivers exist that can do 256× microstepping, or more, but there are very few applications where that is useful.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Modern drivers, however, support ''microstepping''. This feature gives the driver finer control over the winding currents, beyond full-on and full-on-backwards. By using this finer control, a microstepping driver can position a hybrid stepper motor ''between'' steps. For instance, 8× microstepping (also written 1/8) divides each step into 8 equal intervals. Each pulse causes the motor to move 1/8 of a full step, so a 200 step-per-revolution motor takes 1600 pulses (microsteps) for a complete revolution. Microstepping dramatically increases the positioning resolution, but it does not increase the absolute positioning accuracy against a load. A 1.8°-per-step motor at 8× microstepping is not the same as a 0.9°-per-step motor at 4× microstepping, even though both need 1600 pulses per revolution: assuming the same torque rating and the same load, the latter has half the error (deviation from the commanded position). In other words, microstepping increases precision, but not accuracy. Microstepping does not change the torque the motor can generate, but it makes motion smoother and quieter, which is good even if the extra resolution is not needed. There is very little benefit beyond 16×, because the absolute positioning error due to load and ''sticktion'' makes the finer positioning resolution irrelevant. That said, drivers exist that can do 256× microstepping, or more, but there are very few applications where that is useful.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l13&quot; &gt;Line 13:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;As an example, assume 400 step-per-revolution (0.9°-per-step) motors on all axes, with X and Y set to 16× microstepping and the Z axis driver to 4× microstepping.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;As an example, assume 400 step-per-revolution (0.9°-per-step) motors on all axes, with X and Y set to 16× microstepping and the Z axis driver to 4× microstepping.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you have a standard eShapeoko of recent vintage, your X and Y &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;axis &lt;/del&gt;pulleys &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;have 20 teeth&lt;/del&gt;. The pitch of GT2 belt is 2 mm (the ''2'' in the name), so one turn of that pulley moves the carriage 40 mm. Your motor driver needs 16 × 400 = 6400 pulses per turn. So, to advance 1 mm, it needs 6400 / 40 = 160 pulses &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;per mm&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you have a standard eShapeoko of recent vintage, your X and Y &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;axes are belt-driven, with 20-tooth GT2 &lt;/ins&gt;pulleys. The pitch of GT2 belt is 2 mm (the ''2'' in the name), so one turn of that pulley moves the carriage 40 mm. Your motor driver needs 16 × 400 = 6400 pulses per turn. So, to advance 1 mm, it needs 6400 / 40 = 160 pulses.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;On the Z axis, the stock eShapeoko has a Tr 8 × 2 screw. That&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'s &lt;/del&gt;a pitch of 2 mm (again, the ''2'' in the name)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;. One &lt;/del&gt;turn of the Z motor moves that axis only 2 mm. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The &lt;/del&gt;Z motor driver needs 4 × 400 = 1600 pulses per turn, which gives 1600 / 2 = 800 pulses per mm.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;On the Z axis, the stock eShapeoko has a Tr 8 × 2 screw. That &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;has &lt;/ins&gt;a pitch of 2 mm (again, the ''2'' in the name)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, meaning that one &lt;/ins&gt;turn of the Z motor moves that axis only 2 mm. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;At 4× microstepping, the &lt;/ins&gt;Z motor driver needs 4 × 400 = 1600 pulses per turn, which gives 1600 / 2 = 800 pulses per mm.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In short:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In short:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://amberspyglass.co.uk/w/index.php?title=Steps_per_mm&amp;diff=1003&amp;oldid=prev</id>
		<title>Admin at 01:34, 24 February 2021</title>
		<link rel="alternate" type="text/html" href="http://amberspyglass.co.uk/w/index.php?title=Steps_per_mm&amp;diff=1003&amp;oldid=prev"/>
		<updated>2021-02-24T01:34:18Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 01:34, 24 February 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l36&quot; &gt;Line 36:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 36:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   gives:        GRBL setting:  800 pulses /    mm&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   gives:        GRBL setting:  800 pulses /    mm&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Please change these calculations to suit your settings. For the eShapeoko, 16× microstepping on X and Y and 4× on the Z is a good starting point. If you have 400 step-per-revolution motors, X and Y can also be 8×. On the Z axis, if you have a 200 step-per-revolution motor, or you need finer vertical positioning, 8× works well too. Too high microstepping limits the maximum speed (GRBL can generate only about 30,000 pulses per second) and does not improve anything.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Please change these calculations to suit your &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;microstep &lt;/ins&gt;settings&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, your motors, and the details of your drive method&lt;/ins&gt;. For the eShapeoko, 16× microstepping on X and Y and 4× on the Z is a good starting point. If you have 400 step-per-revolution motors, X and Y can also be 8×. On the Z axis, if you have a 200 step-per-revolution motor, or you need finer vertical positioning, 8× works well too. Too high microstepping limits the maximum speed (GRBL can generate only about 30,000 pulses per second) and does not improve anything.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://amberspyglass.co.uk/w/index.php?title=Steps_per_mm&amp;diff=1002&amp;oldid=prev</id>
		<title>Admin at 01:32, 24 February 2021</title>
		<link rel="alternate" type="text/html" href="http://amberspyglass.co.uk/w/index.php?title=Steps_per_mm&amp;diff=1002&amp;oldid=prev"/>
		<updated>2021-02-24T01:32:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 01:32, 24 February 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot; &gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In the old days, each pulse would turn the motor one step. It did this by flipping the direction of the current in one of its two windings; the next pulse would flip the polarity of the other winding, then the first one again, and so on. The order of the polarity flips controls the direction of rotation. Common step sizes are 1.8° (200 steps per revolution) and 0.9° (400 steps per revolution). That means there are 200 (or 400) equally spaced positions at which the shaft of your motor can sit, and each step pulse tells the motor to turn to the next position.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In the old days, each pulse would turn the motor one step. It did this by flipping the direction of the current in one of its two windings; the next pulse would flip the polarity of the other winding, then the first one again, and so on. The order of the polarity flips controls the direction of rotation. Common step sizes are 1.8° (200 steps per revolution) and 0.9° (400 steps per revolution). That means there are 200 (or 400) equally spaced positions at which the shaft of your motor can sit, and each step pulse tells the motor to turn to the next position.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Modern drivers, however, support ''microstepping''. This feature gives the driver finer control over the winding currents, beyond full-on and full-on-backwards. By using this finer control, a microstepping driver can position a hybrid stepper motor ''between'' steps. For instance, 8× microstepping (also written 1/8) divides each step into 8 equal intervals. Each pulse causes the motor to move 1/8 of a full step, so a 200 step-per-revolution motor takes 1600 pulses (microsteps) for a complete revolution. Microstepping dramatically increases the positioning resolution, but it does not increase the absolute positioning accuracy against a load. A 1.8°-per-step motor at 8× microstepping is not the same as a 0.9°-per-step motor at 4× microstepping, even though both need 1600 pulses per revolution: assuming the same torque rating and the same load, the latter has half the deviation. In other words, microstepping increases precision, but not accuracy. Microstepping does not change the torque the motor can generate, but it makes motion smoother and quieter, which is good even if the extra resolution is not needed. There is very little benefit beyond 16×, because the absolute positioning error due to load and ''sticktion'' makes the finer positioning resolution irrelevant. That said, drivers exist that can do 256× microstepping, or more, but there are very few applications where that is useful.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Modern drivers, however, support ''microstepping''. This feature gives the driver finer control over the winding currents, beyond full-on and full-on-backwards. By using this finer control, a microstepping driver can position a hybrid stepper motor ''between'' steps. For instance, 8× microstepping (also written 1/8) divides each step into 8 equal intervals. Each pulse causes the motor to move 1/8 of a full step, so a 200 step-per-revolution motor takes 1600 pulses (microsteps) for a complete revolution. Microstepping dramatically increases the positioning resolution, but it does not increase the absolute positioning accuracy against a load. A 1.8°-per-step motor at 8× microstepping is not the same as a 0.9°-per-step motor at 4× microstepping, even though both need 1600 pulses per revolution: assuming the same torque rating and the same load, the latter has half the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;error (&lt;/ins&gt;deviation &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;from the commanded position)&lt;/ins&gt;. In other words, microstepping increases precision, but not accuracy. Microstepping does not change the torque the motor can generate, but it makes motion smoother and quieter, which is good even if the extra resolution is not needed. There is very little benefit beyond 16×, because the absolute positioning error due to load and ''sticktion'' makes the finer positioning resolution irrelevant. That said, drivers exist that can do 256× microstepping, or more, but there are very few applications where that is useful.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The name ''steps per mm'' in GRBL is confusing because it actually refers to the microstep pulses, not full steps. It should really be ''pulses per mm'', or maybe ''microsteps per mm''. I'll use the former &amp;amp;mdash; it's clearer.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The name ''steps per mm'' in GRBL is confusing because it actually refers to the microstep pulses, not full steps. It should really be ''pulses per mm'', or maybe ''microsteps per mm''. I'll use the former &amp;amp;mdash; it's clearer.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l35&quot; &gt;Line 35:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 35:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   gives:        GRBL setting:  800 pulses /    mm&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   gives:        GRBL setting:  800 pulses /    mm&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Please change these calculations to suit your settings. For the eShapeoko, 16× microstepping on X and Y and 4× on the Z is a good starting point. If you have 400 step-per-revolution motors, X and Y can also be 8×. On the Z axis, if you have a 200 step-per-revolution motor, or you need finer vertical positioning, 8× works well too. Too high microstepping limits the maximum speed (GRBL can generate only about 30,000 pulses per second) and does not improve anything.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://amberspyglass.co.uk/w/index.php?title=Steps_per_mm&amp;diff=1001&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;When setting up GRBL, it requires a ''steps per mm'' value for each axis.  To move your motors, GRBL (running on the Arduino) generates electrical pulses on the &quot;STEP&quot; input o...&quot;</title>
		<link rel="alternate" type="text/html" href="http://amberspyglass.co.uk/w/index.php?title=Steps_per_mm&amp;diff=1001&amp;oldid=prev"/>
		<updated>2021-02-24T01:18:08Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;When setting up GRBL, it requires a &amp;#039;&amp;#039;steps per mm&amp;#039;&amp;#039; value for each axis.  To move your motors, GRBL (running on the Arduino) generates electrical pulses on the &amp;quot;STEP&amp;quot; input o...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;When setting up GRBL, it requires a ''steps per mm'' value for each axis.&lt;br /&gt;
&lt;br /&gt;
To move your motors, GRBL (running on the Arduino) generates electrical pulses on the &amp;quot;STEP&amp;quot; input of the drivers. To move one millimetre, it will generate as many pulses as your ''steps per mm'' setting. So how many pulses per mm?&lt;br /&gt;
&lt;br /&gt;
In the old days, each pulse would turn the motor one step. It did this by flipping the direction of the current in one of its two windings; the next pulse would flip the polarity of the other winding, then the first one again, and so on. The order of the polarity flips controls the direction of rotation. Common step sizes are 1.8° (200 steps per revolution) and 0.9° (400 steps per revolution). That means there are 200 (or 400) equally spaced positions at which the shaft of your motor can sit, and each step pulse tells the motor to turn to the next position.&lt;br /&gt;
&lt;br /&gt;
Modern drivers, however, support ''microstepping''. This feature gives the driver finer control over the winding currents, beyond full-on and full-on-backwards. By using this finer control, a microstepping driver can position a hybrid stepper motor ''between'' steps. For instance, 8× microstepping (also written 1/8) divides each step into 8 equal intervals. Each pulse causes the motor to move 1/8 of a full step, so a 200 step-per-revolution motor takes 1600 pulses (microsteps) for a complete revolution. Microstepping dramatically increases the positioning resolution, but it does not increase the absolute positioning accuracy against a load. A 1.8°-per-step motor at 8× microstepping is not the same as a 0.9°-per-step motor at 4× microstepping, even though both need 1600 pulses per revolution: assuming the same torque rating and the same load, the latter has half the deviation. In other words, microstepping increases precision, but not accuracy. Microstepping does not change the torque the motor can generate, but it makes motion smoother and quieter, which is good even if the extra resolution is not needed. There is very little benefit beyond 16×, because the absolute positioning error due to load and ''sticktion'' makes the finer positioning resolution irrelevant. That said, drivers exist that can do 256× microstepping, or more, but there are very few applications where that is useful.&lt;br /&gt;
&lt;br /&gt;
The name ''steps per mm'' in GRBL is confusing because it actually refers to the microstep pulses, not full steps. It should really be ''pulses per mm'', or maybe ''microsteps per mm''. I'll use the former &amp;amp;mdash; it's clearer.&lt;br /&gt;
&lt;br /&gt;
You would probably use the same type of motor and the same type of drive on the X and Y axes. That's not an hard requirement, but it makes sense. However, if your machine has two motors on the same axis (usually the Y), those two ''must'' be of the same type. Your Z axis is likely different; even if it's the same motor as the X and Y, the drive is likely different. So you need to calculate a ''steps per mm'' setting for the X and Y axes, and a different ''steps per mm'' setting for the Z axis.&lt;br /&gt;
&lt;br /&gt;
As an example, assume 400 step-per-revolution (0.9°-per-step) motors on all axes, with X and Y set to 16× microstepping and the Z axis driver to 4× microstepping.&lt;br /&gt;
&lt;br /&gt;
If you have a standard eShapeoko of recent vintage, your X and Y axis pulleys have 20 teeth. The pitch of GT2 belt is 2 mm (the ''2'' in the name), so one turn of that pulley moves the carriage 40 mm. Your motor driver needs 16 × 400 = 6400 pulses per turn. So, to advance 1 mm, it needs 6400 / 40 = 160 pulses per mm.&lt;br /&gt;
&lt;br /&gt;
On the Z axis, the stock eShapeoko has a Tr 8 × 2 screw. That's a pitch of 2 mm (again, the ''2'' in the name). One turn of the Z motor moves that axis only 2 mm. The Z motor driver needs 4 × 400 = 1600 pulses per turn, which gives 1600 / 2 = 800 pulses per mm.&lt;br /&gt;
&lt;br /&gt;
In short:&lt;br /&gt;
&lt;br /&gt;
==== X and Y axes ====&lt;br /&gt;
&lt;br /&gt;
  start with:  microstepping:   16 pulses /  step&lt;br /&gt;
  multiply by:         motor:  400  steps /   rev&lt;br /&gt;
  divide by:          pulley:   20  teeth /   rev&lt;br /&gt;
  divide by:      belt pitch:    2     mm / tooth&lt;br /&gt;
  &lt;br /&gt;
  gives:        GRBL setting:  160 pulses /    mm&lt;br /&gt;
&lt;br /&gt;
==== Z axis ====&lt;br /&gt;
&lt;br /&gt;
  start with:  microstepping:    4 pulses /  step&lt;br /&gt;
  multiply by:         motor:  400  steps /   rev&lt;br /&gt;
  divide by:     screw pitch:    2     mm /   rev&lt;br /&gt;
  &lt;br /&gt;
  gives:        GRBL setting:  800 pulses /    mm&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>