Notice!
This is only compatible with the original AMS for Bambu Lab X1/P1 series.
Please follow my profile here or on Youtube or check back soon for a new design supporting AMS Pro 2, it is being worked on.
Update February 9, 2025
Python has reached version 1.05, it's the final update for the Bambu Lab X1/P1 printers.
For those using version 1.00 through 1.04 and want the latest and greatest, there is an upgrade pack you can print so you don't have to reprint everything as many printed parts have not changed since version 1.00 and all versions are indeed cross compatible.
The upgrade pack is named python-1.05-upgrade-threaded.zip. There's one for the heated inserts version too.
Changes:
- Front module and feeder module: Feeder adjustment is now fully adjustable, no set distance from the front module. The feeder modules are now attached from below for easier swapping and adjusting.
- Drive gear sleeve: Small adjustment for better gear meshing.
- Feeder module washer: New printed part.
Some older versions are available in the file archive.
Buy Python AMS
I've teamed up with a few different stores around the world offering the printed parts and everything you need for the build so you won't need anything outside of the kit:
If you're interested in the panels only for the enclosure, you can buy them from LaserFoundry.
Python AMS has a strict non-commercial license, it can only be sold with licensing through Hume Beam Engineering Solutions.
Discord Support
Please do not send me direct messages here or ask questions in the comments, I have notifications turned off as I get so many requests here and elsewhere. Instead, please join our Discord server for suggestions and technical support. Thanks!
If you need any help with the build or want to leave feedback you can join us on Discord:
Our server is named “QIDI Tech 3D Printers” so don't get confused when you join as it was initially setup for that brand of printers but we've expanded it to other brands and 3D printing in general as well as channels for some of my mods, it's where I generally hang out.
Welcome!
YouTube Reviews
ModBot
(RFID is fully supported now, this is an earlier review:)
The Printasaurus
Troubleshooting
Gear meshing / retraction
Almost all issues reported are related to the feeder position, it's important to get this right. For most people it's just set and forget but for some the position needs to be either closer to the front roller / drive gear and for some it needs to be further away.
For version 1.05 (current): Fully adjustable for perfect gear meshing. Adjust as per the instructions below or the assembly instructions.
For version 1.00-1.04: There is an adjustment range of 1.0 mm front to back and around the middle position is good for most people. For version 1.00-1.03 the feeder holders are oval, while 1.04 uses feeder modules with the same adjustment range.
That said, a good rule of thumb is to have the feeder as close to the roller as possible without the roller grabbing the yellow gear while you rotate the roller by hand. It should not grab in either rotation. See the area circled below.
Adjust it so it just grabs it then back off a fraction:

For version 1.05 the feeder modules are fastened with four screws from below.

For version 1.04 the modules attach from the sides.

For version 1.00-1.03 the feeders attach to the actual printed front module but the attachment holes are oval, allowing the same adjustment.
Some quick renders and a video:



Intro
Python AMS is a highly reliable and fully modular AMS system for the Bambu Lab X1/P1 series. It can be used with two to 16 spool slots, daisy chaining AMS units is possible, just like stock AMS. The sections are joined with dovetail joints and M3 socket heads. It has a built in wall mount and the spool holders are tilted back so it can just as easily be installed on a wall.
It comes with an optional but recommended enclosure that is either passively dried (like stock Bambu AMS) or with up to four active heaters (integrated Polymaker PolyDryers) that can be used while printing or when it's not in use.
It features self-centering Double Helical gears with a high torque thanks to a 135:12 gear ratio (11.25:1) from the small drive gear on each feeder to the enlarged spool gear. It's using the Bambu AMS internals only, no modification or additional parts required apart from bearings and bolts, it's fully reversible.
No longer rely on spool weights or roller grip as the roller system is bypassed. All types of spools are supported. The spool holders can be secured with a M3 socket head against both the spool holder's threaded rod to lock it in place and also against the spool itself but in testing it has never been needed as long as they are fully tightened.
As the spools fully rest on standard 608 bearings on both sides of the spool holder, both the feeders and the AMS hub motor are offloaded, avoiding premature wear or AMS overload errors. Each slot can be used as an external spool holder for example when using abrasive filaments or for multiple printers. Or you can use four modules for a full AMS and use a fifth module on one side reserved for external spools.
Cardboard spools, refills (though a spool around it is still recommended) and various size spools are all compatible including 250 g sample spools and other odd-sized spools. Maximum spool width is around 80 mm with Python.
Python AMS? What's the story?
Some of you familiar with the Bambu Lab printers probably recognize me as the developer of Hydra AMS and Hydra PRO as well as the Vision Enclosure for the P1P.
Development of Python was started late last year but it was ramped up this spring with final testing for a little more than a month now by a team of experienced 3D printer enthusiasts and professionals close to me with over a hundred printers between us.
The name Python is again inspired by Greek mythology as I have done in the past with some of my other designs such as Hercules, Icarus, Hydra and Chimera. So it's not exactly a snake, more of a dragon-like creature that Apollo fought. :)
With Hydra I did as much as I could to maximize spool compatibility while maintaining high reliability but was limited with the size of the AMS box and the roller system which can be finicky at times and not without issues.
With Python it was time to think outside the box. The trend of more and more cardboard spools as well as refill and odd-size spools on the market I felt it was time to make an ultimate AMS system. Not only to support all kinds of spools but also as an actively heated AMS drybox with a styling matching the Bambu printers. You can also use it without any enclosure if you like or with a passive drybox without heaters (same as stock AMS).
The main changes / improvements over the standard AMS:
- Compatible with all types of spools and sizes, up to around 80 mm wide.
- All spool diameters fit, from tiny sample spools up to 210 mm diameter spools.
- External spool function (bypasses the AMS) possible for all four spool slots.
- Actively heated enclosure with up to four heaters (optional).
- No need for spool weights.
- No need to rely on roller grip or worry about stuck spools.
- High torque self-centering double helical gears.
- Fully supports RFID in all spool slots.
- PTFE Load Buttons to both save the funnels and improve ergonomics (optional, it's a separate download).
The main Python AMS step files are not available publicly, please don't ask.
FAQ and Technical Specs
“Does this work like an AMS?”
- Absolutely, it works just like the stock AMS except the spools are sitting in spool holders, driven by double helical gears rather than on top of rollers. This highly increases the reliability and versatility.
“Can I use multiple Python AMS?”
- Absolutely, you can daisy chain up to four of them for a 16 spool AMS.
“Can I hot plug an AMS to a printer?”
- Normally this works fine but to be sure please shut down your printer before plugging in Python AMS (or a stock AMS for that matter!), it is much safer for the electronics. It avoids electricity spikes that can potentially happen if there is a poor connection between the AMS bus cable (black cable from printer to AMS) and the AMS power board, which in turn can damage the AMS main board.
- Hot-plugging can actually damage the electronics (AMS main board) so plug everything in before you boot up the printer.
“Do I need a stock AMS?”
- Yes. You use those parts and transfer over to Python. All of the parts can be bought individually but it might be cheaper to just get an AMS rather than sourcing the parts individually, I haven't compared the prices.
“How large is Python AMS?”
- Due to the individual spool holder system with side placed bearings and also to support wider spools, it's a bit larger than a stock AMS. It's a downside. But we trade size for very high reliability. However, Python is modular so you can use for example three modules only to slim it down. But for a full four spool setup the dimensions are: 439.20 mm (width) x 310.00 mm (depth) x 275.00 mm (height) including spool holders and front feeders (full install). Each module adds or subtracts 106.5 mm from the width.
“Can I place Python AMS on top of the printer?”
- While you can do this it will stick out a bit on each side as it's about 50 mm wider than the printer itself. I recommend placing it next to the printer or wall mounting it.
“Do I need to use an enclosure?”
- It depends on which material you print, how long your prints are and the humidity of where you live. It doesn't have to be a fancy enclosure, you could just stick it in a large airtight container and drill holes for the PTFE tubes and cables, it works just as well. However, filament is always best when dried and the ideal setup is an Actively Heated Enclosure.
“What is the size of the enclosure?”
- The size of the enclosure is 460.0 mm (width) x 390.5 mm (depth) x 293.0 mm (height).
“Does it support RFID tags?”
- Since version 1.02, Python fully supports the Bambu Lab spool RFID tags.
“One feeder does not engage / disengage the front roller.”
- This is almost always due to a misalignment of the feeder.
- Make sure you use 2.5 mm ID (inner diameter) PTFE tubing as per the BOM, if you use standard 2.0 mm ID it can be too tight.
“Can I use “AMS Savers / Filament Guides" with Python?”
- Absolutely, all AMS Savers and so called Filament Guides are supported.
“Can I get the source design files in step format?”
- The main Python AMS step files are not available publicly. However, some files are available in step format, please view the remix tab.
BOM - Bill of Materials
You can print Python AMS in just about any filament you like. However, if you plan on keeping the AMS directly on top of the printer it's best to print it in PETG as the heat from the printer can soften the printed Python parts if they are printed in PLA for example.
For this reason and for reliability I recommend placing the AMS next to the printer or wall mounting it.
Around 1.8 Kg of filament is required at the recommended print settings for the full build including four spool holders.
I've printed most of the test builds in Prusament ASA, PLA and eSUN PLA+, both brands and filament types work great. PETG is also a great option.
Filament
Fasteners
You need quite a few M3 socket heads but you don’t have to use them in all screw locations if you don’t want to. However, here is a list of all screw locations and specs:
- Left side panel against first module: 3 x M3-16 mm plus 4 x M3-8 mm
- First module against left side (inside out, optional): 1 x M3-12 mm
- Front modules against each other: 12 x M3-8 mm
- Fourth module against right side: 4 x M3-8 mm plus 2 x M3-16 mm
- Right side against fourth module: 1 x M3-16 mm
- Rear modules against front modules: 6 x M3-25 mm
- Rear modules against each other: 3 x M3-25 mm
- Four front roller sleeves: 4 x M3-10 mm
- AMS filament hub / motor: 4 x M3-12 mm
- Four spool holders: 20 x M3-25 mm
- Attaching the main PCB holder: 2 x 8 mm
- Four adjustable feeder modules: 16 x M3-16 mm
- Four adjustable front roller holders: 8 x M3-16 mm
To summarize, the following M3 socket heads are needed:
- 22 x M3-8 mm
- 4 x M3-10 mm
- 5 x M3-12 mm
- 30 x M3-16 mm
- 29 x M3-25 mm
You don’t have to use screws in all screw locations if you don’t want to.
If you don't have any at home it's best to grab the kit below, it will have everything you need for this build and more:
Bearings
For the spool holders you also need 8 x 608-ZZ bearings:
You also need 4 x 693-ZZ bearings for the front drive gears sleeves. You could use the bearings that came with your AMS (for the rear rollers, pull them off) but a set of 10 bearings is cheap and you don't need to pull them off, possibly damaging them:
PTFE tubes
You need about 1.5-2 m PTFE tube to cut to length. I recommend the stock Bambu PTFE tube which has an inner diameter of 2.5 mm and an outer diameter of 4.0 mm. Go for the AMS Hub / Custom Cut which is a single piece 4 m tube.
Optional
I highly recommend these Nano Coated Helical Extruder Gears from FYSETC, I use them for all my Bambu printers, they're inexpensive and offer a number of improvements of the stock gears:
I've also heard great things of the new BigTreeTech Panda Extruder but I've not tried it personally yet, you can get it including the Revo hotend as well:
Although not required these PEO/PEI/PEY bed sheets are great, I have most options myself, it gives a quite cool look on the first layer. There are a few shops offering different plates:
- Build Plate PEO/PEI/PEY Spring Steel Sheet (Super 3D)
- Build Plate PEO/PEI/PEY Spring Steel Sheet (IdeaFormer)
The Hex Tools are superb for any 3D printer, I've had mine for years. They are particularly useful for the Python assembly.
Tools
I'm using a simple tool for cutting the PTFE tube, you can use a knife as well. I also use a fine file for cleaning up the parts. And if you go for the optional heated inserts, a soldering iron is needed. A short hex key for 2.5 mm is useful as well.
For the heated inserts version, install a short M3S heated insert in all spots with a crossmark, you need about 60 of them.
Warranty
Python AMS does not void your warranty but be careful, especially with the AMS main board, use an antistatic wrist band. Although the mod is completely reversible and you can't tell the parts have been installed in Python AMS, I take no responsibility and you're on your own. Be careful and take it slow, read this page twice before you start.
Support
All my designs and mods on Printables are free to use and remix. They have a non-commercial license. If you enjoy this or any of my other designs you can send me a small donation using the link below. Thanks :)
https://www.paypal.me/humebeamengineering
If you prefer Crypto/BTC you can send me a message.
If you send a donation be sure to mention Python AMS in the comments box and you will be added to the list below.
Supporters
If you have donated $5 or more you will be added to a list of supporters as a thank you from me and you will also be assigned a serial number, the list will be updated as often as possible.
Read more and get the custom printed parts with your serial number here:
- Python AMS - Side Panels (For Supporters)
Thanks again!
If you want to remain anonymous, leave a note with your donation. If I've missed your donation let me know.
Before Printing Python AMS
Make sure you dial in flow correctly before you start so that you are not overextruding. The problem then is you can't join the dovetail joints and assembly properly.
The Bambu Lab printers usually do a pretty good with automatic flow calibration but it's best to confirm flow anyway, sometimes it is inaccurate. There are ways to do manual flow calibrations directly from Bambu Studio and Orca Slicer so you can use those.
Once you have done that, print these dovetail test joints, more info here:
- Python AMS - Test Pieces
Earlier Versions
There are some earlier versions available in the file archive.
Print Settings
All parts print without supports and I recommend using 3 walls and an infill of around 15%. Print all parts in the direction I have set them.
There are individual 3mf files posted or you can download one of the full sets:
- python-ams-1.05-full-set-abs.3mf
- python-ams-1.05-full-set-asa.3mf
- python-ams-1.05-full-set-petg.3mf
- python-ams-1.05-full-set-pla.3mf
- python-ams-1.05-full-set-pc.3mf
All parts: Aligned seam position.
These can be loaded in Bambu Studio or you can print them directly from Bambu Handy.
Main parts:
- front-module-print-4pcs-1.05.3mf
- feeder-module-threaded-print-4pcs-1.05.3mf
- feeder-module-washers-print-8pcs-1.05.3mf
- roller-block-threaded-print-4pcs-1.05.3mf
- drive-gear-sleeve-threaded-print-4pcs-1.05.3mf
- drive-gear-holder-print-4pcs-1.05.3mf
- main-pcb-base-print-1pc-1.05.3mf
- left-rear-print-1pc-1.05.3mf
- motor-rear-print-1pc-1.05.3mf
- pcb-rear-print-1pc-1.05.3mf
- right-rear-print-1pc-1.05.3mf
Tip: The drive gear sleeves can be printed in TPU 95-98A (tested by me) for a much more silent operation but normal “hard” filament is fine too but will be louder when it's switching spools.
Sides:
- left-side-print-1pc-1.05.3mf
- right-side-print-1pc-1.05.3mf
If you're an offical supporter, download your custom left and right sides here:
- Python AMS - Side Panels (For Supporters)
For these parts the Python logo and text is “hidden” in the first layer. Here you can use the Paint Bucket tool to paint the logo and text:

Spool holders:
- m3-wafer-head-gear-side-print-4pcs-1.05.3mf
- m3-wafer-head-top-side-print-4pcs-1.05.3mf
- spool-gear-135t-print-4pcs-1.05.3mf
- spool-holder-bottom-print-4pcs-1.05.3mf
- spool-holder-top-print-4pcs-1.05.3mf
- threaded-rod-print-4pcs-1.05.3mf
Use dry filament.
Optional Prints
These prints are optional but recommended to accompany Python AMS:
- Python AMS - Adaptive Spool Holder
- Python AMS - PTFE Load Buttons
- Python AMS - Silica Gel Box
- Python AMS - Actively Heated Enclosure
- Python AMS - Passively Dried Enclosure
- Python AMS - TPU Riser
- Python Refill Spool
Assembly Guide
Please view the assembly guide PDF for your version of Python, they are very similar but there are some differences in the feeder and drive gear mounting.
If your front modules look like this, you use the current version (1.05):

- If your version look like the one above, follow the assembly instructions below or view python-assembly-instructions-for-python-1.05-compressed.pdf
Else, if you use an earlier version, identify yours below:

- If your version look like the one on the left, view python-assembly-instructions-for-python-1.00-1.03-compressed.pdf
- If your version look like the one on the right, follow the assembly instructions below or view python-assembly-instructions-for-python-1.04b-compressed.pdf