Octoprint(s) needs a lot of 'hard resets' in viewers

I have generally multiple browsers open (on multiple computers) for the same printers and have somehow 'old info' on the browsers.

I have for example a PC in the livingroom and also one near the printer and if I go to bed one browser running on my mobile.
When I have for example paused from the PC in the shed near the printer, the other browsers keep on writing ' printing' instead of changing to 'pausing' or 'paused'.
Also the case if I cancel a print: the other browsers keep on saying 'printing'.
Even if I start a new print, the old filename is still on top.

If I press 'refresh' on the other browsers, it is generally the same status, no changes.
For example it says (internalnetworkaddressIP)#temp and it is still printing the file, even after the refresh. Also after a [CTRL]-[F5]. And I have done a cancel from one of the other connected computers on the network and for example used the control-tab to change the position to change the filament.
If I go back to the main page by typing the internalnetworkaddressIP in the browsers address, then I have the new info after a while waiting.
It can be also real old data from a couple of days ago if there is no active refresh (and no, no screensafer, the browser stays active on the PC or laptop, not used for anything else)

This happens to me on multiple Octoprint instances (multiple printers, each their own Raspberry-Pi), both with a PiZeroW as with a Pi3B.
Using multiple browsers from multiple PC's also seems to slow down the refresh of the pages and the reload is taking quite long, htop (with putty) is showing a high processor load in these cases. It seems that the Pi is using a lot of processor-power to write the same info for each browser (computer) that is looking at the same info.

Maybe it is possible to have the pages in a cache on the pi that is updated internally and only that cache-page is loading from the browsers instead of generating all data again per browser?

It is nice that it is possible to break off a print because if is clear something is wrong from the livingroom (looking at a webcam, not using the screen in octoprint, that is not possible with all cameras) and do a continuation from the shed's PC / laptop but it is at least confusing and taking a lot of time when that is still saying 'printing'.
Somehow it is also very slow to refresh this way (probably of the high processor-usage), can take up to minutes to refresh (on the Pi3b, even longer on the PiZeroW).

Actually, part of the page seems to be refreshing (like the temperatures-info) but the rest of the page including the buttons are not in these cases.
The browser that has done the last changes (like pausing or the restart) has the right info and buttons, the others (can be 3 other computers) have not-updated info even after the [F5].

Screenshot is from one PC, example of print with the plugins that are loaded (on the Pi3b). There is no connection to access the pi from outside the internal-network (other then realvnc if vnc is started). Browsers used are mostly firefox but also chrome and epiphany. Makes no difference. PC'\s are multiple Linux-systems, mobile is Android 7.

What I tried: quite a lot. the network on the pi's is working fine, I can putty to them from all places in my house that have a network-connection together and I can also load the pi's (but it might take a long time).

Both these pi's are connecting to the same wifi-access-point, but the 3b is connected with a UTP-cable directly and the ZeroW is connected over WIFI. This seems to make no difference in this problem. The access-point (no routing, all on same internal-network and within range) has a connection to an other one which is also providing the WIFI for the network-parts when I'm in the livingroom.
But the mentioned laptops and mobile-phone are always in the shed close to the printers. All within 4 meters.
IP-addresses for all are over DHCP but are reserved adresses.
I'm not sure if it worked better before but this behavure has been like this at least since august. I do update regularly both the pi's linux, the updates in Octoprint (when between prints) and also on the laptops and PC's. The PC's and laptops use linux (debian) ,all set in English language and are on 24/7 when I start printing.

On the 3b there is also a display directly connected and that is looking at the local IP-address. This is having the same issues: when the print is cancelled from another computer this info is not updated and it stays in the old state so I need to connect to VNC or hook up a keyboard to refresh that page and have the right status on screen again. (showing the temperature-tab normally).
Besides octoprint and on the 3b the desktop there are no other apps running on the pi's.

Hope this issue can be made working better somehow...

In my experience, just bringing up a web instance in a browser to the OctoPrint site causes a fair amount of work for the Pi. And then streaming the video back to that client also uses up processing power. It might reasonably consume one core on a Pi 3B.

So if you're trying to bring up multiple browsers then you're slamming that same Pi with requests. Personally, I would suggest only one browser per actively-printing OctoPrint for the sake of performance.

I don't think that I would ever recommend a Pi Zero for OctoPrint. To me, it feels like the 3A+ is the minimum platform, the 3B is next and the 4B is the maximum available now. Others will suggest that the 2B work but why bother?


A completely different model would be for OctoPrint to broadcast in UDP multicast. It's more of a publisher/subscriber model and what you'd do for radio station casting on the Internet or similar.

Another approach is for you to have one PC as the client and then to have VNC server on this. Any other computer interested in what's going on would then VNC over to that computer to see the show.

@OutsourcedGuro: thanks.
Yes, this is just what I was thinking and experiencing. I noticed a lot of processes from Octoprint in top / htop and they seem to work all the time doing the same thing. Is there an easy way to make a UDP multicast on the Pi to have this working on Octoprint or would it be like rewriting everything (I'm not capable of doing that)? Since I use it only locally and I'm the only one that can have access (no-one else on this network) I would not mind that, only it might be difficult to have the bottons work?

I don't have any camera that is working over the Pi's, the ones that I use are webcams with dedicated apps on Android (or Apple, I don't have that system) and besides recording on the camera's cards I can also use multiple phones /tablets to move them around and zoom-in and such things. Actually one camera is checking up on 2 or 3 3d printers that stand next to each-other (just move the head). This makes the Pi's job a lot easier, especially on the PiZeroW.

When printing, that Pi is normally not getting above 50% even with 2 or 3 web-interfaces active but they are not synchronised: only the one that accessed and changed last is really updated. But then the updating is real, real slow. I used that PiZero because I had it and it has a nice small formfactor but still has a pretty decent WIFI, also used in the Prusa-printers I understand.
Reloading the interface from another PC as from where a print is cancelled can take quite a long time, more like minutes then seconds, but this might also be extra slow due to the speed of such a laptop (starting of the century running MX-linux for example). Sometimes it just does not seem to get there at all.

About VNC: would it be possible to run that at the same Pi 3 b and use a second 'hidden screen' with a different resolution as the primary screen that is displayed on the small display?
I tried this solution on a OrangePi zero but after a while it ran out (> 256k) memory and started swapping on the micro-SD-card. Worked fine first but after a couple of days with printing it had 'eaten' the SD-card. Also started to get issues when I did anything on another computer directly using the web-interface of Octoprint and reloading took extra memory and swapping.

I generally have one (old) laptop on the attick where 2 or 3 printers are in an enclosure, one on the floor below where one other printer is working and then in the livingroom where I draw, slice and live when not actively doing things on the printer. So when I notice a print loosing from the plate or making spaghetti, I want to hit pause or cancel fast before starting to walk (with crutches in my case) all the way to the printers. This week, multiple times I had to wait for the reload while the printer was making terrible noices...

Thanks for your input.

The Prusa guy should have spoken with foosel before designing something like that into his printer. I'm reasonably certain that she would have talked him out of it. It only has one core and half the memory of the 3B, for example.

A Pi 4B might just run comfortably with your existing setup, assuming that you've upgraded Raspbian to the latest Buster distribution.

You might just want to monitor the print job using http://octopi.local:8080/?action=stream which comes directly from the mjpg_streamer service and bypasses OctoPrint completely. You might find that a phone app consumes less bandwidth and processing power to the Pi.

You might consider installing a dedicated webcam server as described here. That would work nicely on your Pi Zero W computer. By removing all the webcam activities from the primary Pi 3B then it lowers the work for that computer; the other Pi then serves up the video. I do this on my own printer.

Well, I got it running this way: installed an X11vnc server on my laptop that is now on 24/7 and having a browser-window open to all the octoprints with the original (:0) display shared.
Somehow the VNC is not staying active after a remote-PC/laptop has gone to sleep or shut down so I need to telnet then again to the laptop to start a new session and then use the vncviewer to connect.
And it is pretty slow sometimes to update the menu's of the octoprint-screens in the browser but that is probably because this laptop is now 'running on its tows' most of the time.
If you have a good suggestion about a lightweight vnc-sharing system (best running on a pi) that would be very nice.

The info on the screen keeps updating to the right info now on all attached computers.

About webcams: I only have 3 running, they are wifi-webcams and are not connected to octoprint. I don't use that feature. The webcams have their own movement-system (left-right, up-down, zoom in/out) and controlled by apps on mobile-phone. If wanted, I can record on the card in the cams and/or over the web and also control it from the www.
Thus, this feature is disabled in Octoprint.
The filament-sensor reloaded plugin is the most important plugin for me and secondly the Marlin firmware-updater, so the Pi zero is pretty up to the task with only one screen attached.
Actually, processor-usage on the Pi-zero with 2 users attached (1 is the laptop, the other is a pi3), the CPU% is hardly ever reaching 70% during printing, most of the time about 33%
So that is really a lot better. Memory is only about 111M/433 so not bad eather.

Only the startup is very slow of course, so yes I guess 'the Prusa guy' should have standardized for a higher Pi-version, especially if used with camera's.

The Pi3b's are now less then 10-15% processor-usage all the time during printing. not bad at all.
(I'm monitoring with a telnet-connection to them).