Home

OctoPrint

Usually, to control your 3D printer and start prints, people use their computers or an SD card. However, they both have their limitations

The problem with 3D printing with a computer is that the computer has to stay connected to the printer. This means you can't really move the computer, and there are tons of situations in which you wouldn't want to be working next to a 3D printer. One of them is the slightly toxic smell of ABS plastic or Acetone. 

The problem with 3D printing from an SD card (you can plug an SD card into the printer, that has a file that the printer can print with) is that you have very little control over the printer. You can't view the temperature, the progress, you can't (properly) cancel prints or pause them. In fact, if your print does fail, the only way to stop the printer is by unplugging it. This is never advised, and usually means you have to power cycle the printer to get it to work again. 

Obviously, the majority of the people who own 3D printer don't use the above two options. But what do they use, then? The answer is a simple, $35 programmable board. Namely, the Raspberry Pi. There is a program that you can install on the Raspberry Pi called OctoPi (the project name is OctoPrint, but the version for Raspberry Pi is called OctoPi). All you need is a power cord for the Pi, an Ethernet or WiFi dongle, and another cord for connecting the Pi to the 3D printer. You can also get a camera module to view your current print (live!) and record timelapses.

What does it do? Well, it creates a whole online UI from which you can control your 3D printer. Normally, you can only access the UI when connected to the same network as the Pi, but you can set up a port forwarding system, allowing you to control and view your 3D printer from anywhere in the world, as long as you have internet connection. In some cases, for example, you would want to print a 70-hour object (things like helmets and exoskeleton pieces, mostly). You could have the 3D printer running while you go on a small trip to your grandparent's house, but if you used a computer and the print didn't go correctly, you could come home to a big mess. However, with OctoPi, you could view your prints (even on the road) and make sure everything is going correctly. The only thing that is missing that would make things really automated is a way to remove prints without actually being there.

There are many other things you can do with OctoPi, too. For one, you could upload your "slicing" (things like the speed and temperature of the printer) settings to OctoPi, and then it would turn your 3D model files into 3D printer files. This way, if you used a different computer, you wouldn't have to worry about copying all your settings over. OctoPi also has a gCode viewer, meaning you can view what the print will look like by viewing each layer individually. It also syncs with the printer progress, so you can see what it is supposed to be printing. Not only that, but it has a plugin system. There are currently about 20 different plugins you can get (things like model viewers), but the plugin API is very new so there could be many more coming. 

It also has a login system, so you don't have to worry about showing other people your 3D printer UI page. They can view the status of prints, view the print going live, even download timelapses, but they cannot control the printer or it's settings. This means that if you have a fairly large following, you can let other people see your 3D printer working! Also, with the plugin API, you could code a plugin that automatically shares timelapses to your social media. The timelapse feature on OctoPi is very nice, and timelapse settings are very configurable. Currently, I have my settings so that every time it goes up a layer it takes a picture. The effect is that the print seems to "grow" upwards. When you think about it, it used to just be a picture on a computer, and it has now grown into a real life object. Here is an example of a timelapse: