We will be Ulticasting with a water soluble PVA and a two component Silicon Mix. The two silicon components will be mixed in a static mixing tube. It is pushed into the static mixing tube by two syringes, each powered by a steppermotor. These steppermotors are connected in series on the extruder 2 port of the Ultimaker mainboard. This allows us to use standard gcode to activate the casting sequence automatically.

Ulticast principle

The basic setup is depicted in the picture above. The two 60 ml syringes holding resin A and B are connected to a static mixing nozzle positioned in the second extruder slot on the Ultimaker. An extra heat sensor must be connected for the secondary extruder to work, even though it is not needed. In the picture below you can see the test set up of the steppenmotors without the syringes connected.


We are currently using Wantai 42BYGHW811 steppermotors. These demand an higher amperage than the Ultimaker Mainboard delivers. For fear of frying the main board we have connected them in series to the ultimaker mainboard on the extruder 2 port.


This image is no longer representative


Both resins are mixed in the static mixing nozzle placed in the slot for the second extruder nozzle as in the picture above. To limit the necessary amount of pressure we are developing a mounting piece for the resin pumps so that they can be positioned next to the printer with a limited amount of tube needed to transfer the resin. The current full setup is visible in the picture below.



To prepare the Ultimaker for UltiCasting the following changes must be made in the configuration.h file in Marlin. First of all you must set the line “#define EXTRUDERS 1” to “#define EXTRUDERS 2”. To allow for cold extrusion you should also set “#define EXTRUDE_MINTEMP 190” to “#define EXTRUDE_MINTEMP 0” This second step allows dangerous extrusion to take place and is not necessary, as you can also edit the gcode to allow for cold extrusion to take place. For safety reasons we decided to experiment without setting the minimal extruder temperature to 0.

With the new script this problem is solved and can be ignored!
We used Repetier Host to calibrate the secondary extruder and quickly encountered a fatal heater error. It turns out that the gcode sometimes demands more than once to have the temperature set of the secondary extruder. These lines must be removed from the gcode: “M104 S(temp) T1 ; set temperature”, “M109 S(temp) T1 ; Waiting for temperature to be reached” and “M104 S(temp) T1 ; Set temperature” to bypass the heater error. Using the command M302 allows cold extrusion.


The script
There are already a huge variety of G-code generators (slicers) available, which all have their strengths and weaknesses. However, since the UltiCast add on is still a very recent development, we haven’t been able to find anything that suited our need. Therefore we decided to write our own script to take care of the g-code preparation.

The script was developed with assistance from our friend, Robin Sveningson.

What does it do?
It allows you to slice an STL file and generate a g-code for the outer perimeters (the mold) with your preferred Slic3r configurations. You can then define at which heights you want to cast, and it will calculate the needed volumes and add a “fill template” to the g-code.

Skærmbillede 2016-10-18 kl. 09.47.25

The g-code can now be loaded into Repetier Host, which allows us to inspect and edit the code through the 3D visualization tool. The locations for the dispensation of the liquid is not automated (yet). This could maybe be done by plotting the section at the desired height, but since we want to te able to print complex molds, a proper automatization of this process will require integration of models calculating how to liquid will flow.

Therefore we prefer to type in these simple coordinates our self as it can be seen below.

Skærmbillede 2016-10-18 kl. 09.55.39

To get the right amount of silicons to be deposited we have calculated the amount of revelations by the stepper motors for a deposit of 1ml, and then manually tested the amount of E movement in the gcode. In our setup 1 ml silicons desposited is equal to an E displacement of 34.4.

The final setup
To bypass the high amount of friction generated by the high viscosity silicons, we have redesigned the set up drastically. We now use a wider diameter tube (4 mm inner diameter)  and a both shorter and wider mixing nozzle. These upgrades have effectively decreased the amount of friction and made it more compact. The amount of pressure needed to push the silicons is now sufficiently lower and we are now able to avoid meltdowns.


The second problem we ran into was the silicon curing inside the casting nozzle. Even with a wider diameter tubing and nozzle we still experienced cloths of silicon forming inside the system. We discovered that the main reason for the silicons curing to fast, was that the casting nozzle was located right next to the heating element of the first extruder. This is why we have moved the casting nozzle to the location the right fan usually is.

The silicons still cure quite fast and we still experience some trouble with curing silicons inside the nozzle. The only way to work around those last problems is to use a different kind of silicons, one that has a lower viscosity, or using an agent that slows the curing of silicons down. These agents are available with the silicons.

The only problem we had left was the PVA not sticking to the print bed. We have tried window cleaners, vinegar and alcohol. In the end non of these cleaning supplies seemed to have any effect, though the vinegar looked somewhat promising. In the end we have resorted to a Pritt stick to put down a layer of glue on the print bed. This appeared to be very effective and can be recommended when printing with PVA.

A time lapse of the actual UltiCasting

This page will be continuously updated as we make progress.


The Ninjaflex project is proceeding mainly by trial and error. You can review the used settings for every print in the Results page. Currently we are encountering two major problems that require our attention:

  • Actuator tearing due to bad valve fitting
  • Leaks due to spooling issues

We will be focusing on how to tackle these problems and will post our strategies here.

This page will be continuously updated as we make progress.