Field report: 3D printer - Geeetech Prusa i3 pro B


3D printer kits have become affordable. The new hobby can be purchased for under 200$. What you buy is a device that initially consumes a lot of time, but offers completely new possibilities. Once the printer is assembled, it's time for fine-tuning. I spent some time to choose the right software (Slicer) and to understand the different setting parameters. In addition to the kits, there are also pre-assembled models, which can save quite a bit of time during commissioning. In addition, the standard parameters of the well-known slicers usually provide a good starting point for a quick start.

Choice of software

In addition to the hardware, a program is also needed to create the control files: the slicer. The slicer is a small program that, in the case of an FDM printer, translates 3D objects into a machine language (G-code), which is a set of coordinates that a 3D printer must move to in order to brush the object together. In the process, the slicer breaks the object into thin layers and creates a motion description consisting of coordinates, which can then be played back and the object printed by adding material, also described in G-code.

The parameters used in the slicer may need to be tuned to the printer; accordingly, the fine tuning of the printer is done in the slicing software. The setting parameters can be interpreted differently depending on the slicer. See also: free slicers in comparison: PrusaSlicer vs Cura vs Slic3r.

Support printing

Since a classic FDM 3D printer cannot print into the air, overhanging parts of the object, if present and necessary, can be underlaid by the slicer with a support structure printed along with it. Once the print is complete, the support can then be easily removed.

My 3D printer setup:

The setup is very easy thanks to the instructions and takes about 8 hours. The cable routing leaves some room for interpretation, but should be able to be implemented by any hobbyist without problems.


At the first startup, the running direction of the X-axis was reversed, which was quickly fixed by a firmware update, see: and Later, I updated the firmware to Marlin 1.1.9, see the end of this article ...


To make sure that the left-front edge of the glass plate corresponds exactly to the coordinates X=0 and Y=0, the position can first be changed in the menu of the printer display with Prepare Move-Axis, with Set home offsets it can be saved.

Or via the Octopi terminal with M206 X6 (6 stands for 6mm offset) and then in the menu on Store

Calibrate: Distance to glass plate:

At first, I was a bit afraid for the glass plate, after all the Nozzle (nozzle) scratches on it if the distance to the print bed is too little. The coarse distance is adjusted with a screw, the fine adjustment is done at the 4 corners of the glass plate with a wing nut. When calibrating, there should be space for a sheet of paper between the nozzle and the glass plate at each of the four corners. Later I got myself a heat-resistant tape, which can be simply stuck on the glass plate. The tape protects the glass plate and gives the printed objects a rougher texture instead of a smooth surface.

Notes about the firmware update

A new firmware can be obtained from the following Github page:


Marlin 1.1.9

The Arduino app from the Windows Store can be used to install the firmware: Version

Here are my current customizations:




#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 2550, 150 }  //150 da Filament-Antrieb modifiziert

#define FIL_RUNOUT_PIN 24

 #define FILAMENT_RUNOUT_SCRIPT "M600 X100 Y0 Z1 E3 L10 U100"


 #define X_MIN_POS -9


* Stepper Driver Änderungen

#define INVERT_X_DIR true -> false
#define INVERT_Y_DIR true -> false
#define INVERT_Z_DIR false -> true
#define INVERT_E0_DIR true -> false


#define Z_MAX_PIN          -1

#define FIL_RUNOUT_PIN 24



#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change.
#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change

#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu.

#define ADVANCED_PAUSE_PURGE_LENGTH         10  // (mm) Length to extrude after loading.

* As described above, except for the bed (M140/M190/M303).
#define WATCH_BED_TEMP_PERIOD 90 // Seconds Anstelle 60

 #define FILAMENT_CHANGE_UNLOAD_FEEDRATE     60  // (mm/s) Unload filament feedrate. This can be pretty fast.

#define FILAMENT_UNLOAD_RETRACT_LENGTH 1 // (mm) Unload initial retract length.
#define FILAMENT_UNLOAD_DELAY 1 // (ms) Delay for the filament to cool after retract.
positive Bewertung({{pro_count}})
Rate Post:
{{percentage}} % positive
negative Bewertung({{con_count}})

THANK YOU for your review!

Questions / Comments

By continuing to browse the site, you agree to our use of cookies. More Details