My intent here is to design and build a desktop dual-extrusion FFF (Fused Filament Fabrication) 3D printer for printing ABS plastic (Acrylonitrile Butadiene Styrene); a machine that minimizes the risk of failed prints due to the prints warping or delamination between layers, which is common when printing medium to large ABS parts. This machine will likely have a temperature-controlled printing environment for that purpose. While I have designed and built desktop 3D printers in the past, designing a printer with an enclosed, heated build area is new territory for me. I’m sure this will lead to plenty of additional design conundrums as I work with whatever constraints stem from it.
Since my introduction to 3D printing about a decade ago, I’ve grown accustomed to the benefits of dual-extrusion printing with ABS plastic as the model material and HIPS plastic as a support material. The dual extrusion allows for having different materials for support and model, making it easier to remove the supports afterward and lending to cleaner, un-marred surfaces on the model where it meets the support.
I no longer have access to the industrial 3D printers that I used in the past for dual-extrusion ABS/HIPS but have since acquired inexpensive single-extrusion desktop 3D printers and printed with low-temperature or low-shrinkage materials like PLA, HTPLA, and PETG. All of these materials work well enough for many applications, but they do have their own drawbacks, so I still want a machine in my arsenal that can print ABS and HIPS reliably.
Why do I want to print in ABS/ASA?
A prioritized list of key, high-level features the completed project needs to include. This list drives the design and development of the project and keeps focus on what is important. Referring back to this list at major milestones is important to avoid ending up with a finished project that misses the mark.
Requirement #1: Reliably print high-temp materials like ABS and ASA, as well as lower temp materials like PLA and PETG
Requirement #2: Print a primary material and a support material in the same print
Requirement #3: Print relatively large items in a single print job without the need for breaking them down into smaller pieces to fit the build volume.
Requirement #4: Reasonably easy to service
Requirement #5: Aesthetically pleasing design appearance
The following is a list of engineering specifications and requirements necessary to meet the user requirements outlined. These specifications may be updated and expanded as design and development continue.
Given this printer will have a heated build environment, the linear hardware must be able to function well in environment temperatures beyond 100 °F (38 °C). The hardware should also be easy to lubricate or require no lubrication to meet the reasonably easy serviceability end-user requirement. I would prefer a system that requires no lubrication since lubrication tends to dry up quickly in heated environments.
Commonly available linear ball bearings on shafts and linear rails with carriages move very smoothly, with very little resistance. However, they have ball bearings in them giving them a max operating temperature of about 176 °F. On paper, that is sufficient for my needs, but it’s a little too close for comfort. I’d rather avoid solutions that involve ball bearings if I can. In the industrial 3D printers with heated environments I used to work on, there were originally linear ball bearings on the Z-axis. However, within a few weeks of continuous use, those bearings would start seizing so they were replaced with high-quality linear sleeve bearings of the same size and footprint. The max operating temp on those sleeve bearing is 400° F (204° C). After replacing the ball bearings with sleeve bearings, there were no further issues with the Z-axis even after years of continuous use. This was the case for every printer of that same make and model ⎼ same problem; same fix.
I did find high temperature rated linear rails/carriages available (300 °F), however, they are too expensive for me at about $45/carriage, plus the cost of the guide rail. If there were no other options, I would just have to save up some coins until I had enough to purchase these rails, but fortunately, there is another high-quality solution that’s a bit cheaper.
Those linear sleeve bearings that were used to fix those industrial 3D printers are available from PBC Linear at affordable prices. They also have shafts and buckets of other linear hardware to suit whatever gantry configuration I end up using. PBC offers 3 shaft materials that are compatible with their FrelonGOLD® lined sleeve bearings.
The steel or ceramic coated will work for my budget and application. I’m going with the steel though since it seems like the option with the most consistent dimensional accuracy. I’m guessing the bearing may move most smoothly on the steel as opposed to the ceramic-coated aluminum. I’m not sure if the lighter aluminum shafts would be more or less prone to bowing over long unsupported spans. I’ll have to try both in a stress test in Fusion 360 CAD software.
As of the publishing date of this post, I already have 4 of PBC's ⌀10 mm steel shafts 600 mm long and 8 of their FrelonGOLD® lined sleeve bearings. I ordered them as I was designing a core XY gantry in Fusion 360. I probably (definitely) should have waited to order until I was at least finished designing the gantry, in case I changed my mind about the configuration or what parts I actually need. But I got all excited and I wanted to play with the physical parts. As it turns out, I may well change my mind about the gantry configuration, but I can still use much of the linear hardware I have anyway. More on that in the next post ⎼ 3D printer kinematics.
What are your thoughts on the ideal linear hardware? Please share them in the comments section at the bottom of this page.
Initially, I had already decided to design the X and Y motion axes of this printer with a core XY gantry. It’s an increasingly popular gantry style in high-performance hobbyist 3D printers due to its strengths in print speed and accuracy, without sacrificing print quality. I am curious to learn more about it and design and build a core XY machine of my own. I’ve gone so far as researching what makes up a core XY gantry, hand-sketching parts and drafting much of the gantry in Autodesk’s Fusion 360 CAD (Computer-Aided Drafting) software.
I started all of that before adopting the project planning method where every project starts with clearly defining the purpose of the project and the specific requirements for the end result of the project. The primary objective of building this printer is to have a 3D printer that can reliably print ABS; that does not demand a specific gantry style though. It does, however, require a heated build environment, which in-turn would benefit from keeping heat-sensitive components out of the heated environment as much as possible. So the stepper motors that actuate the axes must be high-temperature rated stepper motors and/or be mounted to fixed locations outside the heated area.
I’m going to plan for externally mounting all the steppers. I may still use high-temp steppers since I already have at least 2 of them on hand. With the Z-axis, it should be fairly simple to keep the steppers outside of the heated chamber. I’ll mount them to the underside of the chamber somehow.
The X and Y portion of the drive system, or the gantry, requires deeper thinking. There are a few gantry options currently used in 3D printers that meet the stationary motor criteria including deltas, core XY gantries, H-bot gantries, and Cross gantries aka QuadRap gantries (similar to the Ultimaker style gantry).
Because all of these gantries feature stationary actuators, they can typically move the tool head faster and more accurately, due to reduced moving weight. It’s possible the speed/acceleration gains may be negated in the case of this dual extrusion ~12” x 12” x 12” build volume printer. If the tool head of the printer ends up being too heavy, print speed, acceleration, and jerk settings will need to be reduced anyway. The weight of the linear guides can also lead to slower printing speeds; especially solid metal guides long enough to span beyond a 300mm x 300mm build platform. High print speeds are not a significant concern for this printer though.
The delta gantry holds the hot-end with three straight arms of equal length. Hot-end movement is accomplished my changing the vertical position of one or more arms. This gantry style is not the most efficient use of space in terms of the ratio between build volume and overall printer dimensions. To get a minimum 12" of vertical build volume over a 12” diameter build plate, a delta configuration would need to be much taller than a cartesian configuration. A large portion of that height would be dead space where no printing takes place. I would be wasting a good bit of heat in that area if I enclose and heat the environment inside the printer. Plus, heat rises, and would want to be most concentrated at the top of the machine, which would be opposite of where I'd want it, around the part printing at the bottom. With the strategic use of fans to circulate the heat, it's not an impossible situation, but there are other, more economical solutions.
The H-Bot Gantry is similar to the CoreXY gantry, however, the H-Bot is particularly susceptible to torsional racking during acceleration. It is possible that most skew can be mitigated by shoring up the points where perpendicular axes meet. But I suspect that can drive up costs more than I’d like.
The core XY gantry was developed to be an improvement on the H-bot gantry, offering the same benefits in weight, speed, and faster acceleration/deceleration, but without the torsional stresses. It has its own drawbacks though. The long belt loops in a core XY make the gantry more susceptible to skewed movements and accelerated wear on the belts if the belts are not evenly tensioned or are misaligned. Also if the frame is not perfectly square at all times, any parts the machine prints won't be square; though I'm sure that can be said for any cartesian printer gantry. The core XY configuration is still a very strong possibility for this 3D printer.
There are still some things I’m not clear about in regards to core XY design criteria, despite my research. The constraints on where the belts should link to the tool head are unclear. I’d like to arrange the belts on the tool head so they are vertically aligned on each side of the tool head. This way I can arrange the belts and linear guides through the tool head more compactly. There would also be less chance of torsional forces on the tool head when the steppers move the tool head.
However, I keep seeing core XY systems where the belt loops terminate on the tool head offset from each other. I saw a post on the RepRap wiki forums where someone was pointing out that vertically aligning the belts on the tool head was not a good design and would cause cattywampus prints, but there was no explanation as to why. Perhaps I am overlooking something in my fledgling design so far. I may have to make up a physical model to test and see what happens.
I’d also like to see the effects of the weight of the guide hardware and the tool head on the stepper motors. Can things still move with relative ease? How quickly can the tool head start/stop without obvious overshoot? Will the linear guides sag and bow over the long spans? For some of these questions, I’ll just have to physically play with components to find out. The concerns about weight and bowing can be settled by doing a stress simulation in Fusion 360 once I have enough of the gantry modeled.
The other gantry style I'm strongly considering is the cross gantry configuration, a variation of which is used in Ultimaker 3D printers. It is also roughly the same gantry style used in etch-a-sketch toys.
From what I’ve read so far on these cross gantries, some versions of them scale up to span very large build volumes without issue, while others don't scale so well (Carlyle 92-93). Unlike the variation I’ve illustrated above, the Ultimaker version of the cross gantry uses the same linear guides around the outsides for both linear and rotational motion. For left/right movement, the X-axis stepper motor is linked to a shaft that spins the pulleys driving the X-axis belts. The X-axis belts move a perpendicular shaft that carries the tool head in the X (left/right) direction. That perpendicular shaft uses the Y-axis shafts as linear guides to ride on. The Y-axis is set-up in a similar way, using the shafts that rotate the X pulleys as linear guides for the Y-axis. It's a really clever way to save space and reduce part count, but on a larger span, it can add enough stress on those rotating linear rods to cause them to sag since those potentially heavy rods can only be supported on the ends(Carlyle 92-93).
It’s possible that I wouldn't have any issues with sagging on a 12” x 12” printer with an Ultimaker style cross gantry. Their largest printer to date is the Ultimaker S5 at 13” x 9.4” x 11”. Ultimaker has a good reputation for producing some high quality, reliable machines. If I’m not mistaken they use hollow shafts to mitigate some of the issues associated with heavy solid shafts. I already have solid shafts I’d like to make use of though so I’m going to play it safe and separate the rotary motion of the stepper motors on the pulleys, from the linear motion of the perpendicular axes. With the linear motion separate for the rotary motion, I can use fully supported linear guides around the outside of the gantry to reduce the possibility of sagging.
I’m really eager to start designing and modeling this kind of gantry in CAD, so I’ll do that, and then compare FEA (finite element analysis - aka virtual stress test) of the core XY and the cross gantry.
What gantry style would you choose? Are there some potential issues I'm overlooking, or some concerns I'm over-estimating? Lets discuss it further in the comments section at the bottom of this page.
CoreXY 3D Printer: Why It Makes a Difference
CoreXY | Cartesian Motion Platform
CoreXY Mechanism Layout and Belt Tensioning
Inside an Etch-a-Sketch | HowStuffWorks
Carlyle, Ryan. 3D Printer Engineering Volume 1: Motion Platform Design. Groton: Sublime Publications, 2019. Print.
Find this 3D Printer Engineering Book at www.sublimepublications.com
The first step in designing the printer head is choosing a hotend, which melts the filament for printing. All hotends require cooling over the portion where the filament enters the hotend. That portion is typically referred to as the cold-side. There are 2 types of cooling possible for the cold side of a hotend; air-cooling and liquid-cooling. While air-cooled hotends are the most common, given the heated build environment of this 3d printer, a liquid-cooled hotend is probably the most appropriate. At the time of this writing, available liquid-cooled hotends include:
The Titan Aqua is a complete, direct-drive extruder and hotend. The direct-drive would make it easier to print flexible filaments like TPU. Two titan aquas may work well for dual extrusion in this printer, however, I already have two of e3d’s extruders for bowden set-ups, and I’d like to use them.
The Kraken hotend has 4 nozzles, which will all need to be aligned, and the offsets between them will need to be measured and accounted for. It’s not impossible, but it can be a challenge. I don’t really need 4 nozzles on this printer anyway, so it would be an unnecessary complication.
The Cyclops+ hotend features a 2-in-1-out filament path. 2 filaments can be loaded into this hotend, but there is only 1 nozzle. Every time the extruded filament is alternated during a print, melted material must be purged out of the melt zone, resulting in wasted material in the form of purge blocks. It is best to use 2 filaments of similar melt temps when printing. Not a problem for ABS and HIPS, but could be a future limitation.
The Chimera+ hotend has a 2-in-2-out filament path, so no purge block is needed when switching between filaments during a print. I will need to align the 2 nozzles and calibrate the offset between them, but that shouldn’t be too painful between 2 nozzles. This hotend requires a bowden extruder setup, so I’ll use the 2 extruders I already have. I’ll just need to figure out where best to place the extruders, so they aren’t damaged in the heated environment, and the bowden tube length isn’t excessively long.
With the chimera+ hotend chosen, I started designing the head by modeling something to house the linear sleeve bearings on the X and Y-axis. I put a model of the chimera+ hotend in the assembly early on so I can see roughly how it could fit onto the head and how the X and Y shafts may interfere with the inputs/outputs of the hot-end.
The intent is to design something that can eventually be cast in a high-temp resistant resin using the same guidelines outlined in my design for manufacturing post on the print-mold-cast method. The body of the head will be 2 parts that retain the sleeve bearings and are assembled with M3 screws and nuts. I’m not too keen on tapping small thread sizes into plastic parts, so in the back of the print head, there are pockets for nuts to be seated during assembly. When I print parts for this machine, I will make the screw clearance holes very shallow so they only serve as markers for where to drill on the final castings. To ensure the holes are straight, I’ll use a drill press.
4 tubes go into the hotend; 2 in the middle for water, and 2 on the outsides for filament. The water tubing is relatively stiff, so it will not tolerate sharp or sudden bends. I need to guide the tubes around the axis shaft with a soft radius, so I’ll have to mount the hotend a decent distance below the shaft to provide enough room for a gradual bend around the shaft. I also need to provide strain relief for the heater and thermistor wires coming out of the hotend. Strain relief on the cables will also keep the heater blocks/heat breaks from twisting in the cooling block.
For ease of assembly and maintenance, I’d like to assemble the hotend onto an easily removable part, and then mount that part onto the body of the head. I’ve designed the base head so that it must be installed/uninstalled with the entire gantry disassembled. However, the hot end and its appendages can be serviced or replaced without breaking down the gantry at all.
I’ll likely add screws and nuts to secure the hotend mount onto the base head though I haven’t yet decided exactly where. The screw placement will depend on how I implement an auto-tramming feature. Auto-tramming uses a sensor or multiple sensors to determine how parallel the build surface is to the tool head, then automagically adjusts the z-axis as needed so that the bed is level. Ideally, I’d like to put a piezoelectric sensor or a force-sensing resistor (FSR) on the head somewhere so that when the nozzles of the hotend touch the bed with enough force, the slight deflection in the hotend mount will trigger the sensor. I’ve got a lot of homework to do to figure out how feasible that plan really is. I don’t want to put so much force on the hotend that something is permanently damaged. I also don’t want to make the mechanical parts so loose or flexible that printing accuracy is jeopardized. Both of the previously mentioned sensors are sensitive to temperature swings, which could result in false triggers unless I can insulate the sensor from the heated environment. The alternative to mounting the sensors on the print head is to mount multiple sensors on the bed. I’ll revisit auto-tramming implementation when designing the z-axis later.
I’m not sure how much clearance I need to design into these printed parts for proper fit in the end. I’ll be printing them with a resin-based (SLA) printer for tighter tolerances and higher accuracy than a filament-based FFF(Fused Filament Fabrication) printer. But I don’t know what all the post-processing, molding, and casting is going to do to those tolerances yet. I’ll undoubtedly be putting a few coats of Krylon Acrylic Crystal Clear Coat on the printed parts after a bit of sanding. I may be putting a primer on the printed parts before the Crystal Clear but I’ll need to run some tests to see exactly what post-processing is necessary and how that post-processing will affect tolerances.
For some printing materials, part cooling is necessary to cool extruded material right after it is laid down on the print for cleaner prints. PLA and PETG are two filaments that require part cooling for good prints. ABS filament, which is the primary filament I intend to print with, does not require part cooling. I’ll still add part cooling for PLA and PETG. On many printers, printed material is cooled by a small fan mounted to the head, which blows air just below the nozzle of the hotend. Due to the heated build environment, a fan mounted on the head will not be very effective, so I will try a Berd-Air remote air-cooling system. The Berd-Air uses an externally mounted air pump to push cool air through some tubing and a small metal pipe. The end of that small pipe is bent to form a ring around the nozzle of the hotend. There are holes in the pipe ring to allow cool air out and cool the extruded filament as it is printed. In a forum post, someone mentioned it takes some time for the Berd-air system to blow cool air in a heated build chamber which makes some sense. On printer start-up whatever air is in the tube is going to be warm from the heated environment. That warm air will need to be pushed out before cool air starts coming out.
I do worry that the hotend I’ve designed this head around may be discontinued at some point, or may not be as reliable and functional as I’d like. That could happen with any hotend(s) I choose. The way that I’ve designed this tool head, switching to a different hotend solution will not be a simple swap. Instead, I’ll have to completely redesign a new tool head assembly that will fit on the same gantry and still be able to print the same build volume. Out of curiosity, I put a couple of titan aquas in the head assembly to see roughly how it could affect the head design. For flexibility, I’ll need to design the enclosure around the build area with enough space for a larger head assembly. 2 Titans aquas may fit more compactly on the gantry if I flip the gantry upside-down from the optimal orientation for the chimera+. With the gantry upside-down, the stepper motors on the titan aquas can be seated below the X-axis shaft instead of in front of it. Or I can leave the gantry right-side-up and mount the hotends with the steppers above the x-axis shaft, provided the nozzles can still sit lower than the rest of the head.
While future-proofing and serviceability are absolutely important to me as I’m designing this printer, I don’t know what I don’t know. Maybe the chimera+ hotend will be awesome forever. Maybe a new, even better hotend will become available. Maybe I’ll have to figure out how to implement air-cooled hotends in a heated build environment. There comes a point where all this sweating over “what ifs” becomes a hindrance and I’m just borrowing trouble and not moving forward. For now, I really like the head assembly I’ve designed. I’m satisfied with the feasibility of changing the head to accommodate 2 separate hotends. I’m not going to fully design a new head for 2 separate hotends right now, but I’m confident that I can do so if needed. Instead, I’ll move on to the bed assembly, and designing the rest of the XY gantry.
Air Cooled and Water Cooled Hot End
Direct Drive vs Bowden Extruder Guide and Calibration Tips
E3D Kraken - Multi-Nozzled, Water-Cooled, Bowden-Fed Extrusion
I’m using a 300mm x 300mm high temperature, AC (wall) powered heated bed from E3D for this printer build, as opposed to the more commonly used DC (power supply) powered beds. The AC powered bed will reach ABS printing temps and beyond much faster than its DC counterparts. I acquired a 300mm x 300mm high-temp bed from e3D some time ago and found it to reach 120°C in less than 1 minute as opposed to the 10 minutes it would take for the 12in x 12in DC powered hotend to achieve the same temperature. I haven’t used that particular DC heated bed for several years, so my memory is a bit fuzzy on how long it took for that bed to heat to ABS temps.
E3D recommends putting a sheet of borosilicate glass on top of the heater, and not printing directly on their heater. Borosilicate glass is more thermally stable than other glass, so it won’t expand/contract or fracture with temperature changes as much as another type of glass would. A flat borosilicate glass surface will not warp or change shape when heated. I’ll clip a 3mm thick sheet of borosilicate glass on the bed, which I could print directly on, but that successful prints can be hit or miss because parts can still lift off the bare glass while printing. There are sprays and goops I could apply to the glass before each print to promote adhesion, but I prefer to avoid that method. ABS, PLA, and several other 3D printing filaments print very reliably on a heated PEI build surface, so I’ll just adhere a sheet of PEI to that piece of borosilicate glass. I can interchange the glass and PEI with other build surfaces like a Garolite platform —a fiberglass-epoxy laminate material — for 3D printing nylon if needed.
The heated bed will be mounted on a frame made from 1515 (15mm x 15mm) aluminum extrusion with manual adjustment knobs at four corners to level the bed to the hotend nozzles. I’ll apply thread-locker to the screws holding the frame together to keep them firmly in place. I may change the knob design later, but I’ll leave the lily pad knobs for now. I still plan to put automatic bed tramming on this printer, but I want the option to manually tram/level just in case the auto-tramming is problematic. Bed tramming in the 3D printing context tramming is adjusting the build surface and tool head, so they are parallel to each other across the entire build surface. With automatic bed tramming, sensors are used to detect the distance between the tool head and print surface at multiple points across the print surface. Then the printer firmware adjusts the levelness of the Z-axis by adjusting multiple, independently driven z-axis stepper motors. Below this paragraph is a quick video demonstration of auto-tramming posted by Tony Akens. The printer tests numerous points across the bed, and detects how much it needs to tram/square up the bed, and then fixes it. Initially, the build platform is tilted so that it’s lower in the front and higher in the back of the machine. The tilt is especially apparent when the machine corrects it.
I haven’t decided yet if the bed assembly will move in the Z-axis, or if the bed will be stationary, and the entire XY gantry will move in the Z-axis. I would prefer to move the bed in the Z-axis, as that would be simpler mechanically. However, this is a wall powered (AC, aka mains-powered) heated bed, which can be more dangerous than a DC powered bed if not managed correctly. For that reason, some folks in the 3D printing community suggest keeping wall-powered beds stationary to minimize wear on the bed heater wires and damaged wire insulation, shorts, and/or electric shock. On the other hand, I did speak with an engineer at E3D about this, and he explained it is not a problem for the printers they have designed and use their beds. If the user follows the guidelines, they outline in their product documentation the bed, and the user should be fine.
I have also spoken briefly about the wiring hazards of an AC powered bed in a heated environment with a friend and former colleague of mine, who is an electrical engineer. Let’s call him, The Professor since I learn so much good stuff from him. Anyway, The Professor did not think keeping the bed stationary was the only way to go if using AC power. He did recommend wiring the bed with Mil-spec wire, a more rugged, military-grade of wire, because of its higher heat resistance and durability. At the time of our discussion, I didn’t have a lot of info for The Professor, so no final decisions have been made on details. I’ll be sure to find out the proper gauge and specific type of mil-spec wire to use before I start wiring stuff.
Duet, the company that makes the control board I intend to use, has a few recommendations on moving AC powered beds as well, which I will follow. Duet recommends strain relief on both ends of the wire, using a drag chain to manage the bending of cables, fully grounding the entire machine, and covering all exposed terminals. That all sounds like a good plan to me. Now I have some research to do to make sure I’m using the drag train properly and grounding things properly. After some deep googling, I’ll come up with a plan and then see what The Professor thinks of whatever I come up with. I would really like to minimize the death-hazard of this machine as much as I can. If The Professor is willing and available, I’ll be asking for his recommendations on this printer as a whole to make sure it’s not a giant death-hazard, e.g., optimal cable routing for less signal interference, grounding, reducing electrocution hazards, etc. I know I can’t afford him, but maybe we can work something out, like payment in the form of a completed 3D printer, a huge batch of home-made dark chocolate chip cookies, and a chocolate milkshake.
If anyone reading this has any advice or suggestions on best wiring/electronics practices, or if you want to share any scary experiences with electronics, please share your thoughts and stories in the comments section at the bottom of this page.
Designing this 3D printer has been a struggle thus far. I’m battling perfectionism every step of the way. Note that perfectionism here is not a good thing as it gets in the way of progress. This is not about attention to detail or being organized; those things can exist without perfectionism. The perfectionism I’m writing about is setting high expectations as the bare minimum of what must be accomplished. It’s procrastinating or making excuses for why I can’t get things done because I”m afraid I can’t actually do something to a certain standard. It’s overthinking things and struggling to make decisions, even in the preliminary stages of doing something I care about because everything has to be correct, even from the beginning. If, for example, you’ve ever hesitated a while before drawing on a pristine, blank sheet of paper, then you have some idea of what I mean. For some reason, that first line on the paper is a big freaking deal.
I know this 3D printer will not be perfect but I admit I have high expectations for myself and every aspect of this project. Not only do I want this machine to function well and meet all the requirements I previously outlined, but I also want the CAD work to be great, the manufacturing process to be logical and awesome in every way, and all the supporting documentation to be clear, concise, thorough, and interesting. That’s a lot of stuff to try to get right all at once. I know it’s not reasonable for me to get all that right from the beginning, but I’m trying anyway. Trying is okay, but being stressed, disappointed, even discouraged when I think I’m missing the mark, is problematic. I need to find some way to be happy with my work when it's not awesome, so I can stay sane enough to keep moving forward and improve the next time. I’ve been listening to an audiobook called, “How to be an Imperfectionist” by Stephen Guise. Stephen makes an excellent point about the difference between a perfectionist and an imperfectionist in terms of goals and accomplishments.
“Your floor and ceiling are important considerations in life. Your floor in this case is the absolute minimum you need to be satisfied in life. Your ceiling is your upper potential and wildest dreams. If you’re living in between your floor and your ceiling, you’re happy, because you have the minimum of what you need to be happy. And it goes without saying that you won’t surpass your ceiling (or else it isn’t a ceiling). Perfectionism is a problem because it makes “perfection” your floor. When this is the case, you don’t have a ceiling. The floor is also the ceiling because perfection can’t be surpassed! This setup seems cramped even to me, and I live in a 150-square-foot “micro studio” apartment!”
- Stephen Guise
Late April - early May I started out working on the Cross gantry design and just got a bit overwhelmed with it. I didn’t know where to start. I needed to figure out where things needed to be placed in relation to each other. How is any of the gantry going to be mounted? Are the shafts I have going to work in this application? The whole gantry may be too heavy to support itself. I tried to plow ahead anyway, despite feeling overwhelmed and lost. I just threw a bunch of stuff in the assembly for the cross gantry somewhat haphazardly hoping to be able to make progress after seeing parts together. I spent some time shuffling the parts around in the assembly hoping that would help me figure out what to do. Eventually, I made a subassembly of the drive components and another subassembly of the idling components that would be driven by the stepper motor. I still haven’t figured out the details of how/where the drive assemblies are going to interface the linear guides.
Still puzzled, I went on to design a belt retainer since that was the only part that wasn’t entirely contingent on the placement of the other gantry components. One end of a belt will be held in the groove on the bottom of this retainer. The groove that passes through the top will allow the belt to pass through freely. There will be another very similar looking belt retainer on the back end of this one, retaining the other end of the same belt. This belt retainer concept is explained more in my notes about the CoreXY head later in this post.
After taking a stab at this belt retainer I stopped working on the cross gantry and went back to working on the coreXY gantry. I intend to do a stress simulation test of both gantries once I get them modeled anyway, so they both still need to be completed enough for that test.
I had already designed the coreXY printer head before I had even considered the cross gantry printer. This coreXY head design features the same serviceability as the cross gantry head in that the hotend is assembled and then mounted onto a part that can be easily removed from the rest of the tool head without disturbing the gantry.
I hadn’t read Ryan Carlyle’s book on 3D printer engineering before I started designing this print head. He describes some best practices for linear guide size and spacing, linear bearing count, and linear bearing spacing that I haven’t followed in this design, so I’ll be making several design improvements in the very near future. When I started designing the head, I was just trying to put the shafts and belt retainers as close together as possible to keep the head from getting too enormous.
The head currently has 4 linear bearings inside it, but I will likely remove one because it is probably over constrained with all 4 bearings and will be more likely to bind. The 10mm shafts are too close together (40mm apart currently), so I’ll make them somewhere between 50 - 100mm apart per Ryan’s advice in Volume 1 of his 3D Printer Engineering book. The bearings are also probably too close together on each shaft too so I’ll have to re-read what Ryan wrote about how bearings should be spaced. Igus, a linear hardware manufacturer also provides recommendations on bearing spacing on their website, which I will also reference. It is very possible that the 10mm diameter shafts are not beefy enough for this gantry size, so again I’ll revisit that 3D printer engineering book and find the section on calculating proper thickness over unsupported spans.
I started with a different belt retainer design as well. I had success with the belt holding concept like the orange one pictured so I went with that same concept of having teeth in the retainer that match the belt’s teeth to keep the belt in place. The belt is tensioned by tightening a long screw which pulls 2 belt retainers on opposite ends of the belt closer together.
Soon after I designed the blue belt retainers, I read a blog post by Mark Rehorst about his issues with belt clamps. He describes a belt retaining concept which I believe is similar to my own, however instead of having teeth modeled directly into the clamp, he used another scrap of the same belt and sandwiched the belts together between printed parts. Over time, in the areas of the belt nearest to his clamps, the outer material of his belts would tear and pull away from the metal inner core. I figured mine could do that too since my retainers have the same concept, just a different execution. So I redesigned my retainers to loop the belt inside them like Mark’s follow-up solution, hopefully relieving some of the stress concentrated on one area of the belt. I still tension the belts at the print head in the same manner as I had originally. Tightening the long screws on the right side of the tool head to pull two belt clamps closer together, or loosening the screws to allow the belt clamps to move further apart.
Currently, there are several tapped screw holes on this head, instead of pockets where I can put nuts. I would like to avoid tapping small, fine threads in plastic as much as possible, so I’ll need to come up with alternative solutions for those tapped holes if possible. Perhaps I can get more nut pockets in, or I may figure out how I could use metal threaded inserts. I may even need to reconsider how some of these parts will be made, resulting in redesigning the tool head.
The way this print head is designed, the base head may result in a complicated, 4-part mold for casting. If I make a simple 2-part mold with the parting-line running vertically around the middle of the head, the recess for the hotend mount will be an undercut, making the casted part difficult to de-mold. Perhaps the undercut from the hotend mount recess won’t be too problematic, depending on how flexible and resilient the silicone mold is. Though if I do manage to put nut pockets in the head, they will likely be undercuts in a 2-part mold as well.
On a 3D printing google group I frequently lurk on, I posed my question about potential problems with belt-positioning on the printhead of a coreXY. To recap, I wanted to align the belts on the head on the same vertically oriented plane, but I haven’t seen that done on many coreXY 3D printers that weren’t considered poorly designed printers.
Wouldn’t you know it, Ryan Carlyle himself, (The guy who wrote the 3D printer engineering book I mentioned a million times) responded to my post! Okay, he does frequently post in that particular forum/google group, but I was really excited and grateful that he took the time to read my post and respond to my question. Anyway, aligning the belts on the same vertical plane the way I intend is not an inherently bad design, as long as I keep the belts parallel to the linear guides and perpendicular to themselves in all the right places.
The belt path I had in mind still follows all the parallel/perpendicular rules I previously found described on a couple of websites and blogs. I sketched out my intent for a core XY belt path when I was designing the head months ago. I used different pen colors for clarity but it's likely only clear to myself. The green pulleys (1 smooth, the rest are 16-tooth) interface the blue belt on the same horizontal plane. The red pulleys (again 1 smooth, the rest are 16-toothed) interface the purple belt on a different plane. I modeled more of the gantry in Fusion 360 so it probably makes more sense when looking at the model.
The next thing I’m going to do is figure out the recommended shaft diameter for the 600mm length I need. I may even need to look at other ball bearing-less options for the linear guides, like fully supported shafts instead of the end-supported shafts I have. I can use the 10mm hardened steel shafts I currently have on the Z-axis of a smaller machine in the future. Out of curiosity, I’m going to try running a stress simulation on the CoreXY gantry I have now to see how severely the current shafts will bow. Then perhaps I’ll be able to see what a difference a different diameter shaft or fully supported shafts would make in different simulations. Once the linear guides are finalized, I’ll refine the belt retainers, the printer head, and update the rest of the gantry.
Has perfectionism ever been a problem for you? Have you taken a road trip on the struggle bus lately? Let me know your thoughts in the comments section at the bottom of this page.
Guise, Stephen. How to Be an Imperfectionist: The New Way to Self-Acceptance, Fearless Living, and Freedom from Perfectionism. Selective Entertainment, 2015.
Find this book at www.amazon.com
Carlyle, Ryan. 3D Printer Engineering Volume 1: Motion Platform Design. Groton: Sublime Publications, 2019. Print.
Find this 3D Printer Engineering book at www.sublimepublications.com
Another Interesting 3D printer Failure- How NOT to Design a Belt Clamp
Some things in life can be learned quickly and easily, but doing a finite element analysis (FEA) is not one of those things; at least not for me. FEAs are sometimes also called stress analyses or stress simulations. They simulate the effects of physical occurrences on an object or assembly and report the results. So to determine the effect of constant weight on a shelf, you could run an FEA; specifically a static stress analysis. To determine the effect of hitting that shelf with a baseball bat, you could run an FEA; specifically an event simulation. To determine how that shelf will hold up if you put a heater on it, you could run an FEA; specifically a thermal stress simulation.
I’ve seen plenty of demonstrations of stress analyses and FEAs, but I’ve never actually done one myself. Learning how to run a stress simulation in Autodesk Fusion 360 was a challenge. I started by looking at Autodesk’s publications and videos on the subject while trying to actually do stress simulations in Fusion 360 on my core XY gantry subassembly. I was wholly unsuccessful. I didn't understand any of it and clicking stuff until it works does not lead to successfully running a stress analysis on a complex assembly. Watching the videos on the Fusion 360 site, I felt like I was missing a lot of information, as if I had shown up to take a calculus class, without ever having taken algebra. They were using terms I didn't understand, and making decisions and clicking things and I didn't understand why. I was lost and frustrated.
I started looking at YouTube videos and trying to parse some understanding from different sources while trying to simultaneously set up a simulation in Fusion. The problem is I get impatient when I’m trying to learn something new that I want to use immediately. I want to immediately have the necessary knowledge so I can get back to focusing on what I want to be doing; in this case, designing a 3D printer. I do not want to be sitting through 30-60 minute long videos on YouTube, only to still not fully understand how to run a simulation on my 3D printer gantries. But since this isn’t The Matrix, I need to be realistic about the time and effort involved with learning how to do things properly. And I need to be patient with myself and the plethora of information out there instead of rushing and getting frustrated.
To refuel on patience, I decided to move away from my computer and Fusion 360 so that I wouldn't be tempted to try more “brute force learning”. Instead, I resigned myself to the fact that this cannot be learned in 10 minutes and decided to try focused, hands-off learning after a break. I switched gears and worked on a different project for a couple of weeks. Later, with renewed patience, I popped some microwave popcorn and sat on the couch in front of the big screen TV to binge-watch YouTube videos on stress simulations. Links to the videos I watched are in the sources section of this post.
I managed to pick up enough info from those YouTube videos to try again and get a successful stress analysis. I started with a stress simulation on the core XY gantry with 10mm hardened steel shafts. The stress simulation results include:
Will anything break as a result of the applied forces? A value of 1 or below, will break. Anything above 6 is considered “over-engineered” and can be redesigned with something cheaper/weaker to reduce cost, depending on other criteria of the project.
What areas will be stressed or tensioned as a result of the defined forces?
Where and how much will things bend and displace due to the forces defined? I’ll be paying the closest attention to this result.
I don’t really know what this is about.
What areas will experience strain as a result of the forces defined?
I’m not sure about this one either. I’m guessing this is indicating how much pressure will be put on surfaces that are in contact with each other. For example, how much pressure will the deflected shaft put on the sleeve bearing? If I understand correctly, I could use this to see potential binding in the linear hardware.
The image below is the displacement result for the core XY gantry with shafts for linear guides. The black and white ball in the middle represents the full weight of the head assembly and is positioned where the head assembly’s center of mass is. The head assembly weighs 1097 g, according to the properties listed for that subassembly in Fusion. The gold arrow represents the force of gravity acting on the gantry. The lock symbols show where the gantry would be fixed/mounted with shaft supports on a frame. The visual illustration of displacement is exaggerated for clarity, but the number value is an accurate representation of the maximum deflection of this design. The assembly is color-coded to indicate the severity of displacement throughout the entire gantry. The blue areas show the least deflection, while the red indicates areas where the deflection is greatest. This simulation shows, with my current design the head assembly will dip almost 0.2 mm (0.1824 mm) with the bowing of the linear guides. That may not sound like much, however, the typical layer height for filament-based prints is 0.15 mm or 0.2 mm. The range is 0.06 mm for very finely detailed FFF prints, to 0.60 mm for very coarsely printed FFF prints. Imagine printing something with bowed linear guides. On the first layer, one corner may print perfectly, but as the nozzle prints closer to the center of the bed, the nozzle will be scrapping and jamming into the build surface. That 0.2 mm deflection may also cause the sleeve bearings to bind along the shaft.
I dug deeper into the linear rails that so many folks in the printing community love so much. As I mentioned in a previous post about linear guides, I didn’t want to use linear rails because the Hi-win style rails with ball bearings are not going to last long in a heated environment, and the cost of high-temp resistant rails was very high. I recently found that PBC has ball-less linear rails suitable for extreme temperatures, and they are cheaper than other high-temp resistant linear rails I’ve found. They are still costly at about $90 per 400 mm long mini rail with carriage but I’m willing to save my coins to purchase these if they will work better. So I downloaded CAD models of PBC’s variety of linear rail systems and paired them with 20 x 20 and 20 x 40 aluminum extrusion in Fusion to see what fits together best.
I settled on the mini-rail line, specifically MR15-400. I mounted it on 20 x 20 aluminum extrusion and arranged 3 of them roughly how I’d set up a core XY gantry with these as linear guides. I ran a stress simulation on this linear rail gantry with the printhead assembly being represented by the black and white ball (called a point mass) approximately where the head would be. I used the same weight (1097 g) as the original head assembly, even though a head for this configuration would likely be smaller, and lighter.
This gantry is certainly an improvement in deflection. The maximum displacement here is 0.03 mm (0.02689 mm) with a head that is heavier than it will actually be for this configuration. I modeled a rough head assembly for this linear rail configuration so that I can find a more likely printhead mass. The new head weighs about 237 g.
Below is the gantry displacement with a 237 g head subassembly.
I’m happier with these results. I’ll move forward with designing a new head assembly for the coreXY with linear rails, as well as the rest of the XY gantry parts. The joints between the X and Y axis are just stand-ins for FEA purposes. I’ll design something more conclusive soon. Afterward, I’ll run a new stress analysis to see what may have changed for better or worse.
In the process of doing these simulations, it occurred to me that I could have done these earlier in the design process, before designing belt configurations and belt mounting parts. I spent a lot of time working on things that now need to be completely redesigned. I’m still trying to figure out how best to navigate the design and engineering process, so I’m going to make mistakes and “waste some time”. I’ve learned a lot from this project so far. This month’s lesson ‒ rough out designs in order to run stress simulations early on in the design, before spending time on details. After the foundation of the design is proven to be acceptable, proceed with more design details and refinement, then run another simulation to ensure the results are still acceptable. The trick is going to be figuring out where to draw the line while roughing out the foundations of a design for a useful simulation. For example, the approximate mass of the printhead is critical to a useful stress analysis of the gantry. To get an approximate mass, I’d have to think about how big the printhead needs to be, what features does it need to have and how will those features fit on the head. The more I actually model things, the more accurate the mass will be, but, the more time that will take. So at some point, I have to stop at “good enough” and rely on educated guesses to be most efficient.
I’ll need to get the cross gantry together enough to run a stress analysis on it with shafts and with PBC’s linear rails. I doubt I’ll make a cross gantry with all linear rails since I’d need 6 of them at $90/each. If a cross gantry with a large build area only works with 6 linear rails, I’ll definitely go with the core XY gantry. I’ll play around with different configurations of supported and unsupported shafts and supported rails to see what works reasonably.
How do you go about learning new things or solving complicated problems? Are you always as cool as a cucumber, or do you get impatient, flip over office desks, and smash keyboards in a rage? Or perhaps something in between? Let me know in the comments section at the bottom of this page.
What Is FEM and FEA Explained | Finite Element Method
Simulation for Absolute Beginners — Fusion 360 — And Your Comments & Questions— #LarsLive 61; by Lars Christensen
https://www.youtube.com/watch?v=bZnHQTPP-Ps&t=2s
Lab 9 Fusion 360 Assembly 1; by The CADWhisperer
https://www.youtube.com/watch?v=-EdgxXZV-ZI&t=1s
Fusion 360 Simulation Contact Selection, Basic FEA contacts; by Engineering After Hours
https://www.youtube.com/watch?v=crpNPragG0g&list=PLduj662f8iT0hqlgQcgOgsgnm0lcTb5u3&index=9&t=0s