Introduction: Migbot Prusa I3 3D Printer - Assembly and Use
3D printing is one of those cool technologies that, once you start using it, you wonder how you ever got along without it before. I’ve been designing and producing 3D-printed parts for several years, however, so far I’ve been using services such as Shapeways to actually produce the parts. Until recently, I could have a service produce quite a lot of parts for, what used to be, the high cost of a 3D printer. Also, the output quality of machines used by services such as Shapeways is much better than a personal 3D printer can produce. The only downside of an outside service, from my point of view, is the turn-around time. From the time I submit and pay for a model to be produced until it shows up on my doorstep, is usually 10 calendar days. If you’re going through an iterative design process, this can get tedious.
Now, with the availability of $300, and less, 3D printers, I thought it would be useful and worthwhile to have my own. I could shorten the design cycle time and still, if necessary, send the final design to a service. It would also be a new, cool toy to play with.
While checking on 3D printers I came across the Folger Tech Prusa I3 on eBay for $300. I liked the geometry of the I3 and looked for other models to compare it to. I finally settled on the Migbot I3 from China. The final cost was $345 which included FedEx shipping and 2Kg of filament. Considering that filament usually costs $20 to $30 per Kg, this printer cost about $300. Aside from price, reasons for choosing this particular one were the included LCD panel, 8mm thick acrylic frame pieces, as opposed to the 6mm acrylic from some other vendors, and the self-leveling sensor. Key specifications are:
- Based on Prusa I3 open source design
- Build space: X200mm Y200mm Z180mm
- 8mm acrylic frame
- Extruder based on MK7 Stepstruder direct drive
- Heated aluminum bed
- Z-height probe for automatic Z-height detection
- Single electronics board
- Supported by open-source software
- LCD display
- Fully-prepared wiring harnesses
- FedEx shipping included in the price
This Instructable covers the unboxing, building, tuning and eventual use of this printer to make something useful. I'm not going to go through a screw by screw build - the instructions that come with the printer are clear enough for that. If you do need a detailed guide for building a similar model, there is an excellent series of videos on YouTube by Hiboson. There are many other Prusa I3 build videos as well.
Let's get started...
(Remember to click on the pictures to enlarge them.)
- - - Check back regularly - I'm still adding to this - - -
Step 1: Unboxing...
Here are the obligatory unboxing pictures. As you can see, all the parts arrived in a single box in three custom-fitted foam trays.
Step 2: Parts and Tools
Here are the parts from each of the three foam trays. I inspected all of them and didn't find any damage, except for a cracked CD. An email to the vendor fixed that and I quickly had a link for downloading the CD contents. For me, in USA Central time zone, the guys in China get to work about 7pm, my time. This works out well since my evening and late night emails are (usually) answered promptly.
Overall the quality of the parts is good. All the acrylic parts have smooth cuts and fit well. The hardware is well labeled and organized in separate bags. The only issues I had were with the power cord and the tie wraps. The power cord that comes with the kit has 28ga (!) conductors and I replaced it with my own that has the more typical 18ga conductors. The tie wraps looked sort of flimsy and when I tried one it broke easily with me pulling on opposite ends with my hands. The originals went straight into the trash.
The kit comes with enough tools, shown in the first picture, to assemble it. The build process is made a little easier by bringing a few of your own as well. Particularly useful are ball-end metric hex drivers, long needle-nose pliers for positioning the nuts, and a small hex wrench for tightening the nuts. I don't have a metric version but the 7/32" is a perfect fit.
Some of the holes for screws in the printed parts are a little tight and metric drill bits help to clean them up.
I didn't use thread locker on all the screws, just the ones I wouldn't be able to reach easily once everything is assembled. Later on, as I used the machine and screws came loose, I used the blue thread locker to hold them.
The black squares are adhesive tie holders. There aren't a lot of spare holes in the acrylic for attaching tie wraps to organize the wires, so these make up for that.
The 5/8" Kapton tape is useful for managing wires and insulating the hot-bed circuitry.
Step 3: Assembly
The mechanical build instructions from the vendor consist of 15 images for the framework and mechanics, and 5 images for the extruder. An extra drawing shows how to install the Z-height sensor. There are a few typos, but overall I found them easy to follow. In the course of researching this printer I looked at several build videos so I was familiar with the overall process.
The first picture here shows the mostly assembled Y-Axis frame. Notice, I unbagged all the screws into little containers. I transferred the labels from the bags to the containers to make it easy to find the correct screw.
The second picture shows the frame and Z-Axis motor mounts. In other kits these are usually printed, but in the Migbot kit they are laser-cut from the same acrylic as the frame.
Note the location of the holes for the vertical rods. It should be on the left for the left one, and on the right for the right one.
The third pictures shows the completed frame and Y-Axis.
The fourth pictures shows how I positioned the frame so I could attach the Z-Axis motors.
Step 4: Extruder and X-Axis Corrections
You should assemble the extruder before installing the X-Axis hardware. The assembly instructions are quite clear, however, however, I did come across a few issues. First, as shown in the second picture, some holes didn't line up. Rather than waiting for a replacement from China, I made the two holes slightly larger, which allowed enough leeway for the long 3mm screws to fit into the motor.
Then, as I was assembling the X-Axis components I noticed something odd about the belt idler. A 3mm screw was going through 5mm holes in the printed plastic, holding 2 bearings, also with 5mm inner diameters. Due to printing imperfections, this screw was sitting at an angle. Not pretty! In my workbench supplies I found a 5mm x 20mm bolt that fit nicely through the plastic and bearings, perpendicular to the belt travel. The head and nut are large enough to sit squarely on the plastic. Since I couldn't tighten the nut very much without bending the plastic, I used thread locker to hold it in place.
As I was assembling, I noticed that any screw holes in a printed part that are parallel to the print layers have imperfections so that the heads and nuts of the screws don't have a smooth surface to engage. By adding washers under both the heads and the nuts, the pressure is spread to the area beyond the imperfections and onto more layers of the printed plastic. The last picture shows an example of added washers.
Step 5: Wiring and First Print
Compared to some of the build instructions and videos I've seen for other kits, this one makes wiring very easy. All the cables for motors, limit switches and thermal sensors have plugs attached. Only the fan, hot bed, hot end and power cables needed to be stripped and inserted into screw terminals. No soldering is required. I'm a little persnickety about wiring so I did tin the ends of the stripped wires to keep them from fraying. I also wasn't happy with the soldering job on the hot bed so I removed all the original solder globs, re-trimmed the wires, and soldered them to my satisfaction. I then recovered the exposed wiring with pieces of Kapton tape.
Be careful when you install the power supply. Mine has a 110V/220V selector switch on it that was set to 220V. Be sure to set this to the correct voltage for your locale. In may case, since I live in the USA, I set it to 110V. Other power supplies of this sort are auto-detecting and don't have a selector switch. It's always good to check for one, though, just to be sure.
The brains for the printer is a MKS Base V1.2 board. This is essentially a mashup of an Arduino Mega 2560 and a Ramps 1.4 with surface-mounted, rather than socketed, motor drivers. Information on this board is sparse - the RepRap Wiki has few details.
Here are some images of my initial wiring. I know it looks like a rat's nest but I wanted to make sure everything works before I tried to organize the wires. The original ribbon cables for the LCD display are a little short so for testing I used some of my own longer ones. Once I cleaned up the wiring the original cables worked OK.
I spent about 12 hours getting to this point. Having a new toy, naturally I want to try it out.
I'm not going to go into the details of bed leveling, nozzle height adjustment, bed preparation methods, filaments to use, and so on. For this, Google is you friend and the RepRap Wiki has many articles for educating beginners. Any Google search that includes "3D" and some topic will provide a number of excellent and relevant answers.
(Play music while researching 3D printer bed leveling, Z adjustment, bed preparation, and any other articles that catch your fancy.)
I loaded the Cura software provided by the vendor and all the text showed up as little square boxes. Apparently, I got the Chinese version. No problem. That's the joy of open source software - I can go to the Cura software download page on the Ultimaker site and get a fresh copy there. The Chinese vendor provided images of the recommended setup screens. I followed those, downloaded a 20mm cube from Thingiverse, prepared it and sent it to the printer. 45 minutes later I had a nice plastic cube!
Step 6: Wiring Cleanup
Knowing that everything works, it's time to clean up the wiring and prepare for production.
One picture shows how I routed the wires underneath.
The second picture shows some of the tie-wrap anchors (circled in yellow).
The last picture shows my finished machine.
Step 7: Software Selection
When I researched various 3D printers, and looked at build manuals and videos, I found several cliff-hangers. I would come to the end of a beautifully-illustrated Prusa Mendel manual, and it ended with the wiring connections to the electronics board. Nothing was said of software. I found this repeatedly, and the same is true for the Migbot I3 kit. Apparently, everybody but I know how to install and use the software. Not!
I gave myself a short 3D printing course by reading articles on the RepRapWiki and Googling. I found my experience with CNC routers to be quite helpful, since the underlying design and hardware principles are the same. Below is a quick summary of the 3D printing software tool chain.
Design: The first step is to design something. There are many 3D design packages. If you're a professional you will use something like AutoCad or Solidworks. You can also use free software like TinkerCad and Sketchup. You can also find ready-made objects in a library such as Thingiverse. Once you have your design, you save a digital file for it in STL format. This file gets sent to the slicing software.
Conversion to gcodes: The slicing software, such as Cura and Slic3r, converts the solid object represented by the STL file into a file of gcodes. Gcodes are very literal commands for controlling the 3D printer. The actual commands will vary, depending on the type of printer. The Migbot is a Fused Deposition Modeling (FDM) device. You may also see this referred to as FFF, which stands for Fused Filament Fabrication. These are just fancy names for squirting out layers of melted plastic. The gcodes tell the printer what temperatures to set the bed and extruder. Then the gcodes move the extruder to specific x, y and z coordinates and it extrudes soft plastic that bonds to the layers already put down.
Firmware: The final piece of software is the printer firmware. This accepts the file of gcodes and translates them into actual motor movements. For the Arduino Mega 2560 and Ramps combinations of hardware, and their clones, this is usually Marlin.
Printer Control: There can also be additional software that allows manual control of the printer. This is usually used to set up the printer and send the file of gcodes to the printer. Some printers, the Migbot included, allow you to load the gcode file on an SD card and a card reader connected to the controller reads the file, allowing for stand-alone production which does not tie up a computer. While this may not be an issue when you have only one printer, if you're doing any serious printing you'll end up with several, because it takes so long to print something. When that happens, it's nice to print stand-alone.
I looked at the software options and ended up with the following setup:
- I do my design work on a heavy-duty workstation with big monitors, lots of memory, and a fast processor.
- A Dell Inspiron D610 surplus laptop running Windows XP is connected to the printer controller via USB.
- For managing the printer I use Pronterface. I use this for tuning, preheating, and manually sending gcodes to the printer.
- I use Slic3r for gcode preparation. I prefer the options and interface to those in Cura.
- The Marlin firmware in the controller handles the actual printing..
Step 8: Tray Spacer Clips - First Design Iteration
Once I had the 3D printer working and printed a few test objects, I was ready to tackle the backlog of projects that could be addressed with a personal 3D printer. Once I overcame my paralysis due to an excess of opportunity, I pull ed one off the stack.
Several years ago I bought some used airline food trays. These are useful for organizing projects, sorting parts, and so on. I always thought it would be nice to have some removable clips that could be attached to the edges so that the trays would be stackable, with space between them. I frequently have projects where paint needs to dry or epoxy needs to set on many parts and easily stacking trays would save a lot of space. Fortunately, the trays have a rail on two sides which makes it convenient to attach some clips. These pictures show the first design iteration and implementation.
The first clip I printed was a bit tight on the rails. This was due to a slight "swelling" that can occur if the filament thickness isn't set correctly. I found that reprinting with a smaller layer height also fixed the problem. I printed one at a time until I got the parameters set correctly and then I printed several at once.
Some plastics sliding on each other will need lubrication, otherwise they tend to stick. I found that beeswax-based lip balms such as shown in the second picture work well for this. The stick form also makes a convenient applicator. I keep several of these in my workshop and toolkits. A thin film is all you need to encourage plastic parts to glide smoothly.
Step 9: Tray Spacer Clips - Second Design Iteration
The initial design worked OK. However, once I started using these tray spacers I realized that when I stacked several trays, the clips would interfere with each other and required careful positioning. I needed a better design. These pictures show this revised design and the implementation.
As you can see, the new clips don't interfere with each other, and each set of clips lets me add 2 more trays to the stack. Overall, I need fewer clips and I save on print time and materials.
This exercise shows the real value in having a 3D printer on hand:
- A problem exists.
- A solution is produced.
- Testing indicates modifications.
- A new solution is produced and tested to satisfaction.
All this can happen in a matter of hours.
While I admit this particular problem is a small one, it does illustrate how to make effective use of the technology. While the cost of these clips is high in terms of time, if they represent a marketable product, you can now do some market testing and, if all goes well, go to mass production.
Step 10: Printing With ABS
So far my printing has been done with PLA (Polyactic acid). Now it was time to delve into the reportedly more difficult task of printing with ABS (Acrylonitrile butadiene styrene - no wonder everyone calls it "ABS"!).
This article, "The Differences Between ABS and PLA for 3D Printing" provides a good introduction to the differences between the two plastics. The biggest difference, for me at least, is the lower softening temperature of PLA. Do not leave PLA parts in a car in the sun. They won't exactly melt but they may change shape. The three pictures above show two identical rings of ABS and PLA before and after hanging from my car rear-view mirror during the day. It was only 80°F outside and partly cloudy. Within 90 minutes it was 130°F (55°C) inside the car and the PLA had deformed. This was a real eye-opener. I had assumed I would be able to get away with printing primarily PLA. Instead, anything that might ever end up in the car will need to be printed with ABS, or other high-temperature plastics.
Here is what I've learned so far regarding printing with ABS:
- Proper bed adhesion is of paramount importance. ABS slurry on Kapton tape works great for me. The ABS slurry is made of ABS pieces dissolved in acetone to a consistency similar to skim milk. Only a thin layer is needed on the Kapton tape. I use a utility brush or cotton swab to apply it to the print area. The picture shows an example of slurry applied to the tape.
- After bed adhesion comes layer adhesion.The initial prints I could easily break apart along the layer lines. Part of the solution to that is to slow the print speed. I was doing fine at 90 millimeters per second (mm/s) with PLA, I had to slow to between 40 and 60 mm/s for ABS. This allows more time for the layers to bond.
- You need a heated bed. You aren't just heating the first few layers, you're going to need to heat the entire build. To help with that you may need an enclosure to keep the build warm. For my initial testing with some small parts I turned off the ceiling fan and air conditioning. Then I placed a cardboard box around the printer to keep out drafts. You can see an example of this in the pictures. Here I'm printing the tray spacer clips version 2.0 out of natural ABS. The extra fan in the picture is used during the cooling phase. It takes a while for the thick aluminium bed to cool down from 100°C to something I want to touch.
- You may need a sealed enclosure. I'm still experimenting with this, and my open-fronted box did not keep things warm enough for large builds. I initially draped some sheet plastic over the front. I got a strong build but it got so warm that parts of the printer melted. (More about that later.) I'm still experimenting and researching to find the ideal build environment for ABS.
Step 11: Second Project - the Dyson Modification
I have a Dyson® hand-held vacuum which works nicely but has a rather annoying "feature". The exhaust blows out at the sides, rather than straight back. When I'm cleaning my desk and workbench, this sideways airflow scatters dust and papers, and is quite a nuisance. I've just been waiting for the right discarded plastic container to make a duct to redirect the airflow. Now, with the 3D printer I have an opportunity to solve the problem. The pictures show the rendering from my CAD program and the final implementation. It just slides over the motor housing, snapping into place and does exactly what I want. No more dust and parts scattered as I'm trying to clean my workbench.
Another project crossed off the list!
You can find this on Thingiverse.
Step 12: My First Customer
A 3D printer can make some interesting noises, particularly when printing circular items such as my Dyson shroud. This "stepper music" transferred through my house from my workshop to my wife's office and she came to see what I was up to. I showed her the 3D printer and some of what I was working on. She nodded and went away. A little while later she came back holding a mason jar. "Can you make me a handle for this?"
Oh boy! My first, and favorite, customer.
My first attempt is shown above. I made the rings more square than the rounded jar so there would be a sort of spring effect to hold the ring firmly in place, and yet would allow for easy removal. The double rings made it hard to take off and didn't allow enough room for my large hand. The next two pictures show the final design, which was heartily approved by the customer.
You can find the design and instructions for this this on Thingiverse.
Step 13: Record Keeping and Repeatability
A key ingredient to successful prints is keeping good records. Every model and every brand of filament may require different setups. Every time I print, I make a record of key settings I used in the slicing program. I put these on a 3x5 index card and put it in a plastic bag along with a sample of the print. The picture shows a collection of records. The settings I list here are the main ones from SLIC3R.
- Brand, type, and color of filament
- Bed preparation - Kapton tape only, or with ABS slurry
- Model file name
- Filament settings
- Diameter and multiplier
- Extruder and bed temperature
- Extruder cooling yes or no
- Layer height / first layer height
- # of perimeter shells
- Infill % and pattern
- Skirt - I use two loops to make sure the bed is leveled correctly, the extruder is working properly, that the extrusion is sticking and that the two lines are sticking to each other. If any of these fail then I cancel the print and adjust as necessary.
- Support on or off
- Usually the only thing I have to change here is the Z offset if the bed or proximity sensor has shifted.
When I start a new day of printing, I'll print a test object according to one of my records to ensure it comes out the same. If it doesn't, I'll make adjustments and record those. Small things such as different moisture content in the filament and changes in ambient environment may require changes in printer setting to get the same results.
Step 14: Issues and Comments
Now that I've had and used the printer for a little while, I want to share some observations.
I'm glad I got a cheap printer to start with. I'm a tinkerer and software developer, so building, researching, adjusting and dealing with problems was not a major hurdle. Some of them I expected, some I didn't. This project showed me:
- The basic technology, both hardware and software, of 3D printing.
- What to look for, or include, in my next 3D printer, whether I buy it or make it.
- The capabilities, and limits, of this level of FDM manufacturing.
Here are some complaints about the specific printer I got. Remember, however, I got the cheapest possible open-source printer I could find at the time, and I got it from China. Overall I'm pleased with the construction and the workmanship. I got what I paid for. Specific issues are:
- Terrible support for English. Tech support could understand simple things like a broken disk and fixed that promptly. When I asked for the source for the firmware, I got replies that made it clear the person at the other end had no clue what I was asking.
- The printed plastic parts are made out of PLA instead of ABS. This resulted in parts softening and deforming. It took a couple of exchanges of emails to get the correct STL files for my printer. I then found someone locally via 3DHUBS who would make me a replacement with ABS. (You can see a picture of my melted X carriage and fan duct above.) I foresaw some problems with the X carriage from the beginning - it was a bit bouncy and I reinforced it with a tie-wrap during initial construction. (See second picture.) I've already ordered a replacement metal X carriage I found on eBay. In view of my hot car experiment, I'll be reprinting all the parts with ABS.
- Just plain production errors such as the mis-alligned holes and poor idler mounting.
- A ridiculous power cord and useless tie wraps.
- The mounting of the Z-height detector. This is constantly moving around, isn't level with the bed, and is difficult to set to the correct height. When I get my metal carriage I will replace it with one like the last picture, which will allow firm and precise adjustment.
Here is what I would have on my next printer:
- Slightly larger build space.
- A solid framework. The design of this printer, and others in its class, isn't very solid. When you move it the various axes shift and you have to readjust your bed height, and verify that all the axes are perpendicular again. Sometimes just removing a stubbornly sticking piece from the bed will require re-alignment.
- All-metal X carriage and extruder parts. Ideally, all structural components will be metal, or at worst, would be machined from some high temperature material such as fiberglass-reinforced epoxy (G-10). This will allow me to print with high temperature plastics such as polycarbonate.
- 24-Volt supply for the heated bed for faster heating.
- Some sort of easily removable or fold-away cabinet.
- Power supply and electronics isolated from the heat of the printer.
I look forward to having lots of adventures with this printer, and the next one(s) I get, or make.
Step 15: Modifications Round 1...
I've had my 3D printer now for 2 months. I haven't made as many parts as I would like to because of repairs, modifications, and learning! Here is a summary of some of what I consider to be my most essential modifications.
I added a simple power switch to the power supply. The fan on it is pretty noisy and I got tired of having to unplug it. My junk box had a rocker switch in it and I glued it to the power supply with some rubber cement, cut one of the conductors of the power cable and soldered the ends to the switch. I then covered the solder connections liberally with more rubber cement.
One of the drawbacks of the Prusa I3 design is the weak connection between the Y-axis carriage the rest of the frame. Every time I moved the printer I had to re-calibrate the machine. I can now appreciate the the design of machines such as the Solidoodle which have a rectangular box frame. I saw one at a 3D printer meetup recently and it was solid as a rock! I addressed some of this on my printer by gluing the frame feet to a base consisting of 1/4-inch thick phenolic. This is a very stiff, and heavy, material. I applied liberal filets of rubber cement (Household Goop®) around all the parts of the frame that touched the base. I checked all three axes with a metal right angle and let the glue dry for several days. The frame is now very stiff, and I can easily move the machine by picking up the base.
The Y-axis limit switch was originally attached to the movable carriage. Even when I assembled the machine the first time around I thought this was a bad idea. There was no reason to do this since it could easily be attached to a non-moving part of the frame and let the carriage bump into it. Every now and then the wire got caught on the plastic edges of the frame and caused problems. My simple solution was to zip-tie the limit switch to one of the rails where it would be bumped by one of the linear bearings. I then pushed it into position with the carriage and added a few beads of rubber cement to lock it into place. Problem solved - no more moving wires.
The final mod has to do with the bed, which had several issues:
- it was very difficult to accurately adjust the proximity sensor,
- the aluminum plate took an hour to get to 100°C,
- using four screws to level the bed is a nuisance. We all learned in geometry that three points define a plane, not four.
So, I made the following changes:
- removed the proximity sensor and re-installed the Z-axis limit switch,
- removed the aluminum build plate and PCB heat bed,
- drilled an extra hole in the acrylic carriage to match the conveniently provided hole between the solder points on the heat bed,
- reinstalled the heat bed PCB with three mounting screws and springs, instead of four,
- clipped on a piece of borosilicate glass as my build plate.
I have not had to re-level the bed since I reinstalled it.This is due to the overall sturdier frame, and I now can avoid placing a lot of pressure on the carriage because I can take off the build plate to remove firmly stuck prints and reapply tape. The bed now heats in about 12 minutes.
My last modifications have to do with software. I did re-flash the Marlin firmware to correct some settings. The boot-up greeting is personalized and in English, instead of Italian, and I can save changes to EEPROM, which was originally disabled. All of this was easy to do since the Arduino bootloader was already on the board. I also bought Simplify3D which is a single software package for slicing and managing 3D printers. It does cost $149, however, I will easily recover that in the time it saves me. There are several YouTube videos that show how it works - the website is a bit lacking in details.
Many thanks to Mark Rehorst for reminding me of my geometry lessons and providing inspiration and many good ideas for building my next 3D printer.
Step 16: Resources
Here are some links to websites related to this project:
Migbot Prusa I3 Vendor web site - it looks like they're constantly adding printers.
Migbot Prusa i3 Unofficial Support Thread in the RepRap forums. There's lots of help and advice here, including sources for the configuration.h file, in case you have trouble getting it from the vendor.
Cura Software Use this to replace what the vendor sent you. So far they have not been sending the English language version.
Slic3r Software If you're risk-averse, stay with the stable version. The experimental has a lot of cool new features but it freezes up regularly on me.
Printrun / Pronterface provides direct control of your printer.
Marlin - the firmware. You need the arduino IDE and the RAMPS extensions to recompile and reload.
3DHUBS - find a 3D printing service in your area if you need a part replaced, or, register yourself to provide 3D printing services.
Simplify3D - all-in-one software for generating gcode files and managing your 3D printer.
Mark Rehorst - author of instructable "An Almost Reliable, High Precision, 3D Printer: Son of MegaMax (SoM)" which has a lot of information about designing 3D printers.