Tower Calibration – Rostock BI V1.0 3D Printer

Calibrating the Rostock 3D Printer BI Edition

As you know the Rostock 3D Printer BI edition comes pre-calibrated out of the box or in a DIY Kit. However, if you happen to notice that your printer is not printing as well as it should or if you replaced some parts you might want to recalibrate it. The calibration process is iterative and we’ve come up with a solution that shouldn’t take too much time. If you only want to adjust the base layer height please refer to the Getting Started Guide found inside your user manual.

First, you will need the Arduino IDE (integrated development enviroment) that is available free on arduino’s website. Then you will need to get the firmware source code for your Rostock BI (instructions on where to retrieve the firmware for your fully calibrated printer is found with the printer documentation, but the basic software version can be obtained from us.

The first step is to open Marlin.ino using the Arduino IDE.


Then navigate to the Configuration.h tab.


The first calibration step is to set the DEFAULT_AXIS_STEPS_PER_UNIT  value on line 312. Because the driving pulleys are 3D printed there could be slight variations between their shape and behavior. As such, we take time to adjust this crucial setting with empirical data instead of using theoretical values.

The method we use is to take measurements from the top plate to the carrier we are calibrating (each done individually).

The steps are as follows:

1. Home all axes then position your digital caliper to take the measurement.

2. Move the carrier 2 mm down in Z to ensure the caliper is properly seated then zero it.

3. Move the carrier 40 mm down in Z and record the distance traveled. We recommend that you take at least 3 measurements and discard any extreme values. We use a simple Excel sheet to facilitate the calculation which implements the following formula:


New DEFAULT_AXIS_STEPS_PER_UNIT = [Commanded Move Length (mm) / Actual Move Length (Average)] * Current DEFAULT_AXIS_STEPS_PER_UNIT

With the Excel Calculator, you must first enter 40 mm (or the test distance you choose) in the Commanded Move Length field.

The next step is to conduct the measurements at least 3 times and enter your results for the tower in the Actual Move Length fields. An Average will be calculated for your 3 measurements.

Lastly, check the corresponding DEFAULT_AXIS_STEPS_PER_UNIT from the Firmware and enter it in the Current DEFAULT_AXIS_STEPS_PER_UNIT field.

The answer will be displayed in the New DEFAULT_AXIS_STEPS_PER_UNIT field. You must replace the old value with it and run another test to insure that the actual move length equals the commanded move length.



The next step is to roughly set the hotend height. This setting is controlled by MANUAL_Z_HOME_POS on line 303. Home all axes then descend the hotend to the glass surface while noting how many clicks of each interval to see how far you went. Replace the MANUAL_Z_HOME_POS in the firmware and upload. Now if you home all axes and try to descend lower than the set height the controller will stop it.


It is now time to calibrate each tower’s Endstop switch. Load up the Tower Calibration.gcode into Repetier-Host and run it. The Gcode is configured to perform certain steps and ask you to continue after each step.

  1. The first movement of the printer will be to lower Hotend to 2 mm above the glass.
  2. Click “Continue” and the print head will move towards the “X tower” and should remain 2 mm above the glass during its travel.
  3. Continue the calibration code and note the behavior of the print head at each location.

If the hotend lowered or raised itself visibly, then a major adjustment to the screw on top of the carrier of the affected tower is needed. The idea is to adjust the towers in such a way that the print head remains 2 mm from the glass during the entire calibration procedure.


Tower Height Adjustment Screw

The next image depicts how to adjust the carrier screws. Each revolution of the screw will adjust the height of the tower by 0.5 mm. Turn clockwise to raise the print head from the glass and anti-clockwise to lower the print head. Here’s an example.


This is where the iterative process starts because changing one of the screws does affect the others but not as to diverge from the trend. Do this a few times but not to perfection because the next setting will also affect the height near the towers.

This next setting is the DELTA_RADIUS, but because it is a calculated value we will indirectly change it by changing the DELTA_SMOOTH_ROD_OFFSET on line 65. This has a result of changing the path the hotend takes from one point to another.


The ideal print head trajectory is a flat trajectory paralleling the glass surface. If the setting is not right you will see the trajectory that is either concave or convex with respect to the heat bed. This is the most difficult to adjust because you have to adjust it by eye. If the trajectory is concave it means the value of DELTA_SMOOTH_ROD_OFFSET is too high and vice-versa. This step could be done before adjusting the tower screws but if you don’t know where the starting and ending point should be it makes it a little bit harder to judge.

Once the trajectory is flat then you don’t have to change it again, a few iteration of the screw process and you should be done.

You can also try to print and see a trend of the plastic being squeezed to the glass (convex) or being extruded to high (concave) at the extremities of the print area.

Having done this process numerous times we got a feel of how much adjustments to do for certain deviation and hopefully you can calibrate your BI edition of the Rostock without too much frustration. Don’t hesitate to visit our support section if you need more help calibrating your 3D printer.