3D FFF printer concept

A Higher Quality DIY 3D Printer For Medium Sized Parts

At some point in time every (nowadays so-called) Maker needs a 3D-printer of some sort. In this short article I want to show you my design which is capable of printing 326x326x300mm sized parts. The focus was on maximum print/build quality while keeping the design as simple, cheap and compact as possible.

Under construction …

Goals/Requirements

  • Max. package: 550x490x500 mm
  • Min. print volume: 300x300x300 mm
  • Budged: 1300€ – 1800€
  • Fast print speeds: >100 mm/s
  • High quality prints: Equal of better than other printers in that price range (Ultimaker 3, RailCore II, Zortrax M200, etc.)
  • Capable of printing engineering-grade materials (ABS, Nylon, etc.)
  • Option to upgrade to multi-material printhead
  • Easy to manufacture: No access to NC-Machines

The requirements listed above manly originate from the fact that I need the printer to be big enough to produce highly integrated (high quality) parts for my drone(s). At the same time it needs to fit inside something like a kitchen cabinet since this is the only place where I can store the printer for now.

After some research I found that none of the commercially available printers like the RailCore, Ultimaker 3, Zortrax M-series or Prusa can fulfill all those requirements. The RailCore II 300ZL seems to be a nice machine, but with shipping and up to 19% import duty to Germany I felt like it is a bit expensive.

System Design

The basic design follows the concept of a CoreXY. It is superior to other designs like the Prusa Mk2/3 in regards to rigidity, print volume to printer footprint ratio and max. possible speed. That is why a lot of manufacturers use it for their higher quality products with print beds >=250 mm.

Since I am not the first one to build a CoreXY it is worth taking a detailed look at other designs. The following design is heavily inspired by the HyperCube, RailCore II 300ZL and E3D Motion System (Toolchanger). The latter is a great machine with a thoughtful design but seems to be heavily over-engineered (and thus expensive) if you plan to use it for the sole purpose of FFF. I tried to combine as many advantages of those printers as possible. A good source for 3D printer designs is also openbuilds.com. I might add this design when its more refined.

In order to meet my requirements the following additional (derived) requirements are needed. Those strongly influence the overall design of the system.

System Definition & Derived Requirements

  • No CNC machined parts
  • No 3D printed parts for parts subject to higher mechanical loads
  • Use of laser/waterjet cut parts combined with bending when necessary
  • Genuine high-quality linear rails on all axis
  • Bowden style extruder with upgrade option to direct drive extruder

Laser cutting services are broadly available online and very cheap compared to CNC machined parts. However, the shape and position tolerances are higher compared to NC parts. This will be taken into account. Many laser cutting services also offer a service for bending the cut sheets. The extra costs are still much lower than for a CNC job. Bent parts allow for a more integrated design.

Mechanical Design

In this section I will go into some details regarding the design decisions of the main components.

Frame

3d printer metal frame made from aluminium profiles

All components must be mounted inside the frame to allow the printer to be insulated to trap the heat inside in a later stage. The frame will be made out of 20x20mm aluminum system profiles. Those are commonly used with 3D printers because of their excellent price to performance ration. They come in at a few cents/100 mm. Taking a look at the corresponding tolerance norm for aluminum extruded profiles you can find the EN 755-9 and EN 12020-2. The latter one is 50% more restrictive and profiles are often referred to as precision profiles. Profiles following these norms are guaranteed to be at least that precise.

The linear rails will be mounted directly to the profiles making the straightness tolerance of the profiles one of the key values to guaranty smooth movement and low variation in z-direction of the nozzle (XY-Gantry). EN 12020-2 requires profiles with a length 1000 to have a max deviation of 0.7 mm. Additionally, on a segment of 300 mm length the max. deviation between the highest and lowest point must be 0.3 mm. Looking at typical FFF layer heights (~0.2 – 0.3 mm) this still sounds like a lot, but bed leveling and tighter actual tolerances of the profiles will make up for the most of it. HIWIN rails require surfaces with much lower tolerances (~ 0.05 mm). That is why CNC machined parts are still the best (and most expensive) option. That is why I want to keep this option. For now, the linear rails will be mounted to the extrusions by only two screws. Since we use genuine high quality rails, the chances are good that they have lower tolerances than the extrusions. By only fixing them at both ends to the profiles, the rails will not bend with the mount surface but keep their current flatness.

To reduce the cost for scews and sliding blocks, high volumes should be bought. This requires a reduction in part variants meaning screws with a certain diameter and length should be used in as many places as possible. Sometimes you just need a few screws of a specific length. In that case I buy longer screws in bulk and cut them down to the perfect length.

The Frame is designed so that parts of it can be assembled individually and later brought together for final assembly. In this case it means that the XY-gantry, electronics plate as well as the Z-Axis can be assembled without the need for the other components. In case one wants to increase the build volume in z-direction it is only necessary to exchange four aluminum extrusions together with a longer rail and lead screw. The gantry does not have to be disassembled for that purpose.

Z-Axis

The Z-Axis consists of a single linear rail. Unlike the E3D Toolchanger this design uses a standard rail (not the wide one). The standard rails can take enough static & dynamic moment in all directions. In reality, the load is almost static and only in z-direction. By only using one linear rail the complexity of the system is reduced while reliability and accuracy are increased. Compared to two linear rails/rods this design is less prone to jamming and much easier to align & assemble.

To mount the print bead to the Z-Axis the design uses a bent 3mm aluminum sheet. This allows the mount to be manufactured in one piece, at low cost while still maintaining high stiffness in the z-direction. The current design may cause problems in manufacturing since some bending tools will not be able to produce the shape (U-Shape). In my case, the manufacturer offered to introduce a “helper-bend”. That way the shape can still be manufactured in one piece. The “helper-bend” makes sure it fits inside the machine & tooling and will later be “removed”/bent back. A two-part design for the mount would eliminate that need.

A simple static finite element analysis (FEM) shows that the mount will only deform by around 0.5mm when loaded with the print bed and printed object. That value is a worst-case. Adding a virtual spring between the two mounting holes in the front can simulate a print bed being attached to the mount via screws (also spring-tensioned). Depending on the stiffness of the virtual sprint, the z-deformation is reduced a lot. The resulting deformation is acceptable for the printer.

The FEM shows that the majority of the deformation originates from the side arms slightly tilting outwards when loaded. That effect could be reduced by adding a second bend to the arms (U-shape). That way the force can be applied to the neutral fiber of the profiles cross-section resulting in no torque on the arm. Additionally the deformation can be further reduced by using a stiffer material like steel. In many cases however the print bed is made from aluminum which has a higher coefficient of thermal expansion (CTE) than steel. This might result in internal stresses and unexpected bending of the print bed a mount during heat up.

XY-Gantry

FFF CoreXY printer gantry with metal parts

The heart of every CoreXY design is based on laser cut parts and aluminum extrusions. Like others already showed it is important to properly align the belts. Some belt paths must be parallel to the xy-movement of the printhead.

xy gantry of 3d printer

The gantry uses a 6mm wide 2GT Powergrip belt from Gates together with Gates pulleys and idlers. As stated by others it is important to first design the basic belt path, then order the belt with pulleys and then measure the diameter of the belt when wrapped around the pulley. Now you can adjust the position of your idlers in the design to make sure the belts run in parallel to the corresponding axes.

The design uses stacked belt paths. By stacking the stepper motor on one side the upper belt path can be designed in a way so that it goes around the top of the linear rail carriages. This allows for simple, but strong laser parts with no further modification/bending required.

The idlers in the back of the printer need a rigid mount to keep them from bending. The idea was to use an open square tube with holes to mount the idlers with threaded rods. This all-metal design promises to be very rigid, cheap and easy to manufacture. The most tricky part would be drilling the holes at the exact positions to guaranty a parallel belt path to the Y-Axis. Since the delivery was delayed and I had no drill press at hand I decided to design alternative mounts to be manufactured using SLS together with some other parts I needed. The SLS parts are expected to be sufficiently stiff.

Because of the high tolerances in steel sheets used for laser cutting (surface flatness) we use a aluminum profile for the x-axis carrier. The rail is mounted on the side to gain more build volume in y- & z-direction while keeping the max. package dimensions.

Print Head

back of 3d printed printhead
Back of 3d printed printhead

The print head will be 3D printed for the most part. I found a very affordable 3D printing service online. This allows me to go for an integral design approach and keep the moving mass as low as possible. Other than that there is not much to say about this part. The belts lock into the printed groves. They are kept in place using two metal plates.

The design for the blower fan is experimental. We’ll see how that works.

Parts List (Basics)

  • 24V 150W Meanwell power supply
  • 24V E3D V6 Hotend 1.75mm with bowden adapter
  • BondTech BMG Extruder with bowden adapter
  • FilaFarm 326×326 build plate with FilaPrint surface and heater
  • 3x 59Nm stepper motor
  • 1x 49Nm stepper motor
  • Duet3D Duet 2 Wifi
  • 6mm Powergrip 2GT belt
  • Powergrip idlers
  • Laser-cut parts, Aluminium extrusions, etc.
  • For more info see detailed parts list

Some Parts Arrived

Challenges/Problems

Having set-up most of the printer at this moment all seems to work fine except for the following problems:

X-Y Wobble Of Print Bed

Long story short: Make sure the mounting surface of the print bed mount is flat and not bent due to the manufacturing process. For the Z-Axis you must use a beefy pre-tensioned linear guide.

The bigger problem resides within the z-axis. It is not stiff enough in Mx direction. The print bed tends to wobble in the printer’s x-direction when touched slightly. Rapid movements of the print-head could cause the same, thus making the machine very slow or creating very low-quality parts.

I think the instability roots within two things.

Bending of HIWIN slide block due to non-flat mounting surface of counterpart
Blue print-bed mount (blue) with non-flat mounting surface bends the HIWIN slide block (green) when screwed to. That results in a play within the Mx direction of the bearing. Light green illustrates the non-bent slide block.

One being the bent build-plate mount. Its mounting surface towards the linear guide block is not perfectly flat. The bending process causes the surface to have a slight curve. Screwing the mount to the guide block causes the block to bend slightly as well. Because of that, the pre-tension of the block on the rail gets lost and a slight gap between the bearing balls and the rail forms. That causes a slight play within the mounting system. Bad.
I was able to fix most of that by filing the surface until it was flat. That removed the play. Adding washers also worked. However, the built plate is still not as stiff as I want it.

The second thing is the bearing itself. I guess it’s just not stiff enough. In design-phase, I thought the stiffness of the MGN12H block is sufficient since the bed does not experience higher loads in x-direction during print. I assured myself that the block gives in and not the rail or aluminum profile. Looking at alternatives the next best options are: MGN15C, MGN15H or the wider blocks MGW12C and MGW12H. According to HIWIN the max. static moment and rated load for those is higher. I do not want to order a new build-plate mount. This means the new block must not be too different from the MGN12H when it comes to mounting holes and height. From what I can see, the E3D Motion System uses an MGW12H block with Z1 pre-tension. That one is harder to source and a lot more expensive than the N-Series. A problem that perhaps could have been avoided looking at the radial rigidity of the blocks in the first place. I could not find any data on moment rigidity.

Radial rigidity
Load ClassSeriesPreload – Z0 [N/μm]Preload Z1 [N/μm]
Average loadMGN12C4456
High loadMGN12H6381
High loadMGN15H87113
Average loadMGW12C6381
High loadMGW12H89114

The deformation can be calculated as follows:

d=P/k

d Deformation [μm]
P Operating load [N]
k Rigidity [N/μm]

The effect is multiplied by the length of the print bed in the y-direction.

It looks like picking the MGW12C Z0 series instead will not help us much. The MGW12H Z0/1 series got wider mounting holes than my current block. I might not be able to get the new holes next to the old ones. The MGN15H Z1 series got the same stiffness as the MGW12H Z1 (used by the E3D Motion System). I’ll pick that one because it’s dimensions are most similar of all options to my current setup.

Couldn’t find them online so I wrote an email to an online shop that already sells HiWin products for a fair price. They were kind enough to order me the pre-tensioned variant. I’ll post an update once I tested the new ones.

2 thoughts on “A Higher Quality DIY 3D Printer For Medium Sized Parts”

  1. Felix says:

    Really nice project!

  2. RIZA says:

    A good source for 3D printer designs

Leave a Reply

Your email address will not be published. Required fields are marked *