One of the places where I collaborate is at FabLab Castelo Branco. Not as an employee but helping when needed. The latest help was preparing a mUVe 3D DLP 1.1 printer.

A DLP printer is a 3D printer that, instead of melting filaments and layering them, uses a proprietary resin that is cured over a given wavelength. This wavelength can be generated through several means, being the most common by laser or through a DLP projector as is the case of this mUVe.

mUVe 3D DLP - Configuration and working


This printer has been purchased completely disassembled, requiring the on-site assembly. Instructions for assembly are on the manufacturer’s page ( and can be downloaded here. Before mounting the electronic part, it is necessary to load the mUVe firmware for the Arduino to function correctly. This firmware can be downloaded here.

To carry out this loading, you need a computer with Arduino IDE installed (it can be downloaded free here).

After downloading the firmware, we decompress it and it is necessary to change an option in your configuration.

Open the file “Marlin.ino” in the Arduino IDE and in the “Configuration.h” file, we uncomment the line removing “//” from the start:

#define DEFAULT_AXIS_STEPS_PER_UNIT   {36.36,36.36,640,640}
// default settings for for mUVe 1-1.1

Next we commented the line placing “//” at the beginning:

#define DEFAULT_AXIS_STEPS_PER_UNIT   {36.36,36.36,400,400}
//default settings for for mUVe 1.5 or if you have the leadscrew upgrade

These two lines indicate which printer version we are using. By default, version 1.5 is selected. In our case, the version is 1.1.

The difference between the versions is the type of threaded shaft. If we loaded the firmware with the version 1.5 chosen, the distances traveled in the Z axis did not coincide with the real ones. In this case, when you indicated that the printer lifted the Z-axis by 100mm, it only ran 60mm.

Next we load the firmware for the Arduino. Before connecting the Arduino we have to install the specific drivers for this one. They can be downloaded here.

We connect the Arduino to the computer and chose the following options:

  • In the “tools” menu, in the “board” option we choose “Arduino / Genuine Mega or Mega 2560”.
  • In the port option we choose the port where the Arduino is connected.

Next we load the firmware for the Arduino by pressing the button with the arrow. The Arduino software will check for errors in the code and compile and then load the firmware for the Arduino.

mUVe 3D DLP - Configuration and working
Upload button

Software configuration

There are two options for using mUVe:

  • Through the software “Creation Workshop”. This software requires a computer or laptop with a second video output to connect to the projector and it is necessary to acquire a license. You can test it for 30 days by downloading it from the manufacturer’s website (
  • Through NanoDLP. This is a distribution for Raspberry Pi 2 or 3. You need a Raspberry Pi 2 or 3, a microsd card with at least 2 gb, an HDMI-> VGA adapter and a transformer for the Raspberry Pi. NanoDLP has the advantage of being free, and only need to buy Raspberry Pi and its accessory. It can be downloaded here (

Due to the limited budget, I chose to use NanoDLP.

The installation process of this is extremely simple. The manufacturer has all the installation steps on the site. You can follow these steps here ( If you are not comfortable with the command line, I advise you to use “Simple Installation”.

Next we need to configure the NanoDLP. For this mUVe provided a tutorial step by step. You can download the tutorial here.

Keep an eye on all the steps, as they just fail one to not work properly (I speak from experience :)).

Tray preparation

The mUVe had a sheet of silicone to place on the bottom of the glass tray, so the cured resin layers did not attach to it. After several attempts, I couldn’t use them, because it always passes resin between the sheet and the glass and heals there, instead of at the top of the sheet.

mUVe 3D DLP - Configuration and working
mUVe 3D DLP Vat with silicon sheet

Fortunately it also had a liquid silicone called QSIL216. This comes in two bottles, one being the silicone and the other the catalyst to cure it. This silicone is poured into the tray and when cured, creates a film that prevents resin from reaching the glass. As I was told in a workshop on the 2016 edition of Lisbon Maker Faire (Polymer Conversion from Silicone Molds) given by Ricardo Pereira, “The only thing that sticks to silicone is silicone.”

mUVe 3D DLP - Configuration and working
QSil 2016 Preparation


mUVe 3D DLP - Configuration and working
Tray with QSil 2016

The preparation process consists of mixing the components and allowing them to cure. mUVe also has a tutorial on how to apply on the board that you can check here.

NanoDLP Configuration

To configure nanoDLP for mUVE 1.0 DLP we need to change two sections, the “Hardware Setup” inside the “Setup” section and add a print profile to the “Printer profiles” section. All others may be left with the source options.

Hardware Setup Section

In this section we will configure the connection of the nanoDLP to the Arduino that controls the mUVe, GCode for mUVe startup, print start, print summary and end of print, projector resolution and resin platform and engine characteristics. The GCode are commands for movement of the engines that Arduino understands. For a more detailed query, you can consult the Reprap page where all Gcode (

Next are the options for communication with the Arduino, the Gcode required and the resolution of the projector:

mUVe 3D DLP - Configuration and working
Hardware configuration – part 1
mUVe 3D DLP - Configuration and working
Hardware configuration – part 2

Finally we have the characteristics of the resin platform and the motors:

mUVe 3D DLP - Configuration and working
Hardware configuration – part 3
mUVe 3D DLP - Configuration and working
Hardware configuration – part 4

There are more options to set if there is a shutter to cover the projector lens between each exposure, if the projector is being controlled by the nanoDLP through the serial port (if any), and if there is a control lcd, camera to capture the impression and control buttons.

Profile Section

The addition of a new profile is the section that will control the printing itself. This is where we set the exposure time of the first and the remaining layers, how many initial layers there are, what is the print resolution and Gcode to run before and after each layer is printed. These are the most important options in this section. There are others but they are not so relevant.

The options within the category “Burn-in layers” refer to the first layers. The number of layers is set in the “Number of Layers” option. Options within the “Normal Layers” category refer to the remaining layers. In these two categories, the most critical options are:

X / Y resolution: resolution that will be used in printing. There is a formula for calculating this resolution. This calculation is done when the projector is calibrated and focused (next section);

Cure Time: is the exposure time of each layer in the light of the projector. These values vary from projector to projector and depending on the type of resin used. In this case a Viesonic 7820 HD Projector is used with MakerJuice G + resin. To set the right values must be by trial-error.

mUVe 3D DLP - Configuration and working
Printing profile – part 1
mUVe 3D DLP - Configuration and working
Printing profile – part 2
mUVe 3D DLP - Configuration and working
Printing profile – part 3

Projector calibration

To calibrate the projector, place a white sheet on the bottom of the tray and in the “Projector Calibration” section, select the “Projector Boundaries” option. This option will project the limits of the projector image. These limits must be within the area of the board and should occupy the largest possible area. The more area occupied by the image the larger the objects can be printed. If the projection exceeds the limits of the tray, the image should be resized, via the adjustment ring of the projector, if present, or through the distance from the projector to the tray.

Next we chose the option “Projector Calibration Image”. This option will project a grid. This grid should be completely focused on the sheet of paper. If isn’t the impression will have problems and be incorrect. After the image is focus, we check the resolution that will be used. For this we measure one side of the image and then use the following formula:

Distance measured in mm / Projector resolution on this axis = final resolution

Note that the final resolution is given in mm and the nanoDLP sets in microns. To carry out the conversion we multiply the final value by 1000.

In my case, the larger side was 125mm and the resolution on that side was 1024.

125/1024 = 0.122

Multiplying by 1000 we have 122 microns.


After everything is ready we can start printing. We can use an .STL or .SVG file.

We put the resin in the tray (in this case I’m using MakerJuice G + Red). Then load the file into NanoDLP and started the printing process. If all goes well at the end of time the object they should be printed. Attention that this is a time consuming process. A 2.5cm Marvin took 3 hours to print.

[slideshow_deploy id=’597′]

If you want to deepen the knowledge of the nanoDLP / mUVe sets there is a configuration and user manual on the muve3d page. You can check it here

You can also use the mUVe discussion group on Google groups to ask questions

mUVe 3D DLP - Configuration and working
Eiffel Tower printed on mUVe
mUVe 3D DLP - Configuration and working
mUVe printing
mUVe 3D DLP - Configuration and working
Marvin printed on mUVe (right) an on another filament printer (left)
mUVe 3D DLP - Configuration and working
Printing piece

Comments are closed.