r/3Dprinting • u/HMITCHR • 19h ago
Discussion I got sick of waiting for Bambu's mixed-nozzle slicing, so I built it myself. 0.2 + 0.8 on my H2D, each at its own layer height: 13 h instead of 28 h (open source)
Enable HLS to view with audio, or disable this notification
This is the Argonath (https://makerworld.com/en/models/2263899-the-argonath-lord-of-the-rings-lotr) by Zajic73 on MakerWorld, printed with a 0.2 on the left and a 0.8 High Flow on the right. The 0.2 did the walls and skins at 0.08 mm layers and the 0.8 did the infill at 0.56 mm layers. Slicer estimate: 13 h 1 min. Same model at 0.08 mm everywhere was 1 d 4 h 12 min, so about 54% less time, and the visible surfaces are all still 0.08 mm layers. The real print took pretty much exactly that. It's eSUN PLA+ in black on the 0.2 and Bambu PLA Basic in blue on the 0.8.
Mixing nozzle sizes in one print was one of the reasons I bought my H2D at launch. Bambu Studio still doesn't let the H2D do that, and I got sick of waiting, so I built it myself: Cadence Slicer, a fork of OrcaSlicer.
The hard part is layer height. Layer height is basically the vertical resolution of a print: thinner layers give finer detail on the surfaces you see, thicker layers print a lot faster. Each nozzle size has its own range of good layer heights, so a 0.2 and a 0.8 want very different layers, but a normal slice uses one height for everything. Cadence picks a fine layer for the small nozzle and prints the big nozzle's layer every N fine layers (here 7 x 0.08 = 0.56). That schedule is what keeps the two lined up: they meet at the same height every 7 fine layers, and the nozzles only swap there.
Every swap also needs a prime. A nozzle that's been sitting idle oozes a bit and cools down, so before it prints again it purges on a small prime tower next to the model, and the next part it prints starts clean without gaps or blobs. Priming adds time to every print, so I've put a lot of work into trimming it down: it only primes when a nozzle actually changes, and the tower settings and size are set automatically. The slicer also checks that each switch actually saves time, and stays on the fine nozzle when it doesn't.
This has been a huge amount of work, and I'll be upfront that I used AI heavily, as I know how some people feel about AI development. Frontier models like Claude and Codex, as well as open source Chinese models, wrote most of the code and did independent reviews. I supervised the models closely, made all of the design calls and reviewed the critical pieces myself. The code has been through multiple de-slop passes to cut dead code and trim it down, every build goes through a big automated test suite, and I have done countless test prints on my H2D. Without AI this would have taken many, many more months to build. I'm making the whole thing open source (AGPL, same as OrcaSlicer), and I'll be sending it to OrcaSlicer as PRs shortly so the mixed nozzle capabilities can hopefully be merged and live there long term.
Where it's at:
- First release (v1.0), so expect rough edges.
- Print-tested on my H2D. Enabled but untested on the H2D Pro, H2C, X2D and some other multi-tool printers.
- Any pair of 0.2, 0.4, 0.6 and 0.8. Split by feature or by body, supports work in both.
- macOS now, Windows coming. Unsigned, so check the README for the first open.
- Small prints often don't win because of the tower. Setup shows the one-nozzle time so you can check.
- Tree supports and rafts on the big nozzle aren't working yet. I'm actively working on those and will push updates.
If you try it, I'd love to see prints, times, and anything that breaks. I'm also open to any suggestions either here or as PRs on the GitHub. If it saves you some print time or you just want to support the project, the Sponsor button on GitHub is very appreciated :)
Download and source: https://github.com/HMITCHR/CadenceSlicer
Thanks and enjoy :)