Prusa firmware for RAMPS Prusa i3 clones with MK42 beds


Those that have build a clone prusa i3 MK2 (perhaps a dolly, or similar) that have bought one of the now available clone MK42 beds might be interested in running stock prusa firmware.

The original firmware is setup for the mini rambo- ramps uses different pins and doesn’t have digipots for stepper current. That means that the “quiet mode” vs “power mode” won’t work at all.

I’ve put the work in to port v3.0.11 over so that it works with standard RAMPS pinout. That means it works with RAMPS and other hardware that copies RAMPS like MKS BASE, MKS GEN etc.

The MKS boards are a better bet because they have an extra output mosfet which is used to drive the extruder fan; if you use a real RAMPS you’ll have to just hardwire that to the supply.

Get the firmware from

Clone the repository, open it in arduino ide and upload the sketch to your prusa clone. If you’ve built your clone properly and have a MK42 it should pass calibration ok.

I shall aim to keep it up to date - the latest prusa firmware is an RC that merely adds support for the multi material upgrade which I don’t have, so i’ve not merged those changes yet. I’ll wait for a non-RC release.





(a bit overextruded, I know. but thats the supplied gcode, not resliced)

1 Like

This is awesome, thanks! How are you finding your clone MK42 (and which did you buy?)

I have two actually, one from each of the two indigogo campaigns. One of them is too warped to use, and the other one seems pretty good. I’m certainly impressed with PEI as a print surface.

Hi, would you mind to hint which seller had the non warped version? :slight_smile:

BTW: There are some people eager to have this firmware in the prusa forums:

I know, but you can’t post in those forums if you’re not a prusa customer!!

The autotronix board is the better board.

I didn’t know - I though I registered before buying a Prusa … but I’m not sure anymore.

Hey thanks a lot!

I’ve now updated the firmware on github to 3.0.12

No multimaterial support at the moment. I will look into that in the future, but so far the electronics for the extruder multiplexer board isn’t publically available and that makes it more trouble than it’s worth to try and implement that on a clone.

Fantastic work, I’ll be trying out this firmware on my MKS Gen shortly.

I just had a quick question, as this is my first time using print controller boards like this. Do I need to get a separate MOSFET expansion board to use the MK42 heatbed with the MKS Gen 1.4? I have heard some people say that the screw terminals can’t handle the current for the MK42 heated bed and that I’d need to use a separate MOSFET board anyway.

How did you adjust the current of the steppers, did you just measure across the pots to match the values from the Prusa firmware?

I’ve not had a problem with the connectors, and the mosfet itself can cope. Make sure you strip the wire well and I’d tin the ends with solder to get the best contact possible.

You need to match the current to the steppers - if you suppply more current than a stepper is rated for it will get very very hot and possibly meet an untimely end. Google your stepper motors to find out what their max current is and then set the Vref accordingly. What you set it to varies depending. In what driver you’re using; there’s a page on which tells you what to do.

Thank you :).

I’ve got some wire ferrules I can crimp on the end, so I should be able to get a good contact. Really pleased to hear it’ll work straight off the MKS Gen without any need for separate MOSFETs :).

This may be a silly question…

If I used a aluminium headbed (i.e. the cheap ones you see everywhere), am I still able to use the Prusa firmware and use the mesh levelling on an aluminium bed? I guess it’s only skew detection that the MK42 points are needed for, whereas mesh levelling can just pick up the aluminium PCB? If that’s the case, can the XYZ skew part be disabled in this firmware?

The calibration definitely wouldn’t work with an aluminium bed. With some hacking, the levelling might.

But I don’t see the point really. Beyond the calibration, there are only a few real features that are worth having (notably the easily accessible “live z adjust” and the filament load/unload menus.

If you’ve not got a MK42 you’d be better off with marlin (i used marlin before i got my mk42 - and before that i had a smoothieboard in it).

It’s those little features that I’d miss :lol:

I might get an MK3 and see if I can get levelling working, as it would be interesting to see how it performs.

I don’t think it’d be that hard to get it working.

Fundamentally, the calibration data is a skew correction matrix which is stored in EEPROM. The calibration state of the printer is also stored in EEPROM. So you’d need to “fix” the functions that check the calibration state of the printer to tell the firmware that it’s calibrated already, and then have the functions that return the matrix just return an identity matrix.

Thanks, I’ll give it a go and see what I can do :). I’m not much of a coder, but if it’s primarily commenting lines out, I can do that :lol:.

Just need to find an MK3 bed that is the same size, which is more difficult than I thought!

I used an MKS MK3 220mm before I had the MK42, a bit small in the x axis but it works quite well.

Cheers, I’ll take a look at that variant. All these parts are taking ages to arive from China :lol:.

How did you wire your Z steppers on your board? My MKS Gen 1.4 only has 1 header for Z - should I just add a splitter?

edit: Just found your answer on Github:

The parts have finally arrived and I’ll be assembling it this weekend :).

I noticed that the MKS Gen board only has one MOSFET header (but two for extruders). How did you wire yours up in the firmware (for the part fan and heatsink fan)? I didn’t understand what the explanation on GitHub meant, as I’m quite unfamiliar with these boards - so thought I should check before blowing something!


Ah, I see from this diagram ( that D7 is the E1 MOSFET header. So I connect the extruder cooling fan here and the part fan to the “fan” header (D9) and I’m all set? :smiley:

Yep that’s right. And you can use the E2 stepper driver for Z2 if you want to.