OctoPrint
Revision as of 10:49, 6 December 2020 by Wf (talk | contribs) (→Installing Python2.7 including pip and virtual env)
Installation on existing raspbian
Installation from source
see the five steps described in the "Installing from source" section of
Installing Python3 including pip and virtual env
python3 --version
Python 3.7.3
pip3 install virtualenv
...
Collecting virtualenv
...
Successfully installed distlib-0.3.1 filelock-3.0.12 virtualenv-20.2.1
virtualenv will not be available via command line at this point so the instructions from the forum article will provide virtualenv.
sudo apt install python3-pip python3-dev python-setuptools python-virtualenv git libyaml-dev build-essential
Obtaining the octoprint source
git clone https://github.com/foosel/OctoPrint.git
Creating a virtual environment
wf@pito:~/source/python/OctoPrint $ virtualenv venv
Running virtualenv with interpreter /usr/bin/python2
New python executable in /home/wf/source/python/OctoPrint/venv/bin/python2
Also creating executable in /home/wf/source/python/OctoPrint/venv/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
Installing OctoPrint into that virtual environment
wf@pito:~/source/python/OctoPrint $ ./venv/bin/python setup.py install
running install
running bdist_egg
running egg_info
creating src/OctoPrint.egg-info
...
Adding pytz 2018.9 to easy-install.pth file
Installed /home/wf/source/python/OctoPrint/venv/lib/python2.7/site-packages/pytz-2018.9-py2.7.egg
Finished processing dependencies for OctoPrint==1.3.10
Start OctoPrint Server
./venv/bin/octoprint serve
Finish Install via Webbrowser
Octoprint listens on port 5000 by default:
http://<octoprintserver>:5000/
Will bring up the Setup Wizard
CuraEngine
sudo apt-get -y install gcc-4.7 g++-4.7
git clone -b legacy https://github.com/Ultimaker/CuraEngine.git
cd CuraEngine
make
Webcam
see .g.
- https://plastikjunkies.de/raspberry-octoprint-webcam/4/
- https://community.octoprint.org/t/available-mjpg-streamer-configuration-options/1106
MJpegStreamer
sudo apt-get install libjpeg-dev libjpeg8-dev imagemagick libav-tools cmake
git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental
make
Autostart
.config/autostart/octoprint.desktop
[Desktop Entry]
Type=Application
Name=OctoPrint
Comment=OctoPrint service
NoDisplay=true
Exec=/home/wf/bin/octoprint
Add your user to group dialout
You might want to run this command once to get access to the /dev/ttyUSB0 device
sudo usermod -a -G dialout $(whoami)
octoprint start script
#!/bin/bash
# WF 2019-02-24
# Octoprint startup script
# set these variables according to your installation
mjpg=$HOME/source/cpp/mjpg-streamer
mjpg_port=8080
octo=$HOME/source/python/OctoPrint
#
# check whether the given process runs
# param #1: l_process - the process to check
#
check_run() {
local l_process="$1"
pgrep -fl "$l_process"
local l_presult=$?
if [ $l_presult -eq 0 ]
then
echo "$l_process already running"
# comment out as you like
# either stop here
#echo "to kill the process you might want to use"
#echo "pkill -f $l_process"
#exit 1
# or fully automatic kill
echo "killing $l_process"
pkill -f "$l_process"
fi
}
#
# make sure the given logfile exists and is accessible
# param #1: l_logfile
#
prepare_log() {
local l_logfile=$1
sudo touch $l_logfile
sudo chown $(whoami) $l_logfile
}
#
# start the webcam streamer
#
start_streamer() {
check_run mjpg_streamer
cd $mjpg/mjpg-streamer-experimental
log=/var/log/mjpeg_streamer.log
prepare_log $log
echo "starting mjpg_streamer logging to $log"
nohup ./mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 1920x1080" -o "output_http.so -p $mjpg_port -w ./www" >> $log 2>&1 &
}
#
# start octoprint
#
start_octoprint() {
check_run "octoprint serve"
log=/var/log/octoprint.log
prepare_log $log
cd $octo
echo "starting octoprint logging to $log"
nohup ./venv/bin/octoprint serve >> $log 2>&1 &
}
start_streamer
start_octoprint