Designing a new 3D Printer — Liquid Story
I know you’ve all heard about 3D Printing. Plenty of articles can be found on the Internet that can explain this. It involves transforming a special material (usually plastic) into a real object layer by layer. This means that the process is different than traditional injection molding. The advantage is that the technology has become accessible and everyone can have a 3D printer. I am focused only on consumer products, not on industrial printers.
I created this story to serve as a guide for those that want to start their 3d printing journey and need more structured information on what needs to be done to create a DIY (do it yourself) 3D printer.
The Liquid 3D printer is co-developed with Serban Chisca. I always recommend having a team of at least one person when creating any product, as it is easier to handle the whole process.
There are two main 3D printing technologies for consumer products. Fused Deposition Modeling, FDM, is the most common and it involves melting and extruding a thermoplastic filament to create a finite object. It is best for simple prototypes and proof-of-concept models because it has the lowest price of entry and materials. The downside is the lowest resolution and accuracy. This is the process used in creating the Liquid 3D printer. Another technology is Stereolithography, SLA. It involves a laser that cures a liquid resin. It is gaining more traction because of its higher resolution and accuracy. The downside is that the resin is toxic and needs to be handled carefully. It is best for functional prototyping, patterns, molds, and tooling.
These are the main steps necessary in the designing, building, calibration, and launch process:
- Start with the motivation and design the product;
- Create the CAD model of the printer;
- Acquire the necessary parts based on the design;
- Put the hands down and build it;
- Find ways to improve the first bad product;
- Finalize the minimum viable product;
- Release the 3D printer and gather feedback.
1. What is the motivation?
I first started my 3D printing journey in 2015 when my father came up with the idea of building a 3D printer. I read about the RepRap Mendel 3D printers and I was immediately up to building one. There were a couple of open-source models that I found, the Prusa Mendel and the Prusa i3. The structural rigidity was the deciding factor when choosing the model. The i3 looked a little unstable, taking into consideration that it has a lot of moving parts and the vibrations are not that good. The MendelMax had a different design, using a prism shape, that solved this issue. The initial model had threaded rods, but we have chosen the model with aluminum V-slot profiles. After acquiring the off-the-shelf parts and 3d printed parts, we assembled and built the printer. The experience was transforming and after that, I dug deep in the domain to create better printers and functional parts.
Fast forward a few years, I decided along with my friend to build a new design that solves the main issues that we had by using the printers in many cases. Liquid 3D Printer was created because of the need for a good quality printer that is reasonably priced. It has a new design with a rigid cube structure with a semi-enclosed chamber. CoreXY kinematics makes it fast and accurate. The printer uses open-source hardware and high-quality components. With the contribution of the community, it can be continuously improved.
The first step is to think of the design and the features of the 3D printer.
- Mechanical: we wanted a rigid design that can handle faster speeds without higher vibrations. Cartesian kinematics were not a great idea for this, so we used the CoreXY kinematics. The shape chosen was a cube with an ideal printing space (of 200 mm3) to be used in any house. A semi-enclosed chamber is necessary for keeping a stable temperature.
- Electronics: to solve the annoying noise from motors, we selected a control board (Arduino + RAMPS 1.4) with silent Trinamic motor drivers. Auto bed leveling is also needed to correct the uneven print surface.
- Components: extruder with Bowden support and an E3D v6 hotend was used to achieve faster speeds.
More technical specifications are available on the website.
2. How to create the CAD
When building the MendelMax 1.5 3D printer, I noticed that I had a lot of parts that were not fitting properly. The process of finishing the parts to work is time-consuming and not efficient. To solve this for LIQUID, we used the CAD tools to design the printer first, test the fitting of the components and then build it. This was great and it helped us to get a better idea of how it would look. Some flaws were easy to spot this way to create a prototype faster.
The initial design is not the final design, and it should be treated as is. We used a development method of quick prototyping. Rather than spending too much time on the design to perform a lot of stress tests, we solved only the major flaws and started building quickly. Below is a screenshot of the initial version of the printer. We used Solidworks and Autodesk Inventor.
Creating a 3D model of a part seems to be pretty easy, but designing a complex assembly with a lot of functional parts is harder. With the help of already created models of some components, the process can be done faster. For example, there are multiple library websites with 3d models: GrabCad, Thingiverse.
3. Acquiring parts
Being a complex machine, it has a lot of components that need to work together. For a DIY printer, the parts are usually off-the-shelf or other 3D printed parts.
The body is made out of aluminum. V-slot 2040 profiles can be found on part stores. The top, bottom, motor, and print-bed plates are custom-made and were made on a WaterJet cutter. The power supply outputs 24V DC, the motors are Nema 17 steppers and the printer controller can be found in hardware stores. The extruder and hotend are usually found in specialized 3D printer stores. Other parts are belts, steel rods, and bearing, a lot of bearings for each moving part to have a smooth motion for longer operation.
More details and the estimated cost are found on the BOM.
3D printed parts
Using the RepRap model, the printer has some plastic parts that are 3D printed. Off-the-shelf parts are not available for a new design and traditional manufacturing is only used for high quantity production, which is not feasible in this case. The parts were exported from the CAD model into STL format and then printed on my MendelMax 1.5 printer. After this, the parts were cleaned and prepared for building. The initial material used was PLA, for easy printing and testing, but I used PETG and Impact PLA on the final product for higher temperature and impact resistance to last more.
The 3D printing is not finished on this step, and is repeated a few times during the improvements phase. As a fun fact, I think I 3D printed all the parts about 3 to 4 times until I found the best ones that work flawlessly.
4. Building the 3D printer
Great, now we’re arriving at the part where we are building the printer. If the initial process of designing is not that rewarding, the building sure is. The first time doing it seems hard, but it is very fun. Make sure you know the basics of 3D printing well enough to know where each part goes and how it should work. Also, prepare the necessary tools and know-how to operate them properly, otherwise, you’ll struggle. Luckily, now there are a lot of tutorials available and communities with help when you need it. Take the necessary time and the results will be great.
Assembling the components
For me, the assembly process was a little difficult in the beginning. I used the 3D model to make sure I assembled them correctly. Below is an image of the assembly process. The hard parts were the moving elements: the Z axis to move correctly and the threaded rod to be aligned, the X, Y axis to be aligned and to move smoothly and the belts to be properly tightened. The alignment of the rods for the X, Y gantry was a little challenging because I had some problems with the parts bought. To have a lightweight system, I used carbon fiber bars and polymer bearings. This seems like a good idea, but in reality, I have not found bars that have the same diameter across the bar. There was a slight variation (from the ideal 8mm) that made the bearing not fit properly. I selected only the best ones a assembled them for the first test.
The final part is the cable management and inserting each one on the correct port. This takes into consideration the movement of the gantry and the bed. The wires should be long enough to not break on movement.
For the printer to work, the controller needs to have the right firmware. Initially, I used Marlin Firmware and configured it to match the specifications of the printer. The configuration process involves changing the parameters of the software. For example, the kinematics model is selected, the printing dimensions, the heating elements, and others. After this, I flashed it on the Arduino Mega 2560 controller.
The printer does not know about 3D models and how to print them. A software called Slicer can transform a model into an STL file. This is just a text file that has the command that the printer will use to create the model. Every move of the printer head is recorded there and is all done automatically. We used the Cura slicer for the LIQUID printer.
Now that the printer is finally assembled it is time to test its functionality. I start with the movement. The axis must be moving in the right direction and have the correct E-Steps value. Then the heating elements calibration to display the correct temperature and finally the extruding of filament.
It’s alive … now a model is printed and the process can be seen below. Although it is not a perfect model, it can be better with calibration and some improvement.
5. Ways to improve it
Great, the printer is assembled and working. This is an important milestone. But this is not the end of the road. If you’ll buy a 3D printer kit with all the assembly instructions, this will not be necessary. But we’re not here to make something easy. We’re here to make something great. The calibration process has some guidelines to do it properly but mostly is trial and error. So, load yourself with a lot of patience, and don’t be upset if it’s not getting the result you want. In the end, the reward will give you satisfaction.
The following are a few modes to calibrate the printer to get better results.
The extruded plastic diameter is very important for the quality of the result. The first thing is to calibrate the E-steps, which means the number of steps the motor needs to make to extrude the correct amount of filament. Because of the Bowden tube, the pushed filament can be flexed inside and this affects the extrusion. Below you can see performed a test for adding pressure advance, which compensates for the elasticity of the filament and the Bowden tube. The most uniform line gives the value that is added to the firmware.
Below we can see two parts of the same model that are different in quality. While there can be multiple causes for this, the most common is choosing the correct temperature. If the temperature isn’t high enough, the extruder cannot push the filament fast enough. The result we expect is the left.
Mechanical failures of the plastic parts can occur often. This is hard to prevent in the beginning because we need to make the parts light enough and with fitting constraints. If weak points are found (for example in the image), the CAD should be modified to increase the size of the part.
Some parts need to be created using metal because a higher strength is needed. This is an example of a part that is necessary to be made using aluminum. This is hand-milled from an aluminum block and is strong enough to hold the weight of the printer.
The printer controller (Arduino with RAMPS) uses an SD card to transfer the files from the PC to it. This process is a little frustrating and needs access to the printer to configure it when printing. To improve this, I changed the controller with a Duet WiFi controller, that can be controlled remotely, from a web browser. In this way, you upload the sliced file directly from the PC. You can also configure the firmware (RepRap firmware for Duet) or adjust the printing parameters on the fly. The controller also has better motor drivers and a faster microcontroller.
On top of that, a Raspberry Pi mini PC with a camera can be added for remote monitoring of the printer. This only helps to see if the print is ok, but does not automatically prevent any failure or correct it.
Correcting failure is hard. First, you need to detect them. A human can easily spot what is wrong, but a computer needs some advanced algorithms to detect this. The most common failures are: spaghetti shapes, which can occur when the part is broken or it comes off the printing bed and it extrudes the filament in mid-air, rather than on top of another layer of plastic and layer shifting, where the printer head loses some steps and it prints in a different position that necessary.
Failure detection can be done using Computer Vision techniques. They are algorithms that analyze only the images to detect the necessary information. I created two modes of detecting mainly layer shifting and can work for others.
Image matching: this involves comparing images from slicer and real printed object:
Object tracking: tracks the print head to calculate the real position, compared to theoretical position:
Another mode is using The Spaghetti Detective software. Using Deep Learning, it can spot parts that look like spaghetti. In my experience, it works very well for these types of errors but can fail on layer shifting or others.
More details of the modes and how they work can be found on the GitHub repo. This is research on techniques that can solve the problem of failure detection, not working applications.
After all the testing and improvements, the printer also had some cosmetic updates. This is the new design implemented in the CAD model.
6. Finalizing the MVP of the 3D printer
Now that all the major issues are solved and all the components are added, the 3D printer MVP (minimum viable product) is ready. This is the product that has all the functionality and does not look like a release product. Is the best prototype that shows that our design is good and it offers the necessary performance that we expected. Below is the printer image.
7. Release the final product
Great, now let’s make it look like a product that you’ll buy from the shelf of a big store. Remember that we created a new CAD model with the new design. Implementing it means 3d printing the new improved parts, adding the new and better components, addeing plexiglass panels to make a semi-enclosed chamber, and others. Take a look below and compare it with the model.
To launch the product, marketing is necessary to promote it. Using the Blender modeling software. The model is added in a nice background with light effects. This is what it looks like before rendering.
And … the final look that can catch the necessary attention.
Every product needs a video ad that can show its features. This is ours.
The development of a 3D printer is a long and exhausting process. I learned a lot about 3D printers in the process. Mistakes were made, which made me frustrated, but I remembered to enjoy the journey with good and bad things. I am very happy with the final result and can recommend anyone that likes DIY things to try this. When finished, the printer is not another project that has no use. I’ve used it a lot since then to build objects that are useful in any house or necessary for my other projects.
The printer is open-source and all the files can be found in the Resources section. I am happy to answer any questions about it!