Filament Spool Holder

While working on the Rostock 3D Printer BI edition we also tested different types of PLA filament spools. Although most of the spools that we worked with were similar in that they held 1 kg of PLA, they often had different inner diameters. We found that when working with different spools a versatile system was necessary. We designed our filament spool holder to allow for quick switches between different spool types. When 3D printing, it is important to use a high-quality spool holder as it will ensure the smooth unspooling of the filament and will minimize strain on the extruder.

In this article, we will discuss the BI spool holder and its features. Our primary goal was to design a simple filament spool holder that would be versatile but we also wanted it to be stable and allow for smooth unwinding.

Breaking it down

After several rounds of testing our final design is a spool holder that is comprised of three main parts:

1) The spool holder base which supports the assembly.


2) The rotating platform which sits on top of a 608 bearing and allows for smooth unspooling.


3) The spool adaptor which can be modified to fit any type of filament spool.


The main parts are 3D printed using 1.75 mm PLA and a typical infill of ~30%. Additional parts required include a 608 bearing, a 20 mm M4 cap screw, and a flat M4 washer. The following exploded view depicts the assembly:


Central to this design is the ability to quickly switch between adaptors to accommodate spools with different mounting diameter.

If you would like to print your own, all SketchUp models, STL files, and additional instructions are available on Thingiverse.

How to String the BI V1.0 Delta 3D Printer

The BI V1.0 Delta 3D Printer is assembled with a Cable Drive System that can be tricky to install without some pointers. This article will explain how to properly string each tower and will give information on what to look for when completing this task.

1) We start the stringing process with the 3D printed drive pulley installed to the shaft of the stepper motor.

2) While facing the drive pulley as depicted in the picture below, introduce the no stretch cable trough the guide tunnel from left to right.

  • The drive pulley should be positioned in such a way that orients the inner tunnel to bring the wire closer to the motor (while being inserted from left to right).

3) With the free end coming out on the right make an overhand loop knot.

4) Slip the M4 tensioning screw and the M4 washer trough the loop and screw it in the carriage about 3 threads deep.


5) Next, move the carriage to the top of the tower against the endstop switch.

6) Maintain some tension on the wire by holding the carriage with one hand and spin the pulley with the other hand to make it come down.

  • The initial position of the pulley should be turned at least half a turn clockwise from the position where the cable enters the tunnel guide.

The best technique to turn the drive pulley is by spooling the other side of the cable onto the drive pulley to ensure that the cable doesn’t slip on the pulley. Make sure to maintain tension with the carriage or else you’ll end up running out of tensioning room on the screw later on (it won’t screw up enough to tension the assembly).

7) Keep bringing the carriage down until it is at the very bottom.

8) Once that’s done measure the length of cable necessary to start from the pulley with at least half a turn clockwise then go around the idler pulley then back down to the carriage.

9) Once you’ve determined the length of the cable make an overhand loop knot and cut the free end. Now slip the newly made knot over the cable attachment prong.

  • If you made the knot a bit short and you can’t slip the knot on (which is not a bad thing) you can move the carriage to the middle of the tower while making sure to keep the tension in the cable. Unscrew the tensioning screw, slip the knot over the prong and reinstall the screw.

Sting_5 10) The last step is to make sure the cable spools correctly on the pulley. We’ve analyzed the spooling motion and it is crucial that the cable spools without crossing itself to keep the spooling diameter the same throughout the entire length of the carriage motion.

  • Failure to avoid wire crossing could affect print quality! Usually, if the initial turn of the cable around the pulley is stacked right and there’s enough tension in the cable it should spool correctly. If the cable begins crossing over itself, then you need more tension. You can also use the M4 washer as an adjustment to help position the cable.

Test the motion of the carriage and make sure it doesn’t bind at any point along the tower by moving it by hand up and down a few times. You should also make sure during the test that the cable spools itself properly every time.

You have now stringed one tower. Do the same for the others if required. With experience, you should be able to string one tower under 5 minutes.

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.

POTs Calibration – RAMPS 1.4

The first batch of the Rostock 3D Printer BI Edition is driven by the Arduino Mega 2560 and the RAMPS 1.4 electronic package. This package is installed upside down under the top plate of the Rostock BI inside a protective PLA case.


When you remove the protective PLA case and take a look at the RAMPS board you will find four A4988 Pololu Stepper Drivers equipped with heatsinks.


The potentiometers (POTs) found on each stepper driver are used to adjust the power delivered to their respective stepper motors. The initial adjustment of each POT is done at BI Labs (except for the DIY 3D printer), but you may find that over time they might require fine tuning. There is a small margin of adjustment for each POT that is optimal for your Rostock 3D printer. In this article, we will cover the steps required to properly adjust the POTs.

If a POT is set too high then the associated stepper driver will tend to overheat and go into over-temperature thermal shutdown (to prevent damage to its components). The first sign of overheating is erratic stepper motor behavior. Typically, this can be recognized by the sounds of the stepper motor suddenly losing power (thermal shutdown). If no load or movement is required of the motor, it is hard to detect whether it is over-powered as the driver is barely producing any heat. To help you better understand, we’ve included a short video that shows the different behaviors of an improperly powered stepper motor.

We talked about the over-powered state that can lead to erratic stepper motor control and thermal shutdown. Conversely, if the POT is set too low, the stepper motor can enter an underpowered state. This can be recognized by a lack of holding torque and a stepper motor that is skipping steps because the necessary movement  requires a higher power demand than the POT setting allows for.

Both situations are remedied by fine tuning the POT adjustment so that the stepper can provide enough power without overheating. To adjust the POT screw we recommend using a non-conductive flat screwdriver (#0).


If you turn the POT adjustment screw clockwise you will:

  1. Increase the power delivered to the stepper; and
  2. Increase the heat generated by the stepper driver.

Turning the POT counter-clockwise will have the opposite effect.


It’s important to note that some POTs do not have a physical stop at the minimum and maximum power setting. In the absence of a physical stop, you must be aware that there is a dead zone of rotation where the POT screw will be ineffective. In other words, making a full revolution will bring you back to the same setting but only a certain percentage of the revolution is effectively controlling the power output.

Note: The image below depicts the “dead-zone” as 180 degrees. A dead-zone is not always present but if it is, your inputs will have no effect in it.


The best way to calibrate a POT is to launch a print and adjust the POTs until you are satisfied with the power delivery. The ideal point is reached when your POT is set slightly higher than the minimal setting required to accomplish the task. The three tower stepper motors won’t require as much power as the extruder stepper motor.

Finally, we should point out that the fan enclosed in the PLA protective case plays a key role in keeping your POTs at a low temperature. As such, make sure to re-install the case when you are done.