3D Food Printer

Ask questions about and discuss the 3D Food Printer project here.

Dr D Flo: Where did you go? Hey that rhymes!

I have been working on the 3d syringe pump gantry since June 2019. I have been plagued with problems since day one on the electronics side. There is not much on the internet to trouble shoot when things do not go according to plan.

I have worked through the following:
1.) motors would not turn on.
SOLUTION: purchased separate components and assembled for a 3d build then replaced each component from my unit to the known working system. Found that after testing components each was operational. THE PROBLEM WAS THE PULSE AND DIRECTIONAL WIRES WERE REVERSED!
This took months to figure out and watching over 100 hours of videos and internet sites.

2.) wiring to motors - soldering connectors (bad connections)
SOLUTION: purchased military style connectors and replaced for motors and endstops.

3.) Wiring Ground connection (connectors - substandard)
SOLUTION: Soldered connections.

4.) End Stops - Had to reconfigure several times. Had them going to the wrong axis.
SOLUTION: Rewire and reset end stops. They would not trigger- wired to wrong posts on connectors.
Also- adjusted MARLIN GCODE - Several times

5.) Motor direction: motors would turn in Pronterface in opposite direction. Example would move away from endstop in negative axis
SOLUTION: Changed in Marlin from false to true.


1.) Z AXIS - you have the endstop set at Z-MAX - I do not know where to place the phyisical location of the endstop? At the bottom of the arm (closest to the work table) or at the top of the arm farthest from the table.

2.) Not sure with Z + (Moves arm upwards direction) and Z- moves the arm down to table? Is up max and down min?
SOLUTION: Installed both Z-Max and Z-Min.

3.) Current problem: When I home each axis separate. The gantry stops before it hits the end stop. If I hit the axis several times (jog it) it will trigger the end stop.

4.) When I hit Home in Pronterface all axis move but stop at around 40 mm increments - I can manually jog to home. I do not think this is supposed to operate this way though.

5.) I used PRUSA Calculator for steps per mm. and came up with 2560. I entered 2560 in MARLIN for X Y and Z. When you click 0.1 and 1 mm increments there seems to be a slight slippage when the motors turn but no with 10mm or 100mm selections.

6.) Also I would like to have your Marlin -gcode so that I may compare as a reference for the settings.

7.) SYRINGE Extruder - mechanically moves up and down - but do not know what the settings should be at in MARLIN?

I would appreciate your input so I can actually get the system operational. I am so close I can taste the frosting.

Thank you:
James M Marr
Richmond, VA


Thanks for posting both your problems and your solutions. Let’s see if we can work through your last issues.

You should place your Z-axis end stop at the top of the axis. This way you can adjust how far away the syringe is from the print bed. If you want to get the syringe closer to the print bed you would increase Z_MAX_POS and vise versa if you wanted the opposite effect.

You want this printer to mimic a real 3D printer, so the Slicer software behaves. Definitely have the Z+ direction be as the syringe moves upward. Therefore, the limit switch at the top would be Z max.

Unfortunately, this could be a for a variety of reasons. Make sure your max positions are correct. I believe that Marlin will only move the maximum distance of the axis. For example, if your axis is 100mm long but you have 50mm in the firmware. Then the carriage will only move a maximum of 50mm towards the limit switch. If your carriage is at 60mm, then you tell it to home. It will stop 10mm away from the limit switch. Keep in mind that if you incorrectly set your steps/mm then your printer could think its moving 60mm when it is really only moving 40mm (so double check that).

The other problem could be electrical noise causing the limit switch to accidentally trigger. This is a lot hard to diagnose and troubleshoot. To figure out if noise is a problem I would move the carriage some known distance away from the limit switch (measure with calipers or a ruler) then home the carriage and measure a second time how far the carriage is from the limit switch. Repeat this a couple of times. If this distance changes then it could be noise.

I suspect Max positions are wrong or your steps per mm.

Your steps per mm were the same for the X, Y and Z axes? Did you use a lead screw for all them or belts? Usually the Z-axis uses a different type of transmission and has a different steps per mm.

Are the motors making a weird noise when you try to move them at 0.1 and 1 mm? I suspect that they are lacking power. Either increase current or purchase bigger motors. This could also be a problem with the mechanical setup of your machine.

The code is located in the “downloadables” section of this project’s webpage.

The only settings that you really need to worry about for the syringe extruder is going to be the steps/mm. This is going to depend on the size of your syringe needle. I calibrated this value myself by printing some test shapes. Not enough frosting -> increased steps per mm. Too much frosting -> decreased steps per mm.

If you have not already, I would watch my new video on How to Build a 3D Printer. There are a lot of topics that I cover which would help you build your 3D food printer.

Also, please share pictures of your build and any more of your progress! Best of luck!