Automated Print Plate Changer for BambuLab P1S – API & OctoPrint Setup

Hey everyone,

My team, AutPrint, is developing a machine for the BambuLab P1S that automatically swaps the print plate as soon as a print is finished and loads a new, unused plate. We plan to host OctoPrint on a laptop and use the OctoPrint plugin Continuous Printing to manage multiple print jobs.

Our machine runs on an Arduino Uno R4 WiFi, so we need an API that:

  1. Detects when a print is finished.
  2. Triggers an Arduino program to swap the plate.
  3. Starts the next print job once the Arduino process is complete.

Has anyone programmed something similar? Are we on the right track with the Continuous Printing plugin? We haven't started working on the API yetβ€”what mistakes should we avoid?

We appreciate any advice or suggestions!

Best regards,
Simon from Team AutPrint

I've done a little mix of all the pieces of this solution.

  1. you can do with the bundled event manager plugin, or within your own plugin using eventHandlerPlugin mixin.
  2. I assume would be using the pi's GPIO, definitely possible but you may want to steer clear of the RPi.GPIO python module for controlling that and use either periphery or gpiozero modules if you want to support pi 5.
  3. you would need some way to tell OctoPrint it's completed, possibly also with GPIO, but that could then trigger the next print, or clear a flag that the print is complete. this would require figuring out the capabilities of the continuous print plugin.
1 Like