Build a Laser 3D Printer – Stereolithography at Home
Introduction: Build a Laser 3D Printer – Stereolithography at Home
Here is how to make a Stereolithography 3D Printer. It is still a bit of a work in progress but so far it is working pretty well. This is mainly an experiment which started as aDelta Robot Stereolithography Printerbut ended as a more traditional Cartesian Stereolithography Printer.
Ill be honest, were throwing science at the walls here to see what sticks. No idea what itll do. – Cave Johnson
Stereolithography(SL or SLA from Stereolithography Apparatus) is an additive manufacturing process using a vat of liquid UV-curable photopolymer resin and a UV laser to build parts one layer at a time. On each layer, the laser beam traces a cross-section pattern of the part onto the surface of the liquid resin. Exposure to the UV laser light cures, solidifies the pattern traced on the resin and adheres it to the layer below.
I have wanted a 3D Printer for a while now and there are some very reasonably priced kits available like theMakerbotUltimakerand theRepRapproject. I could have just bought a kit and started printing things but at the time I had not seen great resolution or print quality from those. I started looking around at the other 3D printing technologies and found SLA made some amazing quality prints, so I decided to try making my own. Since I started this a while back those projects have come a long way and they can make somebeautiful printsnow. There are also people working on a UV resin andDLP projector 3D printerwhich is showing promise.
I decided to enter this in the Epilog Challenge Contest because I could really use a laser cutter 🙂 I also have some ideas how to redesign this project, for creation on a laser cutter. I wouldnt mind making kits for people if I had one.
Something to keep in mind is the current cost of commercially available UV/Visible resins. 1 Liter is about $200 – $250 so compared to ABS or PLA for the plastic extrusion printers it is about 4 – 5 times more as far as I can tell. There are other types of resin that are cheaper but I do not know how well they will work.
Since I wasnt really sure if this was going to be a viable method of creating 3D objects, this was a fairly cheap and quickly designed project. I have a small Taig CNC Mill for cutting metal so the custom parts are made of scrap aluminum I had laying around. You can probably use wood and maybe even hand cut the parts if you are careful.
This project isOpen Source Hardware.
This is a list of the parts I used.General Parts3 – 16 x 171/2 x 3/4 Plywood for the back and sides of the case2 – 16 x 16 x 3/4 Plywood for the top and bottom of the case24 – 6 x 3 wood screws and washers4 – Rubber Stoppers 1 7/8 x 1 3/44 – 1/4-20 x 2 1/2 Bolts8 – 1/4-20 Nuts and washers1 – 4 x 4 x 1/4 Black Acetal sheet (Delrin)1 – 1 Liter BeakerLinear Rail and BlocksfromAutomation Overstock4 – AG Linear Rail 15mm x 200mm2 – 15mm Bearing Block, 2 Bolt Flange2 – 15mm Bearing Block, 4 Bolt FlangeElectronics PartsfromSparkfunand others6 – microswitches with roller3 – ROB-09238 Stepper Motors3 – EasyDriver Stepper Drivers (Pololu drivers should work too)3 – Polarized Connectors 4-Pin housing3 – Polarized Connectors 4-Pin Header2 – 6 pin female headers2 – DC Barrel Jack Adapters – Female1 – Sanguino (Arduino Mega would work too with code modifications)1 – 5V FTDI USB Cable1 – Omron G5V-1 Relay1 – LD33V 3.3V Voltage Regulator2 – 9V 500ma or higher Power Supplies (could use one but they are cheap)1 – 12V – 24V 2000ma or higher Power Supply (for Stepper Motors)1 – TIP120 Transistor1 – 1K Resistor1 – Protection Diode such as 1N41482 – 2 pin screw terminalsVarious Male and female .1 headers, wire and protoboard big enough to fit everythingLeadscrewfromMcMaster-Carr1 – 1018 Carbon Steel Precision Acme Threaded Rod, 1/4-16 Size, 3 LengthLeadnutsfromDumpsterCNC3 – Acme 1/4-16 (1 Start) Leadnuts Square flange 4 hole3 – Acme 1/4-16 (1 Start) Couplers 5mm BoreLaser partsfromAixiz1 – Aixiz blue laser glass lens1 – Aixiz 405nm violet laser 20mW1 – Iris Diaphragm, Zero Aperture, 21mm Outer Diameter fromEdmund OpticsThe UV/Visible light cure resinfromEllsworth Adhesives1 – liter Dymax 3099 Ultra Light-Weld Adhesiveor1 – liter Loctite 3105 Light Cure AdhesiveTools NeededDrill and various bitsDrill PressJigSaw4-40 tapAccess to a CNC MillGorilla glue or similarLong clampsHacksawFilesSafetyLaser Safety Goggles such asthese. They must protect against 405nm light to be effective.Well ventilated area, dont inhale the vapors from the resin or those produced when curing.
A couple of notes before you begin.
The bearing blocks come with a piece of plastic where the rail goes, this holds the bearings in place. Do not take it out. When putting the bearing block on the rail just push the plastic piece out with the rail. If you have to take the block off the rail push the rail out with the piece of plastic lining it up the way it came.
Some of the pictures have bearings for support on the end of the Acme rods, I found that they were not needed due to the short length of the rod.
If the assembly order doesnt work right or you have questions about anything let me know and I will modify the instructable to include the changes.
Please use laser safety goggles for 405nm lasers. This laser is strong enough to cause permanent eye damage.
Cut all the parts on the mill. The part drawings are attached as dxf files and the sketchup file is there also.
Drill holes in the stepper mount flanges and the edge of the Acme nut block. See image notes above.
Insert the Acme nut into the mounting block and mark the holes. Drill them out and tap them with a 4-40 tap or drill them larger and use machine screws long enough to go through and a nut to hold them.
See the drawing above for how to cut out the top part of the case.
XY – Main Beam Acme Rod Mount 12.7mm.dxf
Mark, drill and tap with a 6-32 tap the bottom of the stepper mount. Attach the stepper mount to the bottom plate with 6-32 machine screws.Attach the stepper to the stepper mount. My stepper used M3 screws.Mount the linear rail to the bottom plate using 4-40 screws and nuts.Drill holes in the laser mount flanges and mount to a 2 hole bearing block. (I know it shows a 4 hole block in the pictures you should use a 2 hole block.)
First put the rails into the two bearing blocks making sure to push the plastic bearing retainer out with the rails. Then screw the plate to the two bearing blocks. Check to make sure the rails are parallel by measuring the distance apart at both ends of the rails. Then check that they are square to the plate. If they are not parallel then loosen the screws and adjust until they are and then tighten.Once the assembly is adjusted set it on the top piece of the case and then mount the stepper. Screw the Acme rod into the nut and the coupler then attach to the stepper.Once everything is lined up mark and drill the holes for the rails to attach to the top piece of the case. Attach with machine screws, nuts and washers on the outside of the board.
Drill the flange holes in the Z arm mount. Drill and tap 4-40 holes in the end of the arm mount by the slot. See the picture below.The arm should fit into the slot and stick out a little past the end. Cut a short piece of 1/8 thick 2 x 1 aluminum and drill holes to match the ones in the end of the arm mount. Then place the arm into the slot and screw the aluminum on to clamp the arm in place. See the pictures above if you need clarification.In the bottom piece of the case use a jigsaw to cut out the hole for the Z axis stepper.To mount the stepper to the case bottom you can see the picture above but that was actually kind of hard to line up right. You could find a single piece of aluminum that is wide enough to cut a hole that matches the raised circle area on the stepper. Once it is cut you can mark and drill the holes for the stepper and then holes to mount to the case.To mount the circle platform onto the arm just drill and tap with 4-40 tap the bottom of the arm then drill a hole in the platform and mount with a screw.
Clamp the box together as shown and make sure everything is as square as you can make it. Then drill holes following the pictures above and screw together with wood screws and washers.You can use store bought leveling feet or just make some with a stopper, bolt, 2 washers and 2 nuts. Follow the pictures above. Just drill into the stopper far enough to fit the head of the bolt then drill holes in the bottom of the case. Use a bullseye bubble level to level the case by placing it in the center of the bottom then turn the bottom nut on each foot to get the case level.Cut three 9 (about 228mm) lengths of ACME rod. File the ends so that the threads are formed well enough to thread into the ACME nuts. You may have to use a small triangle file to form the threads back to a usable shape.Once the case is assembled you can attach the Z axis linear rail to the back of the case. First assemble the whole Z Axis including the linear rail, the ACME rod and the ACME coupler. slide the coupler onto the stepper shaft. The rail should be flush with the back of the case, if not then you may need to adjust the position of the Z stepper.Position the rail about where it is in the pictures above and mark the 4 sides. Take the Z assembly back out. Measure the rail from the end to the center of the first hole then the space between the other holes and mark lines across the outline of the rail on the back of the case. Find the center of your marks on the back of the case and draw a line down. Where the lines cross drill holes to mount the Z axis rail and then mount it.Drill a hole in the top big enough for the 4 pin connectors on the steppers to go though.
I may design a proper circuit board for all this but since I was designing as I went this was the most flexible setup for me.Hopefully the drawings and pictures make sense, let me know if clarification is needed. This was my first use ofFritzingso its not as pretty as I could probably make. The Fritzing file is attached below.Start by soldering the polarized 4 pin connectors into the Easydriver boards on top. Then solder the male header pins into the other holes on the Easydrivers on the bottom*.*One thing I should have done is put the header pins marked MS1 and MS2 on the top so it was easy to jumper them to ground or solder up some headers on the protoboard for jumpers. I ended up wanting to change the microstepping from the default of 8th step microstepping. I have added these jumpers to the drawings now.Once you have the male headers soldered, cut the female ones to match then put them on the male pins and place them in the protoboard spaced out with enough room to work.Solder the screw terminal to one end then wire up it up to each of the headers for the Pwr In on the Easydrivers. Mark + and – on the screw terminal.I used a 10 pin header and ribbon cable to pass the 6 step and direction pins and ground to the Sanguino. you could just put a regular header row to pass the signals straight to the Sanguino. Dont forget to connect the ground from the different boards together.The wire colors for the coil pairs in my steppers are yellow+blue and green+red. Verify your stepper coil pairs by followingthese instructions. Solder the female polarized headers to the stepper wires using the pairs you verified for your steppers.The drawings show headers for the microstepping selection. I am using half steps for the X and Y axis and it is working pretty well. To use half stepping put a jumper on the ms2 pin to ground.
There is most likely a better way to do this but I am not an Electrical Engineer, the parts I used were on hand. This setup has worked fine for me for hours of printing so far.The drawings below are a little different than what I have wired but should work. You could also put this all on one board, this was the biggest board I had on hand.The Laser driver board takes 9V from a wall wart power supply to drive the relay and the LD33V 3.3V Voltage Regulator that powers the laser. The TIP120 transistor switches the relay which switches the ground of the laser to turn it on or off.
The limit switches keep the controller from accidentally moving too far in one direction. They can also be used to home the machine and tell it where to start from.Solder wire to the NC and common pins on each switch.Put a little dab of gorilla glue on the switch then place it so the bearing block with hit the switch before going too far. A 1/2 in from the end of the rail is fine. Tape them in place, making sure they make good contact to the wood. The X axis ones were glued to the aluminum plate and it worked fine. If you have switches with holes for mounting you can drill and mount them that way. I couldnt find screws small enough for the mounting holes on the ones I had.Run the wires up and out the hole for wires in the top of the case. I tacked them in place with wire staples.Solder all of the common side switch wires into a 6 pin female header. Then solder the NC side wires to another 6 pin female header.
Mount the boards to the top of the case with screws or nonconductive double sided foam tape.*Do not plug any power in before you connect the steppers. Connecting or disconnecting the steppers while power in on to the stepper drivers will fry the driver board.Connect the the steppers to the Easydrivers.Connect the laser to the 3.3V header for it on the laser board.Connect the ground for the limit switches and then the signal to digital pins on the Sanguino. I used 17-22.Connect the Step and Dir pins to the Sanguino. I used 2-7.Connect the laser pin to the Sanguino. I used pin 23.Make sure ground from the laser board and the stepper board are both connected to ground on the Sanguino.Connect all the power supplies. 9V for the laser board, 9V for the Sanguino and 12V – 24V for the Stepper board. I connect all of these to a power strip to control them all at once. You could wire a header on the laser board and then connect it to the Vin pin on the Sanguino to power it from there if you want.Connect the the 5V USB FTDI cable to the Sanguino. It is marked with the wire colors. If using an Arduino Mega just use a regular USB cable.
Download and install theArduino IDEand install it. If using a Sanguino seethis pagefor the rest of the setup.Download and installReplicatorgand install it.Download the file UVLPrinter.zip below and extract it to your Arduino Sketchbook folder or just open UVLPrinter.pde wherever you extract it from. It contains a modified version of theSprinter firmware.Open the pins.h tab and change any pins that you may have connected differently than my setup.The step and dir pins should be easy to find, the MIN_PIN and MAX_PIN for each axis are the top and bottom limit switches. Anything with a -1 is not used. Everything else should be easy to figure out.define X_STEP_PIN 6define X_DIR_PIN 7define X_MIN_PIN 19define X_MAX_PIN 20If you are using anything other than half stepping you will need to go into the configuration.h tab and change the following line.float axis_steps_per_unit = 251.971678, 252.4475, 1007.87402,700; //Half StepThe information needed to figure this out is the 16 Turns per inch on the Acme rod, the 200 steps per turn of the stepper and the microstepping. If using 1/8th stepping then take the 200 steps of the stepper times 8 to get 1600 steps.The calculation for figuring out the steps per mm for 8th stepping is:1 inch is 25.4mm so 25.4 / 16 TPI = 1.5875 mm per turn1.5875 mm / 1600 steps = .0009921875 mm per step1 mm / .0009921875 mm per step = 1007.87402 steps per mmSo for 8th stepping you would put 1007.87402 for each axis like this:float axis_steps_per_unit = 1007.87402, 1007.87402, 1007.87402,700; // 1/8th StepThe following lines are for configuring the max speed the steppers will try to move at. I start to loose steps past 400 and the Z axis doesnt need to go faster than 200. Test out your setup and change if needed.float max_feedrate = 400, 400, 200, 500000;float homing_feedrate = 400,400,200;Once you have made any changes needed you can verify and upload the code to the Sanguino.To setup Replicatorg copy the file uvlprinter.xml into the machines folder in the replicatorg folder.Start Replicatorg and click on the Machine menu then Driver and choose UV Laser Printer. Set the serial port to the one you are using. On the GCode menu and Choose GCode Generator choose Skeinforge (40).Go to File then Examples and pick any of them. then press the Generate Gcode button. Press the duplicate button and Name it UV3D or whatever you want. Select that profile and click the Locate button. It will open a folder with the settings for this profile. Click cancel on the GCode Generator window. Copy everything from the UV3D .1mm.zip file into this folder replacing what is there.You should be configured with the basic settings for running the printer.
Place the laser in the slot for it and tack in place with dabs of hot glue on each side.Put on Laser Safety goggles now.To turn on and off the laser, open Replicatorg and connect to the printer. Click the control panel and then toggle the checkbox for Valve.Move the Z axis down to about the level where you will fill the beaker. I usually fill it to about 500ml unless I am printing something tall. Turn the lens in the laser until the dot is a small as it can go, there is a point where it will get small then big again, try to get it as small as possible.Slide the iris into the slot for it and line it up with the laser. Center the iris by turning the laser on and moving the iris around. Close the iris slowly and watch the dot get dimmer until it almost disappears then open it up just a little bit so the dot is small and not too bright.Once you have it lined up carefully tack it in place with hot glue. There is probably a better way to do this with set screws or something else but I havent spent the time to redesign it yet.You will have to adjust the iris and laser focus if you change the build height. I have not come up with an easy calibration system yet. I will update this if I do. Right now I adjust the iris and print something and see how well the layer thickness and line width worked.
Using the 1 Liter beaker that I have the print area is about an 85mm circle by about 100mm tall. You can adjust the build area size in the uvlprinter.xml file if needed.To use Replicatorg there is already an excellent How To atMakerbots wiki.To set the Z height on this machine pour the resin into the beaker up to the height that you set the laser at. Use the control panel in replicatorg to move the Z platform down into the resin to coat the platform then back up to just above the surface of the resin. Set all the axises to 0 then close the control panel and print.The Z axis lowers into the resin then raises and waits a few seconds after each layer is printed. The commercial printers use a wiper to wipe a precise amount of resin across the part but that would have made the design much more complicated. This process isnt perfect but so far seems to work alright.I have only done a little bit of work with coloring the resin so far. What I have tested so far is using Castin Craft pigments and dyes and they seem to work.
So, there it is. It works, but should you build one? Well that depends on what you want to get out of building/buying a 3D printer. If you just want to print 3D things for cheap then no, I wouldnt build one. Get a Makerbot or an Ultimaker or build a RepRap. If you want to tinker and possibly get some amazing prints and dont mind that they cost a bit more to print than the others then go for it. I would love to have some other people testing and thinking up new ways to tweak this.As for cost of building the machine, I think I spent about $600 – $800 for everything. Less than the extruder printers but the material cost is about 4-5 times more so its not really the economy option.There are also other ways to print with UV cured resins, like using a DLP projector to show images for long enough to cure a layer. There is one person that has made one that seems to work well but it looks like it is closed source and going to be expensive when he starts selling it. There is also a Yahoo group calleddiy_3d_printing_and_fabricationwith people sharing their DLP based builds and resin tests.You should have used a laser galvanometer (galvo)! Sounds great, if you find one accurate enough for under a few hundred dollars let me know!Just for fun, the picture above shows most of the bad prints Ive made so far.I probably missed something so let me know if you have questions and I will get to them as soon as I can. Thanks for reading.
I try to build with Arduino Mega, Can you tell me what need to be modified in filmware. thankyou
You said that galvos are expensives and you are right. I just would like to know if you have some idea about how much faster they cold be.
I dont read the complete tutorial but I saw the video and I can imagine that your printer is as fast as a Prusa or any other ABS extruder printer. Do Iam right?
Actually galvos are not THAT expensive. An XY table using steppers and linear slides also cost money and galvos are not THAT much more expensive. I have a set which cost around $100 and wrote my own hardware driver ($5 in parts) and software for it. It is however a lot faster and more accurate
Cut three 9 (about 228mm) lengths of ACME rod. File the ends so that
the threads are formed well enough to thread into the ACME nuts. You may
have to use a small triangle file to form the threads back to a usable
We had a retired Tool and Die maker for our High School Metals shop teacher – funny guy, and some of the lessons have stuck for more than four decades.
While using a small flat file to dress the cut end of the threaded rod is always a good idea, dressing the threads is simpler: simply run a nut down the rod until it is clear below the level of the cut. As you turn the nut off the new end, it should roll any slightly damaged threads back into alignment.
(If you are really worried, use an appropriate sized die instead.)
Whether it may be something like this? This project printer that collect money it will cost only $ 100. Pretty impressive
how much does this project cost in total?
Hey I have the printr bot simple would that work with a few mods and if so what mods would I need???
This would be hard, but definitely possible. Good luck!
Someone was ispired by your project:
Can not laser engraving to become this type of printer? I watched that engraving is for 80-90 dollars.
I am working on a 3D printer using the Galvo principal
I picked up a laser light show box from
They had them on special for AUD$80.00
The good thing is the mirrors are mounted on steppers and the blue laser has a focus adjustment.
I plan on the driving the steppers with an
And solid state relay (to drive the laser)
I found a linear guide and ball screw at work (Lucky me)
And I needed a stepper for the Z axis
I have most of the main parts now, all I need is time to assemble and test
What prevents the beam from traveling under the surface to cure unintended dross? Is there a focal point? Does the resin have some absorption factor that prevents scatter?
hi im very new to this and was wondering if someone could tell me how to program the basic movements of a 3d printer and how you program the stepper motors and everything is it just g code ?
hi im very new to this and was wondering if someone could tell me how to program the basic movements of a 3d printer and how you program the stepper motors and everything is it just g code ?
Game changer in lowering the barrier to entry. What youre seeing
in the video isnt much more than a proof of concept, theres obviously
As for strength of parts, I dont see any reason to think theyd be
weaker than low-end FDM printed parts which are notorious for splitting
must to download pdf file to make a 3d printer sla?
hi can i use this printer for making jewelry models?
I had the same thought exactly about other extruder based 3D printers. So nice to see you have done so much good work with this =)
And I dont know too much about this, but do you know of any way to improve accuracy?
Ok great I got my firmware to work. Ij ust started over. I have one question. I have my Skeinforge profile set up and the machine set up in ReplicatorG. When I hit run I am getting errors saying that the g_Code is telling each axis to run faste rthan it is allowed to run…where would I tweak that? Thanks
you have to double check if the acceleration is enabled. This error message is for makerbots I believe…as long as your motors are enabled to accelerate and able to pull the tourque you should be ok.
Hey, great project! I got one up and running based on your software. I still have one issue with the M113 code. This in reprap is for the power management…I was wondering if you used this command to reduce the power on your laser or of you eliminated it from the code with the replace files. If you did eliminate it, how is that accomplished? Did you use a replace and truncate command?
Nice work. I am interesting in laser module. Please tell me what is laser module name?
Hi RobHopeless, I have read with attention your projects and it is very interesting. I should know if with the laser system the final resolution of the object is the same of a DLP system I ask it because I am interested to built a 3D printer top/down but I dont know betwen the two system is the better. Regards Claudio.
Mostly what I have done so far is adjust the laser and iris then print a sample and measure it and either adjust the laser or the settings to fit.
Thanks, Ill have to look into that too.
great piece of work, is the Iris a must or will it work without.
I am planning to create a 3doodler type handheld device that uses resin instead of filament, and I was wondering if this type of resin can cure fast enough to support itself if it has a laser focused on the stream coming out of the nozzle?
any way to let the laser pulse and shoot dots like a co2 laser engraver does? now it follows the lines made by the software which I think is not as good for very fine work. let the laser pulse and overlap the dots resulting in even finer work.
thank you for your amazing 3d printer
but i cant upload UVL Printer code to my arduino mega
when i click verify Button strand with : HIGH was not declared in this scope errore
Great Instructable! You could use FDM to print the complex parts in PLA (although youd errr … have to have an FDM printer to do that)
Just for info, there is now a nice DLP projector instructable by TristramBudel:
Im seriously thinking that merging the two ideas might prove interesting!
Great Instructable! Just for info, there is now a nice DLP projector instructable by TristramBudel:
Im seriously thinking that merging the two ideas might prove interesting!
you did an amazing job. making stuff in and of itself is easy and fun. the resolution is amazing compared to filament 3d printers. how does the accuracy from file dimensions to finished product compare? i would like to use a 3d printer of the resin variety for quality resolution, but i also want it to make parts with reasonable tolerances as well.
WOW. Great Work. I like your project
Hello, very much like your project. Give me a Arduino mega using firmware do? E-mail: Thank you very much for your help!
To my understanding the laser ground switched by the relay needs to be switched to the 9V ground. That is – when ever the TIP 120 transistor gives a signal, the relay coil is activated and the laser ground needs to be connected to the 9V ground.
Now, in the circuit picture, the 9V ground is connected to the lower right leg of the relay (when looking from above), which according to the relay spec is indeed the leg that is switched when the coil is activated. In the Fritzing diagram, however, the 9V ground is connected to the lower left leg of the relay. Is that a mistake?
Great work. I was contemplating attempting this or maybe just buying a formslab. Stereo-lithography seems to produce better quality part than the abs filament type 3d printer.
wow there is a great projects for beginners!
There are some really good things for people to learn here. (from your instructions, especially)
Hi. Sorry if you have already covered this, I havent been able to read every word of your instructable….yet, but, what is the curing time for the adhesive you use? I know of some fiberglass resins that uv cure, really inexpensive, figured I could try them out as a viable option. Im pretty sure Im going to be making this soon. Thank you and awesome instructable btw!
Well I have firmware and my machine speed set correctly…I think. However, Replicator G is locking up when I do something siimple like open the manual axis controls and try to jog and axis. Also If I send a job to the machine Replicator G sits there and tells me that it is estimating a build time. Does this take a long time normally? Thanks
I just converted my old Darwin RepRap over to run just like your machine. Im having problems getting the Firmware to compile for an Arduino Mega. It is getting hung up. Any suggestions? My coding skills are extremely lacking. I changed the mother board to the Mega in the cod.