3D printing unchained
Transcription
3D printing unchained
OctoPrint 3D printing unchained Created by Gina Häußge / @foosel Who am I? Software engineer by day Passionate code monkey by night Proud owner of a 3D printer since late November 2012 Developer of OctoPrint since Christmas 2012 (that's what holidays are for, right?) Why Another Host Software? The Problem PLA/ABS/yourFavoritePolymer fumes Stepper motors can produce quite the racket Takes up a lot of space in the office (printer, cable salad, ...) Takes up the office computer (or the laptop) The Solution Just put the printer somewhere it doesn't disturb anyone, like the shed, the basement or a spare bathroom. But actually watching it print is so mesmerizing and calming, and I also want to make sure nothing goes wrong! And Thus The Idea Of OctoPrint Was Born! What Was The Vision? Run on a Wifi-enabled Raspberry Pi So I can just put it somewhere within my Wifi's range and be able to access it without spending too much money on this convenience. Provide feedback regarding the current printer state (temperature, print job, etc) So I can always be sure that it's doing what it's supposed to be doing. Include a webcam feed So I can still watch the printer do its magic. And Do All That In The Browser! So that I can quickly check up on it from any of my devices without the need to install anything. What's in the package? Uploading and managing GCODE files on the host or the SD card Printing GCODE files stored on the host or the SD, pausing and cancelling running print jobs Monitoring the current progress, temperature and printer communication and visualizing the object being printed Watching the print via the integrated webcam feed and creating timelapse movies of the prints Remote controlling the printer functions Customizing the available controls Getting notifications and triggering actions based on certain events, like a print being done Access control and user management so that you can make your printer accessible over the internet (also great for shared printers e.g. in hackerspaces) All this in a responsive web interface using modern web technologies that ensure an experience just like on the desktop. Demo time! What's To Come? Slicing STL files to GCODE (using Cura SteamEngine, big kudos to +Ross Hendrickson) An interface optimized for mobile devices Plugin system for adding more specialized functionality to the core application Google Glass integration (big kudos to +Adam Bryam) ... and much more Patches welcome! :) Want to try it? With OctoPi there's a dedicated distribution for the Raspberry Pi, created by +Guy Sheffer: github.com/guysoft/OctoPi Or you can always install from source: octoprint.org/download Questions? Website: octoprint.org Github (Source, Bugtracker, Wiki): github.com/foosel/OctoPrint Backup What you can do with events... Automatically upload timelapses to Youtube events: systemCommandTrigger: - event: MovieDone command: 'youtube-upload --email="<yourUser>" --password="<yourPassword>" --title="Timelapse: %(filename)s" --description="Timelapse of %(filename)s, printed and recorded via OctoPrint" --category="Tech" --keywords=OctoPrint "%(data)s"' (Using youtube-upload) Push notifications for Android and iOS - event: PrintDone command: curl -s -F "token=<yourApiToken>" -F "user=<yourUserToken>" -F "message=Completed %(filename)s" -F "title=OctoPrint" https://api.pushover.net/1/messages.json (Using Pushover) Send a notification to Pebble - event: PrintDone command: curl -s -F "userId=<yourUserId>" -F "userToken=<yourUserToken>" -F "title=OctoPrint" -F "body=Print of %(filename)s completed" -F "type=notification" https://ofkorth.net/pebble/send (Using Pebble Connect with httpebble) Under the hood Written in Python (2.7) and loads of Javascript Communication to the backend via AJAX and Sock.js REST API is a work in progress