Use 2 different Nozzles on one print?

I’m printing a larger item in PLA with very fine text and graphic on the top face. The text is too fine to print with a 0.4 mm nozzle even using Wall Generator: “Arachne”. If I use a 0.2 mm nozzle the text turns out great, but I can hear the infill (10% Gyroid) breaking if I press on the top and bottom surfaces.

Making the text larger so it prints cleanly isn’t an option. I also don’t want to print it as two separate pieces and then glue it together since I’m making a few hundred of these and I can’t hide the glue seam.

I was trying to figure out how to print most of the item with a 0.4 mm nozzle and then finish the print with a 0.2 mm nozzle either on the same printer with a nozzle swap or by moving the build plate to a 2nd printer with the smaller nozzle already configured.

For now I’m going to ignore the other potential problems that could make exact alignment difficult. (e.g. part shrinkage from cooling during a nozzle/printer swap, alignment differences between printers, etc) I’m just trying to figure out if this is even possible.

I’ve thought of a few approaches that could work. Here they are in no particular order:

  1. Split it into two print jobs on the same printer without moving the build plate. One print for the body of the item with a larger nozzle then a second print with the smaller nozzle for the text using custom g-code to add a z-offset before the first layer of the text prints.

  2. Same as above only move the build plate to a second printer with the smaller nozzle for the 2nd print.

  3. Print infill cores with 2 walls using the larger nozzle for the first print job then, on a different build plate, print the outer shell with a 0.2 mm nozzle. Pause the print just before the first layer of the top shell starts, coat the inside with glue, drop in the infill core and resume the print to close the top print the text.

  4. Slice the model for both larger and smaller nozzles, merge the g-code, save it to the SD Card and print the g-code from the SD Card. Use the g-code for the large nozzle up to the top surface and the g-code for the smaller nozzle for the text. Add a filament unload, pause and filament load after the top surface is printed and before the text starts. Swap the nozzle during the pause. (this one is my favorite)

I have multiple X1Cs and an A1 mini (quick change nozzle) to try this on. Anyone aware of software/firmware limitations that could block these solutions from working?

1 Like

I have been looking at this also (option 4) as I could use the same feature. This is not really possible on the X1 because you need to unplug/plug the electronics when changing the nozzle. If it’s not supported by the hardware you could damage the printer, so you need to turn the printer off to change the nozzle.

On the other hand there is no such issue with the A1. If you have a file you will print a hundred times it’s probably worth manually tweaking the gcode, until (and if) the feature is added to the slicer. I would start with a simple filament change in the slicer just to make it easy to find the line in the gcode file and go from there.

If you go that route please let me know if you had success!

Glad I posted this. I was thinking, “I’ve got multiple complete X1C hotends. It won’t be painless, but I can swap them if I need to.”

I didn’t even think about errors from unplugging the thermistor, heater and fan. Looks like option 4 can currently only work on the A1 if at all.

I’ve had similar thoughts. Huge prints requiring 0.2 nozzle just because of a little detail needed at layer #845

Somewhere (here? or maybe GitHub) a user suggested a “change hotend mode” for printer (available from touchscreen, I presume), allowing replacement of hotend with power on. It would basically just disable the thermal runaway protection but could also lower the bed, put toolhead at some convenient position or whatever.

This would allow for option 4 (as long as that changing routine can preserve the homing).

1 Like

Vertical joints are pretty hard to hide due to corner rounding - but flat horizontal joints become fairly invisible if you pull the parts tightly together - either with designed in joints or bolting them.

In terms of using two nozzle on the same print - or ideally separate printers or the same non jointed part. I have been thinking about this too.

I wouldn’t recommend moving built plates around to to alignment issues - but what I have been toying with the idea of doing is

  1. print the first half on the part on one build plate, removing the part,
  2. Then on a 2nd built plate (either on the same or a different printer), print some sort of simple alignment / hold down guide, then pause the print, and I
  3. Insert the half printed part from step 1 into the alignment / hold down guide and then continue the print.

There shouldn’t be a problem with alignment - because the alignment guides will make sure that the part is inserted onto the plate in exactly the right place / height etc.

This is a similar technique what is used when CNCing multiple sides of an object.

The same technique could I think be used to for example print multi colour really efficiently horizontally on the top of say 4 says of an object by printing the basic model with blank sides and a coloured top, then remove the part and rotate it so that each side in turn is facing upwards.

1 Like

interesting idea, i’m following for my a1

You may cheat the machine if you want to change hotends in the middle of the print without popping out errors.
During the set-up pause, just power off the printer (remove the power cable!!), replace the hotend, plug the cord again and select resume printing.

I wouldn’t advise following such a procedure, as many issues may occur. If you go that way, do not forget to set up a good parking position and use proper equipment. Depending on the material, you may need to be swift as if you were in an F1 pitch stop.

1 Like

Nice idea - if they use the cool plate for the print it would take some of the time pressure off.

1 Like

I don’t know your modell, but maybe this video can help find a solution for the problem.

Maybe it was me: https://forum.bambulab.com/t/hot-swappable-nozzle/. If there is another post it would be great to have the link here as well.

Another potential issue when changing the nozzle is the Z positioning. The printer cannot probe for Z height on the bed mid print so it has to rely on the dimension tolerance and positioning repeatability. The first is hard to know without testing over several nozzles, the second I would not worry too much as the design already requires very good repeatability to work in the first place, on all the bambu machines.

Ah, yes I remember that! But also this GitHub issue.

Thanks I missed this one

You´re right… as the z-offset values are inaccessible, I would print a small calibration to assess if the z-offset is significant and, if positive, measure (roughly) the difference. Also, doing some tests to check for unforeseen problems would be good.
Afterwards, you can add it to the god using e.g.:
G29.1 Z{-0.AA}

where AA is the measure z pfff.

If you go forward, please share the experience.
Whilst not in my plans, I would be interested.

I have had good success on a 0.4 nozzle with increasing the line width for infill (I usually go for 0.6mm). I also activate infill combination.
I wonder if that technique wouldn’t help with your problem.

So you’re suggesting setting the infill line width to ~0.3mm with the 0.2mm nozzle?

I suppose my trick can be transposed to a 0.2mm like this, yes.

The limiting factor with the 0.2mm nozzle is the flow rate so the line width won’t help reducing the print time.

I am thinking about trying the same thing, I’m going to be doing this on A1 or an A1 mini, so changing out the head is not an issue. I’ve got a logo that I want to put face down and then I want the rest of the print to go fast.

So here’s my thought,

  1. Slice the project with a .02 nozzle, Add a pause in the code, where I want the Nozzle change to take place. Save the G code.
  2. Slice of the project with a .06 nozzle, put a pause in it at the same layer height as the .02 code has. Save the gcode.
    3.Splice the .02 code, and the .06 code together at the point where they both have the pauses written into them.
  3. Run the code wait for the pause switch out nozzles keep going!

Does anyone see any red flags in this not working or I’m gonna blow something up?
Thanks for your input!
Ruth

Sounds like it could work to me.

If for example you use the following layer heights. 0.1 for 0.2 nozzle and 0.4 for 0.6 nozzle.

A further optimisation to the process you suggested could be.

  1. Slice file with 0.2 nozzle, with pauses inserted in the required places (alternating between 0.2 required and 0.6 required.
  2. Slice the same file up to 4 times at 0.6 - with 4 different first layer heights - 0.1, 0.2, 0.3, 0.4
  3. Write a python script to go through the 0.2 slice/paused gcode file and automatically select the appropriate groups of 4->1 layer replacement gcode sections out of the appropriate 0.6 sliced file.
  4. This might result in sometimes moving some of the ‘switch back to 0.2’ pauses earlier a few layers earlier if they are not multiples of 4 rows apart, or you could go even more complicated and where required slice the file at 0.6 a few more times with different overall layer heights to fill in these sort of gaps.

I’m working on some proposals comparing various different idex, tool changer and merged parallel printer designs.

I was focussing so far mainly on colour change time and waste savings - but I think adding nozzle size changing into the proposals too could bring even more dramatic benefits to these options - especially when you start thinking about the benefits that could come from being able to mix nozzle sizes on the same layer.

1 Like