More documentation and printable parts available at Github.
Piece (image) | n | File name | Notes/Details |
![]() | 1 | Big_gear_gregs_hex.stl | 1 per printer M8 nut must be inserted in the hole |
![]() | 2 | Plunge.stl | 1 per printer Must be completely flat (no warping!) |
![]() | 3 | AJGW_GearsHering_Small.stl | 1 per printer M3 nut must be inserted inside, aligned with the hole for the bolt to block the motor shaft May require filing the inner part to fit in the motor shaft |
![]() | 4 | internal_gear.stl | 1 per printer |
![]() | 5 | Base_support.stl | 1 per printer Remove support and open holes |
![]() | 6 | Spring_press.stl | 1 per printer M3 nut must be inserted inside |
An interactive 3D model of the complete assembled extruder can be consulted online: https://a360.co/2EwcIV1
To be able to work with the new extruder in any printer, we need to obtain some basic data from the mechanical transmission, to obtain the steps per unit. This is a parameter present in all the axis or a normal 3D printer that works with stepper motors. It represents how much must rotate the stepper motor to obtain a movement of 1 mm at the end of the transmission. For example, when the x, y or z-axis moves 1 mm. This number can be calculated following the movement of the mechanical parts connected to the motor. In our case, the motor (which rotates 1.8◦per step) moves solidary with a small herringbone (double helical) gear [Piece 3].
Then a reduction system transforms this movement into a smaller rotation, but with higher torque. Solidary to this big herringbone gear [Piece 1], is a pinion [Piece 4] that translates the rotational movement to a linear one, thanks to a pinion-rack system. This rack [Piece 2] will act as the plunge that will press the syringe.
Therefore, this is the final element of the transmission, the one that should move 1 mm. The calculations required to obtain the number of steps that the motor must rotate to achieve this movement (steps_per_unit) are reflected in the next image.

Firmware adaptation – MARLIN
Marlin is composed of many files and libraries. In our case, we only need to use a Marlin adapted to our printer model, and made some changes at ’Configuration.h’.
- #define TEMP_SENSOR_0 998
This will tell the printer that the current temperature of the extruder is 25 ◦C always. This is necessary to print, as we do not use the heating, neither the temperature sensor of the extruder
- #define EXTRUDE_MINTEMP 20
To remove the limitation of printing only over 170 ◦C, that is normally preinstalled in the printers.
- #define INVERT_E0_DIR false
Only when necessary, if the extruder is moving in the opposite direction. Also the connector can be turned.
- #define DEFAULT_AXIS_STEPS_PER_UNIT (x,y,z, E)
Where (x,y,z) is given by default depending on the printer model, and E is changed to 352* to set up the correct volume deposition. This number is given by the movement translation from the rotating advance of the stepper motor to the linear movement of the plunge that press the syringe with the paste, as explained in the figure above.
*This number can change if another microstepping relation is used by the printer electronics board. - #define Z_RAISE_BEFORE_HOMING n
Where ‘n’ can be 20 (mm). It is used to avoid collision, if transwells or any other recipient is used for bioprinting. This can also be changed at ’Start G-Code’ inside the slicing software.
Slicing program (e.g.: Cura)
This annex will describe the configuration required in the slicing software (Cura, Ultimaker) to generate the trajectories (.gcodes) and deposit the the correct volume of paste. In the first place, we need to access the printer settings menu and change the configuration of the ’compatible filament diameter’ to 18 mm, which is normally the diameter of the 10 cc cartridge/syringe. Then, at the Filament menu, we introduce again this number (18 mm) where the size of the filament plastic used is normally configured. We need to change also the temperature required for the thermoplastic melting to the 25◦C, and configure the temperature of the hot base if required.
In the printing menu configuration we need to check also some submenus:
– Filament diameter: The cartridge diameter, which along with the mm extruded, gives us the volume of material that enters the system. In our case, the Nordson cartridges are set to 18 mm.
– Bed temperature: 37◦C, if cells are present.
– Layer height: 65% of the nozzle/needle tip diameter.
– Retraction: Disabled, to avoid the introduction of air inside the cartridges