<p>I'm using the Marlin firmware (1.1.0-RC7 - 31 July 2016) for a 3d printer. Currently the printing is not perfect due to slight inaccuracies in movements along the x and y axis. I'm trying to change the feedrate for speed along the xy axis whilst the printer is in operation to make sure the printer stops on time and prints accurately.</p>

<p>I have some code for controlling the feedrate but the problem is that I'm not sure where I am supposed make these adjustments. In the configuration.h file I see this code: (lines 742 and 753 )</p>

<pre><code>/*line 742*/ #define HOMING_FEEDRATE_XY (50*60) 
/*line 753*/ #define DEFAULT_MAX_FEEDRATE {300, 300, 5, 25}  // (mm/sec)
</code></pre>

<p>I'm probably misunderstanding something but it seems like this sets the feedrate to a default value which is the same as the maximum. </p>

<p>If the feedrate changes during printing I'm guessing it would be done in Marlin_main.cpp but I'm not sure which part it actually changes. Can someone point me in the right direction here?  </p>

[{'answer_id': 3000, 'author': 'FeliceM', 'author_id': 4388, 'author_profile': 'https://3dprinting.stackexchange.com/users/4388', 'pm_score': 1, 'selected': False, 'text': '<p>You have the  lines to adjust the feed rate.\nThe first one (line 742) is relevant to the maximum feed rate XY while homing (not during printing). I think this is not an issue in your particular case and you may leave it as it is.</p>\n\n<p>The second one (line 753) is the feed rate while printing for XY. Particularly the numbers in the brackets refers to ( X, Y, Z, E). If your printer is moving it may affect XY more than Z and E. So you may try to adjust the first two numbers.</p>\n\n<p>Due to the very specific situation is impossible to give you a feed rate based on calculation because you are dealing with external accelerations caused by the mobile situation. You will need to try and adjust it until you get right.</p>\n\n<p>Another setting that may also help you to compensate the external acceleration, if any, is the acceleration of those two axes.You should find two lines like these:</p>\n\n<pre>\n#define DEFAULT_MAX_ACCELERATION      {1500,1500,50,250}    \n#define DEFAULT_ACCELERATION          1500    // X, Y, Z and E max acceleration in mm/s^2 for printing moves\n</pre>\n\n<p>However the acceleration of the axes may impact on the quality of the printing.</p>\n'}, {'answer_id': 3002, 'author': 'Tom van der Zanden', 'author_id': 26, 'author_profile': 'https://3dprinting.stackexchange.com/users/26', 'pm_score': 3, 'selected': True, 'text': "<p>You can change the <em>maximum</em> allowable feedrate in Configuration.h, but the actual feedrate that is used isn't determined by your firmware. The feedrate is specified in the G-Code file. A command like</p>\n\n<pre><code>G0 X10.0 Y15.0 Z3.0 F9000\n</code></pre>\n\n<p>indicates a move to (10,15,3) at a feedrate of 9000 mm/min. If F is not specified, the last used feedrate is used.</p>\n\n<p>You just have to provide the appropriate G-code commands with the feedrate you want in them. There's no reason to modify the firmware to get a different feedrate.</p>\n"}, {'answer_id': 6384, 'author': 'Curt Hayes', 'author_id': 11315, 'author_profile': 'https://3dprinting.stackexchange.com/users/11315', 'pm_score': 2, 'selected': False, 'text': "<p>It seems like you might be wanting to look at the steps per mm line.</p>\n\n<pre><code>#define DEFAULT_AXIS_STEPS_PER_UNIT\n</code></pre>\n\n<p>This line is where you calibrate the number of steps per mm. To calibrate, mark a point along an axis, then move that axis something like 100&nbsp;mm. If it didn't move 100&nbsp;mm exactly, make a change</p>\n\n<pre><code>(how far it moved)       (how far it should have moved)\n------------------   =   ------------------------------\n(current steps/mm)         (new steps/mm) --&gt; find this\n</code></pre>\n"}]
['https://3dprinting.stackexchange.com/questions/2999', 'https://3dprinting.stackexchange.com', 'https://3dprinting.stackexchange.com/users/4715/']