Finally, I installed #Moonrakerz the #API service for #Klipper.
My printer doesn't support a chamber natively, so I used the #EnclosurePlugin from #Octoprint to measure the enclosure temperature. I then modified the source code to take that sensors value and inject it as #Gcode that #Octoprint actually thought my printer was enclosed.
Using the #MQTTPlugin, this state was then communicated to a #Mosquito #MQTT server, which an #ESP32 then read and dimmed my heating lamps with a PID controller to get the enclosure up to 60°C.
The #EnclosurePlugin also controlled the power of my printer, visual lights, and then this sensor.
This is now obviously broken.
#moonrakerz #api #klipper #enclosureplugin #octoprint #gcode #mqttplugin #mosquito #mqtt #esp32 #3dprinting
My only not-so-simple implementation, which is my own fault, is ragter than forking and installing plugins and making my own modifications, I modified their source directly.
The #Octoprint #EnclosurePlugin has been abandoned, so the lack of updates has allowed me to do this because my code is never changed.
Ideally, I should move my entire enclosure to #MQTT through my #ESP32, and then I can easily switch.
But currently, my printer is controlled through the #PSUPlugin and my enclosure sensors through the EnclosurePlugin.
The temperature is communicated over MQTT to my ESP32 that controls the PID because the #RaspberryPi can't control the PID.
So, not-too-simple and a bit messy. But I am working on an #opensource enclosure solution.
Maybe now that I've switched to #Klipper, I would get around to finishing it.
#octoprint #enclosureplugin #mqtt #esp32 #psuplugin #raspberrypi #opensource #klipper #3dprinting