Jump to content

Loading Custom Material Profiles onto S3


Recommended Posts

Posted · Loading Custom Material Profiles onto S3

I'm trying to make a custom material profile for BASF BOVH support material.


I duplicate the Generic PVA material profile in Cura, then edit the information to look like this:




Then I edit the print settings to look like this:




Note that I leave the material set as PVA, since otherwise Cura will complain that there are no matching profiles (for Draft, Normal, Fine, etc).


I also hit the Unlink button (not shown above) to unlink this from the Generic PVA profile.  This generates a new GUID for the material (and I've checked the material file to verify that a new GUID is present).



However, I cannot get this profile to Sync on my UltiMaker S3 printer.


Cloud Sync doesn't transfer it.


USB Sync shows the following message on the printer screen:


"No new material profiles found."


This is after going to Settings -> Maintenance -> Import Material Profiles on the printer.


I've tried two different version of Cura (4.13 and 5.2.2).  Same result.


I've tried a Factory Reset on the printer itself.


I've tried completely clearing my Cura settings and starting over in both 4.13 and 5.2.2


I'm also able to connect to the printer API (like this: ) and see the full list of materials as XML. And the new material isn't listed there.



HOWEVER:  I am able to sync Marketplace materials (like AquaSys 120) via Cloud and USB.  With USB Sync for a Marketplace material, it says "Found and installed 1 new material profile(s)."



The Custom material file is attached.

The material file itself is attached.


  • Link to post
    Share on other sites

    Posted · Loading Custom Material Profiles onto S3

    Also, in the ".umm" export archive saved to USB, I can verify that my custom ".fdm_material" file is present.  So it is getting exported.  But the printer is ignoring it when I try to import.


    However, in that similarly generate .umm file containing a marketplace material (AquaSys 120), the .fdm_material file is found and used by the printer.

  • Link to post
    Share on other sites

    Posted · Loading Custom Material Profiles onto S3

    In fact, I just heard from Infinite Material Solutions (the maker of AquaSys 120) that even THEY are having problems getting custom material profiles to sync on UltiMaker printers----and they're actively developing materials.

  • Link to post
    Share on other sites

    Posted · Loading Custom Material Profiles onto S3

    Sorry that I never reported back.... I eventually found a solution.  From an email that I sent to the AquaSys people when I finally figured it out:



    So it turns out that GUIDs can linger and be remembered by the printer and NOT show up in the Material List returned by the HTTP API.  I don't think they persist after a factory reset, but you can add a material NOT supported by the printer using a USB drive (for example, adding an S5 profile on your S3 printer), and then see that it doesn't show up (and the printer will say, "Material Not Added").  But it's actually remembered by the printer (though it won't show up on the material list).  So then later, if you fix the profile to support the S3, and re-sync it using USB drive again, it will be blocked from being added because the GUID is already (invisibly) present in the printer.

    The only way to fix this is to REMOVE the material, using the HTTP API, using that invisible GUID.  The remove operation succeeds, and then you can add the profile again using the same GUID.

    Needless to say, this is very confusing.  And the printer exhibits the same external behavior when loading a non-matching profile (S5 profile on an S3) as it does when trying to re-use the same GUID (both say failed to sync).

    Long story short, I FINALLY got S3 profiles and print config files made for the GP, and I have it working correctly.


    I'm not sure that I ever got this to work correctly when duplicating materials inside Cura.  It has been a while, but I think I ended up modifying the material XML files by hand.


    But you still need to be careful, because if you upload an S5-only profile to an S3 printer, it won't show up in the printer's material list, BUT it will still block future profiles from being uploaded if they have the same GUID.


    My original problem was that these third-party material profiles (provided by AquaSys and BASF) were only written for the S5.  I uploaded them to the printer, got Material Not Loaded (b/c I have an S3), but the printer still remembered the material in an invisible way.


    So then when I went to edit the material file to support the S3 and re-upload, I got Material Not Loaded again.  But this time, it was because the bad S5 profile was blocking the new, correct S3 profile.


    However, the S5 profile did not show up in the front-panel material list NOR in the material list as fetched by the HTTP API calls.


    However, I could prove that the bad S5 material was still remembered by the printer because the "remove material" HTTP API call for that GUID was successful.


    And after calling the remove API call, adding the material again via USB worked fine.

  • Link to post
    Share on other sites

    Posted · Loading Custom Material Profiles onto S3

    Hi, I have the same problem with my S3 and can't transfer any material via sync.

    The transfer via USB does not work either.


    Could you describe in more detail what the remove API call looks like?


    It would also be good if you could provide an example of an edited material

    file which can then be transferred to the S3 via USB.



  • Link to post
    Share on other sites

    Posted · Loading Custom Material Profiles onto S3

    Found the solution via the API, thank you!

  • Link to post
    Share on other sites

    Posted · Loading Custom Material Profiles onto S3

    For others who are facing the same issue, the API can be accessed by visiting your printer's IP address with your web browser, like this:



    By clicking the various commands there, you can see example syntax, and you can press the Try It Out button to execute a command.


    In this case, you want to go to the Materials section and run the DELETE command with the GUID of the material that is "stuck" in an invisible state in your printer.


    The idea is that if a material is loaded that doesn't match your printer (like loading an S5-only material on an S3 printer), your printer will accept the material but then NOT display it.


    However, if you try to re-load the material again later (maybe after fixing it to support the S3), if it has the same GUID, the printer will reject it, because it's like, "Nope, that GUID is already taken."  Of course, it doesn't tell you what the issue is... the material just fails to load.


    The other amazingly broken thing about this is that even the Materials GET API does not list this "phantom" material.  But the printer remembers it.  I guess the API only lists usable materials.  But then we must wonder why the printer remembers unusable materials.


    SO... you need to use the DELETE command with that GUID to clear it out.  Then after that, loading the material via USB stick (or whatever method) will work.


    Anyway, if you ever find that a material fails to load---barring errors with the material file itself---it's worth drying a DELETE operation through the API on that GUID.


    As for where you find the GUID, I'm not in front of Cura right now, so I'm not sure.  But I think you can also open the material file directly, with a text editor, to find the GUID.

  • Link to post
    Share on other sites

    Posted · Loading Custom Material Profiles onto S3

    Also, if anyone knows where this bug should be reported, that would be helpful.


    It's not a Cura bug, but a printer firmware bug...

  • 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.7 stable released
        Cura 5.7 is here and it brings a handy new workflow improvement when using Thingiverse and Cura together, as well as additional capabilities for Method series printers, and a powerful way of sharing print settings using new printer-agnostic project files! Read on to find out about all of these improvements and more. 
          • Like
        • 18 replies
      • S-Line Firmware 8.3.0 was released Nov. 20th on the "Latest" firmware branch.
        (Sorry, was out of office when this released)

        This update is for...
        All UltiMaker S series  
        New features
        Temperature status. During print preparation, the temperatures of the print cores and build plate will be shown on the display. This gives a better indication of the progress and remaining wait time. Save log files in paused state. It is now possible to save the printer's log files to USB if the currently active print job is paused. Previously, the Dump logs to USB option was only enabled if the printer was in idle state. Confirm print removal via Digital Factory. If the printer is connected to the Digital Factory, it is now possible to confirm the removal of a previous print job via the Digital Factory interface. This is useful in situations where the build plate is clear, but the operator forgot to select Confirm removal on the printer’s display. Visit this page for more information about this feature.
        • 0 replies
    • Create New...