<p>A .hex file is of no use to you, because it consists of <em>compiled</em> firmware which is very difficult to edit. You need to go to <a href="https://github.com/prusa3d/Prusa-Firmware" rel="noreferrer">Prusa's GitHub</a> and download the <em>source code</em>. Then, find the header file for your model of printer, and change <code>Z_max_pos</code> to the correct value. Finally, you need to compile and upload the firmware to your printer following the build instructions (see README.md). You will need to have the <a href="https://www.arduino.cc/en/Main/Software" rel="noreferrer">Arduino IDE</a> installed to do this.</p>

CC BY-SA 3.0
2018-03-08T22:55:11.953Z
Ok, thanks Tom.  I think this is the correct source code, from Prusa Github and titled for the MK3.  I will follow the rest of your suggestions presently.  Thanks for the help :)  https://github.com/prusa3d/Prusa-Firmware/blob/MK3/Firmware/variants/1_75mm_MK3-EINY03-E3Dv6full.h
Kryss
CC BY-SA 4.0
2021-04-16T00:55:50.453Z
FYI, Using Arduino IDE is optional, that is upon user choice, firmware (.hex file) upload could be done simply from PrusaSlicer.
Iron Fist
CC BY-SA 3.0
2018-03-08T08:32:12.790Z
2018-03-08T08:32:12.790Z
Tom van der Zanden
<p>Machine specs: Prusa MK3, firmware version 3.1.2.</p>

<p>Facts: I have designed a new Z-axis frame for my printer, so I can print models up to 360mm high in stead of the standard 210mm.  The plan has worked and the printer is functioning normally with a new, taller z frame. </p>

<p>However... To calibrate, the Z lead screws carry the X carriage all the way up and bump it against the top frame mounts, to make sure the X carriage is level.    On the taller frame, the X carriage stops its ascent at 220mm and descends back toward the bed.  Because the X carriage goes up farther than it was 'supposed to' and didn't bump into anything, the calibration fails.  When the X carriage bumps into something at 210mm (like my fingers) and descends from the 'normal' frame height, the printer calibrates the bed levelling normally. </p>

<p>The Prusa MK3 is so 'smart', it still thinks the frame will only ever be 210mm high.  How do I tell it that when calibrating, the X axis must rise to 360mm instead of 210mm?  The calibration is an integral part of the firmware... is there any way I can edit it?<br>
I've looked at the .hex firmware file, this is the first line of a huge text file -> :100000000C947D320C94AE320C94AE320C94AE3221  It means nothing to me, but I'm guessing there's a way.  After all, a cap height of 210mm had to be written in there somewhere to begin with... </p>

<p>Any suggestions would be appreciated, 
fairfarren.</p>

CC BY-SA 3.0
2018-03-08T15:32:19.067Z
Interesting -- another case of "new fancy feature makes something else really difficult" .  My vanilla clone just does the usual HomeX,Y,Z and presumably will follow Z-height commands until I reach the moon.
Carl Witthoft
CC BY-SA 3.0
2018-03-08T19:07:58.907Z
@CarlWitthoft By default Marlin refuses to travel past axis limits (software endstops), so this is not just the fault of the fancy features.
Tom van der Zanden
<calibration><firmware><axis>
How to re-program Prusa firmware to accept a taller Z axis?
Kryss
# How to re-program Prusa firmware to accept a taller Z axis?

(Asked by: username_0 on 2018-03-08)

Machine specs: Prusa MK3, firmware version 3.1.2.

Facts: I have designed a new Z-axis frame for my printer, so I can print models up to 360mm high in stead of the standard 210mm. The plan has worked and the printer is functioning normally with a new, taller z frame.

However... To calibrate, the Z lead screws carry the X carriage all the way up and bump it against the top frame mounts, to make sure the X carriage is level. On the taller frame, the X carriage stops its ascent at 220mm and descends back toward the bed. Because the X carriage goes up farther than it was 'supposed to' and didn't bump into anything, the calibration fails. When the X carriage bumps into something at 210mm (like my fingers) and descends from the 'normal' frame height, the printer calibrates the bed levelling normally.

The Prusa MK3 is so 'smart', it still thinks the frame will only ever be 210mm high. How do I tell it that when calibrating, the X axis must rise to 360mm instead of 210mm? The calibration is an integral part of the firmware... is there any way I can edit it?  
I've looked at the .hex firmware file, this is the first line of a huge text file -> :100000000C947D320C94AE320C94AE320C94AE3221 It means nothing to me, but I'm guessing there's a way. After all, a cap height of 210mm had to be written in there somewhere to begin with...

Any suggestions would be appreciated,
fairfarren.

**Tags:** calibration, firmware, axis

> **Comments:**
> **username_1**: Interesting -- another case of "new fancy feature makes something else really difficult" .  My vanilla clone just does the usual HomeX,Y,Z and presumably will follow Z-height commands until I reach the moon.  
> **username_2**: @username_1 By default Marlin refuses to travel past axis limits (software endstops), so this is not just the fault of the fancy features.  

---

## 1 answers

### Answer by username_2 on 2018-03-08. Score: 7 | Accepted answer

A .hex file is of no use to you, because it consists of *compiled* firmware which is very difficult to edit. You need to go to [Prusa's GitHub](https://github.com/prusa3d/Prusa-Firmware) and download the *source code*. Then, find the header file for your model of printer, and change `Z_max_pos` to the correct value. Finally, you need to compile and upload the firmware to your printer following the build instructions (see README.md). You will need to have the [Arduino IDE](https://www.arduino.cc/en/Main/Software) installed to do this.

> **Comments:**
> **username_0**: Ok, thanks Tom.  I think this is the correct source code, from Prusa Github and titled for the MK3.  I will follow the rest of your suggestions presently.  Thanks for the help :)  https://github.com/prusa3d/Prusa-Firmware/blob/MK3/Firmware/variants/1_75mm_MK3-EINY03-E3Dv6full.h  
> **username_3**: FYI, Using Arduino IDE is optional, that is upon user choice, firmware (.hex file) upload could be done simply from PrusaSlicer.  

---

