3D Printer


My 3D Printer
3D printing came to be a pretty fun hobby of mine. The concepts and mechanics can be understood without needing a PhD (at least for some 3d printing methods 😉), the modifications are endless and the field is constantly advancing. I bought my 3D printer in August 2016, it was a pretty cheap Chinese Prusa variant named HICTOP Prusa i3. The kit included everything you need to build a 3D printer, the frame material is acrylic, which has its pros and cons.

I ended up replacing almost all the stock parts of the printer and adding several modifications of my own, this greatly improved the print quality and more importantly - I had immense fun taking it apart and learning about each component and concept.

How 3D Printing works?

As I noted before the printer I bought is based on Prusa i3, it’s an open-source 3D printer (yes! open-source hardware is a thing). It was designed in 2012 by Josef Průša, and is part of the RepRap project, open-source project to create a self-replicating machine (hence, rep-rap).

The printer works by heating a hot-end with a miniature hole (sizes can vary, mine is 0.4mm) and pushing material (filament) into it, at the same time the hot-end can move on three dimensions - X (left-right), Y (front-back) and Z (up-down). Printing is done layer-by-layer, starting from the bottom of the model upwards. Almost every parameter of the print can be controlled (layer height, layer width, printing speed), although there are certain mechanical limitations for each printer so the value ranges can be limited by that fact.

Hardware Modifications

Over the years I’ve replaced most parts of the printer - bearings, stepper-motors, logic-board, fans… etc’. This is an accurate list (as of 20/04/2020) of the current hardware parts:

  • Logic Board:
    • Main Board: MKS Gen-L v1.0
    • X, Y & Z Stepper Motor Drivers: MKS DRV8825
    • Extruder Stepper Motor Driver: MKS TMC2100
  • Motors:
    • X, Y & Z: Nema 17 Bipolar 3.3V 1.5A 0.4N.m
    • Extruder: Nema 17 Bipolar Step Motor 2.9V 0.7A 18Ncm
  • Hotend & Extruder:
  • PSU:
    • Unfortunately I don’t remember and I don’t want to take apart the printer to check :)

Two important notes regarding motors. First, there's a reason I use different stepper-motor drivers - The TMC2100 has special micro-stepping mode that can increase the step resolution, for extrusions that can give better control on the filament flow. Second, the extruder engine is much smaller than the rest of the engines, the reason is it lowers the extruder weight which allows to print in higher speeds. More weight can cause artifacts in the printed models.


The firmware I use is Marin, it’s an amazing open-source firmware for RepRap printers, it supports an extensive list of boards. The firmware is the orchestrator of the entire printing process, it executes several important processes and a lot of a printer capabilities is defined by the firmware that’s used.

You can find my configuration here.

Auto-Bed Leveling
One of the main issues I had with the original printer was that it was super hard to get the first-layer to adhere to the surface. That can happen for all kinds of reasons but after some debugging I figured the printing bed was not flat. I was lucky that Marlin has a neat feature called Auto-Bed Leveling which uses a Z-Probe to probe the nozzle height at several points, calculating a "correction matrix" which is later applied while printing.