Jump to content
UltiMaker Community of 3D Printing Experts

Help generating printer definition and variant/quality (Simple question to any expert)


Recommended Posts

Posted · Help generating printer definition and variant/quality (Simple question to any expert)


I am going to generate some profiles for a mini-kossel (Micromake D1) and was curious about where the default setting are for the profiles.

I can overwrite them in my variant configs for nozzles but that seems the wrong place for infill and support changes.  I would like to "override" some of the more basic features in my machine definition file.


Ex machine.)

        "infill_pattern": {
            "default_value": "gyroid"

When i do this there is no change to the default 'Grid' selection in any of the profiles...  when i check the quality folder the default quality profiles just have the [metadata] and no values other than layer/speed...

I see in the quality folders lots of setting which are onerous because there is a profile for each material, variant, and quality.  This is getting cubic quickly...

Searching https://github.com/Ultimaker/Cura/wiki/Profiles-&-Settings I was expecting something hidden in material or intent, but found nothing...



1.)  So where are the default profile values stored if not machine, intent, or quality?  (Is there a cache under appdata i need to clear for a machine update?)

2.)  If I make one quality setting for my machine definition everything goes sideways...  Do i need to make a quality definition for every variant and default quality type before Cura will function?  I would like to cut down on the number of quality selections.  I saw the "has_machine_quality": true and expected that to not default the normal so if i have only one quality that should be the only option in the pull down.

3.)  Is there a way to set layer height based on nozzle size using equations in quality file?  ( I would prefer Quality = 1/4 nozzle diam, Standard = 1/2, Fast 3/4) as my default line height based on nozzle) That way i don't have to make 4x the quality files for variant + quality settings for the 4 standard Revo nozzles.

4.) Is Cura 5.0 going to break all of this?


I will continue to muddle around trying to get something working...  thanks in advance to anyone who can answer and takes pity on this lost non-coder using notepad.

  • Link to post
    Share on other sites

    Posted (edited) · Help generating printer definition and variant/quality (Simple question to any expert)

    Many (if not all) of the settings are contained in "fdmprinter.def.json".  I'll use my Ender as an example as I'm most familiar with it.

    At the top of the creality_ender3pro.def.json file is a line "inherits": "creality_base",.

    OK I open creality_base.def.json and there is a line "inherits": "fdmprinter".  Progress.


    So all the settings in the fdmprinter.def.json go to the creality_base file which is much smaller and where there is a section for "overrides".  Any settings in the "fdm" file that don't fit the Creality line of printers get changed in the overrides section.  The final file "creality_ender3pro.def.json" is specific to my printer and also has an overrides section.  Those final overrides tweak the settings for my particular machine.


    The "kossel_mini.def.json" file has an overrides section.  That is where you want to put your changes to settings.  In line 1988 of fdmprinter.def.json you will find the section dealing with the infill types and yes the "default_value": "grid" is in there.  If you were to add (properly formatted and punctuated) lines to the override section in your machine definition file:

              "default_value": "gyroid"

    Then when you start Cura it will be read in.

    I keep copies of my personalized Ender files in a folder and when I update Cura I overwrite the stock Cura files with my own files.  So I can do things like add up to 4 extruders on any Creality printer because I've customized the creality_base.def.json file.  I have my personalized Start and End gcodes in there as well.  Those are "machine specific" things.


    If you changes are "preferences" (like Gyroid instead of Grid) then an easier way to do it is with Settings Profiles.  When you have the settings in the Custom view then Profiles become available.  Clicking on the active profile will open a drop down list and at the bottom are some options.  One is "Create Profile from Current Settings/Overrides".  Then you get to name it.  I have one for PLA fast, PLA slow, PETG, and TPU.  The speeds, temperatures, infill type, etc. are all in there.  No matter how I make changes for a particular model if I click on PLA Fast I get that set of defaults and I can start customizing for another model.  Those profiles carry over from version to version where custom machine definition changes do not.



    Edited by GregValiant
  • Link to post
    Share on other sites

    Posted (edited) · Help generating printer definition and variant/quality (Simple question to any expert)

    Thanks Greg...

    I just have to ask the question to then find out my answer later. I understood the inheritance but failed on the syntax
    Correct answer is strings in data file need '' as well as ' ...  actually am shamelessly copying flying bears file.  They use as defaults what i would as well.  Thank you flying bears.


            "infill_pattern": {
                "default_value": "'gyroid'"


    Have you had any luck on making a quality default profile for your machine defaults.

    I added to my machine definition:

    "has_machine_quality": true,
     "preferred_quality_type": "normal",

    I made a folder in quality called micromake_d1 copied all the base profiles and then changed definition = micromake_d1.

    Cleared all the speed properties issues that were causing me problems under values that were overriding my values but when i start Cura it goes sideways.  My material selection is orange and my profiles all say "Not supported".  I did not think i would need to add individual profiles for each material/quality if i did not state "has materials" in the machine definition.


    now i can fix this issue in my personal install by just modifying the defaults quality for fdmprinter, but i want something that can merge into the Cura base and I imagine Cura does not want me modifying that file...  I am concerned that what Cura wants is a file for each material/nozzle/quality setting and that  not a data structure that is non-trivial to set defaults.

    Edited by LucidWolf
  • Link to post
    Share on other sites

    Posted · Help generating printer definition and variant/quality (Simple question to any expert)

    Just to add I was able to get the Not supported cleared by adding individual quality files for:

    • PLA
    • All four nozzles
    • 2/3 Quality (layer heights)

    Using flyingbear values as a reference, but as expected switching to ABS back to Not Supported...  What i would like is a quality setting that says (Material = any).

    Or some simple way to overide the .cfg that link to fdmprinter in the quality folder.

    For now i am going to just purge all the speed values in fdmprinter files so they don't mess up my machine defaults and my material defaults and it only sets line height.


    (Note: Would love to have line height just set by some fraction of nozzle height like i manually do in my home brew user profiles.  That is probably another thread topic so i started that.)


    I love this program and I don't want this to be too negative on the developers but I see some "why does my printer act differently after update" threads and its because the machine definitions were purged and never added back.  I can see why manufacturers/users don't add there printers back if Cura designers think requiring a x^3 material, variant, layer matrix as necessary to modify even the most basic of quality settings is required. 

    Why even have the default stack profile if the code gate keeps on the quality settings when you add custom quality defaults.  I actually think the print settings are pretty well laid out but they just need to allow a fail safe in the printer file that just does not care if you don't have a specific material to quality to nozzle like the baseline fdmprinter.


    I still feel like I am doing something wrong based on the fact that that i have to enter all that data just to get a custom quality default, so if I am wrong i will happily eat my words above.


    Also while Cura 5.0 is beta what would be nice if there was some sort of queue on the print settings telling us where the default value is coming from.  I used colors but would probably be better to use the icons you already have for the color blind.  (User override is no icon because we already have the revert symbol. ^^)



    • Like 1
    Link to post
    Share on other sites

    Posted · Help generating printer definition and variant/quality (Simple question to any expert)

    You've gone way beyond me here.  I try to keep it simple.

    I have custom materials that are set to what I actually print.  Diameters, preferred temperatures, retraction settings, etc.

    I own 1 printer but I have 3 printers installed in Cura.

    If I'm printing PETG then I select my "PETG Ender 3 Pro".  The difference is in the StartUp Gcode where the purge line speeds and flow have been adjusted for my preferences for PETG.  There is also a "Search and Replace" that is specific to my retraction and retract distance for PETG.  (Post-Processor plugins attach to the printer so that works).

    Then I have a Settings Profile for PETG that gives me my preferred speeds, flow rates, etc.

    I did the same thing for TPU.  When I print it I use the "TPU Ender 3 Pro", my TPU Material, and my TPU Settings Profile.


    That has worked for me and it's easier for me to keep straight in my head.  Any modifications I make during the course of a Cura session (things that are model specific) I either toss out when I'm done, or I save a Project File that will re-create everything I did.


    Because I load so many 3mf Project Files that were generated by other people (here and on GitHub) I found it necessary to have my own set of printer definition files that have my overrides so I have something to revert to if my installed definitions get overwritten.  I've have my own simple "installer" that copies my files into any new installation of Cura.  It's something that works for me and yes, there is some maintenance involved in doing that.


    Changing the FDMPrinter.def.json file will lead to BAD JU-JU down the road.  I got caught in that trap once and it won't happen again.



  • Link to post
    Share on other sites

    Posted · Help generating printer definition and variant/quality (Simple question to any expert)

    Greetings Greg,


    Yeah this is just me trying to get better before I upgrade a less savvy user.  I told them to hold off on upgrading back on Cura 0.15 since it was still new and did not have all the stuff they expected, and they held to that belief for 1/2 a decade.  ^^

    Will probably leap frog them to Cura 5.0 and Klipper.  I never thought to just save my profiles in the 3mf files themself somewhere.  I might just start doing that to keep the profile list clutter down. 


    I have 2 printers(delta kinematics) but use 7 different machines in Cura based on nozzle/material then the list of dummy user profiles all {printer name}_{Nozzle Size}_{Material}_{Intent}, but i could purge about 75% of them and only focus on intent if the settings stack just worked after a slight change to the quality profiles.  I am not concerned with 100% verified values because each printer/material/nozzle combo is its own special snowflake so i will adjust those with a user override and now save it in a 3mf file.   I use that custom print name plugin to keep it all straight in the octoprint server.


    I will say that so far just overwriting the base fdm profiles in the program files quality section to what i want for quality is working swimmingly, I imagine the risk is much lower than messing with FDMPrinter.def.json. I will probably only need to modify the quality profiles this one time till i get my list of standard profiles saved in a 3mf files.

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    • Our picks

      • UltiMaker Cura 5.3 stable released
        In this stable release, Cura 5.3 achieves yet another huge leap forward in 3D printing thanks to material interlocking! As well as introducing an expanded recommended print settings menu and lots of print quality improvements. Not to mention, a whole bunch of new printer profiles for non-UltiMaker printers!
          • Thanks
          • Like
        • 24 replies
      • Here it is. The new UltiMaker S7
        The UltiMaker S7 is built on the success of the UltiMaker S5 and its design decisions were heavily based on feedback from customers.
        So what’s new?
        The obvious change is the S7’s height. It now includes an integrated Air Manager. This filters the exhaust air of every print and also improves build temperature stability. To further enclose the build chamber the S7 only has one magnetically latched door.
        The build stack has also been completely redesigned. A PEI-coated flexible steel build plate makes a big difference to productivity. Not only do you not need tools to pop a printed part off. But we also don’t recommend using or adhesion structures for UltiMaker materials (except PC, because...it’s PC). Along with that, 4 pins and 25 magnets make it easy to replace the flex plate perfectly – even with one hand.
        The re-engineered print head has an inductive sensor which reduces noise when probing the build plate. This effectively makes it much harder to not achieve a perfect first layer, improving overall print success. We also reversed the front fan direction (fewer plastic hairs, less maintenance), made the print core door magnets stronger, and add a sensor that helps avoid flooding.

        The UltiMaker S7 also includes quality of life improvements:
        Reliable bed tilt compensation (no more thumbscrews) 2.4 and 5 GHz Wi-Fi A 1080p camera (mounted higher for a better view) Compatibility with 280+ Marketplace materials Compatibility with S5 project files (no reslicing needed) And a whole lot more  
        Curious to see the S7 in action?
        We’re hosting a free tech demo on February 7.
        It will be live and you can ask any questions to our CTO, Miguel Calvo.
        Register here for the Webinar
          • Like
        • 18 replies
      • UltiMaker Cura Alpha 🎄 Tree Support Spotlight 🎄
        Are you a fan of tree support, but dislike the removal process and the amount of filament it uses? Then we would like to invite you to try this special release of UltiMaker Cura. Brought to you by our special community contributor @thomasrahm
        We generated a special version of Cura 5.2 called 5.3.0 Alpha + Xmas. The only changes we introduced compared to UltiMaker Cura 5.2.1 are those which are needed for the new supports. So keep in mind, this is not a sneak peek for Cura 5.3 (there are some really cool new features coming up) but a spotlight release highlighting this new version of tree supports.  
          • Like
        • 22 replies
    • Create New...