3D Printers
Printer-specific pages
The Construct Protocol Project
The Construct Protocol is a new 3D printer network protocol which aims to make 3D printers accessible over local networks. At it's simplest you can view this as CUPS for 3D printers but it also allows for manual printer control and real time push-based monitoring of all the printer's vital signs (temperatures, print jobs, you name it - it has [or should have] an event).
The Construct Protocol is a project developed by Hacklabbers (Rob, ATrain, Geordie and Chris) and tested by Hacklabbers (Adam, Will, ATrain, Geordie, Rob, [ADD YOUR NAME HERE]). The basic idea was to use existing web technologies (HTML5 Web Sockets and HTTP Multipart Form Posts) to build something that would allow us to discover and control printers on any network easily whether it's online or just connected to your laptop's wifi hotspot at Makerfaire. The only non web-compatible (and completely optional) addition was the use of MDNS / DNS-SD (the same protocol used by OSX's AirPlay) to make the printers discoverable to users and devices on the network. It's my (Rob) hope that a UDP API will be added to HTML5 in the future since right now there is now way to discover a service on the local network.
Tegh
Tegh is a construct client that allows us to control and monitor the printers from a command line interface. When I (Rob) first started working on this project I wanted to build a GUI to control the printers but the feedback I received was that a number of Hacklabbers would only use the new protocol if it had a command line version. Since the CLI-lovers seemed the hardest crowd to please I made the first client exactly what they asked for, after all the protocol is the thing that matters. Tegh is the spiritual successor to Pronsole.
Construct GUI?
Some day there may be a GUI-based construct client, it's what I initially set out to build and so some of you may have seen it already. But it's a ways off and that's all I'm saying until it's ready ;)
Why use Tegh / Construct?
- It has a queue of upcoming print jobs (perfect for tuesday nights when everyone wants to use the printer)
- It has an improved heads up display of all the important printer stats (temp / target temp / percent complete)
- It can detect any 3D printer on the network (no need to change your workflow for new machines)
- Construct is a websocket-based protocol so we can connect other devices like ATrain's awesome printer status sign. Now you don't even need your laptop to check the status of the printers
- It's compatible with HTML5 so we can also monitor and control the printers through web sites
Using the 3d printers with Tegh and the Construct Protocol
The Ultimaker, Makerbot and Type A should all be configured to use Prontserve and Tegh. There is always the possibility that someone has disabled it (that happens a lot) but if prontserve is running here is what you need to do to use it.
Installation
See Tegh Installation Instructions. There are packages available for most common Hacklab OS's.
Usage
You can run the tegh command from your console (or open it from all programs / tegh in windows).
Tegh will automatically detect any printers that are running a print server at the lab. Select a printer from the list (or hit enter if only one shows up) and your in.
If you need further help type "help" into Tegh.
You can also get command-specific help by typing help and then the command you want to see more about, for example: "help add_job"
Quick Start Guide
set temp e:225 home move z:5 add_job /local/file/name print
Note: always set the temp and let it get up to temperature before you start your job. It just works better that way.
Also note that 225 is the temperature for the Ultimaker with normal PLA ONLY. Consult the guide for each specific printer and material to get it's temp.
In case of failure, the new command to cancel the current print and/or stop the printer ASAP is:
estop
After an estop the machine should automatically be reset and ready to receive new commands.
Troubleshooting
If you are experiencing trouble with tegh or prontserve, pronsole is still installed on the raspberry pis, and they can be used the old method, or you can connect the printers directly to your laptops for local connections. (Please return the printers to the state you found them if you do this though)
Problem: The printer (prontserve) is not getting discovered by Tegh
This is probably because the print server is not running. To run the print server do the following things:
- ssh into the printer (cupcake, ultimaker, etc.). The user / password is hacklab / hacklab
- `screen -R`
- ctrl + c
- `~/Printrun/prontserve.py`
Fallback to Pronsole on the Ultimaker
To run pronsole
- screen -r
- ctrl-C if anything is running
- cd ~/Printrun/
- python2 ./pronsole.py
- FTP your gcode files the old-fashioned way and run printjobs this way
To return to pronserv (for teg) and clean-up
- screen -r
- ctrl-C if anything is running
- cd ~/Printrun/
- python2 ./pronserv.py