Hi, thank you very much for sharing this project with us.
Please excuse my unfamiliarity. Could you help me understand how your project differs from other community-driven efforts like MultiACE and Sidecar?
Also, it would be great if you could share what kind of community involvement you’re hoping for, for example, what kinds of testing, feature suggestions, or real‑world feedback you are looking for from users.
Thanks in advance!
I haven’t said anywhere that this is my project. It is a project by jarczakpawel (Paweł Jarczak) · GitHub
I played a small part in testing the BMCU 370C firmware for Bambu Lab printers.
After Bambu’s management began blocking BMCU devices and threatened Pawel Jarczak with legal action, Pawel decided to stop supporting the devices for Bambu and to develop firmware for Klipper and Snapmaker U1.
Hi Zoe,
sorry for the late reply - I only just found this thread.
With BMCU-Klipper, the main idea was to use the inexpensive, widely available and modular BMCU hardware and integrate it as deeply as possible with the Snapmaker U1 and Klipper.
You can connect additional BMCU units and increase the number of available materials or colors this way.
Each BMCU channel is independent - an entire BMCU is not assigned to a single toolhead. Every individual channel can be routed to any toolhead, so the configuration can be built exactly the way you need it.
BMCU can also be combined with the original Snapmaker U1 feeders. You can leave some toolheads on the factory feeders and use BMCU only where you need it. You can also completely replace the stock feeders with BMCU channels, gaining full automatic filament feeding as well as active filament retraction.
I tried to make use of the U1’s capabilities as broadly as possible instead of forcing one specific system layout. The user can decide which toolheads should use BMCU, which should remain on the stock feeders, and how individual channels should be distributed between the toolheads.
BMCU is also relatively inexpensive and very easy to obtain. You can buy a complete unit, but it is also a very good DIY project - you can print the enclosure yourself in PETG, buy the electronics and the remaining parts, and assemble the whole unit yourself.
BMCU-Klipper is fully open source, and it was important to me that the user would not be locked into one specific way of using the system.
In the video that Lockser posted above, I explained the overall idea of the project, installation, channel routing, U1 integration, configuration, and the operation of four BMCU units with 16 filaments in much more detail, so I think it answers quite a few of these questions.
As for community involvement, I don’t have any formal expectations. The project was simply created so that people can use it and develop it together with me.
BMCU was originally created for Bambu Lab printers. Unfortunately, with subsequent firmware updates, Bambu Lab started introducing mechanisms that directly limit the functionality of independent devices such as BMCU. For anyone interested, I described this issue in more detail here: https://github.com/jarczakpawel/BMCU-C-PJARCZAK/blob/main/bmcu-vs-firmware-locks.md
This was one of the main reasons BMCU-Klipper was created. It would be a shame to let BMCU become unusable.
That is why I wanted to bring BMCU into the Klipper world as well and make it possible to use it on printers where users have more control over their own hardware. The Snapmaker U1 is a particularly interesting platform for this because of its four independent toolheads and the possibilities they provide, which can be used much more broadly than simply switching colors.
The most valuable things for me will be testing in real-world configurations, reports about problems that I cannot reproduce myself, suggestions for new features, testing with different BMCU versions, and of course pull requests if someone wants to improve or extend something.
I am especially interested in unusual configurations, because that is exactly why I designed the routing and most of the system to be as flexible as possible.
If something does not work correctly, or if you have an idea for how something could be improved, GitHub Issues or this thread would be the perfect place to post it.