Skip to content

Adding new machine profiles to Cura

Joey de l'Arago edited this page Feb 24, 2023 · 10 revisions

Getting started

If your make of printer is not in the list of supported printers, and using the Custom FDM Printer does not offer enough flexibility, you can follow this guide to create machine profiles for your printer.

For your printer, you need at least 2 types of files which we call definition files:

  • A machine definition file which defines the attributes of your machine. You can use this as a template. For more details, you can check the Machine Definition Files page.
  • A number of extruder definition files which defines the attributes of the extruders on your machine. If your machine only has 1 extruder, then you just need 1 extruder definition file. See Machine Definition Files page for more details.

For your machine, let's say "My Machine", you can follow the steps below:

  • Create a machine definition file and give it a unique machine ID, e.g. my_machine.def.json
  • Create extruder definition file(s) and give them unique names, such as my_machine_extruder_0.def.json, my_machine_extruder_1.def.json, etc. It depends on how many extruders your machine has.
  • Open my_machine.def.json and edit it to fit your machine's attributes.
  • Do the same for your extruder definition files, so the files contain the correct information about your machine.
  • For the machine definition file, you need to put it in resources/definitions
  • For the extruder definition files, you need to put them in resources/extruders
  • If you have a 3D model of your platform you can put it in resources/meshes and put its name under platform.
  • Set your machine's dimensions with machine_width, machine_depth, and machine_height. For multi-extrusion printers, this volume needs to be the union of all positions that any nozzle can reach! Big offsets between different nozzles may cause the build volume to need to become larger, if the gantry is the limiting factor of your printer's size.
  • If your printer's origin is in the center of the bed, set machine_center_is_zero to true.
  • Set your print head dimensions with the machine_head_shape parameters.
  • Set the start and end gcode in machine_start_gcode and machine_end_gcode.

Once you are done, put the profile you have made into resources/definitions, or in definitions the user settings folder. For extruder definition files, you need to put them in resources/extruders, or in extruders the user settings folder.

Dual- or multi-extrusion

If you want to make a definition for a multi-extrusion printer, have a look at this as a template, along with the two extruder definitions it references here and here

Examples

  • Other printer definitions can be found here
  • Different extruders can be found here
  • Material and Quality profiles (for the UM3) can be found here
  • Examples of custom nozzle profiles can be found here

Publishing

Checklist Before Creating Pull Request

  • Make sure extruder and printer definitions are not overwriting the default values in fdmextruder.def.json and fdmprinter.def.json with the same default value that is defined in these files. These values only bulk up the definition files without doing anything.
  • Don't delete quality profiles without creating an upgrader script.

To publish your new machine definition and qualities, please submit a pull request on the main branch of the UltiMaker/Cura repository.

Questions

If you have made your profiles we would be very happy to add them to Cura, please contact us.

Clone this wiki locally