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.

Spool-holder-base

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

Rotating-Platform

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

Spool-adaptor

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:

Exploded_view

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.

String1
Sting4

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.
String2
Underside-String-Half-Turn

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.
String6
String7

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.

Marlin-Source-File

Then navigate to the Configuration.h tab.

Configuration-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:

Excel-Calculator

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.

Arduino1

Bed

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.

Arduino2

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.

Closeup-Adjustment-Screw-Main

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.

Calc_Height

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.

Arduino3

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.

Cable Drive System – Rostock 3D Printer BI

During our research when designing the Rostock 3D Printer BI Edition, we found that some people had experimented with using cable drives instead of the traditional belt drives. After careful analysis, we were confident that a cable drive could accomplish the same function as a belt drive and that it would also be simpler to implement. We went through several rounds of testing and redesigning until we were fully satisfied with our current cable drive system. Today we are unveiling our final design for the cable drive system (which will ship with the first batch of Rostock BIs).

To begin, let’s take an overall look at the system and its components. At the bottom, we have a cable drive pulley, in the middle, we have a carriage assembly with cable tensioner, and at the top, we have an idler pulley module with bearings and a stop switch. The carriage assembly glides smoothly along 5/16 inch steel rods using LM8UU bearings.

Real_cable_drive_top_view_with_comments

Rostock 3D Printer Drive Pulley

One of the most important features that we wanted to incorporate into the cable drive pulley was the ability to keep the wire from crossing over itself. The main reason why we wanted the wire to spool perfectly around the pulley was to ensure that binding of the wire would not affect the print quality. We initially tested “ribbed” pulleys that were intended to guide the wire around an infinite screw. However, we found that these systems produced long pulleys that moved the wire laterally and created other types of problems.

Another objective we had was to keep the pulley relatively close to the stepper motor face. By doing so, we limited the lateral movement of the wire across the pulley and maintained a relatively constant wire distance between the top and bottom pulleys.

Motor_drive_closeup

The result is a minimalistic drive pulley held in place by a retaining screw. We placed a dividing wall in the middle of the pulley to keep the spooling and unspooling segments separate. Another interesting feature of the drive pulley is a guide tunnel going from one end to the other.

Better_Closeup_Pulley

This guide tunnel allowed us to use a single wire for the assembly and secure the wire on the pulley without the need for screws (other designs used additional screws to secure the wire onto the pulley). The strategic location of the guide tunnel promotes a more linear winding of the cable, which translates into a linear carriage motion.

Carrier and Tensioner

The cable used in the Rostock 3D Printer BI Edition is a high quality braided non-stretch fishing line. A non-stretch cable is important in order to guarantee that the cable doesn’t lose its tension. The cable tension is adjusted by turning an M4 screw equipped with a washer. The washer will  ensure that the wire is secured to the carrier. Another useful benefit of using a washer is that it allows you to fine tune the position of the wire around the tensioning screw and also fine tune the winding pattern of the cable.

Carrier_closeup

The carriage assembly is held in place on the rods by linear bearings which provide a very smooth motion. Finally, on the inside part of the carrier we positioned an M3 screw to hit the “endstop”. The height of that screw must be 0.5 mm for each turn. This is critical for the proper calibration of the towers and print head.

Idler Pulley

The idler pulley, located on the topmost part of the assembly, is comprised of two 608 bearings and a 3D printed pulley. It is mounted on a part that supports both rods and the top plate and the wire is simply looped over the 3D printed pulley. This arrangement provides support for the cable and a very smooth drive. We used two bearings to allow for a greater surface area when adjusting the final position of the pulley. We plan to  use only one 608 bearing for  subsequent versions of the system.

The cable drive system that we have designed is simple and reliable. The production of this system is very straightforward when compared to the belt and metal pulley. Since we use a non-stretch wire, there is also minimal lash in the system which means accurate and easy calibration. 

Idler_closeup

Stop Switch (Mechanical Endstop)

The stop switch is located on the inside part of the idler pulley module and, as its name suggests, is used to stop the carriage assembly. It is not necessarily part of the cable drive system itself, but we decided to dedicate a few lines to it in this article. The endstop used is a mechanical switch mounted to a PCB breakout board. It is widely used in many 3D printer designs and performs very nicely. We evaluated the possibility of using Hall sensor based switches but saw no real benefits for this application where we simply needed to mark an initial position in the software. In a nutshell, when the screw located on the carriage assembly hits the switch, a signal is sent to the software, the stepper stops and the position is marked as “parked”.

Endstop_closeup

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

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.

Ramps1_4
Arduino-Mega-2560

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.

Ramps_A4988

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).

Non_conducting_screwdriver

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.

Pot_increase
Pot_decrease

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.

Pot_dead_zone

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.