11/02/2007
For enthusiasts of open-source hardware, the 3Drag 3D printer represents a fantastic opportunity to delve into the intricate workings of additive manufacturing. One of the principal advantages of open-source designs lies in the unparalleled access to construction details and operational parameters. This transparency empowers users to not only understand their device intimately but also to tailor its performance with remarkable precision. The 3Drag, a proud member of the RepRap open-source printer family, thrives on community contributions, constantly evolving through shared knowledge and inspiring further innovation. To truly harness its capabilities, a thorough understanding of its firmware and hardware configuration is paramount.

- Understanding the 3Drag's Core: The Firmware
- Configuring Your 3Drag: A Deep Dive into Parameters
- Programming Your 3Drag's Brain
- Mastering the Print Plate: Adhesion and Removal
- Frequently Asked Questions (FAQs)
- What is the default motherboard setting for 3Drag in the firmware?
- Why are endstops normally closed (NC) on 3Drag?
- What are the maximum print dimensions for 3Drag?
- How many microsteps do 3Drag engines use?
- Can I use a heated bed with 3Drag?
- How do I improve print adhesion on the 3Drag's fibreglass plate?
Understanding the 3Drag's Core: The Firmware
At the heart of your 3Drag printer lies its firmware, the crucial software that translates your 3D models into physical movements. For the Sanguinololu board, which is standard on many 3Drag models, this firmware primarily manages the printer's fundamental functions, interpreting G-Code commands and converting them into precise motor and extruder actions. The 3Drag typically utilises a variant of the Marlin Firmware, known for its robustness and widespread adoption within the RepRap community. This adherence to common conventions means that if you're familiar with other RepRap projects, you'll find the configuration process intuitive. Each firmware setup allows for detailed customisation, defining the characteristics of the three axis motors, the extruder motor(s), the heater and its thermistor, cooling fans, and the essential microswitches that define start and end positions.
Configuring Your 3Drag: A Deep Dive into Parameters
To fine-tune your 3Drag, you'll be interacting with various parameters within the firmware's configuration file. Knowing what each setting controls is key to optimising your printer's performance.
Motherboard Identification
The very first step in firmware configuration is to correctly identify the motherboard. For the Sanguinololu 1.2, this is typically identified with a specific code number within the boards inventory. In the Marlin Firmware, you'll find a line similar to this:
#define MOTHERBOARD 62Setting this correctly ensures the firmware compiles with the appropriate pin configurations, assigning digital and analog pins to the correct resources, such as stepper motor drivers and endstop switches.
Thermal Settings
Managing temperatures is critical for successful 3D printing. The 3Drag uses a 100K NTC thermistor for the extruder. Crucially, standard 3Drag models do not come with a heated print bed, which means you must ensure the firmware is configured accordingly to avoid print delays. Look for these settings:
#define TEMP_SENSOR_0 5 ... #define BED_SENSOR_0 0The TEMP_SENSOR_0 5 setting indicates the 100K thermistor, while BED_SENSOR_0 0 confirms that no heated bed sensor is present. Failing to set the bed sensor to '0' would cause the firmware to indefinitely wait for a non-existent heated bed to reach temperature, preventing any prints from starting.
Endstop Configuration: Defining Boundaries
The microswitches, commonly known as endstops, are vital for the printer to detect the physical boundaries of its X/Y axes and to establish the starting point (home position) for printing on the Z-axis. For safety and reliability, 3Drag typically utilises a 'Normally Closed' (NC) configuration for these switches. This means that if a connection is interrupted or a switch malfunctions, the motor immediately stops, preventing potential damage. This requires specific boolean values in the firmware:
const bool X_ENDSTOPS_INVERTING = false; const bool Y_ENDSTOPS_INVERTING = false; const bool Z_ENDSTOPS_INVERTING = false;These 'false' values tell the firmware that the logic is not inverted; the switch opens the circuit when actuated. For practical reasons, such as easy calibration and screw tuning, the endstops are positioned at the beginning of each axis's travel. Therefore, the 'home' direction for all three axes is set to the minimum position:
#define X_HOME_DIR -1 #define Y_HOME_DIR -1 #define Z_HOME_DIR -1A value of '-1' signifies the minimum position, while '1' would indicate the maximum. This setup ensures that when the printer homes, it moves towards the start of its travel until the switch is triggered.
Defining Print Area Limits
Even after homing, the firmware maintains control over the axis movements to prevent the print head or bed from exceeding the physical limits of the printer's mechanics. Since the 3Drag only uses endstops for the home position (not for both ends of travel), you must define the minimum and maximum travel limits for each axis. These limits correspond to the usable print volume, with a small tolerance. For the 3Drag, the typical print area dimensions are:
#define X_MAX_POS 200 #define X_MIN_POS 0 #define Y_MAX_POS 200 #define Y_MIN_POS 0 #define Z_MAX_POS 220 #define Z_MIN_POS 0These settings define the operational boundaries, with X and Y ranging from 0 to 200 mm, and Z ranging from 0 to 220 mm. Setting these values accurately helps prevent mechanical collisions and ensures prints stay within the build plate's dimensions.
Motor Direction and Microstepping
The direction of your motors needs to be correctly configured to ensure the print head and extruder move as expected. For the 3Drag, the X, Y, and Z axes typically do not require inversion, meaning their respective direction parameters are set to 'false'. However, the extruder motor often requires inversion due to the gearing mechanism that drives the filament:
#define INVERT_X_DIR false #define INVERT_Y_DIR false #define INVERT_Z_DIR false #define INVERT_E0_DIR true #define INVERT_E1_DIR true #define INVERT_E2_DIR trueOne of the critical parameters for print precision is the motor's microstepping capability. Microstepping allows stepper motors to move in smaller increments than a full step, leading to smoother motion and higher resolution. The 3Drag's engines are configured to handle 16 microsteps, meaning each full revolution of the motor is divided into 3200 microsteps (200 full steps * 16 microsteps/full step). This high microstep count contributes significantly to the printer's ability to produce fine details.
Based on the mechanics (pulleys, belts, lead screws), the firmware also needs to know how many steps each motor must take to move by one unit of measure (typically 1 mm). For the 3Drag, these are approximately:
| Axis | Steps per mm |
|---|---|
| X | 64.25 |
| Y | 64.25 |
| Z | 2560 |
| Extruder (E) | 654 |
#define DEFAULT_AXIS_STEPS_PER_UNIT {64.25, 64.25, 2560, 654}The extruder value, in particular, is often fine-tuned based on actual filament extrusion tests to ensure accurate material deposition.
Power Management and Axis Disabling
Stepper motors, when powered, maintain their position by remaining locked, which consumes significant current and generates heat. To mitigate this, axes can be disabled when not in use. For the 3Drag, the Z-axis motor is often disabled when idle, allowing it to be manually moved if needed, while the X, Y, and extruder axes typically remain enabled for precise positioning.

#define DISABLE_X false #define DISABLE_Y false #define DISABLE_Z true #define DISABLE_E false // For all extrudersOptimising Speed and Acceleration
Speed and acceleration settings dictate how quickly your printer moves and changes direction. These values represent the maximums the firmware will apply, allowing the mechanics to operate efficiently without causing resonances or exceeding physical limits.
| Parameter | Value (mm/sec) | Notes |
|---|---|---|
| X Max Feedrate | 500 | Maximum linear speed for X-axis |
| Y Max Feedrate | 500 | Maximum linear speed for Y-axis |
| Z Max Feedrate | 50 | Limited due to high gearing |
| E Max Feedrate | 500 | Maximum extrusion speed |
#define DEFAULT_MAX_FEEDRATE {500, 500, 50, 500}Acceleration values, expressed in mm/sec², determine how quickly motors ramp up to the desired speed. Setting these too high can induce vibrations, especially during small, rapid movements. Conversely, too low values can significantly slow down printing.
#define DEFAULT_MAX_ACCELERATION {9000, 9000, 100, 10000} // X, Y, Z, E max start speed for accelerated moves. #define DEFAULT_ACCELERATION 1000 // X, Y, Z and E max acceleration for printing moves #define DEFAULT_RETRACT_ACCELERATION 1000 // X, Y, Z and E max acceleration for retractsThese values, particularly the DEFAULT_ACCELERATION and DEFAULT_RETRACT_ACCELERATION, are typically tuned through experimentation to achieve the best balance between print speed and quality for your specific 3Drag.
Programming Your 3Drag's Brain
While your 3Drag likely came with pre-programmed firmware, understanding how to re-program it is invaluable for updates or customisations. The process leverages its Arduino compatibility, using a standard USB connection.
To program the Sanguinololu board, you'll need the Arduino IDE, specifically version 022 (found in 'Previous IDE Versions' on arduino.cc). You'll also need to add the necessary hardware files for Sanguinololu, which can typically be downloaded from the Sanguinololu project page (e.g., code.google.com/p/sanguino/downloads/list). The contents of the downloaded ZIP should be moved into the 'hardware' folder within your Arduino IDE installation directory.
Once you have the firmware source code (often found as a 'Configuration.h' tab in the Arduino IDE), select the correct COM port for your printer under 'Serial Port' in the IDE. Ensure no other software is communicating with the printer, and verify that the programming jumper on the Sanguinololu board (usually near the microcontroller) is correctly inserted. With these steps, you're ready to upload your customised firmware.
Mastering the Print Plate: Adhesion and Removal
The print plate is where your 3D creations come to life, and its characteristics are crucial for successful prints. The 3Drag typically features a fibreglass print plate, which is unheated in its standard configuration, though a heated bed can be added by the user. Achieving good adhesion, especially for larger prints, and ensuring easy removal are key challenges.
Preparing the Fibreglass Plate for PLA
For printing with PLA, the smooth, polished surface of the fibreglass plate often needs a slight modification to improve adhesion. This isn't as complex as it sounds: simply use a scouring pad (like those used for dishes) to gently abrade the surface. This transforms the polished finish into a slightly opaque, porous texture, creating an ideal surface for PLA to grip onto.
Object Removal
Once a print is complete and the plate has cooled, removing the object requires a careful touch. Start from one corner and use a wide-bladed knife or a spatula. Thin objects will generally detach more easily. For thicker or more solid prints, patience is key; work your way around the object, gently prying it from multiple points until it releases.

Tackling the Gap with 'Brim'
Thermal retraction, where plastic cools and shrinks, can cause print corners to lift from the plate, especially on unheated beds. The 'Brim' feature, configurable in your slicing software (like Slic3r, typically in the same tab as 'Skirt'), is an excellent solution. A brim creates a single-layer platform that extends outwards from your object's perimeter. Its large contact surface with the print plate effectively counteracts thermal retraction, keeping your print firmly anchored.
Beyond adhesion, a brim also aids in object removal. The thin, flexible brim allows your blade to slip underneath the print more easily, guiding it as you detach the object. Once the print is off the plate, the brim, which is usually well-adhered to the base of your object, can be carefully removed with a craft knife or deburring tool.
Adding an Adhesive Layer
For prints requiring exceptionally strong adhesion, such as tall, narrow objects or those with small bases (e.g., busts or figurines), the natural adherence of the fibreglass may not suffice. A common and effective solution is to apply a thin layer of vinyl glue (PVA glue) diluted with water in equal parts. Simply brush this mixture evenly across the print plate, ensuring a uniform coat. Allow the layer to dry completely until it's no longer sticky to the touch before starting your print. This creates a powerful, temporary adhesive surface that significantly improves first-layer adhesion, preventing warping and ensuring your most challenging prints stay put.
Frequently Asked Questions (FAQs)
What is the default motherboard setting for 3Drag in the firmware?
The 3Drag typically uses the Sanguinololu 1.2 board, which is identified in the Marlin firmware as #define MOTHERBOARD 62.
Why are endstops normally closed (NC) on 3Drag?
Using normally closed endstops is a safety measure. If the connection to the switch is interrupted or the switch itself fails, the circuit opens, immediately stopping the motor. This prevents the printer from attempting to move beyond its physical limits, protecting the machine from damage.
What are the maximum print dimensions for 3Drag?
After homing, the 3Drag has defined travel limits of 200mm for the X-axis, 200mm for the Y-axis, and 220mm for the Z-axis, which corresponds to its usable print volume.
How many microsteps do 3Drag engines use?
The 3Drag's stepper motors are configured to handle 16 microsteps. This means that for every full revolution, the motor makes 3200 microsteps, contributing to very precise and smooth movements.
Can I use a heated bed with 3Drag?
While the standard 3Drag fibreglass plate is not heated (as indicated by #define BED_SENSOR_0 0 in the default firmware), you can certainly add a heated bed. You would then need to modify the firmware to enable and configure the heated bed sensor and control.
How do I improve print adhesion on the 3Drag's fibreglass plate?
For PLA, you can lightly abrade the fibreglass surface with a scouring pad to make it porous. For stronger adhesion, especially for challenging prints, applying a diluted vinyl glue (PVA glue) mixture to the plate and letting it dry before printing is highly effective. Additionally, utilising the 'Brim' feature in your slicing software can significantly improve first-layer adhesion and prevent warping.
If you want to read more articles similar to Mastering Your 3Drag: Firmware & Configuration, you can visit the Automotive category.
