OctoPrint

From BITPlan Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

https://octoprint.org/

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
...
Using /home/wf/OctoPrint/venv/lib/python3.7/site-packages
Finished processing dependencies for OctoPrint==1.5.1

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.

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

Installation on MacOS

Support