Assembling the Choco 3Drag Printing Syringe

By on March 9, 2015

To make the 3Drag printing chocolate objects we have assembled a special extruder (to replace that one used for extruding plastic materials) starting by a very common 60 ml syringe. One NEMA17 stepper motor drives the piston while a heater, to maintain the chocolate contained in the syringe at a temperature of about 32 ÷ 33 ° C, wraps the cylinder.

Chocolate must be melted before being extruded through the syringe needle (that has an internal diameter of 0.9 mm); its fusion is achieved by activating the heater into which is inserted the syringe, without exceeding the threshold of 33 ° C (so keeping the chocolate “tempering”). For this reason, the control board constantly detects the temperature of the heater thanks to a NTC 100 KOhm thermistor installed directly on the body of the aluminum cylindrical heater.
The loss of “tempering” of the chocolate would make impossible to print objects that develop in height, and then the chocolate itself would not be able to solidify at room temperature (24 ÷ 27 ° C).

Milk chocolate and white chocolate need a lower melting temperature to keep the tempering.


See the printer in action:


The chocolate extruder is composed of the following elements:

  • 60 ml syringe for medical use with central needle attack “Luer Lock” which is applied to a standard needle of 1.2 mm diameter (0.9 mm internal), suitably shortened to 33.5 mm;



  • Cylindrical aluminum body with outer diameter of 35mm and inner of 31,6 mm, suitably drilled on which is wound a “flat” heating cartridge with a supply voltage of 5 V DC ;



  • Cylindrical aluminum block (on which is fitted a cylindrical heater cartridge 15V / 33W) properly drilled ;



  • Needle sleeve (made ​​from a rod of aluminum) that “keeps warm” the needle of the syringe during printing ;



  • The extruder system so assembled, attaches to the printer structure and is completed by:
  • Aluminum rail IGUS (cod. NS-01-27) from 27x300mm which also represents the backbone of the whole extrusion unit;
  • Skid IGUS (series 27 cod. NW-02-27) which is anchored to the syringe piston through a bracket made ​​of Delrin;
  • Aluminum plate, 4 mm thick, for the fixing the gear wheel;
  • Aluminum angle bracket for mounting the extruder to the arm of the 3Drag printer;
  • M8x190mm threaded rod to drive the syringe piston;
  • 2 ball bearings 8x22x7 mm with dust protection;


  • Supports for the fixing of the heater, the syringe and the motor, gear wheel with 43 ​​teeth (Ø66,2mm) and 10 teeth pinion (Ø 17,6mm) made ​​of Delrin;


  • A NEMA17 2.5A stepper motor, the same used for the extruder for plastic, drives the feeder that pushes on the piston of the syringe. The heating element to be inserted in the cylindrical aluminum block is 15V / 33W, while to coat and heat the cylinder you have to apply the “Flat” heating element coupled with a NTC axial 100 KOhm thermistor.



Assembling the extruder


Once in possession of all the necessary elements you can proceed to the assembly of the various elements of the extruder, as follows:

Before starting, we give you a suggestion: wash with a washing-up liquid and disinfect all the aluminum and plastic elements present in the kit

Insert the cylindrical block in the holed end of the aluminum cylinder (the element could have been already inserted during the fabrication) and align the external holes with the internal ones;


Strip the two glass-fiber sleeves from the heating cartridge wires;


Halve the two sleeves with the wire cutter; then, insert only two of the four halves of the sleeves on the wires;


Halve the heating cartridge wires;


Peel off about 2mm of the two wires bits and tinplate them; Bend as in the picture the two NTC wires and level them even with the wire cutter;


Solder the two wires to the NTC legs and protect the joint with the glass-fiber sleeves. We will use the NTC so assembled later on;


Insert the cartridge heater in the cylindrical block after it has been sprinkled with thermal paste, then lock it with a M3 grub screw (check that the latter is not already screwed in its position);


Insert on one end of the rail (that one with a countersunk hole) the heater Delrin support, align it with the hole on the guide and fix it using a TSE M4x20 screw with lock washer and M4 nut. Note: the aluminum guide must be inserted hard inside the Delrin part. If the operation is difficult, you can use a rubber mallet;




Lock the Delrin syringe holder (fourth hole on the rail) with a TSE M4x20 screw, lock washer and M4 nut.


Slide the skid into the aluminum rail;


Insert one bearing in the right place on motor support (you can use a vise to fix it);


Then, insert the Delrin motor support on the free end of the rail, keeping the bearing on external side. Even in this case, if the operation is difficult you can use a rubber mallet;


Insert to the designed housing on the just assembled support, a M4 washer, nut and TSE M4x20 screw. Lock it tight to fix the support in its position;


Insert the second bearing in the right slot left on the aluminum plate, as shown in the picture;


Screw in partially the M4x6 nut in its housing on the motor pinion (if not factory inserted), then assemble this one on motor shaft (not included in the kit) and align it with the end of the shaft itself. Lock the nut with the right Allen key, avoiding too much torque (otherwise you can damage the thread);


Note: you can purchase the NEMA17 2.5A stepper motor separately, from our store (cod. STEPMOT3DRAG) or you can reuse the one originally installed on the printer;

Assemble the stepper motor (leaving the wires as shown in the picture) on its Delrin support by using four TE M3x16 screws. Don’t bind them but simply hand-fixed, to allow the fine positioning of the motor later ;


Screw partially in the slider holes, near the syringe holder, a M4x20 TCE screw, with M4 nut and lock washer and in the second hole, a M4x10 screw with lock washer;


Apply on the slider the dedicated Delrin bracket, inserting it on the side. The two washers must stay above the bracket, and the latter must be centered on the slider;



Fasten tight, by using the appropriate Allen key, the short screw. Screw the long one as enough to position its head at 12mm from the guide, as shown in picture;



Fasten with a 7mm wrench the M4 nut holding the screw with the Allen key; Check that the slider can move smoothly along the rail;


Insert in the appropriate Delrin bracket housing a M8 self-locking nut;


Insert a M8 threaded rod in the bearing mounted on motor side and then screw for about 2cm a M8 nut on the side near the slider. Put on the rod a M8 lock washer and a normal washer as seen in the following picture;


Screw the threaded rod in the M8 self-locking nut, caring that the rod itself is not exceeding the length of the nut (you can turn the rod by using a pinch with a rubber protection not to damage the thread)



Holding with a hand the Delrin bracket mounted on the slider, fasten the M8 nut with a 13mm wrench (do not tighten excessively);



Insert on the threaded rod (engine support side) a 8×16 washer, then the Delrin gear wheel with the hexagonal housing on the external side, as in the picture;


Insert on the hexagonal housing a M8 nut;


Then insert the motor into its support after checking the correct coupling between the gears, then lock it by fastening with a 5,5mm wrench the 4 hexagonal head M3 screws;

Insert on the four motor support housings 4 M3x20 TC screws, then insert on each one a M3 normal washer and a lock washer (working as a shim) and last, insert the hexagonal spacer F/F by 20mm. Screw in the spacer just lo lock them in position;


Fix the aluminum plate (with a bearing) to the spacers using four M3x12 TCE screws and M3 nuts (and lock washers);


Note: with the four screws fastened tight, the gear wheel must be able to rotate smoothly on its shaft, without oscillating. If not, take care of spacing out the aluminum plate by adding or removing washers between it and the hexagonal spacers. The kit includes 4 additional M3 lock washers;


Take two M3x20 screws and insert a washer on each, locking it with a nut M3;


Insert the two screws into the housings on the syringe holder, previously fixed on the aluminum rail, and lock them with a M3 lock washer and a nut, as you can see in the picture;

The two 3×9 washers are needed to lock the syringe in its holder, avoiding its movement (upward) when you are pulling up the piston. So you need to check that the plastic grip of the syringe can fit below those washers;


If necessary, you can slightly bend upward the two washers through a pinch, to make the syringe insertion easier;


Fix the aluminum angle bracket to the guide by using two M4 screws with countersunk head;


Note that the bracket is perfectly square with the rail, otherwise you should loosen the screws and fix it;


Now you need to apply on the aluminum cylinder (about at 35mm from the lower end) the NTC thermistor (that has the two wires previously soldered) and then secure it with Kapton tape, that can guarantee the fixing properties even at higher temperature (over 40°C);



Note: optionally, you can also wind up on the cylinder a “flat” heating element (cod. COM11288), with power voltage of 5V, to guarantee a more uniform heating of the syringe, especially if the printer will operate in cold rooms; In this case, the heating element must be connected in series with the cartridge. Also in this case, to fix it you must use a Kapton narrow tape or similar, that guarantee its properties even at temperature exceeding 40°C; The following picture shows the cylinder complete with the flat heating element;


Fix the full cylinder to its support using two M4x12 screws (wiring toward the rail), with cylindrical head, that must be fastened enough to get a slight friction. Don’t apply excessive torque to avoid damaging the aluminum part;


Insert the needle in the appropriate “aluminum sleeve”; then insert the syringe into the cylinder;



Make sure that the syringe is free to swing front to about 30-45 ° ; see an example with the flat heating cartridge installed on;


Check the right assembly of each part, assuring that the syringe is perfectly locked into its position: to do it, tilt the cylinder to the aluminum rail, align the syringe with its holder then position the piston to insert its end to the appropriate housing on the slider, as in following pictures;



Note: check that the plastic structure of the piston is not interfering with the guide and the slider;

Now, get the 3d Printer, cut the plastic clamps that are fixing the wiring to the printer’s structure, near the printing head;


Unplug the wiring of the heater, the NTC sensor and the printing motor by unsoldering the connections; you can keep the fan connected; write down on a sheet the original connection scheme (i.e. the colors must match). Insert on each wire a heat shrink sleeve (2,5mm diameter, 15mm long), then solder the 2 heater wires to a couple of clips, the 2 coming from the NTC to another couple of clips and the 4 wires for the motor to two couples of the clip, united together (follow the flat cable sequence: blue, green, yellow and orange). To make connections easier, you can apply labels to the wires, to identify quicker the device (NTC, MOT, Heat…);


The next operation is the removal of the extruder body from the printer arm. The extruder is fixed to a bracket that in its turn is secured to the horizontal arm of the printer using two M5 screws. Before removal make a mark with a pencil on the arm of the printer to identify the original position of the nozzle (ie the center of the bracket that holds the extruder) to allow the correct positioning of the needle of the syringe and in future to allow to reposition the extruder in the correct position;


Remove the extruder by unscrewing the two screws, as in the picture;


Loosen also the two fan fixing screws to move it slightly to the right, to allow the installation of the new extruder;


Insert two square M5 nuts on the upper housing on the printer arm;


Position the chocolate extruder taking care of aligning the needle with the mark previously done on the guide. Fix the unit to the printer by using two M5x16 cylindrical head screws, one lock washer M5 and 2 normal washers 5×10;


Make the electrical connections to the machine of the heating element and the extruder NTC having stripped, tinned and grouped with small clamps its cables.
Note: if you use two heating cartridges (the cylindrical one and the “flat”), these must be connected in series with each other and the element thus obtained must be connected to the terminals provided for the heating cartridge;


Twist each other the 4 wires of the stepper motor then connect them directly to the corresponding terminals, matching the color of the conductors (engine wires -> flat wire cable: Blue with Blue, Red and Green, Green with Yellow, Black with Orange).
Note: If you use a NEMA17 motor, whose wires were shortened (such as the one recovered from the printer standard extruder), to reach the terminals is necessary to extend its wires through the piece of 4-way flat cable included in the kit. In this case, it is recommended to be very careful so as not to reverse the connections causing damage to the driver. Group the motor cables with clamps.


Fix the cables to the bracket, using the spare clamps;


After completing the cabling, you should have a printer like the one shown in the picture;




Set the limit switch of the Z axis so that after the HOME command, the syringe needle result lifted from the plate by about 1mm. If the adjustment of the stop screw is not sufficient, change the position of the arm relative to the carriage of the Z axis by loosening the fixing screws.

Apply sewing machine oil on the extruder threaded rod while on the gear wheel and pinion spray a bit of silicone lubricant.

The mechanical modifications to the printer end here. To operate in the best hygienic conditions, it is recommended to install on the printing plate an appropriate glass.
Before use, you should clean and disinfect thoroughly the needle, the aluminum needle cover and all that could come in contact with the chocolate. 

In order to use the printer as 3Drag for chocolate you must also update the firmware of the electronic board.

The firmware “Marlin V1 (LCD ON, Choco ON)” can be downloaded directly from here. Besides, you must set the right printing parameters.

Obviously, the firmware can be changed to your preference every time you wish, depending on the extruder mounted on the printer.


Firmware modifications to print with Chocolate

To operate with chocolate it is necessary allowing the heater to reach much lower temperature than that usually used with plastics. We must remember that the Marlin firmware comes for the control of FDM 3D printers using plastic filament and includes a whole series of protections including that one which prevents to extrude the material below 170 ° C. Having to melt the chocolate at a temperature of about 33 ° C we have to change the statement:




This change moves the protection threshold from 170 ° C to 10 ° C.


Another necessary firmware change concerns the steps/mm of the extruder motor, because of its different mechanic conformation. The instruction to modify is:

#define DEFAULT_AXIS_STEPS_PER_UNIT   {64.25, 64.25, 2560, 600}

The last parameter (600) indicates the rotation speed of the motor.

To obtain a right extrusion speed, allowing thus fluid extrusion of chocolate, this value must be reduced by 10 times so the correct instruction will become:

#define DEFAULT_AXIS_STEPS_PER_UNIT   {64.25, 64.25, 2560, 60}
Another change relates to the PID that controls the temperature: to prevent excessive fluctuations, we modify the parameter P:

#define DEFAULT_Kp 22.2


#define DEFAULT_Kp 32.2

This value has been calculated empirically but gave great results on real printing.


From STL to chocolate object

As already mentioned at the beginning of this post, we must remember that the cooling time of chocolate layers is much longer than that used when printing with plastic. We therefore recommend a printing speed of maximum 20 mm / sec to have individual layers of chocolate cooling down properly.
In the Slicer parameters, we must set the nozzle diameter to 0.9 mm (you can also set it to 0.8mm to “cheat” the slicer and then make higher definition prints), the layer height to 0.7mm and the extruder temperature not exceeding 35 ° C (if you are using dark chocolate; with different kinds, the threshold is lower).
As for the 3D prints with plastic, it will take several tries to get the best results.

The configuration parameters also depend on the shape of the object, the type and quality of the chocolate used and the ambient temperature environment in which the printer operates.
Therefore, the determination of the parameters is the result of personal experience gradually gained into this field.

In any case, printing objects with tiny x-y dimensions and high z slows down the cooling process of the chocolate. So it could be necessary to direct a cold air flow to the object (you can do it through a small Peltier cells system, not included in the kit) to speed up the chocolate cooling on the top layers, to avoid the risk of structure collapse.


Preparing the chocolate in the syringe

Before starting with the printing you must turn on the printer well in advance and activate the heater to allow the cylinder to reach the required temperature (normally set at 34 ° C for dark chocolate). Then fill the syringe with the melted chocolate, the temperature of which should not exceed 33 ° C (for dark chocolate). Alternatively you can put the dark chocolate chips that can be dissolved by soaking in hot water (<33 ° C) the syringe enclosed in a hermetically sealed bag. After expelling any air bubbles and having applied the needle, insert the syringe into the cylinder by hooking correctly the relative rod to the driving system. Operate (by software command) the extrusion of a few cm of chocolate and then start printing.

Note: If you print objects of chocolate on slices of bread, cookies or other items that are not only the glass plate, you need to adjust the limit switch of the Z axis so that the reference plane for the HOME of the axis coincides with the new reference surface by manually adjusting, if necessary, the height of the extruder by acting on the threaded bar of the Z axis.

Finished the available chocolate, remove the syringe from the extruder (with one hand hold the aluminum rail and with the other pull towards you the piston rod to remove it from its housing). During extraction, make sure not to accidentally let fall the needle cover to prevent damage.
Note: To avoid deforming the aluminum rail, stop the extrusion as soon as the syringe piston has reached the lower limit .

To resume work, fully retract the push-rod skid, reactivate the heater, reinsert the syringe filled with chocolate and repeat the above steps.




About Boris Landoni

Boris Landoni is the technical manager of Skilled in the GSM field, embraces the Open Source philosophy and its projects are available to the community.
  • José Alberto Pereira Lima

    Sensacional, este projeto para quem quer ganhar uma grana agora na páscoa é ótimo de fazer.

  • Pingback: Un peu de chocolat, pour Pâques ? | Framboise 314, le Raspberry Pi à la sauce française….()

  • maha

    Hello Guys

    I just got a syringe to print chocolate , my motor was working well with filament , once I changed it to print choco ,It stops working 🙁
    I was following the structures step by step without any result.
    Would you please explain how to run the the firmware for chocolate in more detail , am not sure I may have a problem in updating the board ..?!
    I would appreciate if some one can assist