Poor Make-a-Bot.
(I’m just going to start every post from now on with how terrible shape my projects are in, eh?)
For about a year now, it’s been faithfully producing ABS plastic parts for almost all of my current lineup. Parts that it printed can be found on Landbearshark (chain tensioners), on both Razers (entire front forks and cover plates), very prominently on Deathcopter where ABS joiners are the majority of the structure, all of Pop Quiz 2r2, and like 16 different Chuckranoplan models. It’s also printed off countless random sculptures and weird things I found on Thingiverse.
I liked the fact that the (overly) rigid metal frame meant it could move faster and hold tighter tolerances despite being built like a truck. It had a larger build envelope than most at the time, and so I could do things like make single 8″ wide parts, though not always reliably. But I never installed the mechanical endstops on it, so it was a very manually calibrated machine, and at the time, stepper extruders were still new and experimental – I switched to a hacked version of one after the DC motor extruder died, and it never really showed any of the advantages of a stepper head because of the hardware and software were hacked to be compatible.
MaB was designed in about a week and built over the course of a month or so, and it was a crude copy-paste of Everyone Elses 3D Printer just because I wanted one quickly. It was a decently front-of-the-pack machine when I built it last fall, but it’s definitely showing its age. The open source kit-class 3d printers have progressed significantly since last year, and there are more designs and implementation forks. Fast stepper extruders are now the norm and now twin heads are beginning to enter the mainstream. Interface software like RepG has progressed to being more user-friendly and less full of random bugs. With commercial and open-source control electronics and software as developed as they are, the most I can really do is design and implement better hardware. That should be what I’m good at, and I think it was decently reflected in MaB’s operation. But at the end of the day, MaB essentially amounted to a Thing-o-(Semi-Auto)matic with more metal.
A few days ago, after finishing some structural elements for the quadrotor, my platform heater finally ditched yet again, but this time the damage was more extensive:
The short ended up blowing up the relay board and melted the terminal block. Along with increasingly frequent nozzle blockages, the head stepper seemingly becoming weaker and weaker, and me having finally run out of 3mm ABS filament, I think this was what told me that it’s time to move on.
Time to start a new page in my somewhat underused notebook and throwing down some sketches. I know it’s going to look like a box of some kind, but there’s some things which I’m still thinking about.
RAMPS system vs. MakerBot
I can design all the MechE hardware I want, but it’s going to be useless without the controllers to run it. Recently, I’ve been rummaging through the RepRap Wiki to check on the status of the electronics, from which many designs are ultimately derived.
I’ve come to like the RAMPS system – the RAMPS 1.4 combo shield can be had for about $200 fully assembled with 5 stepper axes on it (!), and it seems to do just about everything I would want it to do, and there is an active user and developer base. However, it definitely smells like an open source project: There are tons of firmware versions and concurrent developmentsfor it, most of which are maintained by a single guy, and all of which you have to obtain and compile yourself, then edit the Arduino sketch to define your machine configurations…. which isn’t necessarily worse than having to edit machines.xml, I guess. But I’m not a linux hacker, and not in a long time will you find me “using” git clone https://github.com/kliment/Sprinter or using Github at all (sorry Nancy), and with instructions as terse as “5. make 6. make program 7. ./sender.sh
“, which are meaningless to me, it’s no wonder the barrier to entry for true RepRap machines is higher.
On the other hand, the Makerbot Gen4 setup is more of a finished product that is plug-and-play with minimum fuss. MaB is in fact a Gen3 machine. The downside? It costs $400. Damn, that’s rough. But again, it also does everything I would need, it’s designed to work with other MakerBot devices, and it seems to work well. Plus, they have the sweet ass-LCD interface board (which RAMPS seems to support at the cost of even more Linux kernel recompiling)
So the real question is what do I value more – $200 on top, or my time spent doing potentially more software configuration and putting up with Linux hacking headaches (i love software, after all). Right now, I’m actually leaning towards RAMPS, since with that $200 I can buy just about all of the mechanical parts I need, and there are enough Linux hackers around MIT since we invented that shit and Reprap operators, to slap me around if needed. The RAMPS board is also way smaller than the Gen4’s individual modules. I don’t anticipate packaging being a concern, but small and centralized is nice.
gantry extruder
I’m sick of the bed-style design.
I’ve definitely ranted about this before – the moving bed design is inherently less rigid due to the need for long unsupported shafts. It has mismatched and non-constant inertia because one axis rides on top of the other, and your workpiece grows on top of it all. If you’re Make-a-Bot, you also have way more inertia to deal with because of the sheer amount of solid aluminum involved. The more inertia in the system, the slower it can speed up and slow down, and the more vibration and overshoot on hard direction changes there is (visible as wavy patterns on the outside of the piece) – I make up for this by having massive stepper motors and very high belt tension.
All of the high-end personal printers like the 3DTOUCH (and other machines from BFB/3dsystems) and every commercial 3d printer ever have the head on a traveling gantry and the workpiece remaining stationary. I didn’t go directly to this design at the beginning because I wanted something up and running quickly and the bed design was what I saw first and the most of at Maker Faire NY 2010. But the writing is now printed in ABS on the wall.
There’s two main architectures of Cartesian gantry that are out there – the conventional series style and the parallel style. The series gantry is essentially the moving bed but turned upside down – one axis is a long bridge that can move back and forth, and the other perpendicular axis runs back and forth across the bridge. While it’s the most common, it does still suffer from the drawback that the mass of each axis is different. If the machine is sufficiently rigid otherwise, this is not really a problem.
The parallel gantry is a little weirder, and I’m going to link to Ilan Moyer, the only guy I know locally who pimps this design like it should be, and who is way more awesome than me. Here’s a good picture of one of his projects. In this type of design, there are 2 parallel X and 2 parallel Y rods, forming a box. The rods are linked using a belt, and transmit rotational power between them. But, they are also linear load bearing rails – the head has perpendicular support rods (non-rotating) that are mounted on linear bearings on the X and Y rods. This design has balanced inertia, and the combination of rotation and linear motion is no problem with a good set of bushings or linear ball bearings. The head is also fully constrained by the crossing of two rods.
In the 3dp universe, the parallel gantry is also known as Ultimaker style because the Ultimaker is the first popularly marketed machine to use it. I’ll be honest: I’m biased in favor of it, because Erik de Bruijn himself visited MITERS last year with an embryonic Ultimaker. I even got him to ride Segfault:
I got to see the design firsthand and pretty much continuously facepalmed the whole time about why I didn’t go directly to it.
The parallel gantry is actually simpler than a series one in terms of part count, but is less intuitive for most people to think about. But it’s definitely making it into the next design. Whatever I end up mounting to it will surely be better than MaB’s giant Y axis carriage which weighs somewhere in the neighborhood of 3 pounds.
chamber heating
This is the big hardware advancement I’m trying to pursue. I’m not sure why it hasn’t happened yet, besides Stratasys being patent hawks about it. Everyone has heated build plates, but the heat from that only really helps for the first few layers. Past that, your part is still being waved around in cold (relative to the extruder) air. This is the number one reason why personal printers can’t achieve large build sizes, because the plastic builds up too much thermal stress. Every once in a while, a layer splits off to relieve it.
I couldn’t even get RazEr’s fork to work until all of MaB was covered in a 55 gallon trash bag and a space heater was pointed into it. That got the bag internal temperature to something like 40C, and even that helped immensely. I know from studying commercial printers that they seem to hold the inside at 75 deg. C or so – in fact, actively fan “cool” the plastic from extruder temps down to 75C. I’m not sure if I want to build a thermally insulated box with internals rated for that kind of temperature (more on that soon), but even walling it off from outside breezes is a plus.
If the build surface is going to be inside a heated box anyway, I’m also planning on ditching the separate PCB heater which I keep having shorting problems with and moving to an indirectly heated surface. Essentially the idea is to blow hot air at the underside of the build surface (which would be some thin aluminum so it doesn’t take forever to heat up), and having the same hot air keep the cabinet at temperature. I got this idea from when I had to pull out one last piece for the quadrotor after the heater exploded – I manually warmed the platform up with a heat gun, which to my surprise took far less time than the heater trace itself and even got it past 100C.
So I think a large surface area of slow moving hot air would be a very effective surface heater. Indirect heating also allowed me to swap out build plates. Basically, just look at my chicken scratch:
The “RGRID” is an anticipated circular arrangement of 25W power resistors. I have found that there is no cheaper option for prototyping and one-off heaters that are easy to assemble than a rail of cheap power resistors. Winding my own nichrome heater grid is difficult (I would need to find and machine high temperature wire support material like mica or ceramics), and stealing one off a toaster or something is not optimal since they’d be wound for 120 volts. So I currently have spec’d out 8 25W 1.5 ohm resistors radially disposed on an aluminum plate with heat sink like fins cut into it. At 12 volts, this should net me a maximum 100 watts of heating power. While using power resistors as high temperature heating elements isn’t really good for them, I can’t imagine this application (100-150C) being any worse than them being run at 200+C for the old extruder designs.
Hopefully the fan will be stationed far enough away from the resistor grid to not simply melt. If I design the RGRID properly, the heat should stay mostly within the region of resistor mounting.
I’m aiming for a 200mm square build surface for now – it won’t be too excessively large until I discover if the idea is scalable or not. The little things marked “height trim washers” are to compensate for the inevitable sag of a huge overhung platform. I might actually try mathing this out and designing the platform arms with a few thousandths of an inch of upward slant at the end such that by the time I mount a fan, a pile of resistors, wiring, hardware, and the build plate to it, it will naturally sag to be flat. But it’s a little easier and adjustable to make the final surface compliant instead.
native dual heads
I really like the new MK7 head from MakerBot – it’s way simpler and smaller than the previous acrylic-based designs. In fact, I like it so much that I’m just going to drop 2 of them on my parallelogantry and call it a day. Experimental dual head extrusion has already been done on Makerbot machines and now they even sell dissolvable PVA plastic to go with it.
Playing around with the MK7 Solidworks models (damn, when did Makerbot get so classy?), I sketched out several ways to integrate two separate extuders into one package, and one way of making a very compact quad head arrangement. It involved machining my own mounts and re-engineering the way the fan cooling worked. This led me to I think briefly about trying to design my own extruder. Not only is the MK7 rather pricy ($200 per unit) and I’d just be using 50% of the parts from it, but it still uses a pretty beefy and heavy NEMA 17 motor. I played around with some numbers to see if I could possibly use a NEMA 14 or 11 – smaller motor, less mass. But I would really only save a few ounces at most, and the MK7 weighs less than a pound. Let me reiterate: anything is better than my giant Y axis carriage.
The sticking point is still the fact that I’d have to dump a very classy $400 on two heads only to re-engineer it anyway. Most of the parts are not available separately, which kind of sucks, but it’s simple enough that I can rig it all myself if needed. During this back and forth design process, I discovered that 5/16″ vented cap screws have a center vent that happens to be a few thousandths larger than 1 .75mm plastic filament, so that’s a potential starting point for the heater mount. In the worst case, I’ll have to replicate the motor mounting/filament guiding block thing separately.
Right now, the plan is still to buy some MK7s, but that could change.
…but where do they go?
The question is actually not as simple as I make it out to be. While dumping some stock extruders on a gantry is easy, the fact is that with chamber heating, anything and everything inside will have to stand continuous operation temperatures possibly up to 60-75C. Most stepper motors seem to be rated up to 50C only, and I’m sure custom high temperature steppers will be way more expensive than I want to deal with.
It is easy to mount the axis steppers “outside” the heated zone, but the head is difficult. With a heated box, the filament has to run all inside the machine – there can’t be a 12″x12″ hole at the top like most current printers. So I’d either have to build facilities for active extruder motor cooling (Peltier devices come to mind) or somehow locate the head motors elsewhere.
One plan I thought up involved making perpdicular, slotted bellows which surrounded the head but allowed freedom of movement in XY. Bellows are relatively inexpensive on McMaster and come in useful widths like 12″ and 24″. This is a mechanically complicated solution, but it makes enough sense in my head and does not seem difficult to implement, but will require a custom extruder design. It keeps the motors on the outside and the bellows trap the internal heat (mostly – the seal isn’t supposed to be perfect)
The other solution is a Bowden Cable feed, which is used on the Ultimaker and a few experimental Reprap builds. This in principle allows me to locate the motor anywhere I want, such as right next to the feedstock reels, wherever they end up.
But while the Ultimaker can let the guide sleeve curve gracefully over from its side-mounted extruder, I might not have that luxury if I have to keep the entire thing internal. I would imagine traveling up the side of the machine and then curving sharply over and downwards to enter the head is quite alot of length (and bending). While the Bowden feed seems to work well at the Ultimaker scale if the extruder can quickly change directions on command, I might have alot more (possibly up to 2 feet) of plastic noodles to deal with. The potential for elastic compression of the plastic in the guide sleeve is much greater, especially if it’s warm.
The ultimate hack-up solution is to use the Bowden feed with the crossed bellows. It might be the case that I find 75 degrees is not necessary to get good prints – or somehow, stepper motors work just fine in that environment.
My favorite plan at the moment is to just mount the motors to the head and have it pull filament as needed, which is the system in popular use, and possibly try and route external air cooling (or dare I say liquid cooling?) to them.
summary
I’m going to buy an Ultimaker kit, wall it off, and stick a heat gun into it.
The bottom line is, if I were to start CADing immediately, it would be a parallel-gantry, dual Conjoined MK7 direct-on-gantry extruder, indirectly-heated bed and chamber machine that runs on RAMPS 1.4. And will probably be mostly black acrylic with 1/4″ and 1/8″ aluminum rigid machine structure inside. I’m not going to start designing right now, however – I want to get some of the parts in hand to measure up and confirm before moving on, and I also need to think of a snappier name that won’t make Bre Pettis go wtf bro.
What does the 3d printing universe think?
Also, at 3050 words, this is my longest post on the site ever…and I didn’t even build anything o_O
The only thing you need to build the Sprinter or Marlin firmware is the Arduino environment. You can run that in Windows and you can also use ReplicatorG as host. No need to boot into Linux.
btw. Have a look at Sanguinololu too.
Okay, since it came with a pile of c/cpp files I assumed some critical part had to be compiled first, but that’s good to know. What’s the most popular Reprap firmware out there right now? My impression is that it’s Sprinter.
All the cool kids are using Marlin these days. From what I understand it is the Sprinter firmware with gcode look ahead so it does not need to slow down for every single line.
Great post! I’m a fan of the Bowden feed system…I’d be interested in seeing how well that works with the bellows. I also like your idea for heating the chamber, and quad extruder? yes please.
You might have better luck with having one wide bellows for one direction, then a second set of bellows that rides in the slot of first. Just thinking about it that seems a bit more logical, and you don’t have to worry about leaking between the layers of the bellows.
“I might have alot more (possibly up to 2 feet) of plastic noodles to deal with. The potential for elastic compression of the plastic in the guide sleeve is much greater, especially if it’s warm.”
What about using a bicycle brake cable? They’re designed to resist compression over distances comparable to this. The diameter should be about right also.
I enjoyed reading your post because I’ve personally shared many of the same thoughts and experiences. Particularly with the Bowden system, I really want to, but am not yet convinced the elastic compression around a bend method can produce the no-cleanup-snap-together parts I am starting to expect out of a 3d printer. At least not till a guru solves that control theory problem for the rest of us. (which is doable…I think)
I want to mention that using a custom heater barrel with only a few thousandths inch gap from the size of the filament will most likely cause flow issues from the thermal expansion of plastic. I couldn’t get anything to work reliably with less than a 2mm diameter for 1.75mm filament. Don’t let me discourage your ideas though. Good luck with your printer!
Matt:
The problem isn’t the sleeve expanding or compressing, but the plastic inside. The Bowden system essentially amounts to pushing a noodle inside a tube, and it works as long as the noodle can be kept sufficiently rigid without expanding or buckling. A plastic thread (especially a hot one) can compress alot if you push on it from one and and it’s 2-3 feet long. Additionally, the less bend in a Bowden cable the better – sharp turns decrease the efficiency significantly. The Ultimaker does well because it has a very short cable that is one monotonic bend the whole way.
Starno:
Yeah, that’s what they make slightly larger drill bits for. If I pursue this route, I’ll just drill out the center of the screw to slightly over 2mm. Seems to be the norm.
From reading stepper motor datasheets, most seem to tolerate a temperature rise of 70-80C *on top of* a maximum 50C ambient, at rated current. This puts the stepper motor temp tolerance band well outside of what I intend to run (60-75C ambient). I think so long as I keep them convectively fanned such that their temps aren’t significantly higher than 75C they can be used directly inside the chamber.
It might be how Stratasys gets away with doing so. But I like to think they have legitimate high temperature insulation rated motors.
I have an ultimaker http://blog.ultimaker.com wicha has paralel kinematics and a bowden cable(and a 20x20x20 cm build envelope), though i must admit that i do have the ocasional problems with it (mostly the bowden cable. but i have yet to try a heated build platform and such (printing with PLA mostly)
ad hey i decided to support this thing developed in my country over say a makerbot or something, not that suprising is it?
I’ll give this Marlin sometime i heard about sprinter but never got around to trying it.
btw electronics should be ramp compatible so it should all work :P
being a programmer who works on linux alot i don’t have alot of problem with git and such things :P
my biggest problem is how much I suck at 3d design though…
for instance I have this huge file 150MB of a F100 airplane but there are some holes in it (unfortunatly the progam they used to export to STL made some errors) and like the inside of the engine housings are missing…
open scad an such things can’t work ith it becouse it’s not a solid (holes etc) and all other programs have speed issues
sorry about all the typo’s, where’s the edit button?
So, what, five stepper driver ICs on tiny PCBs riding on another PCB with some connectors goes for ~200$ these days…? For Pete’s sake, one can get the whole bloody thing for 499$! (www.kickstarter.com/projects/printrbot/printrbot-your-first-3d-printer) *goes away to bang his head on the wall mumbling something about Arduinos and highway robbery in broad daylight*
I vote water cooling. You could run pretty narrow hose + off the shelf(ish) pc parts which all run off a standard power supply. Also, it’s more awesome, though probably more expensive.