Some more 3D printing shenanigans: The Up!

Scheduled plug: I’ve added a pile of new things to the Stuff for Sale page! Go check it out.

An exciting new thing came for me in the mail right after Maker Faire, and I think I’ve gotten finished playing with it enough to post.

Back in June, I wrote up the Democratic People’s Republic of Chibikart for Instructables and entered the Make It Real contest. It won one of the first prizes, which is an Up! Plus 3d printer, to add to my flock of 3D printers.

That was in July. I just got it a week ago, due to Instructable’s famed lack of shipping organization. That said, I was greeted with this in the shop last week:

Shiny. Let’s open it up!

I see the thing…

Very shiny (looks like glossy enamel) indeed. And orange, I guess because this was an Instructables-commissioned machine.

The Up is a pretty simple machine. It uses the ‘overhung arm’ architecture where the table is mounted on one moving axis and the head is mounted on another traveling, perpendicular axis. Now, I actually think this is the worst design for 3D printers because not only do you have issues stemming from workpiece acceleration (it’s moving), but the axis inertias are also mismatched.

Furthermore, the arm that sticks out is really flexible – it seems to be only mounted by one flap of sheet metal. It The X movement of the extruder is transmitted as vibration into the arm, and the end can resonate a fair amount – at least 3 or 4 mm of wobble at the end! Luckily the printing occurs very close to the arm’s support, so it seems to retain resolution accuracy. But still, it makes the machine design side of me cry a little. The new Up! Mini addresses this with a dual-rail axis design.

It also has a really really loud buzzer that makes it sound like an overly enthusiastic microwave oven whenever it starts, warms up, and begins/ends a print.

It also comes with a fairly extensive toolkit. Fairly typical 3d printer diddling tools like tweezers and a paint scraper are included, as are build platforms, mounting screws, and a nozzle wrench (but no replacement nozzle). I also got a pair of fabulously pink work gloves, but I’m not sure how they’re supposed to be used (are you supposed to grab the nozzle while hot?)

After I made a klein bottle as the printer’s first test, I let it run overnight on this compound of 5 cubes.

I’ll take a moment mention the UP! software. As far as I can tell, it’s closed source. It offers the usual array of tunable features – layer thickness, speed (just fast, medium, or fine), and infill (loose, dense, solid, hollow…), but only generates a square mesh (while Replicator can generate hexagonal meshes or just line scribble). It also slices way faster than ReplicatorG, but the user interface is a little strange with its button press sequence to do a common task like scaling or rotating, but that is a minor complaint.

What is REALLY nice about it, though, is how it generates the support lattice. This is the one place where I think it beats everything for intelligence, because alot of planning has to go into making a homogenous-material (i.e. not dissolvable or something) support that just falls away when done. If you’re a Stratasys printer, you can just puke support material everywhere because the intention is for said support to be dissolved away in the bubbling cauldron of lye. This is a very different, controlled kind of puking.

That entire cocoon for my cube thing came off in one piece, with absolutely no knifing or prying. Same deal with the “raft” layer. Contrast this with the amount of scraping and filing I have to do to the average Replicator(G) print and it seemed almost magical. I’m not sure how it is able to do this -it doesn’t seem to pause for a temperature change when moving between supports and part, so I think it must just be very careful extruder control to make sure the parts just barely come into contact.

It generates several different types of support – there’s the loose lattice that is used to build up the bulk of the support, then a very fine and nearly solid layer that is the one which makes contact with the part (which makes the near trivial breakaway even more amazing). There’s also a “cross hatch” like option which is used only for the loose layers.

Either way, seriously, what? I wouldn’t mind seeing a more robust support generation scheme for Replicator. Or, even better, maybe I should try hybridizing this guy with our Replicator 1 and make an Uplicator. I’d love to combine the high speed-capable gantry head of the Replicator with the Up’s slicing engine and controls.

There’s also one more thing I like, which isn’t Up-specific but I have not seen it until now: perfboard build plate. I am a definite fan of this. On that giant 4.25″ wide print, there was less than 1mm of lift on one corner of the hexagonal base. In ABS! As far as I can tell, the little holes in the perfboard cause the molten ABS to flow into them and hence achieve a mechanical interlock, way better than counting on the strong force interaction or something with a smooth tape. The Up came with 3 pieces of 2mm-space perfboard. I’m tempted to go buy a 6 x 8 panel from Radioshack and check out how it works with our Replicator.

I did a little more research into it and found that perfboard is now a common build surface, especially in conjunction with “ABS juice” that is made of ABS bits dissolved in acetone and painted on the platform.

The more you know…

After experimenting with the Up, I was determined to tune our Replicator to achieve similar qualities. Most of all, I was out to play with the support generation to see if I can achieve a less tenaciously integrated support lattice. I had been opposed to messing with before since technically it’s not “my” Replicator, but belongs to our research group, but I have literally not seen anyone else use it except me, so who’s gonna complain!?

I began by turning down the support flow rate ratio in Skeinforge way down. I had noticed before that the support material was almost as thick as my part lines, which seemed unnecessary. Next, I increased the density of the interface layers (which seems to drive the density of the support layers) so there was more ‘support resolution’. This did involve figuring out a better system so I could get the raft off the part easier (the denser interface layers appeared to want to stick to the part more than anything else). One more parameter I messed with was turning up the “support gap” ratio, which caused the lattice to be spaced further away – this was increased from its native 0.005 (meaning pretty much touching) to as far as 0.1.

I tested these settings by printing a few overhang dongles using full support and rafts, then when I thought I was at a good location, by test printing a difficult object which required full supports: this figurine on Thingiverse.

I think it turned out pretty damn great. Full disclosure: I tried this on the Up! and it got about 3/4 of the way up before the wiggling of the build plate caused the nozzle to bump the whole print off the machine. Oops. That’s what you get for being non-gantry, I guess.

Chunking off the support was pretty easy, but there were definitely lots of areas where I had to knife pretty hard. It looks like I’m the first person on Thingiverse to even try this print, too.

Additionally, one thing I noticed was that the long runs of very thin support lattice (seen in the first picture of the print) tended to warp and buckle much easier than a thin walled part would, probably because the flow rate is modified so much. On smaller prints it was okay, but I’ve definitely had support detatch from itself and curl up before. Once that happens (it seemed to happen at the base of the model), it is generally very hard for it to pick itself up again.

So I decided to try turning on the “crosshatch” option, which normally in RepG makes a pretty damn solid lattice that is utterly impossible to do anything with, but turning the flow rate down even further. The result is what I will call “point cloud” support. The string of plastic breaks between intersections (or leaves very very fine threads) and basically forms a coarse-, open cell, layer-by-layer deposited foam:

 

The “point cloud” is supported by the interaction of all those fine drool threads  and is remarkably solid if you push on it, but it falls away in huge chunks and the remainder is easier to scrape off. Still not Up! class, but a pretty awesome departure away from having to chisel your part out of its own pupa.

 

I next tried this method on the ultimate test: something I 3d scanned, so is not going to be remotely clean or easy anywhere.

 

The model in question is a Hatsune Miku mini-Nendoroid figure that I own. Now, if you know me, you know that just about the only thing I can be considered a ‘fan’ of is Miku and the Vocaloid media franchise and user community. It’s difficult to explain what it is without sounding like an internet startup guy, hipster and open-source advocate at the same time. In short it’s crowdsourced user-supported synthesized music you’ve never heard of.

Hey, when did I get a 3D scanner?!

It’s not mine, per se, but the IDC lab space has been getting some new toys since the last semester, partially in support of MAS.863, the renowned MIT Media Lab class that teaches fabrication and design skills (which Mechanical Engineering doesn’t have an equal to, by the way). This NextEngine triangulating laser scanner is one of them.

Since this was pretty much my first stab at 3D scanning, I neglected to take more than a few orientation scans (which meant the model had a ton of uncloseable holes in it) and then tried to save it at full resolution into an STL. The result was a 130 megabyte STL file that nothing could open or slice. I had to go back and greatly simplify the polygon count in order for ReplicatorG to even think about working with it.

While the STL just had too many gaps and errors for Replicator to generate a successful tool path (there’s some places that are just totally missing or filled with garbage), the “point cloud” support worked as intended. It looks really messy and disgusting on the outside, but the interior is a regular grid of very fine blobs and lines.

Since the whole point of this exercise is really just to get me a Miku figure clone, I tried it on the venerable Up. It handled the errorful STL wonderfully, though it pointed out to me where each and every one of the missing faces was. This was once again an overnight job…

Miku ended up being 4 discrete solids because of the holes in my model – the scanner couldn’t really capture the detail of the hair joint in the orientations I had it, so the point/mesh cleanup routine chopped them off. And no matter how removable the Up support is, it was still made out of the same ABS and so I had to cut part of her loop antenna structure off to remove the internal support, then reglue it back on.

Her legs are also… uhh, detachable?

But some hot glue fixes both problems.

I’m going to sacrifice this figure by supergluing the joints together so it can stay in one pose, long enough for me to scan it from every orientation. Then maybe I can get a higher resolution and fully one-shot printable model up on Thingiverse.

The bigger lesson here, though, is that I really like the “point cloud” support method. I’ve made so many changes to my Skeinforge settings that it’s not really worth trying to narrate them all here. So I’m just going to upload my slicing settings here (stuff the whole folder into your .replicatorg/sf_50_profiles directory and it should automatically recognize from within Skeinforge.

I’m actually kind of serious about trying an Uplicator hybrid. Pretty much all 3D printers are just a few steppers and a heater or two, so I don’t see much difficulty. They even sell the control board for the Up, but sell the CPU separately…for one hell of a sum. I wonder if that’s just an ATMega chip on a breakout board.

The only issue I see right now is that the Up homes differently than the Replicator – the former homes at “Z maximum” and the latter at Z minimum, necessitating different limit switch placement. In the mean time, Up!

but there’s a catch

With two competent hobby-class 3D printers sitting next to me, there’s something that has been a little forgotten which I will now finally decommission.

Poor Make-a-Bot.

The last time I turned this thing on was in late March some time. Ever since then, it’s been sitting quietly on a table, gathering MITERS grunge. The hardware, Makerbot’s Gen3 boards, and the extruder (a stepper chopped MK5), are generations behind. It was really never meant to be a 3D printer – too beefy and solid, but with my extra-stiff axes and much larger stepper motors I could still hold good resolution even at moderate (50-60mm/s) speeds. It’s really better off as a PCB router or very small mill.

Make-a-Bot isn’t being dismantled. Instead,

I’ve sold it to a hopefully loving new home that will turn it into something else awesome. Bye Make-a-Bot :(

Ruminations About the Next 3D Printer

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