Print Farm Software  

  RSS
dg
 dg
(@dg)
Active Member

I have 10 Prusa Minis that I run in a print farm, and I didn't want to spend all the money on Raspberry PI's to run Octoprint, not to mention there are a lot of features that you lose while running Octoprint. Since Prusa is dragging their butts on Prusa Control I decided to write my own software to monitor the status of my printers. Below is a screenshot of a program I wrote in Python that uses the Prusa mini /api/telemetry json response to create a dashboard. It's also easily configurable to add printers and change the layout rows and columns. I'm not sure if the MK3 uses the same api as I do not have one to test with. Obviously this does not allow you to upload files and start prints because those functions are not exposed by the API as far as I can tell, but its a much nicer way to monitor the printers than having to open up my print cabinet constantly. My question is, is this something that is useful to others to the point where I should spend some time cleaning it up and making it available for public use. 

Posted : 08/05/2021 1:38 am
Schnoidz liked
cwbullet
(@cwbullet)
Illustrious Member

I would find it useful if it would also track statistics and filament use.  

--------------------
Chuck H
3D Printer Review Blog...
Posted : 08/05/2021 2:18 am
dg
 dg
(@dg)
Active Member

That is not possible. The information you see here is all the information that is exposed by the API. Prusa Control doesn't even do this. 

Posted : 08/05/2021 2:44 am
cwbullet
(@cwbullet)
Illustrious Member

@dg

Hmm.  Octoprint does it.  So impossible must be possible.  

--------------------
Chuck H
3D Printer Review Blog...
Posted : 08/05/2021 2:52 am
dg
 dg
(@dg)
Active Member

You clearly do not understand what is happening here. Octoprint is plugged in to the usb port and establishes a serial connection. I am polling the API that is available via the network port. They are not even remotely the same thing. Octoprint is also parsing and delivering GCode to the printer so it can measure the steps for the extruder. The API has no visibility to the GCode.

This post was modified 1 month ago by dg
Posted : 08/05/2021 2:54 am
mark
 mark
(@mark-6)
Estimable Member

@cwbullet

Octoprint does not use the interface via the ethernet connection. It connects via USB. This appears to be the same info exposed by the existing web interface, with multiple printers on one page.

@dg

I only have one printer, but it still looks good. Perhaps you could add things like notifications via email, sms, other? when prints are done or at a certain percentage.

Regards,

Mark

Posted : 08/05/2021 7:07 am
Clemens M.
(@clemens-m)
Prominent Member

@cwbullet

The reason why Octoprint can do so is, that they send every line of gcode to the printer. And as I understood the plugin filament manager or print history is calculating the amount of filament via every gcode line, which gets executed.

Best regards, Clemens

Posted : 08/05/2021 10:02 am
cwbullet
(@cwbullet)
Illustrious Member

@dg

I appreciate your efforts and understand.  I am sure some folks will use it.  I just do not see a reason to use a piece of software that hems me into being less capable than what I currently use.  I use Octoprint with Astroprint.  I can track filament spools and calculate the cost of each print.  

I am hoping Prusa builds this into Prusa Control.  

--------------------
Chuck H
3D Printer Review Blog...
Posted : 08/05/2021 12:56 pm
geekandi
(@geekandi)
Active Member

This would be fun - share when ready!

Posted : 09/05/2021 8:07 pm
PingTimeout
(@pingtimeout)
Active Member

I just released Linux Twitch and Discord apps. All week, I've been listening to people say "well why wouldn't you just go to twitch.tv or discord.com and use their web UI instead of this.

For reference, this conversation is nothing like what I've been experiencing but I liken the release of applications to be similar to this tipi analogy:

I like tipis. I love learning about Native American culture etc so I set out to build my own tipi. When I'm done building it, I think hey, my neighbor may like to use this also, let me share it with them. My neighbors says "You know, what would really be nice, instead of building a teepee, you'd build a thatch hut. Thatch huts are infinitely more useful, we want a thatch hut.". And then that neighbor goes off and flames me online for building a shitty thatch hut.

Sorry, side rant. 😛

Posted : 10/05/2021 1:37 am
PingTimeout
(@pingtimeout)
Active Member

It would have little value for me simply because I don't have that many printers. I believe you should absolutely release it though. I wouldn't even put too much emphasis on cleaning it up prior to doing so.

I wrote my own IRCD and channel services bots etc roughly 20 years ago and highly regret not releasing them then. My excuse was it's ugly code (largely Perl) and I pretty well feared doing so. I've lost much of that code base and other projects have far surpassed mine.

I fear it doesn't count for anything to anyone (besides yourself) unless you release it.

Posted : 10/05/2021 3:45 am
geekandi liked
dg
 dg
(@dg)
Active Member

Why would you track your filament use and cost in Octoprint when Prusaslicer is WAY more accurate. Octoprint is way off in filament usage and print time estimation in my opinion, Prusaslicer basically nails it. 

 

I do not have any interest in adding alerts, not to mention you would have to have a way to tie it to an SMTP server which doesn't sound like fun.

 

Here is a link to the GIST for the current version that I keep up to date. It runs on Python 3:

https://gist.github.com/graybilldustin/9493d6491c7ad202e2a2d023257f9416

There are 4 items in the config section near the top that you will need to modify. You will need to have the printers on static sequential addresses, ending in "01". For example mine are 10.1.100.201, 202, 203, 204, etc. This is because I use a loop to create printer URL's based on your quantity. It's easier than having to type in all of the addresses separately. You will need to configure the base URL, so for me that is "10.1.100.2". The software then takes my printer quantity (10) and loops through 10 times to create 10 URL's .201 to .210. Printer count is pretty obvious. Width and height determine how many rows and columns the stats are displayed in. If you have 4 printers and want to do a square that's 2 x 2, but if you would rather have them in a horizontal line, that's 4 x 1. Below are some examples of different layouts that are possible. 

 

The minis are not always super responsive to API requests so there is a time counter at the bottom center of each block that shows the last time the API call was successful. If it fails a call the text turns red just as an FYI but otherwise it picks up at the next call. When the printer is not actively printing most of the stats disappear. Unfortunately the API does not expose any information that lets you know if you are out of filament so there is currently no way to know that from the dashboard. 

 

If there are any questions let me know, I will do my best to answer them. 

 

 

Posted : 13/05/2021 6:42 pm
cwbullet
(@cwbullet)
Illustrious Member

@dg

Octoprint is fairly accurate at tracking filament for me.  I only have to wonder if you do not have the settings set correctly.  

I might try your software but it will not be my sole method.  

This post was modified 1 month ago by cwbullet
--------------------
Chuck H
3D Printer Review Blog...
Posted : 14/05/2021 2:59 am
dg
 dg
(@dg)
Active Member

Man, why are you trying to justify yourself? I don't really care what you do, you're an adult, make your own decisions. Clearly this isn't for you, so maybe you should just quit posting on this thread and wasting everyones time. You're like 40% of the posts on this thread and you don't even want to use it, just move on. 

Posted : 14/05/2021 3:09 am
cwbullet
(@cwbullet)
Illustrious Member

@dg

Apologize.  Obviously, I have hit a nerve.  On second thought, I won't test your product. You would prefer yes men.  

--------------------
Chuck H
3D Printer Review Blog...
Posted : 14/05/2021 3:16 am
dg
 dg
(@dg)
Active Member

Never asked you to, it's not a product, and I don't need your input. I made it for myself, it functions exactly as I intended, and since nothing else like it exists I offered it to help other people. Please just move on.

Posted : 14/05/2021 3:22 am
Oxygen
(@oxygen)
Reputable Member

The API, could change in the near future 😎 , the code for the WiFi module (ESP01) has been submitted to git this week.

The API in the current state needs some love from PR -- when the printer is idle the response is quick, when printing my HomeAssistant needs to set the timeout (for the REST call) to 40 seconds for it to be function (only getting 4 values, name, progress, print_duraton and time remaining)

maybe you should track the submissions in Git to see what is in the works now...

Mini with FW:4.3.1 + SuperPINDA + Bondtech Heatbreak + PC4-M8 couplers + 1 piece boden...
Posted : 14/05/2021 8:53 am
dg
 dg
(@dg)
Active Member

I'm not interested in tracking Git submissions. I am not a software developer and I have no interest in becoming one. I also have no interest in developing this solution past what it is. What I have provided here works perfectly to provide me an easy way to track printers that I can't see because they are in a cabinet. I will use this until they finish the functions of Prusa Control that were promised when the mini came out and then I will switch to that instead. It's just a stop-gap to fill the void that exists right now.

Posted : 19/05/2021 11:27 pm
Share:

Please Login or Register