<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[SoliForum - 3D Printing Community — Hysteresis Fix]]></title>
		<link>https://www.soliforum.com/topic/313/hysteresis-fix/</link>
		<atom:link href="https://www.soliforum.com/feed/rss/topic/313/" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in Hysteresis Fix.]]></description>
		<lastBuildDate>Wed, 26 Jul 2017 07:34:22 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Hysteresis Fix]]></title>
			<link>https://www.soliforum.com/post/136832/#p136832</link>
			<description><![CDATA[<p>Thanks Jinja I&#039;ll try it</p>]]></description>
			<author><![CDATA[null@example.com (bukelefernando)]]></author>
			<pubDate>Wed, 26 Jul 2017 07:34:22 +0000</pubDate>
			<guid>https://www.soliforum.com/post/136832/#p136832</guid>
		</item>
		<item>
			<title><![CDATA[Re: Hysteresis Fix]]></title>
			<link>https://www.soliforum.com/post/125532/#p125532</link>
			<description><![CDATA[<p>Awesome! It works. I tested it with movments consisting of an circle (made of real arcs), a polygon and a real object so far. Thanks! <img src="https://www.soliforum.com/img/smilies/smile.png" width="15" height="15" alt="smile" /></p><p>I had done the following (Info: Github instructions are sufficient):<br />- I followed the steps described in the first post. <br />&nbsp; - Instead of the non-existing &quot;marlin.pde&quot; I changed &quot;marlin_main.cpp&quot;. <br />- I downloaded the files from <a href="https://github.com/mlaws/solidoodle2-marlin/pull/2/files">https://github.com/mlaws/solidoodle2-ma … ll/2/files</a> instead of the attached ones in the first post.<br />- In &quot;hysteresis.cpp&quot; I changed &quot;Hysteresis hysteresis( 0.0f, 0.0f, 0.0f, 0.0f );&quot; to &quot;Hysteresis hysteresis( DEFAULT_HYSTERESIS_MM );&quot; to be easier to access.<br />- I added &quot;M99 X0.15 Y0.15&quot; to the top of my gcode files.</p><p>I&#039;d like to add DEFAULT_HYSTERESIS_MM to the EEPROM, but its structure should not be touched.</p><p>The upper object is with backlash compensation.<br /><span class="postimg"><img src="http://soliforum.com/i/?AHBG7yN.jpg" alt="http://soliforum.com/i/?AHBG7yN.jpg" /></span></p><p>[Edit] </p><p>I now estimated my backlash by moving the carriage repeatedly back and forth with a small delay in between by a known distance via a gcode file and observed the carriage movement by a webcam at close range. No movement is observed below 0.075mm (6 steps) and movement can be observed above 0.0875mm (7 steps). So backlash is somewhere in between. So i have set 0.075 as values for the firmware.</p><p>By printing a 100mm circle with a backlash over-compensation of 10mm it can be observed, that the marlin backlash compensation is implemented as an approximation. It is not an ideal solution but it works very well. <img src="https://www.soliforum.com/img/smilies/smile.png" width="15" height="15" alt="smile" /></p><p>If I&#039;m not mistaken an ideal implementation of backlash compensation should be implemented _after_ the marlin planner and _before_ the stepper driving because the backlash compensation should not be influenced by acceleration calculations. Ideal backlash compensation does not move the carriage, it only tensions the belt so it is load-free thus the motor can be moved instantly at a high speed. I cannot say if such an approach (after marlin planner and before stepper driving) is possible to implement in marlin.</p><p>As an experiment I implemented backlash compensation in gcode via pairs of G1 (move) and G92 (set position) in python with the following idea:<br />G1 X1 E1<br />G1 X2 E2<br />&nbsp; G1 X1.8 ;backlash fix: move back by -0.2 with respect to current position<br />&nbsp; G92 X2 ;backlash fix: re-set current position to 2<br />G1 X1 E3<br />However, besides some bugs (layer shifts), additional artifacts (corners) were introduced. I assume the planner decelerated before the fix and thus introduced uneven extrusion. So I think altering gcode is not an option.</p>]]></description>
			<author><![CDATA[null@example.com (lukie80)]]></author>
			<pubDate>Wed, 27 Jul 2016 18:15:17 +0000</pubDate>
			<guid>https://www.soliforum.com/post/125532/#p125532</guid>
		</item>
		<item>
			<title><![CDATA[Re: Hysteresis Fix]]></title>
			<link>https://www.soliforum.com/post/109837/#p109837</link>
			<description><![CDATA[<p>Hmm.. I&#039;m more worried about x/y than z - trying to get it &quot;as good as practical&quot; without going nuts. Look at these parts, all printed with the same settings (over a year ago so I don&#039;t remember what the settings were) but radical difference in finish quality.</p><p><span class="postimg"><img src="http://soliforum.com/i/?dAZu5qE.jpg" alt="http://soliforum.com/i/?dAZu5qE.jpg" /></span></p>]]></description>
			<author><![CDATA[null@example.com (eflyguy)]]></author>
			<pubDate>Thu, 19 Nov 2015 14:35:29 +0000</pubDate>
			<guid>https://www.soliforum.com/post/109837/#p109837</guid>
		</item>
		<item>
			<title><![CDATA[Re: Hysteresis Fix]]></title>
			<link>https://www.soliforum.com/post/109798/#p109798</link>
			<description><![CDATA[<p>If you&#039;re trying to take up z slop, then yes it does work - I used this for a while!<br />If you are trying to compensate for backlash in X/Y there are some issues (under some circumstances can cause layer shifts). This is not a problem for Z movements, and as long as you set the X,Y hysteresis values to 0.</p><p>I also believe the SD4 should work with <a href="https://github.com/ozadr1an/Solidoodle-Marlin_v1">https://github.com/ozadr1an/Solidoodle-Marlin_v1</a> firmware, which has the hysteresis fix applied (you may need to switch it on in configuration.h). As I understand, you&#039;re right, it&#039;s basically an SD3 in a box (at least as far as firmware is concerned). <img src="https://www.soliforum.com/img/smilies/smile.png" width="15" height="15" alt="smile" /></p><p>If you are fixing z hysteresis, then there is another option you might consider: using a z-offset to take up the slop in the first layer. The bed moves up when homed, and then consistently down for the rest of a typical print (without z-lift etc. enabled). This means you only have one direction change to compensate for, at the start of the print. In slic3r, you can set a z-offset to the measured backlash. With other slicers where you can&#039;t set a z-offset, you can add some start g-code to make a compensation move and re-set zero position just before printing:</p><div class="codebox"><pre><code>G28 Z ; home
G1 Z0.1 F3000 ; make 0.1mm compensation movement
G92 Z0 ; set position to zero
; *** print ***</code></pre></div><p>Alternatively, in the printer firmware you may be able to configure a fixed z-offset for homing (although this makes changing it difficult). Haven&#039;t really bothered much with this.</p>]]></description>
			<author><![CDATA[null@example.com (grob)]]></author>
			<pubDate>Thu, 19 Nov 2015 00:05:38 +0000</pubDate>
			<guid>https://www.soliforum.com/post/109798/#p109798</guid>
		</item>
		<item>
			<title><![CDATA[Re: Hysteresis Fix]]></title>
			<link>https://www.soliforum.com/post/109773/#p109773</link>
			<description><![CDATA[<p>Is this still the recommended approach to the hysteresis fix? It states for SD2/3 but iirc the 4 is identical except for enclosure?</p>]]></description>
			<author><![CDATA[null@example.com (eflyguy)]]></author>
			<pubDate>Wed, 18 Nov 2015 14:45:42 +0000</pubDate>
			<guid>https://www.soliforum.com/post/109773/#p109773</guid>
		</item>
		<item>
			<title><![CDATA[Re: Hysteresis Fix]]></title>
			<link>https://www.soliforum.com/post/62573/#p62573</link>
			<description><![CDATA[<p>SoliForum - 3D Printing Community → Hacks &amp; Mods → E3D extruder on a new SD3 FW HELP..</p><p>Page 3 or 4 follow instructions from user enrage.</p>]]></description>
			<author><![CDATA[null@example.com (wardjr)]]></author>
			<pubDate>Fri, 08 Aug 2014 03:03:56 +0000</pubDate>
			<guid>https://www.soliforum.com/post/62573/#p62573</guid>
		</item>
		<item>
			<title><![CDATA[Re: Hysteresis Fix]]></title>
			<link>https://www.soliforum.com/post/62572/#p62572</link>
			<description><![CDATA[<p>You don&#039;t have that board.&nbsp; You have the printer board revision-E.<br />Not at my PC so you&#039;ll have to search.&nbsp; I have covered it several times I&#039;ll try and post a link.</p>]]></description>
			<author><![CDATA[null@example.com (wardjr)]]></author>
			<pubDate>Fri, 08 Aug 2014 02:59:55 +0000</pubDate>
			<guid>https://www.soliforum.com/post/62572/#p62572</guid>
		</item>
		<item>
			<title><![CDATA[Re: Hysteresis Fix]]></title>
			<link>https://www.soliforum.com/post/62571/#p62571</link>
			<description><![CDATA[<p>Could someone please ELI5 how to edit my SD3 firmware to add the hysteresis fix code please ?http://www.soliforum.com/topic/313/hysteresis-fix/<br />So far I&#039;m trying to follow the instructions here:&nbsp; <a href="http://www.soliwiki.com/Updating_Solidoodle_Firmware">http://www.soliwiki.com/Updating_Solidoodle_Firmware</a><br />How can I tell if I have a ATMega644P (Solidoodle2 default chip) or ATmega1284P</p>]]></description>
			<author><![CDATA[null@example.com (aaronstalling)]]></author>
			<pubDate>Fri, 08 Aug 2014 02:56:41 +0000</pubDate>
			<guid>https://www.soliforum.com/post/62571/#p62571</guid>
		</item>
		<item>
			<title><![CDATA[Re: Hysteresis Fix]]></title>
			<link>https://www.soliforum.com/post/29176/#p29176</link>
			<description><![CDATA[<div class="quotebox"><cite>Skyman25 wrote:</cite><blockquote><p>Well, I am trying to accomplish calibrations on my SD2, starting with the extruder calibration.&nbsp; I have an IMAC with Mountain Lion software.&nbsp; I can open the Arduino.cc file, but where is the Marlin.PDE and then the &quot;configuration tab?&nbsp; Can&#039;t find it.</p></blockquote></div><p>Have you followed the instructions <a href="http://www.soliwiki.com/Updating_Solidoodle_Firmware">here</a>? And what motherboard do you have? Unfortunately there is no firmware available for the new Printrboard yet...</p>]]></description>
			<author><![CDATA[null@example.com (Rincewind)]]></author>
			<pubDate>Sat, 06 Jul 2013 07:18:22 +0000</pubDate>
			<guid>https://www.soliforum.com/post/29176/#p29176</guid>
		</item>
		<item>
			<title><![CDATA[Re: Hysteresis Fix]]></title>
			<link>https://www.soliforum.com/post/29149/#p29149</link>
			<description><![CDATA[<p>Well, I am trying to accomplish calibrations on my SD2, starting with the extruder calibration.&nbsp; I have an IMAC with Mountain Lion software.&nbsp; I can open the Arduino.cc file, but where is the Marlin.PDE and then the &quot;configuration tab?&nbsp; Can&#039;t find it.</p>]]></description>
			<author><![CDATA[null@example.com (Skyman25)]]></author>
			<pubDate>Sat, 06 Jul 2013 00:53:25 +0000</pubDate>
			<guid>https://www.soliforum.com/post/29149/#p29149</guid>
		</item>
		<item>
			<title><![CDATA[Re: Hysteresis Fix]]></title>
			<link>https://www.soliforum.com/post/25746/#p25746</link>
			<description><![CDATA[<div class="quotebox"><cite>Rincewind wrote:</cite><blockquote><div class="quotebox"><cite>pcm81 wrote:</cite><blockquote><p>Is it possible to set default value for y-axis hysterisys, rather than feeding it to firmware via g-code?<br />I am guessing i&#039;d need to change the code:</p><p>Hysteresis hysteresis( 0.0f, 0.0f, 0.0f, 0.0f );</p><p>in Hysterysis.cpp to something like:<br />Hysteresis hysteresis( 0.0f, 1.5f, 0.0f, 0.0f );</p><p>to add 1.5mm of y-axis hysterysis offset?</p></blockquote></div><p>Yes that&#039;s correct.</p><div class="quotebox"><blockquote><p>Is there any reason why i should not do it in firmware and rely on g-code command instead?</p></blockquote></div><p>The reason is that if these settings change, for example you change the belt tension, then you have to recompile the firmware. I have my setting placed in the start gcode of Slic3r so they are applied every time I start a print.</p><div class="quotebox"><blockquote><p>I am hesitant to just make the change in *.cpp file and try it, because i&#039;d think default hysterysis values belong in *.h file...</p></blockquote></div><p>There used to be a setting for default hysteresis in the original code by Neil, but I removed it because I couldn&#039;t see why anybody would hardode something like that in the firmware. Apparently I was wrong <img src="https://www.soliforum.com/img/smilies/smile.png" width="15" height="15" alt="smile" /> So yes, you will need to change the cpp file.</p><p>In short, I advise against it, but if you want to do it you will not break anything.</p></blockquote></div><p>Thank you</p>]]></description>
			<author><![CDATA[null@example.com (pcm81)]]></author>
			<pubDate>Sun, 09 Jun 2013 15:01:45 +0000</pubDate>
			<guid>https://www.soliforum.com/post/25746/#p25746</guid>
		</item>
		<item>
			<title><![CDATA[Re: Hysteresis Fix]]></title>
			<link>https://www.soliforum.com/post/25723/#p25723</link>
			<description><![CDATA[<div class="quotebox"><cite>pcm81 wrote:</cite><blockquote><p>Is it possible to set default value for y-axis hysterisys, rather than feeding it to firmware via g-code?<br />I am guessing i&#039;d need to change the code:</p><p>Hysteresis hysteresis( 0.0f, 0.0f, 0.0f, 0.0f );</p><p>in Hysterysis.cpp to something like:<br />Hysteresis hysteresis( 0.0f, 1.5f, 0.0f, 0.0f );</p><p>to add 1.5mm of y-axis hysterysis offset?</p></blockquote></div><p>Yes that&#039;s correct.</p><div class="quotebox"><blockquote><p>Is there any reason why i should not do it in firmware and rely on g-code command instead?</p></blockquote></div><p>The reason is that if these settings change, for example you change the belt tension, then you have to recompile the firmware. I have my setting placed in the start gcode of Slic3r so they are applied every time I start a print.</p><div class="quotebox"><blockquote><p>I am hesitant to just make the change in *.cpp file and try it, because i&#039;d think default hysterysis values belong in *.h file...</p></blockquote></div><p>There used to be a setting for default hysteresis in the original code by Neil, but I removed it because I couldn&#039;t see why anybody would hardode something like that in the firmware. Apparently I was wrong <img src="https://www.soliforum.com/img/smilies/smile.png" width="15" height="15" alt="smile" /> So yes, you will need to change the cpp file.</p><p>In short, I advise against it, but if you want to do it you will not break anything.</p>]]></description>
			<author><![CDATA[null@example.com (Rincewind)]]></author>
			<pubDate>Sun, 09 Jun 2013 08:52:18 +0000</pubDate>
			<guid>https://www.soliforum.com/post/25723/#p25723</guid>
		</item>
		<item>
			<title><![CDATA[Re: Hysteresis Fix]]></title>
			<link>https://www.soliforum.com/post/25694/#p25694</link>
			<description><![CDATA[<p>Is it possible to set default value for y-axis hysterisys, rather than feeding it to firmware via g-code?<br />I am guessing i&#039;d need to change the code:</p><p>Hysteresis hysteresis( 0.0f, 0.0f, 0.0f, 0.0f );</p><p>in Hysterysis.cpp to something like:<br />Hysteresis hysteresis( 0.0f, 1.5f, 0.0f, 0.0f );</p><p>to add 1.5mm of y-axis hysterysis offset?</p><p>Is there any reason why i should not do it in firmware and rely on g-code command instead?</p><p>I am hesitant to just make the change in *.cpp file and try it, because i&#039;d think default hysterysis values belong in *.h file...</p><p>Please advise.</p><p>Thanks ahead</p>]]></description>
			<author><![CDATA[null@example.com (pcm81)]]></author>
			<pubDate>Sun, 09 Jun 2013 00:09:07 +0000</pubDate>
			<guid>https://www.soliforum.com/post/25694/#p25694</guid>
		</item>
		<item>
			<title><![CDATA[Re: Hysteresis Fix]]></title>
			<link>https://www.soliforum.com/post/21965/#p21965</link>
			<description><![CDATA[<p><strong>Update!</strong></p><p>The code is now (hopefully) debugged and re-added to lawsy&#039;s repository: see <a href="https://github.com/mlaws/solidoodle2-marlin/pull/2">https://github.com/mlaws/solidoodle2-marlin/pull/2</a></p>]]></description>
			<author><![CDATA[null@example.com (Rincewind)]]></author>
			<pubDate>Tue, 07 May 2013 09:05:28 +0000</pubDate>
			<guid>https://www.soliforum.com/post/21965/#p21965</guid>
		</item>
		<item>
			<title><![CDATA[Re: Hysteresis Fix]]></title>
			<link>https://www.soliforum.com/post/18659/#p18659</link>
			<description><![CDATA[<div class="quotebox"><cite>cephdon wrote:</cite><blockquote><p>I am beginning to believe that all of these firmware fixes are a hinderance.&nbsp; I may eventually bring the firmware back to something more pure on the control side and move the corrections to the processing software.&nbsp; Doing so will enable much more flexibility and be universal for all machines, rather than just the ones using this version of the firmware.</p></blockquote></div><p>This is an interesting approach. I see things differently: the code that goes into the machine should be as machine-agnostic as possible. In my opinion it is a job for the hardware and for the firmware to reproduce this code as accurately as possible.</p><p>For example, I don&#039;t see why introducing some backlash compensation directly in the GCode would make it more universal: on the contrary, it would mean that the code will only work for the machines with exactly the same amount of backlash as the one you tailor it for. Conversely, having an ideal GCode with zero backlash, and letting the rest of the pipeline handle it makes the code much more portable.</p>]]></description>
			<author><![CDATA[null@example.com (Rincewind)]]></author>
			<pubDate>Fri, 05 Apr 2013 07:52:50 +0000</pubDate>
			<guid>https://www.soliforum.com/post/18659/#p18659</guid>
		</item>
	</channel>
</rss>
