Why, indeed. Why would anyone spend countless hours, dollars, and brain cells trying to make something meant to work in one ecosystem play nice with a completely different one? Well, dear reader, that’s where OpenAMS (OAMS) comes in.
The dream was simple: Bring the AMS (Automatic Material System) into the world of Klipper-based 3D printers. The AMS has some killer advantages:
- It’s fast. Like, "Sonic outrunning a turtle" fast.
- It’s reliable, with a huge network for parts and support.
- And it’s just plain cool, okay?
But there was one teensy-tiny problem: The AMS and Klipper are about as compatible as cats and laser pointers in a china shop.
-
Communication Breakdown
- AMS uses RS485 in a star network configuration. Klipper uses CANBus.
- It’s like trying to make Gandalf and Darth Vader fight on the same battlefield – epic, but not without some serious rewrites.
-
Real-Time Reactions vs. Pre-Planning
- Klipper is a wizard at pre-computing everything down to the nanosecond.
- AMS, on the other hand, reacts in real-time using a BLDC motor that controls filament spooling based on a filament pressure sensor. This motor isn’t precise, but wow, is it fast. Faster than a stepper motor could dream of being.
-
Closed-Source Headaches
- Bambu Lab’s protocol is as open as a bank vault on a federal holiday. Reverse engineering it was possible, but why bother? Jailbreaking devices is a never-ending Tom and Jerry chase that no one really wins.
If you can’t fix it, rebuild it! OpenAMS sidesteps the AMS's proprietary limitations by creating hardware that works with its mechanicals but speaks Klipper’s language. Here’s what we did:
-
A Communication Module
- Speaks CANBus (Klipper’s native tongue).
- Distributes power to the AMS and serves as a USB hub, so you can keep your Raspberry Pi ports free for other gadgets.
- Bridges CANBus devices like toolhead boards, too.
-
A Mainboard Replacement for the AMS
- Swaps into the AMS, allowing Klipper control while keeping the option to switch back to the original Bambu Lab operation.
- Supports up to 30 AMS units (for those who really love multicolor printing).
- Runs motors faster with higher voltage for quicker filament unloading.
- RS485 isn’t natively supported in Klipper.
- Breaking into closed firmware is like trying to sneak into Jurassic Park – cool for about 30 seconds, then terrifying and likely to end in tears.
After five hardware revisions, a year of firmware development, and enough coffee to float a battleship, OpenAMS is here. It’s not perfect (yet), but it’s good. Like, “former DJI engineers might raise an eyebrow” good.
So, whether you’re a tinkerer, maker, or just someone who likes to say, “I could make this better,” welcome aboard. This project was built for you, by idiots like us who thought, "How hard could it be?"
Spoiler: It was hard. Really hard. But hey, here we are. Enjoy! 😄