ZSwitch
ZSwitch is a two-filament Multi-Material Unit (MMU) for the Bambu Lab P1S. Desgined with as few components as I could.
Install / Use
/learn @MagicBOTAlex/ZSwitchREADME
This is ZSwitch!
An open source 2 filament MMU for my P1S, focused on simplicity. I never planned on open-sourcing this, but here are the project files.
The code is a complete mess, since I focused on speed of development, and not quality.
A major reason for this project is I wanted the community to know that this was possible.
Another reason is because I don't want to support Bambu anymore. (Hate when companies remove features)
Pros
- Cheap
- Simple
- Apparently supports TPU
- Designed for P1S
- I still use Bambu Studio
- USB-C PD 👍
- Doesn't support Bambu
- Is open-source
Cons
- Bad software (Too early of a project)
- Not connected to the actual slicer (It's just a button that controls when to switch the filament. May change in the future, since I'm using an ESP32-C3)
- No community (Yet? idk)
Reason for only 2 filaments
I only designed this for 2 filaments, because I could not see myself use more than 2. I wanted dissalvable supports and maybe PLA + TPU designs.
Inspiration/design
The mechanism was inspired by TetraFlow But it felt like it had too many components.
Demo video Youtube
Dual TPU demo Youtube
Internals GIF
Printed results
had some bleeding/stringing because of wet TPU
MMU
MMU circuits
Good luck making this circuit lol
Mock-up schematics
Reason for name
Every design I make is Z + the project. So this is ZSwitch. (Yeah, I'm not good at names!!!)
Material list
This is the list of components I used. A better design would require less. (Excluding 3D printed parts, and small parts)
- 2: TMC2209
- 2: Nema steppers
- 1: Esp32-C3 (Yes, I wanted to add Wifi. But lazy)
- 1: USB-C PD Trigger board
- 1: Step-Down converter
- 2: Capasitors (For stepper drivers)
- 2: Arcade switches
- 3: Skateboard bearings
- 1: Filament grabbing gear (I got mine from an old sherpa mini extruder)
DISCLAIMER
As per usual, if anything of my design causes damage to you or your machine, it is your own fault. I cannot be held liable for the decisions you make.
Contributting
I honestly don't expect anyone to continue this. But if anyone wants to, then I'll be here. Here's a small list of TODO. All of these will be solve if the software is rewritten from scratch. But if we want to keep patching up this version, then go ahead:
- [ ]: Create functions/methods to reuse code.
- [ ]: Homing inconisitant. (Doesn't work at certain start rotations)
- [ ]: Save the calibration data to flash.
- [ ]: Seperate ready task from calibration task. (Everything is currently just in Calibration.h
- [ ]: StallGoard to stop pushing after hitting extruder.
Should be good enough for now.
Cya ♥ -Alex


