Introduction: Chocolate 3D Printer

Here, we are sharing the complete process on how we developed a Chocolate 3D printer. It will have lot of learnings that would help everyone.

Our founder, Prem Sagar (Instructable Id: prem_sagar), is a Tinkerer and a foodie. Apart from tinkering with electronics, he likes to experiment with food as well. The project is his brainchild and started with an aim of using technology to give an exclusive & personalized dining experience. As we explored further, there hardly existed any food 3d printer in India and hence we started with this project at our makerspace.

Our makerspace member, Rigved, contributed majorly to complete this project under the mentorship of Prem Sagar.

Initially, we decided to make a complete chocolate extruding printer but after brainstorming on the requirements and considering the timelines, we modified our plan of making the printer to just changing the extruding assembly of existing printer (FDM-based) and make it print chocolate by designing our new extruding assembly. The extruding mechanism is a piston-type extruder assembly. Basically, we used syringe of 10mm with pushback mechanism. We used SHAPERJET 3D printer for execution of the project. You can use any FDM 3D printer for this project but it is necessary that you make relevant changes in the file.

Methodology: We divided the project into two phases.

Phase 1 included preliminary designing, Brainstorming, CAD Prototyping.

Phase 2 included Practical Execution of CAD designs and testing. Phase1: Printing Chocolate was not an easy task as apart from managing different Parameters like layer height, Adhesion to bed etc. we have to manage now Pressure for extrusion, the fluidity of chocolate, other properties of chocolate etc. We started in search of some hints and found similar projects uploaded on the Internet. In this project, (links below) helped a lot as it contained a few good Diy projects on this topic. The detailed research of every part helped us in getting better ideas for keeping things as simple as we can.


  • 4 printed plates.
  • 2 X 80mm 8M steel rods hollow
  • 1 X threaded shaft 80 mm8M pitch 1.252
  • 2X LM8uu linear bearings
  • Lots of nut of M8 1.25 pitch
  • 10 mL syringe.

Step 1: Phase1: Preliminary Designing, Brainstorming, CAD Prototyping

Version1.0 (not printed, only idealized, brainstormed and revised)

After getting a fair idea, we started designing our own assembly on Autodesk Inventor. It took us almost two days to design the version 1.0 of the model and it looked somewhat like below.

Step 2: Version 2.0 (Not Printed, Idealized, Brainstormed)

Version2.0: (Not Printed, Idealized, Brainstormed)

After the failures of the first version and lots of conclusions,we started to develop a new model keeping the failures in mind. After doing the enough modeling and analytical calculation I developed a new model by using the same software Autodesk Inventor with an addition one more plate in it to hold the lower part of the body. Here with the extra plate I have also added the holder as a syringe body holder. I had my special attention towards the dimensions of screw holes and body size.


1) Important issue in this design was the height of the assembly is little bit more that can be considered as a design error but due to that error the extrusion height was reduced to 5 cm only from 15 cm but we come to know about this error may be much later after we started executing the design.

2) Plates of motor is also a considered issue as a whole plate it is very hard to mount on the one rod so to maintain the body balance there should be two plates to handle the motor if you are mounting on the rods on which the nozzle is connected. This we had to do because of the structure of our ShaperJet 3D printer you may change the design if you wish to.

3) We didn’t execute that syringe holder because it was not providing the stability to the structure it might not be able to hold the syringe tightly as it was semicircular. Later we decided to make a hole in the lower plate (3rd from above) of the size of syringe body.


1) Syringe holder size was small as I referred datasheet of the syringe model from internet and we actually bought the 10 mL syringe the dimension was different.

2) Some calculations mistakes at the syringe holder.


1) Learned about calculations in deep

2) Assembly’s techniques while using Autodesk inventor.

3) Learned a little bit about Finite element analysis (FEA) which means the stress analysis of each element used in the assembly, for example the third plate used in the assembly had weak stress handling capacity because the position of hole is not properly placed due to which it was trying to bend as the middle was coming down. After thinking on drawbacks of the second version we did some minor changes in the structure of the assembly and tried to keep it as simple as we can. In this assembly, we removed the syringe holder and made a simple hole there bigger than the diameter of the shaft, after all this, it looked somewhat like this. We decided to print this assembly and try our design accuracy to print chocolate.

Step 3: Finalization

Version 3.0 (Finalized)

After thinking on drawbacks of the second version we did some minor changes in the structure of the assembly and tried to keep it as simple as we can. In this assembly, we removed the syringe holder and made a simple hole there bigger than the diameter of the shaft, after all this, it looked somewhat like this. We decided to print this assembly and try our design accuracy to print chocolate.


1) The height of the assembly is one the major issue in our design. The estimated height we have designed was 80mm and practically we implemented around height of the assembly should have been in the range of the 40-60mm.

Step 4: Execution of Version 3

After printing is done it is necessary to put the nut of M8 in the plate to give the linear moment to the middle plate while rod is rotating. Important Learning: I learned a thing here that while designing there should be a safety limit of 1% to avoid the extra work (pics by Prem) after execution for sanding, drilling etc… I have to drill the hole to fit the nut in it after printing that taught me the lesson of factor of safety. (size to size making, drilling to broaden)

This is how it looked after fixing a nut in that whole.

Important learning:

While putting the non-threaded rods in the bearings of LM8UU I discovered the one my rod is 0.1mm greater than the other one (this is India). So that was causing the lag in the motion of the bearing so we were not getting a uniform speed therefore we grinded that rods by polish paper to get clear that 0.1mm difference and to get a smooth surface as well. We didn’t use the file because file doesn’t give the polished surface and would have made it rougher as compared to sand paper. (Grain size)

After That, I wanted to hold the base plate tight but due to smoothness of the rods it was not possible so we came up with the solution of outside threading of the rod to hold the nuts so that we can hold the plate in between the nuts. Got it threaded from industrial vendor Nuts for threaded rods at the bottom and top, with encoder coupling. We Used Basic Coupler to transfer rotational motion from motor shaft to 8M shaft that basic coupler usually known as Encoder Couplings (5mm-8mm).little problem occurred with this was we encountered some ‘play’ between rod and coupling which was I covered by putting some tape on rod to increase the thickness of it (It took so much of mind though) Encoder coupling is shown in above picture. Linear ball bearings of LM8uu helped us for moving middle plate up and down after converting rotation to linear by using nut in the plate, and final Assembly was ready which looked somewhat like this. And it is working as expected. Before putting it on 3d printer, we just tested by powering the stepper motor.

After this we had decided to mount it on the printer with all due care, we removed each and every part of the printer carefully taken lots of pictures so that we can recognize the parts afterwards. After mounting it on board (given in pic below) Now the main extruding problems begin. We faced so much trouble in making a chocolate paste of proper density and we wasted almost 150Rs chocolate in just try and error (And eating in between as well) after making minor changes in firmware(I will upload firmware file at the end). After so much of try and error I figured out that before extruding the syringe should be full of chocolate as well as a constant temperature has to be maintained on every part of the syringe before printing that will give you a good results. For maintaining Constant temperature use Nicr (Nickel chromium wire with foiled on aluminium sheets and krampton tape to uniform heat transfer.).Bed area of our printer decreased due to size of the nozzle assembly to 45 X 45 X 5.Use any chocolate like Dairy Milk, Bournville etc.

After extrusion the setting of chocolate takes time so wait after extrusion.

Conclusions and Learning

  • Learned how to design the things perfectly and efficiently.
  • Learned about using mechanical products which are easily available in the market.
  • Try to choose those components which are easily available in market was an important learning during the process.
  • For filing of smooth steel rods use sand paper instead of File because it will create cracks on rods and it may create problems to bearings while sliding.
  • Learned to manipulate things on my own
  • Explored many things in handling a 3D printer and its components
  • Made holes greater than at least 1% of requirements.
  • To avoid further works, accuracy and brainstorming is very important in any of the projects.

Step 5: Improvements and Scope:

We encountered many problems while executing the model one of them was uniform heating of the chocolate to melt it inside the syringe body.

  • After research I have found out the possible solution on this is that you can wind NiCr wire all over the surface of the syringe by using an aluminum foil and kapton tape.
  • Bed size of the printer is reduced due to this assembly so this can be taken over by mounting the assembly a bit more above the printer or designing a smaller assembly with smaller length of the syringe.
  • Rotation Control of the stepper motor was one of the main issue which can be covered by controlling the assembly via external Arduino and L298N motor Driver.
  • Keep the angle of rotation to approximately 23 degrees in one rev.
  • To get the full o/p of this assembly.If it is possible to design a syringe on your own then the assembly can increase the bed size.
  • Always fill the syringe full with chocolate before printing.
  • Bourneville gives best output for printing chocolate. :D
Makerspace Contest 2017

Participated in the
Makerspace Contest 2017