Hi everyone, I’m Tom and today i would like to show you PrintToPeer in a guide-review-show’n’tell
kinda way.
So, probably you know about OctoPrint and how it makes your 3D printer accesible through
your network and without the need for a dedicated computer to babysit the entire process.
And that’s pretty much what PrintToPeer does as well, but it is going a step further
and also does all the slicing for you in “the cloud”.
Now, of course, i am going to compare it a lot to OctoPrint because that’s the most
popular alternative to PrintToPeer right now, but i’m also going to compare it to BotQueue,
and that’s something that you might not have have of yet.
Basically, that was the first software that had that entire idea of untethering a 3D printer
from a computer, but while it’s geared more towards huge bot farms, like the one that
LulzBot runs, PrintToPeer still feels like it’s at least very heavily inspired by the
way BotQueue does things.
But more on that later.
Now, the first thing i want to show you about PrintToPeer is the setup process, because
that’s already something that stands out.
Of course, since this is based around the Raspberry Pi, you will need one of those,
and also the ususal set of accessories, like a power supply, USB cable, SD card and an
Ethernet cable or a WiFi stick.
For the entire process, PrintToPeer will take you you by the hand and tell you step by step
what you need to do.
Now, for using wired LAN, aka Ethernet, it’s extremely simple to set up.
Transfer the image to your SD card, plug everything in, click through the wizard on PrintToPeer’s
site, and your browser will then automatically detect and configure your Raspberry Pi with
the PrintToPeer client.
And while it’s not so obviously documented, you can also use WiFi.
For that, PrintToPeer will set up an access point on your Raspberry PI, which you can
then connect to with your computer and then tell the Raspberry Pi which wireless network
it should , in turn, use.
And that’s a really smart way of handling things.
Both OctoPrint and BotQueue are still a bit tedious to set up for exactly this reason
- at least for configuring WiFi, you still need to jump through a couple of hoops to
get things to work, because it is essentially a chicken-and-egg problem.
Now, like i said, PrintToPeer’s solution is really elegant when i works, but when it
does not, there really is not much you can do about it.
While i did get it to work on the first try through Ethernet, it took me about fifteen
tries for WiFi.
If you have an absolute default setup, well, then things are probably going to go smoothly.
But here’s some things that i should have checked beforehand: 1) Use a really good power
supply, perferably a phone or tablet charger and not a computer’s USB port, and preferably
also use a Raspberry Pi plus, since those have a slightly better power design.
2) Make sure you have Bonjour installed if you’re on Windows, and on the same token,
don’t use Google DNS in your computer’s network settings, because that’s going to
throw the discovery process way off, and 3) Connect your 3D printer to the Raspberry
Pi at this point, I’m not sure if that’s actually required, but the times where i got
it to connect, i always had some printer plugged in to the Raspberry Pi.
So yeah, when things work, they are magical, but when they don’t, there’s not much
you can do about it other than guessing.
Sure, you can add a bit of manual-ness to your setup process or use SSH to connect to
the Raspberry Pi even before it’s completely set up, but then what.
By the way, the username and password for SSH are - you guessed it - Pi and Raspberry,
which is the exact same on pretty much any Raspberry Pi setup.
They should really change those.
Moving on, once the Raspberry Pi has established a connection to PrintToPeer’s servers, you
get to name that client and set up a printer for it And this is where one of the core principles
of PrintToPeer shine through, and that’s reusable profiles.
Because i have set up my big Mendel90 before, i can simply pick that printer type again.
Or, of course, you can punch in your own settings, in my case, i simply copy-pasted them from
my slicer configuration.
Next up, we get to “initialize” the printer, and i was seriously scared of that step, because
it doesn’t tell you anywhere what exactly it’s going to initialize.
Maybe it’s going to home my printer right past the printbed and shove the nozzle into
the bed’s base.
Maybe it’s going to try a test print and make a huge mess.
I don’t know!
But really, all it does it connect to the printer.
Phew.
And staying with the theme of profiles, you can create even more of them when it comes
to print settings and filament types.
Which i think is an awesome way to go about it, so if you have two printers and a stash
of filament, you simple create a profile for each roll once / and you can then use them
for any printer.
As far as the slicing profiles go, again, i simply copy-pasted most of it from my known-good
slicer configuration and that worked pretty well.
But i noticed that there were a couple of settings missing, for example it always assumes
that you want a single skirt loop printed before your part, and that’s what most people
use, but it limits your usable print space, and in my case, i don’t really need it anyways
because i use some custom start gcode to prime the hotend anyways.
Also missing is the “brim” setting, which is an absolute deal breaker for me, as i mostly
print ABS and many parts simply can not be printed without a brim or they will peel off
the bed in the most unfortunate moment.
Another setting that’s not there is the top and bottom solid layers setting - you
can only set the number of perimeters for each layer.
Some other settings that Slic 3 r would have in the “print” settings, like speed and
such, can be configured in the printer settings instead, and it does make sense to have them
there.
Speaking of slicers, with the same settings, you can use either Slic 3 r or the CuraEngine,
falsely called “Cura” here, to slice your parts, but that is a per-printer setting,
so it’s not really trivial to switch between them.
Over at the filament profiles, there is one set of setting that’s really missing, and
that’s the option of setting minimum layer times and cooling settings, because there
really isn’t one solution that fits all sizes.
Especially ABS and PLA need to be treated differently, but PrintToPeer has absolutely
no option of, for example adjusting the fan speed or even turning it off for different
filament types.
And that might also be somewhat of a deal-breaker for you.
Now, the entire interface of PrintToPeer can be somewhat confusing at first, because there
are quite a few menus and sub-pages where you’ll find all the different things you
can do with PrintToPeer.
But once you figure it out, you kinda get a feeling for where you need to click to get
where you want to go.
The entire interface is also a so-called responsive design, which means that you get the same
design and functionality across all your devices, even tables, phones and smartwatches, which
is something that especially OctoPrint is currently still having quite some trouble
with since it doesn’t really offer a mobile interface.
In PrintToPeer, the entire interface is very much centered around getting print jobs done,
which is perfect if you have a printer that can simply work on one job after another without
flinching.
To start a print, you can simply upload an stl file, choose a printing profile and off
it goes.
Now this is dead simple, but it also lacks some the very basic functionality that a slicer
should have, particularly rotating and moving parts.
You get a nice fancy 3D preview, but that’s view-only, there’s nothing you can interact
with there.
So even though PrintToPeer advertise with being so simple to use, you will still find
yourself working on files with Netfabb, even if it’s only to orient them properly for
printing.
This dialog is also missing all functionality like printing multiple copies of the same
thing, creating build plates and so on.
As the print starts, you get a minimum amount of feedback, being the temperatures of the
hotend and bed as well as what the printer is doing at the moment.
There is no live time estimate or any way of influencing the print besides than cancelling
it.
Other hosts, including OctoPrint, allow you to at least send gcode commands for example
to nudge the print parameters in the right direction.
Once the print is finished, the printer will go into a “blocked” mode, where it just
does nothing until you confirm that the print bed is clear and the printer is ready for
the next print.
If you have started multiple print jobs, the printer will automatically download the next
one and get back to printing.
Now, if you want your printer to do something other than processing job after job, you can
put it into maintenance mode, where you get full manual control over the entire machine.
This is basically the same control panel as in any other host, but it looks a bit nicer.
There is also the aforementioned console, which you can use for more advance stuff or
manual control - for example, i turn my power supply on and off with M80 and M81 -, but
since that console only communicates one way, it is rather useless for many things since
you don’t see what the printer replies to your commands.
Maintenance mode is also where you can choose a different filament for your printer, but
that might be a bit counter-intuitive, as many new printers have an LCD screen where
you can very easily load and unload filament with the push of a button, / but you then
still need to put the printer into maintenance mode in PrintToPeer, select a different filament,
and exit maintenance mode again.
Now, i guess that covers what you can do with PrintToPeer, but that’s all pretty much
basic functionality.
What really stands out is the # way it does it.
While Octoprint very heavily relies on the fact that your printer and the device you’re
controlling it with are on the same network, PrintToPeer instead offloads everything into
the cloud or simply speaking, their web interface.
Everything you want your printer to do first passes through PrintToPeer’s servers - be
it print jobs or simple one-line commands.
And that means that, first of all, the entire network configuration thing gets a bit easier,
but it # also means that you can remotely control your printer and start jobs from anywhere
in the world where you have an Internet connection.
Setting up OctoPrint for the same level of comfort is pretty tedious, having to deal
with port forwarding, dynamic IPs, TLS encryption and so on.
PrintToPeer takes all of that out of your hands and does it for you.
Which is pretty nice, honestly.
But there is a price you pay in flexibility and functionality, especially with the built-in
slicers - and there’s currently no way around them.
You can’t even upload a gcode file that you sliced yourself.
Yet.
Now, PrintToPeer was initially funded through Indiegogo, hitting their stretch goal where
the entire server code base will be released under an open source license.
This has yet to happen, but the code is currently being prepared for release.
While OctoPrint now has Gina Häußge as a full-time developer sponsored by bq, Botqueue
being more of a collaborative side project, PrintToPeer actually is a real company that
kinda needs to survive on something.
In their case, that is going to be printer-specific and branded implementations of the PrintToPeer
service, and actually, that is an excellent fit for what they provide, with everything
already being as easy to use as it is right now.
For the foreseeable future, PrintToPeer will not have ads and stay free to use, which i
think is awesome, and while i personally will stick to OctoPrint for now because it is still
the mightier and more flexible platform, PrintToPeer really has quite some potential for being
the next big thing.
Maybe adding an “advanced” mode with as much functionality as possible would win me
over.
Also, some features were promised in the Crowdfunding campaign that aren’t quite there yet, like
webcam support with an automatic detection of failed prints (or, currently, webcam support
at all), additional user accounts for shared printers, which would be awesome, and support
for a wider range of printers including pre-made profiles for the most popular ones with guides
to doing some basics on them like adjusting the print bed or swapping filament..
Anyways, if you want to try out or simply learn more about PrintToPeer, there are links
to their site and to the finished Indiegogo campaign in this video’s description.
As always, thank you for watching.
Please like-share-subscribe if you enjoy what i’m doing, and i’ll see you next week.