Octoprint Raspi "Universal Remote" Concept
Octoprint Raspi "Universal Remote" Concept
Late last year, I posted a print for a Raspbery Pi Case that had an option for an OLED display. Shortly after posting, user MyStoopidStuff posted an awesome remix that incorporated two tactile buttons into the module. Since that remix, I have been going down a rabbit hole.
Initially, I just wanted to be able to reconnect Octoprint to my printer if it disconnected with a single button press. However, after seeing octoprint's REST API documentation, I have since written a python module that simplifies communicating with octoprint via python (NOT through a plug-in). Because it is not a plugin, it can run on a Raspi without octoprint. It has the ability to communicate with any printer on the network running octoprint; kind of like a universal remote. This includes running multiple commands on multiple printers with a single button push. ie, start multiple jobs at once, run a certain gcode command, pause all prints, etc. Really, it is limited only by someones imagination (and coding skills).
I was considering making a case for a Pi Zero that integrates a 128x32 OLED, 2 buttons, and a li-polymer battery. But felt I may be investing a bunch of time in something that either already exists, or nobody would use. A buddy suggested posting this on a forum and getting feedback, so I am doing just that. Does anyone see any value in something like this? I know there are several smartphone and other octoprint plugins. Would there be any advantage to doing it on a stand alone Pi?
In the video below, upon booting, the Pi runs through all of the Printers (URL and API's) in the config file, tests connectivity, and retrieves their name, raspi status, and printer status. I have 4 printers stored in the config file. First, I connect to the Mini which is connected via USB to the raspi I am running the OLED/buttons on. Then, I switch to control a MK3S which is on the same network.
Thanks for any feedback and ideas - even if it is "Don't waste your time" 😉
This is a cool idea! Thanks for kind words about the button remix too, sorry it sent you down the rabbit hole though 😀 A portable Octoprint remote sounds like it would be really useful for keeping at a desk or quickly checking on a printer or job. The downside is that it may keep me at my desk even longer 😀
The Octoprint API's are really cool, I did not know about them until you pointed them out, and although I have minimal coding experience it has inspired a few ideas I may try when I get the time, like a clock (ex Parallyze's Grid Clock v2 https://www.thingiverse.com/thing:3433644) that can occasionally pull the print status from a printer and display it, or a touchscreen enclosure controller with some Octopi integration but not running it. I saw that the API can also return the progress on a print which would be cool to see, possibly on teh line which shows "Online" (like "Online 25%) or something like that to indicate how far a print has gone. If several printers were connected it would also be cool if the screen would scroll through their status as a sort of screen saver, similar to how the current script cycles through the status, IP and temp.
I think having a larger OLED screen like the 128x64 one of your other modules can use, may be handy for something designed to control several printers though, and maybe some extra buttons like "1-5" that can be assigned to a printer or a function (or a back, forward and enter button). But all that would also add to the size and complexity, so for simplicity and compactness the zero with OLED and a couple buttons makes sense also. I could go on and on with ideas on the ultimate printer remote, but since it's not me doing the work, I will stop myself lol.
If you make this, and are looking for a charge controller, I have been using one of these ( https://www.amazon.com/gp/product/B08GWTBD3T/) in my solder fan extractor and it has worked well. It combines a boost board and a Lion charge controller. One drawback is that it seems to drain the battery over time, but I'm planning to add a 3 position switch (like these https://www.ebay.com/itm/373736005248), to isolate the battery when it is not in use.