Build log

TMC2130 is coming…

The printer should be ready soon, but… What I will be doing, if I finish? No…! I had to change something.

I decided to replace X, Y and E stepsticks with TMC2130. The Z motors will be still run by TMC2208. Why?

TMC2208 are great to run quiet the printer in stealthChop2 mode, without (mostly) lose of any steps, but even with the UART interface which are provided, there is no great function called stallGuard, which are available in TMC2130. This, and already a not bad support for this in Marlin, caused me to go for them. As right now the only true advantage is sensorless homing, and it’s only software feature, to add the Prusa MK3 style rehoming while missing step will be detected. For extruder it will also act as additional sensor for the filament – when the filament will be clogged printer can pause the print and trigger the filament change.

I don’t know, why Trinamic didn’t made yet a stepstick with the upgraded stealthChop2 mode and the stallGuard working it it. Maybe the next product from them will be like that? I hope so, as unfortunately the stealthChop in TMC2100 and 2130 are losing steps very often (unless the speeds and acceleration are low), and also to enable stallGuard it’s needed to turn off stealthChop and go for the louder mode, the spreadCycle.

The TMC2130 on MK2Clone r2 will be connected by software SPI from unused ports on RAMPS, to make the connecting easier than soldering cables to LCD expansion board. Additionally, after tests, I figured that connecting TMC to the hardware SPI used also by SD card reader on LCD board, causes random initialization problems for the memory card.

Moreover, not only the TMC2130 is something new. There will be also RRD fan expansion used to control the fans – as I dont like when the printer finish the job and the fans is running, until someone turns off the printer, and external mosfet board for the heated bed – because the mosfests which are installed on most chinese RAMPS boards are not big enough to power the bed.


MK2Clone r2 beta tests

The “beta” of r2 is assembled. And it’s really rigid! If you will try to push the frame on the top, the whole printer will move, there is no looseness at all. In comparison to Original MK2, its like day and night.

The available build space: around 25x21x20, thanks to chinese MK42 heatbed, made from aluminium, with PEI surface on top.

The first test print:

Owl statue, scale: 40%, 0.2mm layer height, with linear advance enabled and profile for MK2, sliced with Slic3r PE, printing time: 1h 22m, filament used: ESUN PLA+.

Assembly instructions are still in progress, If you have already a previous experience with building printers, the instructions may be even obvious for you. Anyway, those can be found there:


New firmware, summary and more


Current state of MK2 Clone build

The “Original” thing

Josef Prusa already announced and started sale of the Original Prusa i3 MK3 printer, with a whole bunch of new sensors. Unfortunately, as he was publishing almost everything to the community, currently his company is making everything by themselves, and its hard to buy the things from other suppliers. It was already same with MK2, but there wasn’t so much parts like that as now.

What about firmware?

There are already new versions of Marlin firmware available (1.1.x) which has a lot of new functions, with Unified Bed Leveling on top of them, and also skew correction algorithm. As the firmware which I made for MK2 Clone wasn’t stable enough, and also the X/Y skew was only the calculator, not the true algorithm to compensate it – I decided to abandon it. Additionally, the chinese MK3 aluminium heatbeds are not perfectly cutted, so the results wasn’t good enough.

-> Configuration files for Marlin 1.1.8 are available in the MK2 Clone GitHub repository


Freshly compiled software

Skewed Z axis

As dulouie noted that the x-end-motor and x-end-idler made by achim_boers has lightly skewed position for brass, he made also a new parts, which are linked in Bill of materials, and available on GitHub as well.


Skewed Z axis

Make it quieter

Most noises are made by stepper motors driving X and Y axes. The cheapest way is to replace the A4988 stepsticks with Trinamic TMC2100, even the chinese cheapest ones. When inserting the TMC2100 then the active cooling for electronics is almost a must, otherwise the stepsticks can skip steps due to protection agains overheating.


Electronics active cooling

What’s next?

Even more quieter: the second loudest noises (in my opinion) are made by the 30×30 fan which is responsible for cooling the hotend. I’ve already found the 30×30 fans made by TITAN, and the manufacturer declares noise level on 21dB. Sound promising.

Sensors! As the MK3 few new interesting sensors, I’m planning to put some on the MK2 Clone. Prusa Research are making a lot custom electronics right now, and I want to focus on electronics generally available on the market, to allow everyone to make the MK2 Clone in their homes.

XYZ Calibration (beta)

The build is ready, I am now working on the firmware.

Recently I had an idea how to implement XYZ Calibration, and now its implemented, in beta state. It doesn’t save anything, but it produces a report which can be used to configure the printer. The printer is also checking if the XY are perpendicular and displaying information how big is the difference, and how to reduce it (which rod should be moved backwards/forward).

Its recommended to run the XYZ Calibration from LCD while being connected from the PC by serial port (using eg. Prointerface or Repetier-Host).

Video demonstration:

The idea of moving to top of frame is taken directly from Original MK2.

The calibration can be also started by using gcode G666.


As the build is almost finished (I am only waiting for the longer cables to put screen on front of the printer), I’ve started to modify configuration of Marlin to this printer.

Unfortunately, very helpful option to load and unload filament (gcodes M701 and M702) is not implemented in Marlin, but they implemented M600 (change filament during print) – I’ve done some modifications to Marlin RC8, adding that feature.

I’ve made eventually more modifications (and I am still working on it) – added Babystepping Z to main menu while printing, allowed to use 10mm move also on Z axis and also some modifications to menu order.

The modified Marlin, with configuration is available on github: (branch MK2Clone)

To use it, you shall modify Z probe offset (depending on what height you have mounted the probe), and X,Y,Z MIN and MAX positions.

I am still working on the firmware, to add more features which are helpful while operating the printer.

To print there is also a slicer software needed, I strongly recommend Slic3r Prusa Edition, which can be downloaded from github:

There is start GCode which I am using:

M140 S[first_layer_bed_temperature] ; set bed temp
M190 S[first_layer_bed_temperature] ; wait for bed temp
M104 S[first_layer_temperature] ; set extruder temp
G29 ;
M109 S[first_layer_temperature] ; wait for extruder temp

And End GCode:

G4 ; wait
G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure
M104 S0 ; turn off temperature
M140 S0 ; turn off heatbed
M107 ; turn off fan
G1 X0 Y200 F6000; home X axis
M84 ; disable motors

For the profiles, You can go ahead and use Original Prusa print profiles, but I recommend to remove acceleration control from the profile (Speed -> Acceleration Control (advanced) -> set over there everything to 0), and use the default hardcoded acceleration limits set in configuration.



It’s almost the end of build. When the extruder will be ready, there will be only few small tasks to do before the printer will print.

Printed parts needed:

1x Modified Extruder body by HeartFoxx
1x Modified Extruder idler by HeartFoxx
1x Extruder cover
1x Fan nozzle
1x Cable holder
1x notORIGINAL extruder motor cover (optional)

Parts from MK2 looks almost same, it even can work – but the diameter of chinese MK8 is a little bit bigger than the original pulley, and this causes problems – and because of that there is a modified version of body and idler.

Extruder body and fan nozzle should be printed from ABS or PETG to avoid future problems – parts from PLA can be easily melted over there (use PLA at your own risk)

Original manual can be followed straight, just use standard M3 nuts instead of the square ones. The slots for probe are too small for nuts – omit the nuts, it will be working without the nuts.

In step 14 – shaft – don’t use additional washers (it’s not needed with the HeartFoxx modification), and for the shaft go with the printed one.

While mounting probe (LJ8A3-2-Z/BX-5V) be careful, as the chinese probe are longer than PINDA one, and it makes harder to put the cable under it.

The additional nut from step 24 are not required – if you have any troubles to put it on the place, just ignore it.

When you will be managing the cables (from step 31) make sure that you know which cable is from the 30×30 fan – because it has to be connected directly to +12V on power supply, only the print fan will be controlled by software.

I didn’t used the spiral wraps/cable shields for my build, if you don’t have it – it will be still OK.

Extruder parts summary

Printed plastic parts

Metal parts

  • 10x M3 nut
  • 4x M3 washer
  • 4x M3x40 screw
  • 3x M3x30 screw
  • 1x M3x25 screw
  • 3x M3x20 screw
  • 6x M3x18 screw
  • 2x M3x10 screw
  • 1x 625ZZ or 625 2RS bearing
  • 2x Extruder spring
  • 1x MK8 pulley


  • 1x NEMA17 stepper motor
  • 1x 5015 turbine fan
  • 1x 30x30x10 fan
  • 1x LJ8A3-2-Z/BX-5V sensor


  • 1x Chinese E3D Bowden Hotend v6
  • 1x PTFE tube
  • 3x zipties (or more)
  • (optional) 1x nylon filament dia 3mm, 50cm length
  • (optional) 1x spiral wrap

Electronics #1

At this step we can test if the XYZ axis are moving properly. Lets mount all the electronics on the frame. As I have plywood frame with supports, I have some place to mount arduino directly to support, and as well I can make a holes for the power supply.

There will be more photos than usual.

Printed parts needed:

4x arduino-washer

At first, I checked where i have to make holes for power supply by temporarily apply it to draw points for two holes, and use 3mm drill on it.



For this mount I’ve used M3x20 screws, but even M3x15 with 9mm frame should be enough. It fits, and its stable.

On the other side of printer will be arduino with ramps. Lets make the sandwich.


And mount it on the frame… Using M3 screws and Arduino washers from i3 Rework.


The length of screws depends on your frame thickness, for 9mm frame I’ve used M3x18 screws.

Then, some soldiering are needed (depending on types of cables, some motors already have the proper cables, so only for endstops soldering are needed)


For the endstops I’ve used the NO output (as I want to have a signal from endstop when it will be triggered).



Endstop COM -> Ramps GND (-)
Endstop NO -> Ramps S (Signal)

But the connection doesn’t matter at all, as long as it will be between GND and S, otherwise the Configuration for Marlin which I provide will be not working.

After connecting everything as in any build with RAMPS 1.4 we can move to the computer and make the first tests. If You are not familiar with the connections, take a look on THIS – its complete guide for wring the RAMPS 1.4, even with power supply.

For connection between power supply and arduino use 2×2,5mm cables, to decrease probability of fire, especially with wooden frame 🙂

Software part requires:

Arduino IDE
Marlin firmware
USB A to B cable (You should get one while buying arduino, or You can take from the 2d printer, as its commonly used there)

If you don’t want to configure marlin by yourself, You can download the version which I made, but keep in mind – all your mechanical parts MUST BE same as the ones covered on that page. I changed the stepper driver on Z axis to DRV8825 with 1/32 stepping, so You have to do it also (or wait until I will change the DRV8825 to 1/16 mode, as I am planning that – the original has also 1/16 mode on all steppers).

Install the Arduino IDE, and open Marlin.ino file from the downloaded firmware. It will open a lot of tabs inside IDE, but for us currently interesting is only the Configuration.h.

What we have to do right now?

Lets configure the steps per mm – its the amount of signals needed to send to stepper motor to move axis by 1mm. Prusa made a great calculator for that – its available HERE

We have 16 tooth on our GT2 pulleys on X and Y axis


And we have trapezoidal screw with pitch 8mm.


We need to enter that values to Configuration.h – lets hit Ctrl + F for find, and look for “STEPS_PER”. It should find a entry somewhere in the file.

Modify that line with results which You got from the Prusa calculator


And its ready!

Connect the Arduino to PC and click on the right arrow in toolbar, and wait… It will show the status on the bottom of Arduino IDE window, it should finish correctly.

After that, its ready to test. Install Repetier-Host or Prointerface (maybe you had already one of them), and try to move X, Y or Z axis, connect your power supply to network, and lets start testing!

Be careful! For Z axis do only small moves (0,1) and watch carefully if both motors are spinning in same direction. If not, reverse the cables for one of motors. If any axis is working in wrong direction – also reverse the cables (or, modify the Configuration.h and reflash arduino – if You know that way).

Stay tuned for the extruder assembly. The build is getting closer to finish!