DIY DLP 3D Printer


My first successful DLP 3D print

My next phase of 3D printing is DLP. I have built several FDM printers. The higher resolution of DLP can’t be matched by any FDM printer. Additionally, I use high resolution printing professionally, so I thought it would be beneficial to learn all about DLP and SLA by building a machine myself. Much like building my FDM printers from scratch, I encountered many problems and moments of less than full confidence that I would succeed. Since I have made one mostly successful print, I want to write about my experience and also to encourage and help others who want to give this a try.

A DLP 3D printer is similar to an SLA printer in that it uses light to cure a photosensitive resin. Unlike SLA which uses a galvo controlled laser source, a DLP printer prints entire layers in one shot. I can not comment yet on the relative merits of these systems, but I imagine that since high-end professional machines use lasers that the precision of SLA is probably superior. From a DIY point of view, running a projector seems much easier than setting up a galvo.

I approached this project the same way I approached FDM. I thought of FDM as being a CNC mill with an extruder instead of a cutting tool. It came down to creating a four axis CNC machine. That in turn requires controlling three linear stages driven by stepper motors and the drive gear of the extruder. In the case of DLP, one needs only to control the Z stage that lifts and lowers a build platform in to a resin tank, a second motor that tilts the tank to peel away successive layers before the Z stage moves, and a servo that closes a shutter between layers. There are a few complications, but this is mostly all that is required to run the system.

I built my printer using 8020 components (10 x 12 inch, 8 x 24 inch, and 4 x 72 inch plus corner brackets, M6 bolts, and T-nuts). I made a free standing unit with a projector pointing upwards. I chose to not use a mirror, but instead directly illuminate the bottom side of a resin vat. I am bottom-up printing, similar to the Formlabs machines. In fact, I am using knock-off Formlabs vats. One advantage of bottom-up printing is that the model height is not limited to the height of the vat, which in turn would need to be completely filled with resin.


8020 hardware construction


Free-standing DLP printer

The amber window is 2422 acrylic purchased on eBay. The rest of the box is just wooden panels that I purchased from Home Depot. I slide a black foam backed paper sheet under the vat when I am not printing so that no room light leaks in. I also put a cover on top of the vat between prints. The resin produces a lot of vapor that can be smelled throughout the room. If you can smell it, that means you are breathing it in. A covered vat does not make a noticeable smell.

I am using an Acer H6510BD projector. It has resolution of 1920 x 1080 pixels, and produces 3000 lumens with a 10,000:1 contrast ratio. I selected this projector because I read that it produces enough UV light without hardware modification. Some projectors require removal of a UV filter from the lamp.

My laptop has HDMI output. I configured the projector as the second monitor. This is compatible with the Creation Workshop software. I set my screen saver to 9999 minutes. I learned that lesson the hard way! The screen saver will turn off your projector output in the middle of a print if you do not set it properly. I also made my Windows background solid black so that I do not dump so much light in the the room during a print. I plan to baffle the printer below the vat, but I have not done that yet. The projector produces stray light out of its vent port, and I need to make sure that is also not exposing the resin.

I was already familiar with using an Arduino to control stepper motors from my FDM 3D printer building experience. I am using a Mega with a RAMPS shield and two Pololu stepper drivers. The Z axis controls my build platform, which is a piece of 6061 aluminum that was sanded flat with coarse paper. I attached the build platform to the printer using a ball joint so that I could adjust the tilt to match the vat.

It is important to have an end stop in the system so that the Z axis can home to a precise location. I readjust the position of the build platform after zeroing the Z axis to assure that it is in contact with the vat, and so that it is completely flat on the vat surface. Make sure that the build platform is lifted up with extra distance BEFORE zeroing the z stage, or the platform will crash in to the bottom of the vat. A broken vat with resin poured on the projector would make a very bad day.


Build platform attached with ball joint for alignment with vat base

The X axis controls the tilt of the resin vat. I added a short arm with a bearing on the end that spins and presses down one side of the vat. The other side is hinged. A spring pulls the vat back to a flat position at the end of the cycle.



Stepper motor with planetary gear operates vat tilt mechanism

I control a servo to close a shutter over the projector between layers. This is because “black” or blank for a projector still involves a lot of light. So that I don’t expose resin in unexpected places, the shutter reduces background exposure to a minimum. I laser cut the shutter using foam backed black paper and attached it to a servo using hot glue. The Marlin firmware is set up to control multiple servos.


Servo controlled shutter

Here are the configurations and settings I used in Creation Workshop

Here is what the 3D model looks like with supports added. Creation Workshop adds these automatically. I was told that tilting the model is important so that no single layer has too much surface area. That makes it difficult for the model to peel away from the build platform.


I added a few degrees of tilt on the X and Y axes, lifted 5 mm, and used automatic supports.

Configure Machine

Machine Configuration: Make sure I can communicate with the Arduino. The program does some strange things when I try to change the COM port. Just keep trying until it reads something sensible like COM3. The build size is also set here. A calibration grid can be projected that allows you to directly measure your build area with a micrometer. You also determine here what controls are displayed on the Machine Controls screen.

Configure Slicing Profile

Slicing Profile: Here I enter my slice thickness (100 microns), exposure time (5 seconds), Bottom layer exposure time (15 seconds), number of bottom layers (3), lift distance (3 mm), and Z axis speeds.

Configure Slicing Profile Lift

The lift sequence moves the X axis, tilting the resin vat, and closes the shutter with the M280 command.

Configure Slicing Profile Pre-Slice

The Pre-Slice sequence moves the X axis, flattening the resin vat and opening the shutter with the M280 command.

Configure Slicing Profile Start

The Start sequence makes sure the shutter is closed and that the X axis thinks it is at X = 10 so that it does not hit soft limits.

Machine Control

Machine Control: Here I can manually move the stages, zero the Z axis, position the X axis before a print, and manually enter G code if necessary.

Slice View Layer 1

Here is what the first slice looks like. This will be the first projection, and will hopefully stick resin to the build plate.

Here is a video showing the progression of projected images that is used to 3D print the object.

The print preparation sequence is as follows.

1: Loosen the built platform bolt and raise the build platform to assure that it does not crash in to the bottom of the vat

2: Zero the Z axis

3: Loosen the ball joint and build platform bolt, rest the build platform on the base of the vat.

4: Tighten the ball joint and bolt

5: Raise the Z stage by 0.3 mm (I may try other values)

6: Tilt the vat to maximum extent with the X stage

7: Make sure the shutter is in the closed position

The print sequence is as follows:

1: The vat flattens by an X axis motion, spinning the bar that holds a bearing to allow the vat to lift until it hits the spring stop

2: The shutter opens

3: The layer is projected for the length of time specified in Creation Workshop

4: The shutter closes

5: The vat tilts down

6: The Z stage lifts a few millimeters and comes back with the layer height added in (100 microns in my first case)

7: A few seconds of delay occurs

Steps 1-3 are shown in this video:

Steps 3 – 5 are shown in this video:

And here is what it looks like mid-print from the top side.

Here is a gallery of images showing the printing process:

Here is all the software you need to run the printer. You will need to adjust Configuration.h to match the steps per mm of your X and Z stages. You may need to adjust the servo settings based on which one you use.

I’m using Arduino 1.0.6

I am using Marlin firmware

Here is my Configuration.h file

I am running Creation Workshop version

I printed the 3DBenchy STL model

Make sure to use safety gear! You especially do not want to get any resin in your eyes. If you touch resin and inadvertently touch your face, you will discover that you have a problem when you wank out in to sunlight and the resin hardens! Purchase an organic vapor mask and goggles that seal to your face. Always wear gloves and don’t hesitate to use a lot of them. If your hands are contaminated, peel the gloves off and put on a new pair. They are inexpensive and are meant to be readily disposable.

Also, try to UV cure waste resin before disposing of it. At the very least, put it in a transparent container and leave it in sunlight.

IMG_0813Use safety gear!

I am using Alphasense DLP resin.

Alphasense Resin

This is specially formulated for DLP printing since it responds to a wide range of light wavelengths. For my first successful print, I did not add the pigment to the vat. I found out from the company that the pigment helps to prevent light from curing resin where it is not wanted. I did notice that on the print there were places behind printed structures that had some hardened resin. The pigment will hopefully reduce that effect.

Here is a gallery of pictures of my first successful print.

I am trying to re-coat used vats using Sylgard 184, which makes a hardened (but flexible) silicone coating. I am using some Formlabs vats that were discarded due to failing silicone coatings. I have learned how to remove the coating.

IMG_0843Removing damaged silicone coating from Formlabs vat

IMG_0846Sylgard 184 coatings applied and curing

Note that Sylgard 184 needs 48 hours to cure at 25 Celsius. It’s winter right now, and I’m lucky if my house is above 16C. The coating was still tacky after 48 hours. It occurred to me that putting the vats inside one of my heated chamber FDM 3D printers would work well. Here is a picture of the chamber warming up with the vats inside.


I’ll leave them in here at 60C for several hours. I hope to be DLP 3D printing again this afternoon.


Just look at the detail on this! Look at the tiny hand rails!

Please ask questions and make comments through the blog interface. I will answer your questions and update the blog when I clarify important points.




6 responses to “DIY DLP 3D Printer

    • The server with those files was shut down unfortunately, but configuration.h will always be customized since your steps per mm will be different from mine. I can find the file and give it you, but you can’t use it for your own machine without modification.

      • Thank you and no need to give me the files, i already installed marlin firmware and did the necessary modifications.

  1. I would please you to update the links. Maybe with a dropbox link or somehow. I’m interested in getting your software too, because originaly Marlin’s software contains extruder and bed settings I won’t need. the feed rate can be easly changed, while I’m unable to set other parameters right to use it with DLP printing method. Thanks in advance

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s