Chocolate Extruder

by ttsalo, published

Chocolate Extruder by ttsalo Feb 23, 2012

Thing Info

44092Views 5626Downloads
Report Thing


This is a heated chocolate extruder based on the Moineau pump (progressive cavity pump) principle.

It can be used to print objects from chocolate.


Print the parts. There are two driveshafts, for motors with 20 and 24 mm shafts, others can be produced from the .scad file. Also, there are two versions of the main body, one with "fixed2" in the name (the original) and the other, marked "fixed4", where a couple of minor manifold issues have been fixed with netfabb. These should otherwise be 100% identical and the netfabb-fixed one should slice and print more reliably, but I have not actually printed that one.

I recommend 0.20mm layer height. 0.25 might work too, but more than that probably won't. Note: PLA is sort of food-safe, but ABS most likely isn't. Don't use ABS except when printing for purely decorative purposes.

Drill a hole in the nozzle, 1.2 mm and 1.6 mm are good starting points. Cut a gasket for the nozzle flange, I used bicycle inner tube. Attach nozzle with M3 nuts and M3x10 bolts.

From the other end, push the rotor all the way into the stator cavity, then fit the driveshaft and attach a NEMA17 stepper motor with the motor coupler piece fitted to the end of the motor shaft (requires flats on two sides), making sure that the coupling teeth fit together.

The extruder should now be ready to be fitted to the printer - it bolts directly into the latest Prusa X carriage with the 40mm circular hole.

The extruder also needs warm air - otherwise trying to get repeatable results or results at all is hopeless. The pipe opposite the funnel can be used to fit an air hose (I used a washing machine water outlet hose). The air circulates inside the heat shroud around the pump and inlet block and exits around the funnel. A shoe dryer supplies the warm air in my setup. The temperature should be just a little below 30C.

The object to be printed can be sliced into GCODE pretty much the same as when printing with plastic, but the layer height should be larger to accommodate the larger nozzle, and the filament diameter has to be set much higher. In my setup, with E_STEPS_PER_MM set in the firmware to 1800 and with a 1.2 nozzle, I used 18mm as the filament diameter to print the Flying Spaghetti Monster seen in the pictures. (Layer height was 0.7mm). The effective filament diameter also depends on the nozzle size, since smaller nozzles cause more backflow in the pump (because with plastic parts, it won't seal properly). Also, set the infill density to 100% - chocolate really doesn't handle overhangs...

Then it's time to melt some chocolate (I wrote a bit about it here: http://reprap.org/wiki/Chocolate_Extrusion but the main point is: don't exceed 33.8C), pour it into the extruder's supply funnel and see what happens.

Thing Info

44092Views 5626Downloads
Report Thing

Liked By

View All


Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag. Print Thing Tag

What heater have people used to successfully control chocolate temperature? I'm looking for a 12v heater+blower device so I can potentially use PWM to control temperature via fan speed.

Thanks for the help.
Great design.

Oct 29, 2015 - Modified Oct 29, 2015

Can someone help me modify the .scad to rotate the flange 90 degrees and also tell me the parameter for the outer diameter for the Moineau hot air chamber?

I need to fit the stepper_main onto my X-carriage, requiring the flange to be rotated. The hole in my carriage is 36mm, so the default 38mm OD just won't fit.


Oct 29, 2015 - Modified Oct 29, 2015
Fragmaster - in reply to Fragmaster

I figured it out.

I shrank the outer diameter by changing the value of "heater_shroud" from 5 to 4.
I also rotated the mounting hole pattern and inlet funnel to keep the funnel from hitting my x-axis motor.
I also changed the mounting flange so that the carriage screws come up from the bottom and nuts are held by the print.


Did you print the Rotor and stator of the Pump with usual PLA or something special like a flexible filament? Also i tried to Print only the Pump element, but with just water it didn't work at all. Does it work better with less liquid thing or did i just do something wrong?

oh i forgot to mention i used your other version, thing:15538, but comment here because thats what i'm actually trying to achieve (the other version was just smaller to print and by the general function it seemed identically). I tried with water and by turning it by hand, but didn't pump at all (the rator got a little bit wet but thats it). I noticed that the rator is a little bit "wobbly", should i try printing it again with a smaller clearance? Or is it just (because of the printing or because of the pump system) not possible to pump something as liquid as water? But Emmets version (on which yours is based, right?) seems to work with water so i'm not sure if(what) i'm doing wrong...

Moineau stepper extruder
by ttsalo

Emmett's version pumps a much larger volume per rotation so it can pump water even though there is some leakage between the stator and the rotor. I have only used hard materials for printing this one and if the rotor fits without unnecessary play, it will work for printing thicker materials such as chocolate. There will be a significant amount of backflow in the pump, but that can be handled by calibration.

Commercial designs use a stator made from elastic material, and the same idea could work here for improving the sealing. I had some ideas for that, including printing a mold and casting the stator from something, but never got around to trying that in practice. If this allowed the pump to actually pull the material in, it would make the design more useful as it wouldn't need to rely on the gravity feed funnel.

Okay, thanks. In that case i'll print the rotor again with smaller tolerances and try again, with chocolate again.
But you also talk about the backflow, is drooling a big problem while printing with this Extruder or can you get it under control with small tolerances and changing the gcode for more retract?

I didn't notice drooling being a problem, the flow from the nozzle seemed to stop as soon as the pump stops.

The internal leakage results in some of the pumped chocolate flowing backwards inside the pump and some flowing out of the nozzle, but this can simply be compensated by decreasing the equivalent filament thickness (or increasing the steps per mm setting) until the flow is correct.

Hi ttsalo,

Currently I have the issue, that my shoe-ventilator pauses every second minute without the air in the tube even beeing warm.
did you also have this issue ? were you able to overcome this ?

ttsalo - in reply to gigl

I had to wrap the air hose (and the front of the heater) with insulation. After this the air arriving at the extruder was about the right temperature.

The proper solution would be to override the thermostat in the heater and have the printer electronics control it using one of the heater circuits, with the temperature sensor placed somewhere in the extruder. This would allow setting and monitoring the temperature from the printer control software.

Hi ttsalo,

Pretty Idea, I have already printed the parts.
However, I have some problems to assemble it.
The Rotor does not go into the main body. Its quite stuck due to printing tolerances.
I printed with PET and 0.3mm Layer height.

To make it fit I tried to

  • shape the main hole with a 10 mm Drill
  • use some "Waste" rotors in the hole and rotate fast in drilling machine until the parts get warm and grinded
  • using grinding paper on the rotor.

Nothing really helped, ITs still quite stuck. The force needed to rotate the thing is way bigger then the teeth of the rotor can stand

Do you have a hint for me ?

gigl - in reply to gigl

Thank you for the hint. I will try that.

ttsalo - in reply to gigl

The easiest way would be to print a new rotor with larger clearance.

The clearance between the rotor and the body can be adjusted in the source file (MoineauChocoStepper.scad). The line "c3=0.3; // rotor clearance" near the beginning sets the clearance.

You can set the clearance to a larger value, uncomment just the line "pump_rotor();" near the end of the file, compile it in OpenSCAD, export the STL and print it. Figuring out the correct clearance may require some trial and error, but since it's adjusted on the rotor side, it's much quicker to reprint than the body part.

Some people are afraid of ABS as parts of it are toxic. However, once extruded and cooled I think it's pretty safe.

great thing, I will give it a try in PET (so afraid by PLA and with a heat source near by)

The first prototypes I made were PLA and deformed when washing leftover chocolate from them... I recently printed one from polycarbonate, which looks good and should be a good material for this, and plan on testing it when I have time.

The stepper shaft, for example, has 90degree overhangs. Will this be printed correctly without a support material?

Yes, it prints fine without support, but some of the bridges are a bit challenging, expecially inside the main part where it narrows down.

try ice under the build platform :)

Haha Funny. I bet I can come up with a design for an icecube holder that hangs underneath. Genius!

What did you use to keep air flowing at 30C? I don't have an air compressor...

I used a hot air blower, made for drying shoes and gloves.

Hi Tomi. Here you can find my chocolate cooler if of any interest: http://www.thingiverse.com/thing:19354http://www.thingiverse.com/thi...

It outputs around -15 degree Celsius of cool air stream. Workshop air compressor needed.

Chocolate Cooler
by Ioan

Hi Tomi. Wonderfull work! I want to ask you how quickly the chocolate is hardening? Did you considered using a cooler to help the layers hardening more quickly? Look at this design: thing:8114. It is a vortex tube, works with compressed air at 5 bar. On one side it will output warm air, higher than room temp. and on the other side will output COOL AIR at may be -20 deg. C. Also you can find more reliable designs on the internet. Such vortex tubes are used in industry for spot cooling which is exactly what we want!

ttsalo - in reply to Ioan

I have been testing with no extra cooling and it hardens quite slowly. To build more interesting objects, it will need some sort of external cooling. I have been thinking of everything from peltier elements mounted under the build plate to blowing cooled air. This is an open area of research if anyone wants to have a go...

Ioan - in reply to ttsalo

Here is an example of how a small company was helped to quickly cool down chocolate molds: http://blog.exair.com/2011/11/01/refrigerated-air-from-compressed-air/http://blog.exair.com/2011/11/...

I think this is the way to go. It is small, it can spot cooli the thin chocolate filament very quickly. The Exair prodicts are a little bit expensive however there are some DIY projects around.

One more thing: may be the same compressed air/vortex cooler can be used both to keep the chocolate warm and cool the printed part due the unique feature of this device.

Chocolate needs to stay below 33, but if you wound the temperature up to 70 or 80, it could print polymorph!, just add a hopper arangement above the material feed and we're free of the problems of filament tolerance and quality, just pour in a bag of granuals and go.

That stuff sounds interesting, but it looks like it won't flow on it's own? This extruder requires the material to flow down the supply funnel without external help. The pump itself can pump pretty much anything but the supply side works with just gravity here.

That's a great idea! Did you consider using water to heat the chocolate? You could connect up two small pipes and then use an aquarium heater+pump to pump a properly controlled temperature of water around the extruder.

I did consider that, but since the chocolate comes in preheated and only needs to be held a couple of degrees above room temperature, the power of water heating isn't really needed. Air is simpler and tiny leaks don't matter (it may not be easy to make all the thin walls totally watertight).

what an excellent idea! my wife is also thrilled! :)

slic3r 0.7 sais that the model is not manifold, could you fix that please?


I ran the main extruder STL through netfabb and sure enough, that found a couple of degenerate faces. That fixed version can now be found under the name "choco_stepper_main_fixed4.stl". I'm leaving the original version with fixed2 in the name just in case.

I checked it out with the Slic3r 0.7.0 and yep, it did complain about not being manifold. I then exported a new STL with the newest OpenSCAD version but it still complains. I checked the output, newest OpenSDAD and newest Slic3r, layer by layer, and it looks totally correct. So I think it's safe to print even with the complaints. The newest STL should show up with "fixed3" in the filename.

gt;Don't use ABS except when printing for purely decorative purposes.

I was under the impression it was completely food-safe, and is the same stuff Lego bricks are made out of.

ABS does give off some fumes while decomposing, however.

ABS contains styrene which is made from benzene, which causes cancer and other nasty things. I would avoid using it with foodstuffs unless I had the data sheet for the specific brand I'm using and that had a food-safe certification for it. PLA is a better bet, it has an FDA approval as food safe.

I wouldn't bet that anything but "natural" PLA would be considered food safe, without seeing a certification for it. While the PLA itself might be food safe, the additives and colorants used in it may not be.

I'd suggest giving it a coating of food safe urethane, except that the moving parts are likely to just end up wearing the coating off anyway.

Wish I could like this one a second time... Nicely done! 8-)

I had to stare at the Thingiview for awhile before I understood: you actually direct the hot air through a jacket around the entire mechanism to keep it evenly warm. Hat's off, that's a spectacular design. As someone who has tempered chocolate by hand to make truffles, I understand how important keeping an accurate temperature is. What this really needs is a PID temp control like the other extruders.

Yeah, I actually thought that chocolate was an easy material to work with before I tried this... proper temperature control is a must. I haven't fitted an actual sensor inside this (yet) and I'm not sure what would be a good location.

Ideally if you have temperature control on your hot air supply you should put the sensor as close to the nozzle as you can get it so you know what temperature you are putting down. The closer you put it to the chocolate / air mixing chamber the less accurate it will be. Just a thought, but have you thought about using an induction coil? If it works at the low temps it might be less cumbersome and easier to monitor then using heated air.