# How to re-program Prusa firmware to accept a taller Z axis?

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.

• 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. Mar 8 '18 at 15:32
• @CarlWitthoft By default Marlin refuses to travel past axis limits (software endstops), so this is not just the fault of the fancy features. Mar 8 '18 at 19:07

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 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 installed to do this.