Differences between revisions 4 and 5
Revision 4 as of 2014-04-08 12:01:04
Size: 4702
Editor: ElenaGrandi
Comment: Firmware
Revision 5 as of 2014-04-09 04:07:41
Size: 4872
Editor: PaulWise
Deletions are marked like this. Additions are marked like this.
Line 71: Line 71:
It could be interesting to package the firmware for Debian so that printer users can update their firmware more easily and securely to get bug fixes and new features.

Work In Progress

This is work in progress. Informations on this page try to be accurate, but are still incomplete.

3D printing is a process to create physical, three-dimensional objects from digital models.

Wikipedia has more informations on the history of 3D printing and the available technologies; this article is concerned with hobbist accessible ones that can be used with software in Debian.


Hardware support under Free operating systems tends to be excellent for models developed by the makers community and non-existent for models sold via traditional channels.

Fused deposition modeling (FDM)

Some models supported by Debian include:

  • LulzBot: FSF certified RespectYourFreedom hardware and closer to a consumer product.

  • RepRapFamily: many models, sold from various vendors as either kits or assembled products; usually they are under a free hardware license and can run using only free software (firmware included).


Going from an idea to a finished object requires a number of distinct steps that are usually done from distinct programs.


Any software that is able to manipulate 3D shapes can be used to create a model for printing; ideally it should be able to export an .stl file, but there are conversion tools for many other formats.

  • blender: the first choice for complex, organic shapes, but it has quite a significant learning curve.

  • openscad: an excellent choice for technical models, based on a programming language.

  • freecad.

Model conversion and fixing

Some models may require conversion from other formats to .stl, or they may have geometry problems that could prevent a successful print; programs such as meshlab are useful to prepare the model for printing.


The next step is slicing, i.e. cutting a 3d model (usually described by triangles) in a number of slices a fraction of mm high and describing each slice with the path that a printing head should follow to print the slice.

This step generates a .gcode file based on settings that are usually specific for the printer (printing plate size, number of printing heads, etc.), filament used (printing temperature, etc.) and model (layer height, speeds, supports for overhangs and many more).

  • Slic3r (not yet in Debian: ITP #689636): a good balace between configurability and simplicity, can be used from a GUI or from command line.

  • cura-engine simple, but command line only (mostly meant to be used from the cura printer control software).

  • RepSnapper.

  • sfact.

Printer control

The last step involves actually sending data to the printer: this is done with a program that is usually also able to give simple commands for mainteinance such as moving the plate/printing head/filament or setting the temperature.

Many printer control programs also include an interface to a slicing program, usually one of the ones mentioned above.

  • RepSnapper

  • Printrun (not yet in Debian: ITP #695336): written in python, with command line, text and GUI interfaces.

  • Octoprint (not yet in Debian: ITP #718591): written in python, web interface with support for a webcam to help remote controlling a printer.

  • Cura (not yet in Debian: ITP #706656): aims to be a complete, easy to use, solution for 3D printing.

Printer firmware

While out of scope for Debian, the firmware on most community designed printers can be easily changed and most available ones are Free Software; usually uploading a new firmware requires the arduino IDE (Free and in Debian).

  • Marlin preinstalled on many printers, including the ?LulzBot.

See also http://www.reprap.org/wiki/Firmware.

It could be interesting to package the firmware for Debian so that printer users can update their firmware more easily and securely to get bug fixes and new features.




See also

Many of the programs listed here are or should be managed by the 3D-printer team.