Chinese quality vs price

While the r2 is still in beta, I’m looking for parts which have best price/quality relation. There are many chinese bearings, pulleys and other parts, with very low prices but mostly those are unusable.

Linear bearings

From the cheapest LM8UU only 30-50% of them are good enough to use them. The rest have so big looseness, which make the positioning of nozzle to be just a random, and it has very big impact on print quality. Currently I’ve ordered few bearings made by chinese brand FUSHI, those have very good opinions on Aliexpress, and I believe those will be good, without exceptions.


Almost all of the cheap chinese pulleys are just crap. The internal bore, which should be 5mm, are always 5.1mm or even more. They will rotate, but those will be always non-linear on the 5mm motor shaft. It will make the dimensions of printed objects a little bit inaccurate, and as well it will have a impact on print quality. From pulleys on Aliexpress I found good reviews of those made by POWGE, and currently I’m also waiting for them. From many cheapest ones, there is none accurate enough to be used in the printer.


Fortunately, even the cheapest Arduino + RAMPS boards are fine. But apart for that, I found that chinese brand RobotDyn are making great quality electronics, all the solders are made excellent. I strongly recommend to get those. There is one disadvantage – their Mega 2560 has a usb-micro port instead of the classig big usb-b port, but probably everyone has at least one this type of cable, as its commonly used in mobile phones.

Apart from chinese parts

The bill of materials (available on github) are constantly updated, I’ve added links to the needed products, to find them more easily.

I decided to modify the Marlin again, the added options which are worth mentioning are calibration menu and instant xyze moves from lcd. The full changelog and the source code as well are available on github.

I’m waiting to get all the (better quality) chinese parts ASAP, to finally publish the build as – at least – Realase Candidate ūüôā


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.