Build a Syringe Extruder for Your MendelMax 2.0




Introduction: Build a Syringe Extruder for Your MendelMax 2.0

This is a guide for assembling my syringe extruder for the MendelMax 2.0. They can be mounted either on the X carriage of the MendelMax 2.0, or on the frame of the MendelMax 2.0, 1.5, or any 3D printer constructed from 2020 extrusion.

Some parts for this extruder may require the use of specialized tools to manufacture, so please read through this guide carefully before attempting to build one for yourself. It is my objective to simplify this model for future releases, however you may also be able to find alternate methods to make these parts for yourself.

3D printable models, laser cut patterns, firmware, and additional documentation can be found at any of the following online repositories:




The manufacturing procedure for some of these parts have not been included in this documentation, however there are additional documents pertaining to these parts available in the following steps and in any of the above repositories.

Happy making!

Step 1: Things You'll Need

Tools Required

- 3D Printer

- Laser Cutter or Water Jet Cutter able to cut 3mm aluminium or 3mm acrylic

- Rotary Tool (Power Drill, Drill Press, Dremel, etc), with countersink drill bit

- Tap & Die Kit

- Lathe (preferable – for modifying linear shafts & threaded rod)

- Mill (preferable but not neccesary – for making the more complex lead nut)

- Bending Machine OR Heat Gun (for bending 3mm plate aluminium and acrylic respectively)

- Screwdrivers / Allan Keys (depending on which screws you’ve purchased)

- Needle nose pliers or similar

Bill of Materials

All the parts you'll need to make this syringe extruder are in the BOM above. The most current bill of materials can be downloaded from any of the online repositories listed on the previous page. Many of the items in this bill can be purchased from online stores and general hardware stores – I purchased all my parts from New Zealand hardware stores and from

Step 2: 3D Printed Parts

These are the printed parts for the syringe extruder. Parts A, B, C can be printed using the alignment in this image without support depending on your printer’s settings. Part D can be printed without support by rotating 90 degrees, and part A can be printed similarly with support, although the support material may be tricky to remove. There is also an optional endstop spacer that can be printed if you are using an endstop - this can be set up to alert the printer to pause when the material in the syringe is exhausted so that it can be changed over.

A: Bottom Mount

B: Sliding Press

C: Top Mount

D: Spring Clamp

E: Endstop Spacer

Step 3: Sheet Metal Parts

Here is a reference for the sheet metal parts for this kit. I used 3mm sheet aluminium for strength, weight, and rigidity but it may also be possible to use sheet acrylic instead. It might also be worth considering using plate steel for the sliding press clamp as this can hold threads better than aluminium. Some of these parts require 90 degree bends, for which there are tolerances built into the cutting patterns. Consider getting your aluminium anodized, and bending and tapping holes beforehand.

A: Frame

B: Sliding Press Top Plate

C: Sliding Press Bottom Plate

D: Sliding Press Clamp

E: Lower Syringe Clamp

F: Stepper Motor Mount

N.B. There are lines in the .DXF and .AI drawings for where the 90 degree bends should go, highlighted here in green. Ensure these are not accidentally mistaken for cutting lines. Also make sure to check the assembly images to see which direction there parts are bent.

Step 4: Machined Parts

Lead Nut

This can be machined out of any engineering plastic that is good at holding a thread - I used acetyl and a mill. There is also a simpler lead nut drawing in the repository which can be made by cutting the acetyl to size, and either using a drill press or carefully using a power drill to bore the holes which can then be threaded. The lead nut does require this thickness and width for a snug fit in the sliding press, precise placement of the thread and the hole behind it, but including a ridge helps guide the nut into place. The holes in the front face can be drilled to whatever diameter of spring you choose to use.

Linear Shaft and Threaded Rod

These should be machined out of stainless steel, and can be made on a lathe. The top of the threaded rod has to have the thread removed so it does not strip the plastic in the top mount and rotates with little friction, and the bottom has to be lathed to fit through the bearings and fit the GT2 pulleys. The linear shaft should fit snugly with no vertical movement in the top and bottom mounts, however you could consider printing / drilling holes in the mount to fit the width of the shafts removing the need for lathing. The spring pin must just have the threads and the circlip groove, however you could consider printing a circlip and threading this on to the back of the pin instead.

Step 5: Assembling the Lower Mount to the Frame

Using a drill, drill press, or rotary tool equipped with a countersink drill bit, countersink the 4 holes for the stepper motor mount in the frame until the countersink screws sit flush.

Fit 2 M5 nuts into the nut traps in the bottom mount. These will fit tightly if you've used M5 x 4 nuts.

Place 2 of the M3 x 15 screws in the screw holes on the front of the bottom mount.

Line the screws in the bottom mount up with the holes in the frame and fit together.

Fasten with M3 nuts and tighten.

Step 6: Assembling the Spring Clamp

Thread the hole in the spring clamp with an M6 x 1.0 tap.

If you have not already threaded the spring clamp pin, do this now with an M6 x 1.0 die.

Screw the spring clamp pin into the spring clamp and tighten.

Fit the spring clamp through the hole in the front of the bottom mount.

Place the large spring on the spring clamp pin on the back of the extruder.

Using a washer, compress the spring and fit the M6 circlip into the circlip groove on the spring pin. You may need someone to help you compress the spring.

Step 7: Assembling the Lead Screw

Place a F605ZZ bearing in the socket on the top of the bottom mount.

Place a F605ZZ bearing in the socket on the inside of the bottom mount.

Place an M5 washer on the long stripped end on the threaded rod.

With the GT2 belt on, position the GT2 pulley in place under the bearing inside the bottom mount, and place a washer between the pulley and the bearing.

Push the threaded rod through the bearings, the washer, and the pulley. With the pulley sat flush against the washer and the bearing, tighten the grub screws on the pulley.

Step 8: Assembling the Lower Syringe Clamp

Thread the linear shafts and the threaded rod through the lower syringe clamp and lower it onto the lower mount.

Using 2 M5 x 12 screws with washers, fasten the lower syringe clamp to the M5 nuts in the nut traps in the lower mount.

Step 9: Assembling the Sliding Press - Part 1

Push a linear bearing into one of the holes in the sliding clamp. It should fit tightly and require some force to move, but depending on your print settings you may need a little sanding to get it in.

Repeat with the second bearing.

Use 4 of the M3 x 6 self-tapping screws to fasten the sliding press top plate to the sliding press. Depending on your printing settings you may need to make a small pilot hole using a drill or a sharp blade.

Carefully thread the hole in the center of the sliding press clamp with an M5 x 0.8 mm tap.

Carefully thread the smaller holes on the sliding press clamp with M3 x 0.5 mm tap.

Cut or saw the tops of 2 of the M3 x 15 screws.

Leaving 3mm of thread on one side, grind or sand the threads off the screws until reasonably smooth using a rotary tool, grinder, or sandpaper.

Using a small amount of Loctite, fasten the screws into the sliding press clamp until they are flush.

Step 10: Assembling the Sliding Press - Part 2

Check to see if the sliding press clamp fits and moves with little friction in the sliding press. If not you may need to carefully clean / widen the hole with a drill.

With a washer either side, fit an M5 x 20 screw through the hole in the top of the sliding press. Mark the screw with a pen for where to place the circlip. Grind a groove in the screw where you marked it using a rotary tool, hacksaw, or lathe.

Fix the M5 x 20 screw in the sliding press with the M5 circlip and make sure it rotates freely.

Turning the screw counterclockwise, wind the sliding press clamp onto the M5 x 20 screw.

With the remaining 4 M3 x 6 self-tapping screws, fix the sliding press bottom plate on to the sliding press.

Step 11: Optional Step - Fitting the Endstop Trigger

For optional endstop – thread the hole in the sliding press bottom plate with an M5 x 0.8 mm tap.

Wind in the M5 x 25 screw and lock into place with an M5 nut.

Step 12: Fitting the Sliding Press and Top Mount

If you chose one long spring for your smaller spring, clip this in half.

Place a spring in each hole in the front of the sliding press lead nut.

Insert the lead nut into the sliding press.

While compressing the lead nut, work the sliding press on to the linear shafts and threaded rod.

Fit the top mount on to the ends of the linear shafts and threaded rod and ensure the screw holes of the top mount and the frame are aligned. If not, you may need to carefully widen out the holes for whichever linear shaft or threaded rod is not sitting flush in the top mount with a drill.

Insert the 2 M3 x 20 screws into the holes in the front of the top mount and through the frame. Fasten with M3 nuts.

Step 13: Attaching the Stepper Motor

Fix the stepper motor top the stepper motor mount using the 4 M3 x 8 screws with washers.

Insert the 4 M5 x 12 countersunk screws into the holes in the front of the frame.

You may wish to hold these in place by using a piece of tape for the next steps.

Turn the extruder around with the screws facing up.

Place 4 M5 washers on each screw.

Loosely place the GT2 belt around the GT2 pulley on the stepper motor, and line up the mount with the screws.

Place an M5 split washer on each of the screws.

Loosely fasten with M5 nuts.

Step 14: Tensioning the Stepper Motor

Adjust the positioning of the pulley on the stepper motor until the belt is lined up with the pulley inside the frame and then fasten the grub screws.

Slide the stepper motor mount along the screws until the GT2 belt is taut. Tighten the M5 nuts.

Step 15: Final Touches

Fasten the syringe extruder onto the MendelMax 2.0 X carriage with the remaining 2 M5 x 20 screws and M5 nuts, and plug the stepper motor into the Extruder 1 driver on your printer’s board.

You may also wish to fasten the optional endstop to the front of the extruder with the M2 x 12 screws and wire this to the Max X endstop pins on your print board.

Step 16: Modifying Firmware - Soft Option

As the syringe extruder does not have a hotend and thus no temperature sensor, we must modify the firmware to allow for this.

If you would prefer not to make too many modifications to the firmware, you can keep a temperature sensor plugged into the Extruder 1 themistor pins and add an “M302 ; Allow Cold Extrudes” line to the Start G-code in your slicing application. In Slic3r, this is found under the “Printer Settings” tab by selecting “Custom G-code” when Slic3r is in “Expert Mode”. You will still need to change the extruder steps/mm setting.

Step 17: Modifying Firmware

If you do want to make firmware changes, consider making a backup of your current firmware and settings to easily revert back to when switching back to a plastic extruder.

The following are settings for the Marlin firmware for the MendelMax 2.0 which can be found here:

Open up Marlin in the Arduino, and navigate to the Configuration.h tab. Search for the #define TEMP_SENSOR_0 line under Thermal Settings. Change this value to 0 to disable the temperature sensor for the primary extruder, and add a comment so you can find this change later. You may also wish to disable TEMP_SENSOR_1 if you are using two syringe extruders.

This may cause the extruders to read a random value in your host program, however their values are not relevant to the printing process.

Still in Configuration.h, navigate to #define HEATER_0_MINTEMP line, and either set the value to a low non-null value, or comment out the line to disable it. This setting is to ensure that the connection to the thermistor is not broken, however as the syringe extruder does not have a thermistor this check is not required. Again, you may wish to make this change for HEATER_1_MINTEMP if you are using a second extruder, and add a comment so you can find this change later.

Just below this is #define HEATER_0_MAXTEMP, another temperature safety check for protecting the hotend from overheating. You can choose to either comment this line out or modify the setting to a large number to stop this safety measure from activating. As the disabled thermistor may still read a value this feature may still be activated, however it will only turn off the heater for the hotend which the syringe extruder does not have, but it should still be disabled so your print host does not encounter any errors. Again, comment and repeat for HEATER_1_MAXTEMP if using a second extruder.

Further down in Configuration.h is a setting called DISABLE_MAX_ENDSTOPS, which you should un-comment if you are using an endstop with your syringe extruder. This will allow you to re-assign this endstop for a custom filament exhausted code that will allow you to switch syringes while printing when they run empty.

Navigate to Movement Settings, and find the setting DEFAULT_AXIS_STEPS_PER_UNIT. The value on the end is the number of steps per mm for the extruder. If you are using a 1.8 degree/step motor with 1/16 microstepping, this value should be 3200, and for a 0.9 degree/step motor this will be 6400.

If you would like to make calculations for different configrations, visit:

…and use the calculator for leadscrew driven systems with an M6 pitch and 1 : 1 gearing ratio.

For the optional endstops, a custom routine must be inserted to handle the pause commands when the endstop is triggered. I have modified the Marlin_main.cpp file with some routines to trigger the G-code command M226 ; G-code initiated pause which can be downloaded from the online repository. It is recommended to back up your original Marlin_main.cpp file before replacing with the customised copy as you may want to revert these settings when swapping out extruders, though there should be no conflicting of code unless you are using max endstops. This code is still under testing, and if you would like to make any changes you can search for the keyword MM2SE in Arduino.

Step 18: Finished!

All done! Congratulations, and enjoy 3D printing with your syringe extruder!

CNC Challenge

Participated in the
CNC Challenge

Be the First to Share


    • Puzzles Speed Challenge

      Puzzles Speed Challenge
    • CNC Contest 2020

      CNC Contest 2020
    • Secret Compartment Challenge

      Secret Compartment Challenge