Would octoprint work on any generic linux hardware with USB and lan support? I have several wireless router around running tomato or ddwrt. Getting them to work instead of buying new hardware would be wonderful. They do have USB/lan connection, but I'm worried memory/CPU may be limiting. I can leave slicing part out too if I have to, mainly just need remote monitor and ability to stop a print if something goes wrong.
I personally wouldn't want to run OctoPrint on a computer with less than 1GB of RAM nor less than two cores @ ~1.2Ghz.
I'm a bit surprised it has such high requirement. Which feature of it is memory/cpu hungry? I only need the very basic functionality of being able to abort and mjg streaming from a camera (which I guess is a pass thru of bit stream from camera, or is there re-encoding done?)
Well he didn't say it wouldn't work with less it would just run better.
A Pi Zero for example often struggles while printing which results in stuttering of your printer.
If you like to tinker just go for it
Worst thing that could happen it doesn't work or runs poorly.
I would still suggest you use a large swapfile because routers often have a very small amount of ram.
If I understand correctly, octoprint is simply serving the pre-converted gcode text file to printer one command at a time? The actual data rate should be extremely low as a 1MB gcode file typically results in printing for hours. I'm surprised it can be affected. Shouldn't this be on a highest priority task? This task should be so lightly loaded.
Anyway, sounded like I need to invest in new HW. Cannot afford to impact print quality.
I can't tell you what octoprint does in the background. I mean I can tell you its features (or at least some of them ) but I don't know exactly what is done to achieve them.
If you want to spend less money I would suggest a Raspberry Pi 3, if you want the better hardware I would go with a Pi 4.
I got one (Pi 4 - 4GB) and you can use it in desktop mode and surf or watch videos with it while printing without any problems.
(That doesn't mean that you need a 4GB model. I just bought it for extensive desktop use and/or compiling. You will be fine with the 1 or 2 GB model)
Remember, I work on plugin development Mon-Fri eight hours/day for all of 2019. I intimately know the requirements of OctoPrint. My own printer runs a one-of-a-kind Conky interface which graphically shows me core load, memory load and network usage.
Streaming a print job to a controller board by itself consumes up to 50% of one core (@1.2Ghz) without adding much else. Just visiting the web interface for the first time will push another core to 100% for up to two full minutes in some cases. So if you want a controllable OctoPrint setup, you need two cores minimum.
What tends to happen, though, is that people then see that they're happy and they start loading it up with ten or twenty plugins, a TFT screen with the Desktop/GUI/x-windows system as well, a webcam, etc. And all this then starts begging for one or two more processors.
I've been running OctoPrint pretty successfully on a Raspberry Pi 2 Model B for years. The only issue that happens is when I try to load the web interface on a new browser tab. It seems that Octoprint only runs on a single thread as overloading the cpu with UI work can make a running print stutter.
uptime
reports ~1.5 CPU usage idle. Not much more while running.
mjpg_streamer
(de-factor program for streaming rPi camera) uses pretty consistent couple percent of my CPU core.
OctoPrint itself recommends at least a Raspberry Pi 3: OctoPrint.org - Download & Setup OctoPrint
Just to be sure - did you check for undervoltage warnings in the logs?
I have 6 machines using OctoPrint one Pi 3+ one Pi 2B and 4 of the PI Zero W. I have red this post a number of times and most of the information is interesting but it never answered my question of what is the minimum necessary to use OctoPrint.
Fist off the other post don't give any specks as the config and setup so her is mine.
Pi Zero W's: 5V fan and CPU copper heat sink, No camera, USB cable to machine, 5V 2.5A PSU, 32GB SanDisk Extreme PLUS 32GB microSDXC or Samsung’s micro SD EVO 32GB.
Pi 2: 5V fan and CPU copper heat sink, No camera, USB cable to machine, WIFI Card 5V 2.5A PSU, 32GB SanDisk Extreme PLUS 32GB microSDXC or Samsung’s micro SD EVO 32GB.
Pi 3+: 5V fan and CPU copper heat sink, No camera, USB cable to machine, 5V 2.5A PSU, 32GB SanDisk Extreme PLUS 32GB microSDXC or Samsung’s micro SD EVO 32GB.
Installed apps
Touchtest Bed Leveling Touchtest Bed Leveling on all Pi's
my Pi 3 has a Touch MI so i have bed visualizer
No G code visualizers, no Cameras,
Just Temperature, Control and Terminal.
Next I tested the load my systems were under:
I recorded the data using my smart phone and RasPi Check google App
CPU temperature was greatest on the Pi Zero at 38C with 27C room temp
Pi 3 and 2 ran at 30C at 27C room temp.
Max CPU was on Pi Zero at 57% under internet connection and file upload.
Max CPU on the 2 and 3 was 37% under internet connection and file upload.
The greatest CPU load was when i first loge in to do the config and i never ran above 95% but remember this is when you do a lot of work with the unit and it only occurs once.
My setup has been running 24/7 for the last 17 months but i do have fans and heat sinks on all my Pi's at $6 total for parts and printed case this is simple.
I tested the camera on all my Pi version and you will ad 20% to 30% CPU usage so yes the camera is only on a 4 core Pi 3+ and up, the Zero will have problems.
Just a not to date i have installed Pi images over 35 times on my systems for various reasons and about 50 for friends and colleagues. I have used the cheep cards and the cards recommended for my Canon 50D. I have noticed the cards recommended by Canon were marked on the package as having faster transfer speed by 4x in some cases and at leest in my opiion they started and ran faster. Considering taht a SanDisk Extreme PLUS 32GB microSDXC or Samsung’s micro SD EVO 32GB is selling around $10 it is a simple choice.
so for a quick reference
Pi Zero W will work without camera and with a minimal app load (just what is absolutely necessary) If all you need is to have remote upload, temperature monitoring, and basic controls then the Pi Zero W with minimal or basic app load works fine
Pi 2 will accommodate more or at least the first installed apps but the camera was not great
Pi 3+ will accommodate everything and if you want to run all the gadgets this is the best start point option
I'm relatively sure that the speed of these are lost on anything less than a Raspberry Pi 4B, the earliest to support something faster. And at 32GB in the absence of a camera, this size seems to be overkill. I've been getting away with 8GB cards for a long time (which I buy in bulk from the manufacturer).
You didn't mention what kind of printers you have (delta or cartesian) nor did you mention what bitsize are their controller boards.
I still wouldn't recommend the Zero for an OctoPrint instance. You might try insead the 3A+ which at least has four cores and the same 512K RAM.
I thought my machines were part of my profile but OK. I actually have 20 machines but only 6 are ruining on the Pis. I have running 2 CR10S with CR10S boards all have Atmel 2560 Chip as does the CR10 Pro and my CR-8 Alpha test unit not a resale printer, the Anet's all run the Atmel 1284p Chip .
I use Marlin 2.0.X on all my boards. I do all mechanical development for 3DPC.tech and our group objective or at least one of them is "Value Engineered" so we tend to works with the lest expensive option.
As for the cards the card speed matters as we tested this quite diligently at the Brandies University and although the cared is connected directly to the SoC all card were and are supported please reed this https://www.raspberrypi.org/forums/viewtopic.php?t=249824
As for the speed you can also see this
https://www.jeffgeerling.com/blogs/jeff-geerling/raspberry-pi-microsd-card
this was in 2015 and then in again in 2018
https://www.jeffgeerling.com/blog/2018/raspberry-pi-microsd-card-performance-comparison-2018
And as i said before i try to start at the vary bottom and support the 80% low end not he 20% height end.
A Pi 4 on say SKR V1.4 with say TMC drivers is great but most of the people i work with run part farms with fare simpler machines and all they need is to remotely connect so can they use a Pi 4 with 4gb ram yes and it will work fantastic but at ~$50 or $35 ea for 100 units i can get at lest 5 Pie Zerow's and they work well for the application vs ~$175 to $250.
As i spent time doing the testing i figure i should give back to this wonderful community so i am posting my information.
PS i did get my test Pi Zero to hit 100% on he CPU, I was connected to the Pi via the network, i was leveling the bed, loading the file and staring the print and running the Android APP, the unit ran without hitch and settled at its normal 56% once the print started.
So in short yes a Pi zero can run a printer with no real problems but it is quite striped down to do so.
A Pi 3+ and up will do much more but at a greater price. I also ran a new Pi 3 A+ and it worked quite well.
As a manufacturing engineer of over 24 years one of the hardest part of my job is always balancing cost to performance.
I am just implementing OP on a RP400 running Ubuntu Mate 64 (to replace an underpowered Atom-based Windows machine that keeps making the printer stutter despite careful adjustment of process priorities).
Setting up the RP400 is proving to be a bit of a learning curve (practically no previous Linux experience), however considering that you get an excellent heatsink, keyboard and case for the GBP £70, it is a pretty good price for the power you get cf. any other sort of Pi when you include a case and cooling. I am very impressed by the hardware engineering of it and Ubuntu Mate runs surprisingly fast. (Manjaro with KDE Plasma ran pretty fast, but I found I needed a Debian-base rather than Arch-base for a different secondary use - ubuntu desktop with kde plasma on top ran surprisingly slowly by comparison. Ubuntu Mate was my third attempt and I am happy with it.)
So far I have Ubuntu Mate installed, firmware tweaked to keep HDMI ports enabled, zswap enabled with z3fold (to minimise swap to SD and increase effective memory), /var, /opt & /home moved to separate partitions in order to minimise the writes to root partition (I had an unfixable root partition corruption after a power cut), firefox configured to minimise SD-card wear, OctoPrint installed and working. Still to do - get XRDP working, configure OP for where it stores data (print files to tmpfs for example, get webcam working for remote monitoring / timelapse, install OP plugins, install the other package, implement backup, put sync on a cron to minimise risk of O/S corruption.
If I remember to do so, I will let people know how I got on once I have it finished.
Aside from the webcam which seems to have a hardware issue, the Pi 400 is now working as planned and running both OctoPrint and the network management software without any issues.
I have been 3D printing with OctoPrint for the last two days and I cannot believe how much further improvement on print quality I have had as a consequence of having a more powerful processor for OctoPrint leading to reduced stutter. My prints have almost zero surface zits!!
So despite the Linux learning curve, I am very happy with the R Pi 400.
Thanks for the info! Looks like a Raxda Rock Pi S should be pretty solid for Octoprint (no camera, etc). A35 is pretty close in perf to the A53 that the RPi 3 has, certainly much better than the ARM11 that the RPi Zero has
512 RAM sounds a little light but doable. 4GB flash again maybe a little tight, but no camera or excessive plugins, so
I run all my Mendel90's with the original RPI 1B with ancient versions of OctoPrint and they all print fine. I tried to set up a new one with the latest OctoPi image and am disappointed to find it stutters when printing. mjpg_streamer and octoprint seem to take twice as much CPU as they used to do.
Will a PI Zero W2 run fast enough to support a camera and USB printing?
Thanks. The only issue seems to be that I can't get a camera cable for the Zero that is long enough, so will have to splice two together.
Hi there!
Just to share my experiences here, I'm running OctoPrint on the 256MB version OrangePI Zero with around 128MB zswap and it's working fine with something like 80MBs of free memory.
ArchLinux ARM with 5.19 kernel.