How Do Machine Hardware and Filment Profiles Interact?

There is something I am mystified about, perhaps somebody can explain. This applies to all printers, all filaments, and all slicers - but obviously I’m mainly interested in how Orca/SnOrca handles it.

A filament profile holds details relevant to printing with that specific filament. Seems reasonable. Things like temperature and flow properties, and whether it needs cooling. The filament profile knows nothing about the hardware.

The hardware profile includes things like the fastest the nozzle can be moved, and the nozzle diameter.

The maximum volumetric flow rate depends on the type of filament in combination with properties of the machine: nozzle diameter, extruder speed, wattage of the hot-end, but the flow rate is set in the filament profile! In summary, the flow rate limit set in the filament profile might not be valid.

This was not much of a problem for single tool-head machines, but we now have the ability to mix-and-match nozzle diameters and even hot-end wattage (high-flow nozzles). Even with a single toll-head, the user might change nozzle diameters or hot-ends, invalidating the filament profiles.

Does this mean the user needs separate filament profiles for every nozzle/hot-end configuration they are going to use? If so, this seems messy.

Flow rate is one example, there might be others.

In my opinion, there are hardware limits (set in the machines firmware, like max speed, max acceleration and so on) which functions as machine protection.

Now it comes to print. The limits for printing are set in the slicer settings, like flow, speed and so on. They can’t exceed the machine limits (if you do not overwrite them by gcode), except the flow (this is not limited directly, only by maximum speed of the extruder servo.

The clicking sound of the extruder if you extrude too much filament does not affect the machine directly but your object surface.

I can’t speak for orca (mostly used simplify3d in the past) but there are surely filaments which needs a way lower flow (like tpu) than others. From this point of view it seems reasonable to define the max flow in the filament profile (per head, because each head has it’s own filament?).

Don’t know how useful this is for you but feel free to discuss further :smirking_face:.

I agree, but the flow for those will be affected by (eg) the nozzle diameter.

It’s no good saying the flow setting is a safe figure, because what happens if you switch to (say) a 0.2mm nozzle? You wouldn’t want to be forced into 0.2mm speeds if you have a 0.4mm nozzle!

There must be somebody who can explain why it’s done this way, and if indeed we should have a filament profile per nozzle diameter and hot-end type.

I completely agree with you.
In s3d I could choose the relevant dynamic parameters myself but it’s not possible to print different nozzle sizes..

In this case you seem to need a filament profile per nozzle size.

Maybe @jiyang1018 could help us with some insight?
Anyway, happy to promote the fork again :wink:

I came across the same question when I was working on FOS (FOrcaSlicer). In my earliy test print, it was ok to mix 0.2 and 0.4 nozzles because in 0.2 nozzle, there is volumetric speed cap. Even when print speed is set based on 0.4 nozzles, 0.2 ones still print at slower speed becase of this cap. I wouldn’t call this a feature for mixed nozzles; it’s just a happy accident. That’s why in later build of FOS, I had to give each nozzle a process preset so each nozzle can get its own line width in absolute mm values, and print speed. OrcaSlicer applies percentage line width in its mixed nozzle size case, which in my opinion is wrong. 0.8mm nozzle should print 0.82mm wide regular lines, not 105%, which is 0.84mm wide. It may not seem like a lot, but the 125% first layer line width makes it 1.0mm vs 0.82mm wide. There is a big difference, that 0.18mm extra width per side is almost enough to reach the center of a 0.4mm nozzle line. And the overlap between them is a lot. Based on the feedback I got from Snapmaker, the process and filament presets are tested to keep a high certainty of good result.
Even printing with all same nozzle size, filament presets still matter. When printing TPU with PLA support, they print at different tempture and with different retraction speed. The nozzle and extruder on TPU behaves differently than the one on PLA, and it has to.

So what’s the answer? Yes, OK, multiple filament profiles per filament for every hardware combination the user has at their disposal… but how about this:

A lot of the filament information will remain constant. The few settings that vary (eg max flow rate) could be a table within the one profile, with a column per setting and a row per hardware configuration.

Have you taken a look at my version? I think some are already there in per nozzle settings.

No, I haven’t. For one thing, I’m currently locked into SnOrca 2.3.6 for testing purposes, for another I would need a Linux build, and I have had no need of multi-diameter working.

I would prefer to be using vanilla Orca, and I’m not very comfortable that SnOrca is going in its own direction and not incorporating the latest improvements in Orca. Forking SnOrca is yet another step removed! That’s just my feelings about it, not a comment on the quality of your fork nor any recommendation others shouldn’t use it.

Per-nozzle settings sounds interesting though. Are those in the filament profiles?

Sorry I need to clarify. I meant take a look at post and the wiki I built, and see if what I offer is what you need.