How to: connect Fabman bridge with Stratasys 3D Printer


we are using two Stratasys FDM 3D Printers (one BST 768 and one Elite) in our lab and we wanted to use Fabman to check who is using our printers. Here I will try to describe how we connected everything up.

USE THIS GUIDE AT YOUR OWN RISK. We don’t take any responsibility for any damage on your 3D printer or Bridge.

We use the bridge to act as the Switch of the Printer. This way, when we shutdown the printer it has time to cool down before shutting off. The Swtich is conneted using 4 Wires. As you can see in this image, we used a 4 wire cable to connect the printer to the Bridge.

This way we can very easy unplug the bridge and use the switch again. Inside the bridge we connected the gray and black wire to relais 1 and the yellow and brown wire to relais 2.

The bridge needs to be configured to mirror the main relais on the auxiliary relais. Because we want to shutdown the printer when it is not needed we need to detect if it is busy oder idle.

For this we use a raspberry pi 3 which is connected to the network and polls the printer Status. It will pull one pin high if the printer is Printing and low otherwise. We also have a small pcb to connect the bridge to the raspberry pi. Because I can not upload any script or eagle files here, we created a github repository (see: where you can download the scripts.

The ruby Scripts errors.rb, driver_client.rb and multi_client_tcp_server.rb are libraries in order to connect to the printer. The script status_daemon_bst768.rb takes an IP address and returns the status (or off if the connection failed).

In order to use the ruby scripts you need to install ruby and (through ruby gem) state_machine and net-ping.

sudo apt-get install ruby
sudo gem install state_machine
sudo gem install net-ping

The shell script is running in an infinite loop to check the printer status (using the ruby scripts) and setting a GPIO pin according to the printer status using wiringPI ( The printer IP address, GPIO pin and timeout can be set inside the shell script.

In order to start the daemon automatically I added it to the /etc/rc.local file.

Best regards
Happylab Vienna

1 Like