Introduction: Ultra Low-Cost $30 3D Printer Prototype
Hi! I'm trying to build the cheapest 3D Printer Ever! My hope is that if I can bring the cost of 3D printing down, it will make it more accessible. So far I believe I have proved the concept, and am working towards my first issue-free 3D Print. I'm am trying to get through one more iteration of the design before I take the time to put together a detailed instruction plan, but I wanted to provide a brief overview in the meantime. This is for a small 3D printer that would allow someone to get introduced to the field and start prototyping small things. In its current state, it is only intended to be put together by experienced makers, and it will not currently serve as a fully functional 3D Printer.
I started this project to enter the Inspiration4 contest. You can learn more here: inspiration4.com It is an inspiring mission supporting the even more inspiring efforts of St. Jude. There's even a chance to join just by donating at the link above.
I set up my own website selling a Developer Kit for $30 of all the non-3D printed components and documenting my progress using Shift4Shop, which is sponsoring the contest. Any proceeds I make I will be donating to the St. Jude School Program. That site is accessible3D.com
You can also follow our progress and entry on Twitter: twitter.com/Accessible3D
I will provide a list of the components I have been using. If you would like to try and buy them all on your own, you can probably get everything a lot quicker, but it will be a good deal more expensive. I was only to get the projected costs down to where $30 was profitable in a scenario with a least a small batch order of all the parts.
Step 1: Supplies
1x ESP32 Microcontroller
1x 2.2' LCD Screen & SD Card Reader
20x UV LEDs
1x 28BYJ-48 Stepper Motor & Driver
1x MicroUSB Female Breadboard Adapter
30x M2 Bolts
3x Small Breadboards
1x Pair of Protective Gloves
1x UV Protected Sun Glasses
25x Plastic BBs
1x Fresnel Lens
1x FEP Film (100mm x 70mm)
1x Insulated Wire (10 ft)
1x Aluminum Sheet (100mm x 75mm x 1mm)
Step 2: 3D Printed Parts
You can get a copy of all of the 3D printed parts for the project here on our Thingiverse page: https://www.thingiverse.com/thing:4804041
Total Prints will be:
1x Base & Rail
1x LCD Screen Holder
1x Threaded Rod
1x Build Plate Z-Slide
1x Build Plate Base
1x Build Plate Screw
1x Z-Rail Top
1x Resin Vat Bottom
1x Resin Vat Top
1x Back Base Cover (optional)
With optimized model placement on the bed to minimize supports, I ended up using ~220 grams of filament (on the prints that didn’t fail) to print out all of the parts. This comes out to about $4.50 using inexpensive PLA, which is what I used. This will vary a little depending on whether you use a raft, what your infill is, how many failed prints you have, and so on.
Step 3: Z-Axis
You will see the full assembly above
The first thing you will want to do is make sure everything can slide freely. I optimized the tolerances in the design to fit the precision of my printer. You may need to do some sanding or filing if the fit is too tight. You will also need to mess with the threaded rod. My fit was a little too tight at first with the sliding piece, so I took some pliers and twisted it through over and over until the wear made the resistance small enough that the motor would not have any issues with it. At least this ensures it will be a snug fit.
The stepper motor should fit at the bottom of the rail. I was able to snap it into place and put the top on without any further securing, but if you want, you can add a drop of super glue to make sure it stays in place.
Step 4: Build Plate
Take the build plate base piece and super glue it to a piece of sheet aluminum larger than it. Trim the aluminum to size, this will serve as your build plate. To attach to the slide, use 4 m2 bolt screws and attach the top printed screw to hold it in. The 4 m2 bolts are used for bed leveling.
Step 5: Vat
Take the bottom resin vat piece and place a 100 mm by 70 mm piece of FEP film over it. Then press the top down until it snaps into place. You may need to put some serious pressure into it, but it should make a tight film. Then you can screw in around the sides. I used a small screwdriver to pre-poke holes in the film where the screws would go after I had snapped it together. I made a ton of holes for screws in the design, feel free to use them if you would like, but I found 4 in the corners works just fine.
The top piece will extend into the bottom piece, while the bottom piece has a portion cut out of it. You can also tell because the top has cutouts for the screw heads to make them flush.
Once it is screwed in, you can trim the FEP film.
You will want to fit the Fresnel Lens underneath the FEP in the vat. You will need to trim it to size and play with the distance a little to get as even a distribution of light as possible. Then use a few dabs of super glue to hold it in place
Step 6: UV LED Backlight
Using one small LED, set up all of the LEDs so that they are in parallel. I used 12, in a 4x3 array, however, you could probably get by with less, or add more for a shorter layer exposure. Just pay attention to the current draw. Right now the only power source is a standard USB. Some adapters out of the wall can go to 1 amp, but most on a computer can support 500 mA, so I am keeping it under that to eliminate the need for a power supply and support any USB port. Each LED has a 20 mA draw. The ESP32 draws a little under 60 mA when active, the TFT controller on the LCD screen will draw about 10 mA at 3.3V, and from what I can find online the motor draws about 110 mA at 5V with a small load (this one concerns me the most and is why I would suggest only plugging this into a wall adapter that can provide 1A since if it stalls this could go up, but the driver shouldn’t take more than 500 mA). Sticking to this goal and a 500 mA target, you should no use more than 16 UV LEDs. You should probably consider a power supply if you want to use high power consumption LEDs than the ones I have mentioned or add more than that.
Wiring all the LEDs up is pretty simple, here is a picture of what I did. It's just 12 LEDs in parallel. Due to the height of the base of the printer, you will need to trim the leads on the LEDs to make them shorter.
Step 7: LCD Screen
The 2.2 inch LCD screen very easily separates from the backlight. Just use a small knife as shown above to pry it off. You will then place it in the LCD Holder as follows. We will not use the Backlight, so you can cut that off if you want, but I left it so that you could use it as a normal LCD in a later project if you want to.
Because The ESP is 3.3 V logic, we can connect it directly to the LCD. If you want to use an Arduino nano or some other microcontroller that has 5V logic, you will need to use voltage dividers. Here’s a good link that explains how to get set up with the LCD and ESP 3D: https://www.youtube.com/watch?v=rq5yPJbX_uk
That link also covers code setup, you will need to define the pins you connect to the LCD within a header file in the SPI library dir.
Once that is all set up you can place the LCD in the printed holder parts and place it on top of the base above the UV backlight. The vat should snap on top of it.
Soon I will start using the SD Card reader on the screen and will need to start soldering some wires to the pins on the other side of the screen for the SD card data.
Step 8: Micro USB Power
You will need to solder the + and - pins to the micro USB female breakout board. Then these can be put onto their own row on the board. I already had a discussion on the current draw, but most computers will support 5V at 500mA via their USB port, so that was my target. However, most USB wall adapters should be fine with 5V at 1A, so I would encourage everyone to just use a wall adapter (make sure to check before you plug it in).
Step 9: ESP32
The ESP32 could not fit on a single small breadboard I was using, so I spaced it over two, this worked fine.
To power the ESP32, connect the GND to the ground power row, and V_in to the V_in power row.
We have already gone over how to plug this into the LCD in the video.
To connect to the stepper motor, plug the power and ground into row from the micro usb breakout. In1-4 will be plugged into the ESP32. I used pins 13, 14, 12, 27 respectively. You may need to mess with these defiintis a little in the arduino sketch. I remember needing to swap In2 & In3 numbers for some reason even though I was certain they were defined correctly.
For the LEDs, I connected these to the input power rows. This means they are always on when the device is plugged in. You could change this, but it was just the easiest thing to do, and I only ever plug it in to test prints.
Step 10: Code
I have only written a short script to build a square column for about 25 layers. This is just to test out the functionality of the printer. By changing the drawNextLayer function, you could print other shapes. Here is the GitHub link: https://github.com/Accessible3D/printer-sample
Once I am able to get reliable simplistic prints, I will start to work on more advanced software. Someone else has already reached out and forked the repo to write some code that prints a series of images from a slicer, I encourage you to check out the repo forks if you are interested. My hope is to used the ESP32 to run a simplistic web server like a barebones octoPrint. I will update the repo as I continue, feel free to fork it and work on your own changes if you are interested.
Step 11: Print Progress
I have attached an image of the test setup and the most recent attempt to print a square.
I clearly still have some work to do, but I believe it demonstrates that it is possible. This printer, with components that cost less than $30 to buy, and physical parts that can be 3D Printed with about $5 worth of filament, can successfully build multiple layers in a targeted fashion. Precision needs to be improved, and I am currently redesigning the linear drive to address layer issues, but I believe this shows a lot of promise.
I'll continue updating this page after my next iterations with a detailed set of instructions.
In the meantime, check out the website and our Twitter to learn more, and help me in the inspiration4 contest!
I just had someone share a link from a similar project and wanted to provide it here. It looks like they progressed a little further. I hope to keep bringing the price point down, and excited to see that there's more evidence that something at this pricepoint is possible! I encourage anyone interested in this project to check it out also, it's awesome!
Participated in the