What's the Problem??
Bambu Lab does not (yet) support printing with TPU out of the AMS, so to make a multi-colored print (that is not my benchy print, btw) I have to use the manual spools on the rear of the printer, and eject/reload filament each time the color changes.
G-code
The solution I went with was some new g-code. What the heck is g-code?! From Wikipedia (the source of all truth in the universe, obviously) :
G-code is basically a programming language that tells the printer what to do as a series of instructions — move the printhead to here, increase nozzle temp to X, extrude N amount of material as you move to position Y, etc.
If I try to print a multi-colored model, the P1S basically tells me to go fly a kite and it stubbornly prints the entire thing in whatever color it darn well pleases. Well, ok, whatever color is currently loaded. (my printer apparently has a brain entirely given over to vindictive behavior, so I will stick with the “whatever color it wants” statement, thanks.)
You can inject g-code pauses by right clicking on the layer within the slicer. But I found a full replacement of printer g-code to work best for me. This author on Reddit posted his custom g-code (which can be found on Github here). I used his “change_filament_noAMS.gcode” file but can’t link to it directly because you’ll want whatever the latest version of it is.
In short; you open the printer settings in your slicer, flip to the Machine G-code tab, scroll all the way down to Change Filament G-code section, and replace the default code there with the code from Eukatree’s Github.
This will now force the printer to move the print head to the rear over the poop chute, pause, wait for you to change filament, and then do some pooping before resuming the print.
Other Notes
Slicer Colors
I have used the “paint” feature within the slicer to mark areas I wanted in different colors. But I found that no matter how it looked on screen in the slicer, it would invariably print with blurry lines at the color change points. To get truly clean edges between colors, I had to break the model into parts. I prefer to do this in Fusion 360 when building the model – I use “Components” in Fusion to separate bodies, and the slicer (I am using OrcaSlicer on my Bambu P1S) picks those components up as separate Objects.
You can then toggle the Process switch from Global to Objects, which provides a list of the Objects (Components) found in the model. There is a right-click menu for each Object and you can select filament color from there.
Likewise, you can also adjust settings for each Object – many settings for quality, strength, and more can be adjusted on a per-Object level.
Changing Filament
I still don’t have the Magic Combination of steps to best change filaments mid-print. 🙁
When using TPU I frequently get jams during color changes and have to disassemble the hotend before printing can resume.
My best success so far has been to keep a close eye on the printing. When the printer pauses for a filament/color change, I make sure I am right there to bump the hotend temp back up (otherwise it will drop to 90c). I usually go to the printer default 250, but I have also tried other temps all the way down to the low end of the TPU printing range and I have not personally discovered one temp to be better than another.
I then swap the filament spools as quickly as possible. The g-code above performs a cut so the old spool is ready to pull out. I then use the manual filament advance button to slowly feed the new filament in. I have not had good success with the “Load” and “Unload” options on the printer menu! If there is a jam, then the unload can get into a funky state because the sensor still sees filament. I ended up powering it off to break out of the unload state, and the power-off recovery didn’t work so I lost that batch of prints. Grrrr.
Worst case I lower the hotend temp all the way down, pull it apart, do a cold pull or whatever is necessary to clear it, reassemble, pump the temp back up, load the new filament, and resume the print.
Another note: when manually feeding the new filament using the printer menu Extrude button, I go slowly and listen for the gears, giving it adequate time for each extrusion to finish before hitting the button again. I think it is generally around 5-7 pushes of that button before I see the new color extruding. Even then sometimes I add a few more pushes. The g-code above does do a color flush (poop) but I have had prints where some of the old color is still in the nozzle.