<p>Latest firmware: Prusa-Firmware-3.5.0\Prusa-Firmware-3.5.0
Arduino 1.6.9, RepRap Arduino-compatible Mother Board RAMBo by Ultimachine latest version 1.0.1, Arduino AVR Boards Built-in by Arduino latest version v.1.6.23.</p>

<p>Copy the 1_75mm_MK3-EINSy10a-E3Dv6full file from
Prusa-Firmware-3.5.0\Prusa-Firmware-3.5.0\Firmware\variants into 
Prusa-Firmware-3.5.0\Prusa-Firmware-3.5.0\Firmware and rename it Configuration_prusa.h.<br>
Open Firmware Arduino file.  Configuration_prusa.h shows in the tabs next to Configuration_adv.h.  Change //Travel limits after homing #define Z_MAX_POS from 210 to 350.  Verify → 
Sketch uses 225,482 bytes (87%) of program storage space. Maximum is 258,048 bytes.
Global variables use 6,091 bytes of dynamic memory.</p>

CC BY-SA 4.0
2018-11-25T00:33:41.287Z
2018-11-25T00:33:41.287Z
Kryss
<p>Basically, the <a href="/a/5606/5740">answer</a> on your <a href="/questions/5604/how-to-re-program-prusa-firmware-to-accept-a-taller-z-axis">previous question</a> is still valid, but your specific questions will be addressed below.</p>

<h2>To answer where the setting has gone by answering:</h2>

<blockquote>
  <p>However, the layout is different for the new firmware v. 3.4.1, and <strong>I
  have no idea where the Z axis settings have gone</strong>, if they are even
  still there. <strong>Can anyone point me in the right direction to find the Z
  MAX POS settings, please?</strong></p>
</blockquote>

<p>To find where the setting is, you need to go to the source code repository of Prusa firmware (which is based on Marlin firmware) or <a href="https://github.com/prusa3d/Prusa-Firmware/archive/v3.4.1.zip" rel="nofollow noreferrer">download the zip file with the sources</a> and use a "grep" search utility to search in files. </p>

<p>The setting <code>Z_MAX_POS</code> is located in the board configuration file (so in <code>1_75mm_MK3-EINSy10a-E3Dv6full.h</code> if you have the MK3). This can be found in the online sources (the github page). The online repository is located <a href="https://github.com/prusa3d/Prusa-Firmware" rel="nofollow noreferrer">here</a>. Using the search functionality to search within the source code files on that page you are able to find any setting you need to find. If you type in <a href="https://github.com/prusa3d/Prusa-Firmware/search?utf8=%E2%9C%93&amp;q=Z_MAX_POS&amp;type=" rel="nofollow noreferrer">"Z_MAX_POS"</a> and scroll down till you see</p>

<pre><code>#define Z_MAX_POS 210
</code></pre>

<p>You have found what you where looking for if you located the <a href="https://github.com/prusa3d/Prusa-Firmware/blob/3d97d81734e18214afa712cac5066e168016f709/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h" rel="nofollow noreferrer">MK3 board</a>.</p>

<h2>To solve your problem by answering:</h2>

<blockquote>
  <p>How to re-program NEW Prusa MK3 MMU2 to accept taller Z axis?</p>
</blockquote>

<p>Prusa development team has got rid of <code>Configuration_prusa.h</code>, <strong><em>you will not find this file in the repository anymore</em></strong>! </p>

<p>Instead, it is <strong>you</strong> that has to <strong>rename one of the board variant files</strong> (from the <a href="https://github.com/prusa3d/Prusa-Firmware/tree/MK3/Firmware/variants" rel="nofollow noreferrer">"Firmware/variants"</a> folder) corresponding to the machine you have to "Configuration_prusa.h" and place it in the "Firmware" folder prior to compiling (note that these are simple actions that you can do on any operating system; i.e. copy file, paste file, rename file).  Before you compile the sources, you need to change the value of <code>Z_MAX_POS 210</code> to <code>Z_MAX_POS 350</code>. Please read the <a href="https://github.com/prusa3d/Prusa-Firmware/blob/f7cd0ffbb0ced452d1d1307af13ba5f9d24d5a05/README.md" rel="nofollow noreferrer">README file</a> as this describes exactly in more detail than worded above what you need to do (e.g. use the correct Arduino IDE, e.g. 1.6.9  as this is used by Prusa development team themselves).</p>

<p>Quoting from the README file:</p>

<h3>section describing the renaming of the file:</h3>

<blockquote>
  <p>in the subdirectory "Firmware/variants/" select the configuration file
  (.h) corresponding to your printer model, make copy named
  "Configuration_prusa.h" (or make simple renaming) and copy them into
  "Firmware/" directory</p>
</blockquote>

<h3>section describing the compiling:</h3>

<blockquote>
  <p>run "Arduino IDE"; select the file "Firmware.ino" from the
  subdirectory "Firmware/" at the location, where you placed the source
  codes File->Open make the desired code customizations; all changes are
  on your own risk!</p>
  
  <p>select the target board "RAMBo" Tools->Board->RAMBo note: it is not
  possible to use any of the variants "Arduino Mega …", even though it
  is the same MCU</p>
  
  <p>run the compilation Sketch->Verify/Compile</p>
  
  <p>upload the result code into the connected printer Sketch->Upload</p>
  
  <p>or you can also save the output code to the file (in so called
  HEX-format) "Firmware.ino.rambo.hex": Sketch->ExportCompiledBinary and
  then upload it to the printer using the program "FirmwareUpdater"
  note: this file is created in the directory "Firmware/"</p>
</blockquote>

<hr>

<blockquote>
  <p>To compile the sources correctly please take care in using the correct
  software versions and libraries (Arduino IDE 1.6.9, RepRap
  Arduino-compatible Mother Board RAMBo by Ultimachine v. 1.0.1, Arduino
  AVR Boards Built-in by Arduino updated to v.1.6.23)</p>
</blockquote>

<hr>

<hr>

<p><em>Sidenote:</em></p>

<p>A little more in depth for those who are interested to know (and have some programming skills) why you need to change the name of one of the variants configuration files. Basically, Prusa uses different boards with different settings for the different printers they sell. All the settings for these printer variations are stored in the <code>Firmware/variants</code> folder. When you rename the variant file and put it a folder layer higher to <code>Configuration_prusa.h (e.g.</code>Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h<code>to</code>Firmware/Configuration_prusa.h<code>)</code>, these specific printer and board settings are included into the <code>Configuration.h</code> file (<a href="https://github.com/prusa3d/Prusa-Firmware/blob/MK3/Firmware/Configuration.h" rel="nofollow noreferrer">line 43 to be precise</a>) by the C-code include statement:</p>

<pre><code>#include "Configuration_prusa.h"
</code></pre>

<p>This include statement will basically insert (like copy in memory) the statements from the <code>Configuration_prusa.h</code> file and thus set important constants like:</p>

<pre><code>#define MOTHERBOARD BOARD_EINSY_1_0a
</code></pre>

<p>and many more.</p>

CC BY-SA 4.0
2018-11-19T22:55:42.193Z
2018-11-25T12:12:52.313Z
2018-11-25T12:12:52.313Z
0scar
<p>In a <a href="https://3dprinting.stackexchange.com/questions/5604/how-to-re-program-prusa-firmware-to-accept-a-taller-z-axis">previous question</a>, I have modified the Z-axis-height of my Prusa Mk3 from 250 mm to 350 mm.</p>
<p>Prior to the MMU2 upgrade, I changed the code in my printer to accept the new height the following way:  I changed Arduino → Configuration_prusa.h → Axis settings → line 54 to  <code>#define Z_MAX_POS 210</code> (it worked perfectly).</p>
<p>However, the layout is different for the new firmware v. 3.4.1, and I have no idea where the Z axis settings have gone, if they are even still there.
Can anyone point me in the right direction to find the Z MAX POS settings, please?</p>
<p>Obviously, I'm not very good with coding, but it looks like the entire code layout has changed for the v. 3.4.1</p>
<h1>Firmware</h1>
<p><a href="https://www.prusa3d.com/drivers/firmware-changelog/#mk3" rel="nofollow noreferrer">Prusa MK3 (firmware 3.4.1)</a> MMU2 (firmware 1.0.1). The source code on Github is found <a href="https://github.com/prusa3d/Prusa-Firmware/releases/tag/v3.4.1" rel="nofollow noreferrer">here</a>.</p>

<prusa-i3><firmware><z-axis><prusa-mmu>
How to re-program NEW Prusa MK3 MMU2 to accept taller Z axis
Kryss
# How to re-program NEW Prusa MK3 MMU2 to accept taller Z axis

(Asked by: username_0 on 2018-11-19)

In a [previous question](https://3dprinting.stackexchange.com/questions/5604/how-to-re-program-prusa-firmware-to-accept-a-taller-z-axis), I have modified the Z-axis-height of my Prusa Mk3 from 250 mm to 350 mm.

Prior to the MMU2 upgrade, I changed the code in my printer to accept the new height the following way: I changed Arduino → Configuration\_prusa.h → Axis settings → line 54 to `#define Z_MAX_POS 210` (it worked perfectly).

However, the layout is different for the new firmware v. 3.4.1, and I have no idea where the Z axis settings have gone, if they are even still there.
Can anyone point me in the right direction to find the Z MAX POS settings, please?

Obviously, I'm not very good with coding, but it looks like the entire code layout has changed for the v. 3.4.1

# Firmware

[Prusa MK3 (firmware 3.4.1)](https://www.prusa3d.com/drivers/firmware-changelog/#mk3) MMU2 (firmware 1.0.1). The source code on Github is found [here](https://github.com/prusa3d/Prusa-Firmware/releases/tag/v3.4.1).

**Tags:** prusa-i3, firmware, z-axis, prusa-mmu

---

## 2 answers

### Answer by username_1 on 2018-11-19. Score: 3 | Accepted answer

Basically, the answer on your previous question is still valid, but your specific questions will be addressed below.
To answer where the setting has gone by answering:

However, the layout is different for the new firmware v. 3.4.1, and I
  have no idea where the Z axis settings have gone, if they are even
  still there. Can anyone point me in the right direction to find the Z
  MAX POS settings, please?

To find where the setting is, you need to go to the source code repository of Prusa firmware (which is based on Marlin firmware) or download the zip file with the sources and use a "grep" search utility to search in files. 
The setting Z_MAX_POS is located in the board configuration file (so in 1_75mm_MK3-EINSy10a-E3Dv6full.h if you have the MK3). This can be found in the online sources (the github page). The online repository is located here. Using the search functionality to search within the source code files on that page you are able to find any setting you need to find. If you type in "Z_MAX_POS" and scroll down till you see
#define Z_MAX_POS 210

You have found what you where looking for if you located the MK3 board.
To solve your problem by answering:

How to re-program NEW Prusa MK3 MMU2 to accept taller Z axis?

Prusa development team has got rid of Configuration_prusa.h, you will not find this file in the repository anymore! 
Instead, it is you that has to rename one of the board variant files (from the "Firmware/variants" folder) corresponding to the machine you have to "Configuration_prusa.h" and place it in the "Firmware" folder prior to compiling (note that these are simple actions that you can do on any operating system; i.e. copy file, paste file, rename file).  Before you compile the sources, you need to change the value of Z_MAX_POS 210 to Z_MAX_POS 350. Please read the README file as this describes exactly in more detail than worded above what you need to do (e.g. use the correct Arduino IDE, e.g. 1.6.9  as this is used by Prusa development team themselves).
Quoting from the README file:
section describing the renaming of the file:

in the subdirectory "Firmware/variants/" select the configuration file
  (.h) corresponding to your printer model, make copy named
  "Configuration_prusa.h" (or make simple renaming) and copy them into
  "Firmware/" directory

section describing the compiling:

run "Arduino IDE"; select the file "Firmware.ino" from the
  subdirectory "Firmware/" at the location, where you placed the source
  codes File->Open make the desired code customizations; all changes are
  on your own risk!
select the target board "RAMBo" Tools->Board->RAMBo note: it is not
  possible to use any of the variants "Arduino Mega …", even though it
  is the same MCU
run the compilation Sketch->Verify/Compile
upload the result code into the connected printer Sketch->Upload
or you can also save the output code to the file (in so called
  HEX-format) "Firmware.ino.rambo.hex": Sketch->ExportCompiledBinary and
  then upload it to the printer using the program "FirmwareUpdater"
  note: this file is created in the directory "Firmware/"



To compile the sources correctly please take care in using the correct
  software versions and libraries (Arduino IDE 1.6.9, RepRap
  Arduino-compatible Mother Board RAMBo by Ultimachine v. 1.0.1, Arduino
  AVR Boards Built-in by Arduino updated to v.1.6.23)



Sidenote:
A little more in depth for those who are interested to know (and have some programming skills) why you need to change the name of one of the variants configuration files. Basically, Prusa uses different boards with different settings for the different printers they sell. All the settings for these printer variations are stored in the Firmware/variants folder. When you rename the variant file and put it a folder layer higher to Configuration_prusa.h (e.g.Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.htoFirmware/Configuration_prusa.h), these specific printer and board settings are included into the Configuration.h file (line 43 to be precise) by the C-code include statement:
#include "Configuration_prusa.h"

This include statement will basically insert (like copy in memory) the statements from the Configuration_prusa.h file and thus set important constants like:
#define MOTHERBOARD BOARD_EINSY_1_0a

and many more.


---

### Answer by username_0 on 2018-11-25. Score: 0

Latest firmware: Prusa-Firmware-3.5.0\Prusa-Firmware-3.5.0
Arduino 1.6.9, RepRap Arduino-compatible Mother Board RAMBo by Ultimachine latest version 1.0.1, Arduino AVR Boards Built-in by Arduino latest version v.1.6.23.

Copy the 1\_75mm\_MK3-EINSy10a-E3Dv6full file from
Prusa-Firmware-3.5.0\Prusa-Firmware-3.5.0\Firmware\variants into
Prusa-Firmware-3.5.0\Prusa-Firmware-3.5.0\Firmware and rename it Configuration\_prusa.h.  
Open Firmware Arduino file. Configuration\_prusa.h shows in the tabs next to Configuration\_adv.h. Change //Travel limits after homing #define Z\_MAX\_POS from 210 to 350. Verify →
Sketch uses 225,482 bytes (87%) of program storage space. Maximum is 258,048 bytes.
Global variables use 6,091 bytes of dynamic memory.


---

