Overview (in process v2)

What is OctoPrint?

OctoPrint is an application that is used to host 3D printers (or similar hardware) on a network to remotely control them via a web interface. Its features include:

  • Runs on Linux, Windows and Macintosh computers
  • Access control to limit who runs your 3D printer
  • Upload GCODE through your web browser
  • Upload solid model files and then slice them into GCODE files
  • Remotely view your printer through an embedded camera stream
  • Remotely start and stop prints, interact with the printer
  • Plugins for future expansion and user contributed feature additions

The most common hardware it gets installed on is the small single board computer Raspberry Pi. OctoPi is a Linux disk image that has OctoPrint included and configured for it.

The built in access control has two basic modes when enabled:

  1. Read only access where limited actions can be performed, only viewing what is happening and exploring the user interface.
  2. Logged in, which gives full control and use of OctoPrint.

OctoPrint supports the use of a web camera to visually monitor the ongoing print job or to create or view timelapse recordings of the job. It happens via the embedded MJPG Streamer which can be accessed outside OctoPrint via a web page.

The built-in plugin system allows OctoPrint to be expanded and customized to adapt to different hardware and workflows the user might want to implement. For example: when a print job has completed, it could send you a text message. There is currently over 100 plug-ins available.

1 Like

Don't take this the wrong way, but isn't that pretty much the exact information that is already available on the website?

Yes except it's a bit more concise and not so technical. I had my wife read it because she is good with grammar and she's a total computer neophyte so if she can understand it, just about anyone can. It's not in the docs. This should be the first item at the very top of the docs. Many first time users are not going to be exposed to the OctoPrint.org site, they are going to just access the app to begin with. They should perhaps be exposed to this the very first time they connect to OctoPrint. I'm really targeting the User here and not the server installer.

Please elaborate what about the current content directly on octoprint.org is too technical. Honest question. I'm happy to improve on wording, but I don't want to turn it into "simple english" either, it's a representative page after all as well - and we are also talking about control software for 3d printers here, so IMHO a certain technical level can (and actually should) be expected.

Erm... They can only get OctoPrint by going to octoprint.org. Most users are the same person who installed the whole application in the first place. A very small minority is not and those are usually members of hackerspaces or similar shared spaces where there's usually some kind of "you need a first introduction" rule anyhow.

What I really want to avoid is having to maintain the same kind of information at multiple locations. Had to do that in the past, ate a ton of time that could have been better used to fix bugs and add functionality.

I should probably have said "so detailed". What you have on the web site is perfect for there. I was trying to craft a very concise overview with out all the detail of the 7 somewhat lengthy paragraphs on the web site that could go at the beginning of the docs.

I didn't go through OctoPrint.org's home page. I went thru the OctoPi Download page and never saw the home page until much later.

So the above brief overview could have a link to OctoPrint.org for more details.

1 Like

It doesn't have to be on the same network does it? Granted the router has to be set up for that kind of access.

Usually it has to be on the same network since most people happen to live behind a NAT. Broader access is a) additional work outside of OctoPrint (or a cloud connection provided by a plugin) and b) also not recommended unless additional measures to tighten down security are taken. Basically: not "complete noob" friendly.

Looks good to me with the edits you made.

I think OctoPrint could be used for CNC routers and laser etching machines too.
The 3D printer I'm waiting for is the SnapMaker which has modules to do all 3.
I wonder if some of the language specific to 3D printing should be made more general to other kinds of devices?

It could, but that's not something that is officially supported in any way. Read: if it works, hooray, if it doesn't, too bad (& get hacking on a plugin :wink: ). So I'd rather not mention it and keep it restricted to 3d printers for now.

1 Like

I think it is rather the other way round, printing has had to add a bunch
of stuff for 3D printing that was never needed in G-code for other uses.
Most of them seem to be in the M100 to M199 range that have tended to be
reserved for machine-dependent macros too, so those M-codes are not really
available either.

GCODE as specified in the standard is actually a file format. The 3d printing community mutated it into a mixture of file format and communication protocol and added on a whole ton of stuff that doesn't even remotely resemble original GCODE anymore.

Which is why it really pains me to keep calling it GCODE, it has led to way too much confusion and outright problems in the past :wink:

Feedback anyone? Or is it good enough to move on?

Should this be a topic under development? Additional Docs?
While I’m thinking about it, does there need to be a section there on the User Interface Elements?

Gina, other sections needed?

OctoPrint supports the use of a web camera to visually monitor the ongoing print job or to create timelapse recordings.

Should be:

OctoPrint supports embedding an mjpeg image stream, provided by a third party program. In the case of the precompiled OctoPi images designed for use on a Raspberry Pi device, this is handled through mjpeg-streamer. Technically, OctoPrint does not control your webcam, it merely displays it.

Just so people are clear that OctoPrint has absolutely zero control over the webcam. It cannot flip or rotate the stream apart from what is displayed in the OctoPrint UI. Accessing the web cam externally via the stream's URL will result in whatever mjpeg streamer is outputting. Some people are confused by this and I see it get asked many times.

You might also want to detail what the difference is between OctoPrint and OctoPi, another thing that confuses a lot of new users.

OctoPrint is a 3d printer host program, by itself it provides no web cam server and serves only to control your printer.... etc etc. It is platform agnostic, and will run on low powered devices such as Raspberry Pi's, all the way up to high end PC / server equipment running Windows, OSX, and many flavours of Linux \ debian.

OctoPi is a pre-built SD card image specifically designed for use on Raspberry Pi devices and provides all the necessary software to get most users up and running including web cam support. This pre-build distribution is akin to the restore cd you might get with a pre-built computer or laptop, it contains:

  • An operating system (in this case Raspbian)
  • OctoPrint application
  • CuraEngine slider for onboard slicing
  • HAProxy for easy access on port 80
  • Mjpeg Streamer for web cam and Raspberry Pi camera module support, for displaying an image in the control page.

In either case, support for cameras, accessories such as wifi dongles, and 3d printers is handled by the underlying operating system. If your OS can't see your device, OctoPrint cannot help change that. Please ensure all device drivers are installed correctly for your OS.

Good point but it seems way too technical for an overview. This kind of information belongs down in the details.

Currently it is:

How about this:
The most common hardware it gets installed on is the small single board Raspberry Pi computer. OctoPi is a Linux disk image that has OctoPrint included and configured for it.

If this is merely an overview then the description of what OctoPrint is can be shortened to just this.

What is octoprint?

OctoPrint is a 3d printer host program that can be used to allow network manageability of a 3d printer. Key features include:

  • Upload gcode through your web browser
  • Remotely view your printer through an embedded camera stream
  • Remotely start and stop prints
  • Plugins for future expansion and user contributed feature additions

No need for anything more than that in a general overview of what it is.

Well that is certainly brief alright! I don't think it needs to be that brief but I may be wrong.
You would like to include some language that makes it appealing and touts some of the features without going into extensive detail.

Perhaps having the bullet point features up top with the additional description below?

I would also include the access control and what systems it can be installed on in the bullets.

I think that "server application" is less techie than "host program".
Same with "remote control" vs "network manageability".

You would like to include some language that makes it appealing and touts some of the features

Depends what you're trying to do. Are you trying to describe it to a new user who's already decided to use it or are you trying to "sell" a user on why they should be using it?

I think that "server application" is less techie than "host program".

To a non tech user, a server is someone who brings me my food and a host program sounds like I'm going to be accepting foreign exchange students into my house. Neither is very "non techie", however "host program" better describes what it does, even if it doesn't describe what it is. A 3d printer host program is the program that controls it so maybe just call it a "Network attached 3d printer control program".

Both.

How about:
OctoPrint is an application that is used to host 3D printers (or similar hardware) on a network to remotely control them via a web interface.

Both.

They're 2 different markets though. For potential users you need to tell them why they should be using it over something else, for existing users you need to tell them how to use it.

You wouldn't put something in the users handbook for a car about how powerful the engine is and how much grip it has since the customer already knows that, it's why they bought the car. The customer wants to know how to use the car to it's full potential, how to disable traction control, how to open the sun roof.

OctoPrint is an application that is used to host 3D printers (or similar hardware) on a network to remotely control them via a web interface.

Like you said about keeping it non-techie, I'd just say "control" rather than host, and leave out the similar hardware bit since CNC support is unofficial and maybe not even possible at all without plugins. I do prefer the "3d printer host program" because it puts it in the same search term category as repetier host or pronterface, but I don't know. Now that I read it back, 3d printer host program doesn't make much sense either unless you already know what a host program is.

"OctoPrint, the network attached control program for your 3d printer. Upload gcode files sliced on your PC, or upload compatible model files and slice directly with the integrated CuraEngine slicer. Monitor your prints via web cam, create fun and interesting time lapse videos to show case not only the design process, but also the prototyping phase of your next project. Start using OctoPrint today, it's 100% free and open source. Supported by a dedicated community, with a vast array of plugins to extend the already impressive set of standard features."

My two cents on this...

My current plan for this is a rough "put it somewhere on docs.octoprint.org, maybe directly on that introductory page".

So this should be something for people who already have OctoPrint, not some kind of commercial. We already have that with octoprint.org including screenies and flashy animations and whatnot, we don't need a second version of that. It would be a good intro for a quick start guide ("this is the UI, this does this, that does that...") included there as well.

The goal here should IMO be to create some kind of preface or one pager for end user documentation, not a marketing pamphlet.