Octoprint for controlling a 2D pen plotter. Based on the Mr. Beam fork of Octoprint.
Find a file
Javier Martínez Arrieta 92279fb3a0 Squashed commit of the following:
commit cd6688be2691997feb1c76ca785e096779ac51db
Author: Javierma87 <javier.martinez.arrieta@alumnos.upm.es>
Date:   Thu May 12 15:13:23 2016 +0200

    Removed previousE

commit 413655f7051012b26406be013db9b4b3697404bc
Author: Javierma87 <javier.martinez.arrieta@alumnos.upm.es>
Date:   Thu May 12 12:36:54 2016 +0200

    Changed to detect in case of two extruders

commit b0cfa28eaff7648e9fa1b809122205f5c6a56899
Author: Javierma87 <javier.martinez.arrieta@alumnos.upm.es>
Date:   Mon Apr 11 18:11:54 2016 +0200

    Identation issues solved and code improved

commit 95b6eba2ad034d48c1b56576a2c665b4bb3abf72
Author: Javierma87 <javier.martinez.arrieta@alumnos.upm.es>
Date:   Mon Apr 4 18:48:47 2016 +0200

    Changed message shown to user using sprintf and improved 'if' checks

commit 3baf9d7fc0b05a336e17a3920fd5d267423959b3
Author: Javierma87 <javier.martinez.arrieta@alumnos.upm.es>
Date:   Tue Mar 8 17:46:40 2016 +0000

    Analysis now done in frontend, taking also into account centre origin

commit e742e74475dbacdb54517528e79533fbad8fa188
Author: Javier Martínez Arrieta <martinezarrietajavier@gmail.com>
Date:   Sat Mar 5 21:37:02 2016 +0100

    Update analysis.py

commit 29a821c2f40daa0fe15807d0c12435eef6a63b4f
Author: Javierma87 <javier.martinez.arrieta@alumnos.upm.es>
Date:   Mon Feb 29 19:11:59 2016 +0000

    Removed unrelated folders and files for pull request

commit 0edbcf3d3cbe3b6bb3e93c8a65fd7e6cbf8c7c45
Author: Javierma87 <javier.martinez.arrieta@alumnos.upm.es>
Date:   Sat Feb 27 10:54:47 2016 +0000

    Completed requirements and solutions for Slic3r integration and added requirements for scheduled printing

commit a92b7e3adeedbdc1a8f084aca0be248bb713e7c2
Author: Javierma87 <javier.martinez.arrieta@alumnos.upm.es>
Date:   Mon Feb 22 11:06:22 2016 +0000

    Changed requirements and solution file for Slic3r integration

commit 201b5723d9a537262d490a568ce32cbacb872dc9
Author: Javierma87 <javier.martinez.arrieta@alumnos.upm.es>
Date:   Thu Feb 18 12:15:54 2016 +0000

    Solved problem with character '}' at static/js/viewmodels/file.js

commit d89319c2a57d0aecaf96a3d91f58f9585e00fc25
Author: Javierma87 <javier.martinez.arrieta@alumnos.upm.es>
Date:   Wed Feb 17 21:04:44 2016 +0000

    Completed requirementes to add Slic3r as a plugin

commit 9e07a3b7c014fd77720746624c6e8433610b2e81
Merge: caf4e84 6945394
Author: Javierma87 <javier.martinez.arrieta@alumnos.upm.es>
Date:   Wed Feb 17 10:03:56 2016 +0000

    Added functionality to warn in case object exceeds printing area

commit caf4e84ab278455bf969c5630f5d8be11fec0d03
Author: Javierma87 <javier.martinez.arrieta@alumnos.upm.es>
Date:   Thu Feb 11 18:32:36 2016 +0000

    Added docs-tfg and implemented functionality of warning in case object is bigger than printer area
2016-05-12 15:41:12 +02:00
.github Added PR and issue templates, updated CONTRIBUTING.md 2016-03-14 11:43:15 +01:00
.tx Updated transifex config file to point to new translation directory 2015-06-02 15:50:27 +02:00
docs Refactored plugin docs + improved docs on sortables 2016-03-24 16:42:41 +01:00
scripts Merge branch 'devel' into dev/click 2015-10-26 13:47:17 +01:00
src Squashed commit of the following: 2016-05-12 15:41:12 +02:00
tests Make Server class octoprint_daemon-aware, make sure terminated() gets invoked on it upon SIGTERM and update respective test 2016-05-09 09:40:50 -05:00
translations Fix a stupid mistake in the german translation 2016-05-09 15:27:17 +02:00
.editorconfig Added an EditorConfig file 2015-05-29 11:58:36 +02:00
.gitattributes Versioning by versioneer: https://github.com/warner/python-versioneer/ 2014-06-22 00:41:03 +02:00
.gitignore Forgot to rename SPONSORS.md in .gitignore 2016-05-02 17:41:03 +02:00
.travis.yml Travis: Let's see if we can't get the git depth upped a bit 2015-10-23 13:36:39 +02:00
.versioneer-lookup maintenance branch is now 1.2.12.dev 2016-05-09 10:12:46 +02:00
AUTHORS.md Added @kevans91 to AUTHORS.md 2016-05-12 10:17:15 +02:00
babel.cfg Webassets are now written to ~/.octoprint/generated 2015-06-03 18:27:30 +02:00
CHANGELOG.md Merge branch 'maintenance' into devel 2016-05-09 10:29:20 +02:00
CONTRIBUTING.md Merge branch 'maintenance' into devel 2016-03-16 11:24:52 +01:00
LICENSE Moved LICENSE file to root directory to make it more visible. Added hint to README.md that OctoPrint is released under AGPL 2013-01-20 00:29:48 +01:00
MANIFEST.in First throw at an "About" dialog 2016-04-19 16:41:30 +02:00
README.md Added support link to README 2016-05-02 17:38:50 +02:00
requirements.txt Removed accidentally committed line in requirements.txt 2015-03-12 19:19:42 +01:00
run changed magic line from python->python2 2015-09-17 18:04:14 +02:00
setup.cfg We want pep440-post by default 2015-10-23 10:07:15 +02:00
setup.py Merge branch 'maintenance' into devel 2016-05-03 10:48:26 +02:00
SUPPORTERS.md Updated list of supporters for May 2016-05-04 13:29:06 +02:00
THIRDPARTYLICENSES.md Merge branch 'maintenance' into devel 2016-05-03 10:48:26 +02:00
versioneer.py Refreshed versioneer again 2015-10-23 09:53:25 +02:00

OctoPrint

OctoPrint provides a snappy web interface for controlling a 3D printer (RepRap, Ultimaker, ...). It is Free Software and released under the GNU Affero General Public License V3.

Its website can be found at octoprint.org.

The documentation is located at docs.octoprint.org.

The official plugin repository can be reached at plugins.octoprint.org.

OctoPrint's development wouldn't be possible without the financial support by its community. If you enjoy OctoPrint, please consider becoming a regular supporter!

Screenshot

You are currently looking at the source code repository of OctoPrint. If you already installed it (e.g. by using the Raspberry Pi targeted distribution OctoPi) and only want to find out how to use it, the documentation and the public wiki might be of more interest for you. You might also want to subscribe to the mailing list or the G+ Community where there are other active users who might be able to help you with any questions you might have.

Contributing

Contributions of all kinds are welcome, not only in the form of code but also with regards to the official documentation or the public wiki, support of other users in the bug tracker, the Mailinglist or the G+ Community and also financially.

If you think something is bad as it is about OctoPrint or its documentation the way it is, please help in any way to make it better instead of just complaining about it -- this is an Open Source Project after all :)

For information about how to go about contributions of any kind, please see the project's Contribution Guidelines.

Installation

Installation instructions for installing from source for different operating systems can be found on the wiki.

If you want to run OctoPrint on a Raspberry Pi you might want to take a look at OctoPi which is a custom SD card image that includes OctoPrint plus dependencies.

The generic steps that should basically be done regardless of operating system and runtime environment are the following (as regular user, please keep your hands off of the sudo command here!) - this assumes you already have Python 2.7, pip and virtualenv set up on your system:

  1. Checkout OctoPrint: git clone https://github.com/foosel/OctoPrint.git
  2. Change into the OctoPrint folder: cd OctoPrint
  3. Create a user-owned virtual environment therein: virtualenv venv
  4. Install OctoPrint into that virtual environment: ./venv/bin/python setup.py install

You may then start the OctoPrint server via /path/to/OctoPrint/venv/bin/octoprint, see Usage for details.

After installation, please make sure you follow the first-run wizard and set up access control as necessary. If you want to not only be notified about new releases but also be able to automatically upgrade to them from within OctoPrint, take a look at the documentation of the Software Update Plugin and at its settings.

Dependencies

OctoPrint depends on a couple of python modules to do its job. Those are automatically installed when installing OctoPrint via setup.py:

python setup.py install

You should also do this every time after pulling from the repository, since the dependencies might have changed.

OctoPrint currently only supports Python 2.7.

Usage

Running the setup.py script via

python setup.py install

installs the octoprint script in your Python installation's scripts folder (which depending on whether you installed OctoPrint globally or into a virtual env will be on your PATH or not). The following usage examples assume that said octoprint script is on your PATH.

You can start the server via

octoprint

By default it binds to all interfaces on port 5000 (so pointing your browser to http://127.0.0.1:5000 will do the trick). If you want to change that, use the additional command line parameters host and port, which accept the host ip to bind to and the numeric port number respectively. If for example you want the server to only listen on the local interface on port 8080, the command line would be

octoprint --host=127.0.0.1 --port=8080

Alternatively, the host and port on which to bind can be defined via the configuration.

If you want to run OctoPrint as a daemon (only supported on Linux), use

octoprint --daemon {start|stop|restart} [--pid PIDFILE]

If you do not supply a custom pidfile location via --pid PIDFILE, it will be created at /tmp/octoprint.pid.

You can also specify the configfile or the base directory (for basing off the uploads, timelapse and logs folders), e.g.:

octoprint --config /path/to/another/config.yaml --basedir /path/to/my/basedir

See octoprint --help for further information.

OctoPrint also ships with a run script in its source directory. You can also invoke that to start up the server, it takes the same command line arguments as the octoprint script.

Configuration

If not specified via the commandline, the configfile config.yaml for OctoPrint is expected in the settings folder, which is located at ~/.octoprint on Linux, at %APPDATA%/OctoPrint on Windows and at ~/Library/Application Support/OctoPrint on MacOS.

A comprehensive overview of all available configuration settings can be found in the docs. Please note that the most commonly used configuration settings can also easily be edited from OctoPrint's settings dialog.

Special Thanks

The development of OctoPrint is sponsored and maintained by BQ. Cross-browser testing services are kindly provided by BrowserStack. Profiling is done with the help of PyVmMonitor.