A 3D sprayer: Including additional components (e.g. pressure valves) into the software

Hi all,

I am new to the forum and super happy I found this platform. I am planning to use the architecture of a standard 3D printer as a preconfigured XYZ stage and, instead of using the nozzle for 3D printing, would like to include a spraying head for spraying onto objects. For the spraying I need to control several valves and shutters which should be controlled by the same software (for proper timing of both processes).

This means I'd need to build some new blocks in the code and I was wondering about the following points:

  • How about the flexibility of the source code for those additional functions? You think this will be reasonably possible?
  • Are there maybe similar projects?

I am of course glad about any other ideas! Of course I'd be happy to supply those new blocks to the community.


This could probably all be done with a plugin, the plugin system is incredibly powerful. You could even create a custom UI if you wanted to.

I know OctoPrint powers Mr Beam Laser cutters, through a custom plugin, probably other projects similar to this too around the internet.

I'm having a hard time envisioning how replacing the nozzle with a sprayer would work. It seems to me this needs a 5 or 6 axis solution and you might be better served with software designed for CNC instead. Something like bCNC might be a better starting point.

Hi all,

Thanks for your answers! I actually only need three axes, as I only will spray on 2D objects. I will however look into the proposed project. Any standard 3D printer should be capable to also follow the GCode commands issued by this interface, or not? I favor to use this existing hardware as the prices are really low for a relatively high degree of integration.

The Marlin gcode commands M380 and M381 show some promise if you can control the valves and shutters from the controller board.

Otherwise, the plugin OctoPrint-GCodeSystemCommands should provide the synchronization you need.