Acquiring knowledge and reflecting

At the start of the project, no one really knew how a 3D printer actually worked. Some made a print before, others didn’t even knew the name Ultimaker. With two architecture students, an Applied Earth Scientist, a Mechanical Engineer and an Industrial Engineer, we didn’t have to best Electro technical background for this project. However, we rolled up our sleeves and got to work.

By trial and error we began to educate ourselves in the hardware and software problems that we were going to face during our project. With the group split in two, a hardware side and a software one, we started our research. While the one group was building the framework and attaching motors, the other group was getting acquainted with G-code and designing a slicing method.

At the end of project we got an almost working prototype, knowledge about the processes that accompany this project and prototype, and a clear vision about how to improve and optimise them.

Building the prototype

Initially the hardware construction went pretty straight forward, but we ran into a lot of trouble with the two supplied Ultimakers. The one from last year was already pretty mangled and the other one was pretty much in bits in boxes. With no actual knowledge of Ultimakers beforehand it took us a decent amount of time getting them both in a working state as just a standard standalone 3D Printer. This took too much time considering a four week project. Starting out with two working Ultimakers in the first place would have helped speeding things up.

When working on the software implementation of the communication between the two printers we stranded on the M42 software bug. Because we didn’t have a lot of knowledge of Ultimakers still, we didn’t really know where to begin problem solving. At first we thought we were doing something wrong so we kept at it, but after a couple of days we got the feeling it had to be something else. At this point we contacted our Project leader that we had no clue what was going wrong. Once he got involved we found out pretty soon (due to contact with Ultimaker) that this was due to a software but in post 2014 Cura versions.  Our mistake was to try and fix our problems ourselves instead of contacting our project leader right away. That could’ve saved us quite some time. We could have saved more time by knowing what question to ask our supervisor, but since we were inexperienced, we didn’t know the right questions.

Contribution to the scientific community

As for the contribution to the scientific community , we were glad to be working with the Ultimaker community. This community is all about open source work and helping with each other’s problems. We contributed to this community by stumbling upon a bug in the Cura software. After having difficulty sending a pin signal from one Arduino to another, and having contact with people from the Ultimaker company, the problem was diagnosed as a software bug. It didn’t occur in older versions of Cura, but did in the newest, which we were using.

The wonderful helpfulness from the community came to exhibit then, because when this problem was posted on the Ultimaker forum, someone anonymous wrote an update for Cura that cured the problem. Long live open source software!

Besides this, we of course maintained our weblog and a post on the Ultimaker forum, creating awareness of our project. By letting people see what we did and how, everyone is able to continue this concept. It was nice to see that lots of people were interested in what we were doing, showing again how new this concept of multiple printers working together is.

Result in objects/prototypes

Unfortunately we were not able to get a full print out of our printers. This was due of lack of time to tweak the machine to perfection. Now, the machines do print, but because of calibration issues the print won’t stick well on the print bed. Also, we still were experiencing overheating problems on the stepperdrivers and sometimes the extruder head. All things that can be solved with a little more time. Because of this time problem, we didn’t get to do a lot of testing. This testing is important for optimising the print process.


Because of our multidisciplinary group containing it was convenient to split up the group.
We decided to go for a hardware/software divide, which worked quiet well. It was effective to work this way and little double work was done.

Even though not a lot of knowledge about the subjects was present prior to the project, everyone worked very hard to acquire these skills and knowledge. The work environment  was very stimulating and all were involved in all the decisions and progress.  We are all proud of what we have manged to accomplish in these short weeks and will walk away as enlightened 3D print-prototypers.

Endresult and Science Fair

Tuesday the 27th, we had a stand at the Science Fair. This meant that our hard work had come to an end and it was time to show the world what we had accomplished!


After rewriting the plugins that were used in the night before, we finally got the printers to work. Some tests in the morning revealed that the stepperdrivers were getting to hot, we added some additional code and added heatsinks on top of the stepper drivers.

Then, it was time to print!

This however only succeeded partialy, because of the printer bed leveling. This failed because it relied on multiple factors that were not adjusted correctly. We could have fixed this, but because of the lack of time, we were not able to test this properly.

Fortunately, the print method did work. This Poster finalkleinmeans that the printers were cooperating correctly and moving in the right order. The sliced object was properly translated to G-code which was visible in the movements of the printers.

To conclude on the concept: it works!
To make actual prints however, the machine needs to be finetuned (mostly callibrating and error-checking). We are glad to see that the concept that we started six weeks ago is an almost working prototype and proves that this is a possible new method of 3D printing.


At the Science Fair, people were really interested to see what we did. Most people didn’t get the concept at first, because they thought a bigger printer would solve all the problems. This shows how revolutionary this concept is, because almost everyone in the 3D printing world is working on making things bigger, instead of faster.

A pleasent suprise was that one of the co-founders of Ultimaker showed up to take a look at our project. Thanks to him and the rest of the Ultimaker community we were able to get additional information we would never have gotten ourselves.

YouTube Preview Image


G-code and more G-code

Right now we are thinking of a way to slice the object into parts, genarate G-code for it and then putting the different G-codes together in the right order. We are probably going to have to write a plugin that sorts these different G-codes.

But to create more strenght to the object, we want to have a little overlaps between the different layers, to make a masonry like structure.


By turning the pattern each layer this should suffice, but makes creating the G-code more complicated.

Another way to do it, is to split the solid object into parts in the 3D-software (for us that would be Rhino), then load it into Cura and assign different solid part to different extruders.

Using the plugin that the Kamermaker 2013 group wrote for the Master and Slave printer dividers, we can make sure that the printers move at the right time. This plugin makes sure that both printers are ready with their part by sending a message, before moving the X- and Y-axis.

However, it is quite hard for us to come up with the best result, since we are all new to the G-code world. For now, we’re still researching what the different ways are, and how to program them.

Building the framework

With the design shown in the previous post, we got our hands dirty and built the framework:

Once the outer rigid framework was complete, we could start adding the rails representing the X and Y direction frame for the enlarged printing area. The Z direction frame is fastened on the outer rails of the of the rigid framework as shown in the picture above. The two long vertical metal sheets facing each other allow the printers to be maneuvered up and down which are attached to the outer rails.

We are working with a configuration of two Ultimaker printers fastened together and hung between the horizontal rails as shown in the picture below. Using strips of sheet metal we constructed a way these two printers could be hung in the framework and be able to slide over these horizontal X-axis rails with wheels attached to the outer bends of the sheet metal, see to the picture below:

X railsmetal sheeting



As the two Ultimaker printer nozzles are limited by the spacing between the box of the ultimakers itself, we needed to construct a way the ‘overlap’ in between could be printed. This was done by letting the dual printer configuration slide over the X-axis rails, which gives them the freedom to move more than their overlap and thus print a larger object than they are seperately limited to. The dual Ulitmaker configuration will be controlled by a stepper motor which is attached to the rails, see the image below:

X direction framework

For the Y-axis frame, a bed is placed at the bottom of the rigid framework. The 3D object will be printed on this base plate and can move in the Y-direction over rails placed in the framework, see the picture below. With a 3 points constuction, the 15mm multiplex plate can be calibrated by a spring suppressing it. A mirror plate will be placed on top of this bed plate fastened to the multiplex wood with double sided tape.

Y direction rails

The base plate rolls on wheels and is controlled by one stepper motor attached to the base of the rigid frame work. See the picture below:

Y direction stepper motor

Coming back to the Z-axis frame, two stepper motors are used. One motor on each vertical rail. As these stepper motors need to lift the entire dual Ultimaker configuration and the framework they are fastened in, counter weights were needed on both sides to assist the stepper motors. The motors were not strong enough to lift this weight by themselves.

Stepper motors Z direction

Below is a picture of the final framework. We are all very pleased with the final result!

near completion framework


Designing the framework

Before we can start to test our prints, we first need to build the framework for the two Ultimakers to move in. As seen in the picture below, we want the Ultimakers to have external axis for the X-, Y-, and Z-direction, to increase the total print capacity.
The inside X- and Y-axis will remain there, but the Z-axis is entirely replaced by the outside axis, since it is not necessary for the printers to be on different Z positions.


These ‘dubble’ axis will be created by extra steppermotors that are attached to rails.
The X-axis (blue arrows) and Z-axis (green arrows) will be moving the two Ultimakers, while the Y-axis (red arrows) will be moving the printer bed. We chose for this way because if the Ultimakers would also move along the Y-axis, they would create instabilities in the framework and even slight movement, that could result in print inaccuracies.

The framework itself will be made of aluminum profiles, which were used in the previous 3D XXL-project that worked fine.

Printing big, printing fast

As our desire for printing large object increases, our patience most certainly does not. Everything has to be done perfect, and it has to be done fast.
Ofcourse this causes problems. Nowadays the 3D printers we use can be tuned to go faster and even tuned to build larger.

Two years ago, during the same project (Kamermaker 2013 project) they combined two Ultimaker printers by creating a moving platform, therefor combining the print capacity.
Last year, during the Ultimakerxxl 2014 project they used the Z-Unlimited concept by Joris van Tubergen, and added a moveable X-axis. This resulted in a construction that was able to print way bigger than the regular Ultimaker sizes.

This year, we will be combining these technologies to print objects up to 700 x 350 x 1000 mm and much more important: fast!
We will be using two Ultimaker printers, turn them around, and put them on a moveable X-axis and moveable Z-axis. The Y-axis will be increased by moving the printing bed.
Theoretically, if this technology works, it will be able to combine even more Ultimaker printers (or other printers for that matter) to print large object even faster.
This technology could even be used for creating small objects faster, by combining tiny 3D printers.

But what are the problems?

Since the printerheads will never be able to overlap, it is necessary to move the printers or the printing bed, to fill the material in between to ‘original’ printing beds.
This then causes multiple problems:
-The printers will have to move to reach the ‘gap’, so extra moving X- and Y-axis.
-The software has to be able to know when to print what and when to move, since there are double X- and Y-axis.

To realise this, we will be converting the construction that the Ultimaker XXL 2014 project built to better suit our needs (an extra Ultimaker on the X-axis and a moving printing bed for the Y-axis. As for the software, we will have to write a plug-in for the G-code that slices up the model that is to be printed into parts. Each of these parts is corresponding with a position the Ultimakers are in when they are moved along the X- and Y-axis. This means to cover all points, it has to move 4 times. Each part has to be finished before moving on to the next part. This means that the Ultimakers have to wait for each other to finish the part before moving on.

If we manage to solve these problems, the next step to creating a fast, presice and large 3D printer is set.


Large Scale Ultra Detail 3D printing

Welcome to our weblog!

A little introduction:
We are five students following the TU Delft Minor Advanced Prototyping, researching the possibilities in augmented prototyping.
In our case, we will be exploring the possibilities in 3D printing ultra detailed objects on a large scale, by using multiple Ultimaker 3D printers.
Since large printers are not really new anymore in the 3D printing world, our focus will be on combining multiple printerheads, which will reduce the printing time rapidly.

We share the vision of our supervisor, Joris van Tubergen, that combining multiple printers to print one big object is the next step in creating fast, high quality prints.
During the next few weeks we will be posting our research results on this weblog.

Ruben den Uyl
Julian Ros
Mani Fares
Daan van der Valk
Thomas de Boer