Raspbian vs Octopi image, trimmed or configured?


I've got a Pi Zero running MotionEyeOs to monitor the printer and about to migrate to a Pi 3 running Octoprint. Couple of questions that I couldn't tease out of the FAQ:

  • is the Octopi a Lite version of Raspbian with configured Octoprint installed, or is it more like MotionEyeOs: a Lite version of Raspbian, with {MotionEye|Octoprint} installed, and non-relevant packages/software removed?

  • Could MotionEye be installed on the Octopi installation (excellent archival facility/FTP/etc)

  • Can other standard Pi packages be installed / used within Octopi or should I go down the "Install Octoprint on Stretch-Lite" path?


I know very little about MotionEyeOs but it stands to reason that if you have more than two webcams on/around your printer then there could be some value in keeping that. If you only have the one camera then I'd say that it's probably not worth the effort and to go with the OctoPi image for the sake of updates.

To the best of my knowledge, OctoPi is a distribution of OctoPrint for the Raspbian Lite O/S (now Stretch) which includes the requirements for the webcam streaming already. Guy appears to have tackled some of the technical hurdles regarding the pi user's rights on the system with regards to running the web service on port 80 and managing Python upgrades and such.

Anything with the word "OS" in its title suggests to me that it's a ready-to-go clone of Raspbian or Debian or something like that. I don't think I'd try to add MotionEyeOs on top of Raspbian.


Not sure about non relevant packages being removed.. I think this is just a pre-configured image of the OS and the octoprint software so non Linux folks can get up and running without much fuss.
pi@octopi:/etc$ uname -a ;cat os-release
Linux octopi 4.14.34-v7+ #1110 SMP Mon Apr 16 15:18:51 BST 2018 armv7l GNU/Linux
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION="9 (stretch)"

pi@octopi:/etc$ dpkg --get-selections| wc
1001 2002 27844
c compiler is installed and you can install whaterver you want.
There is no "Octopi image" upgrade path, as it is an image and to install a new version of the image you wipe out everything, but you can keep anything that is installed updated..


Actually, I'm working on that.


It's just raspbian lite with mjpeg streamer, octoprint, haproxy, and some fancy scripts to start things automatically and symlinks to make configuring the wifi easier.

OctoPi's maintainer(?) uses a bunch of scripts https://github.com/guysoft/CustomPiOS to open the raspbian lite image, insert all the cool printer goodies, and re-package it all ready to go. You could probably theoretically even build your own custom image if you know how (don't ask me how, I have no clue how it all works).


Thanks for that, good to know. That means I can plan to add software as required.


For what it's worth (and a shout-out to @guysoft), I wrote a Raspbian/OctoPi custom generator service for a printer-manufacturer-who-must-not-be-named. It takes the basic OctoPi image, mounts it in Ubuntu, makes a variety of customizations, unmounts it, zips it up, uploads it to an Amazon S3 bucket and then sends a notification email.


You are aware this is how OctoPi, and any CustomPiOS OS is built?

You might want to take a look at OctoPi's build scripts because they have been developed for 5 years and have easy ways to extend things with modules.


Sweet. (Just took a look at that.) I might be able to use that one myself. :+1:


Did you ever get anything working with MotionEye on OctoPi? I'd like to do the same thing myself.

I am using a MotionEyeOS Hub as the collector for all my cameras around the house (with Pi Zeros, they're 1/3 the cost of a competitive service). The current OctoPi camera being an MJPEG stream works well in the software, but doesn't allow all the bells and whistles that you get with MotionEye (such as being able to rebroadcast it securely). After my next print finishes, I'm going to try to install MotionEye directly on the Pi using:

Would love to hear what you find out..


Yup, installed the latest Octopi image on a Pi 3B (checked, started ok); then followed the default manual install steps for MotionEye on a Pi. That also came up working ok. Note, by default Octopi uses port 80 for it's web service, while Motioneye uses port 8765. Rechecked Octopi and still good. One HUGE caveat though: there's no camera installed on the little beastie just yet :sweat_smile: Camera still enroute from Aliexp...mumble


Brief update: camera arrived and installed ok. However, as I feared, Octoprint takes full control of the video stream. Motion can detect and load the camera definition, but errors on reading as it appears only 1 application can read the video output from the device.


In MotionEye you can choose the simple mjpeg camera option and point it to your webcam stream url and it will work. I think you lose the benefits of the motion detection stuff, but it will work.


Now that's clever. Although, yeah, no motion detection or other image-saving bells&whistles. Thanks for the idea!


I've found a way to accomplish this - DietPi (https://dietpi.com/).

flash to sd card, boot (username: root, password: dietpi), enable the camera in the config options, and select motioneye and octoprint in the software options. install, wait and you're ready.

Octoprint will be at your.ip:5000
MotionEye at your.ip:8765

When setting up Octoprint, I used the streaming url of motioneye (your.ip:8180) for the webcam location.

prefix all of those with http:// obviously... new user link limit.


Are you using a raspberry pi camera module or usb webcam? I can't seem to get the MMAL option to work in MotionEye.




I'm using the camera module, but after my initial post I've put using DietPi on hold until I have more time to tinker. While things would work initially, after a bit things would just fall apart. Camera just wouldn't be recognized. There is a possibility that the camera module is the problem, and just had a few arrive in the mail the other day so I'll be able to get back to trying things out.


Thanks, after restarting it seems the module was recognized and showing a picture again, but definitely seems finicky in the dietpi implementation versus installing motioneyeos and then installing octoprint on it.