Wednesday, July 15, 2020

The PEEK Performance Project Extra Part: Tips for your own HT printer

Tips for your own HT printer

Okay, I honestly don't know why you sat through 6500 words of my rambling. Maybe you thought it was interesting, in which case I hope I gave you an entertaining and engaging read. Or maybe you just felt bad for me, in which case I thank you for your sympathy.

I'm willing to bet, though, that some of you are reading this to try and make your own high temp printer, and you're here for guidance. In that case, I'll try to give a few of my best tips that I've learned over time:

  • Be comfortable with all aspects of your printerwhether that's mechanics, electronics, firmware, materials, etc, etc. Or, study a lot and make yourself comfortable. An HT printer is an extremely involved project and you'll likely be touching every one of these subjects, and you need to know how to work with them when it comes time.
  • Start with a great base printer. Not every printer is suitable for high temp use - bedslingers are (sorta) out, printers with lots of printed parts are out, printers you can't enclose are out, etc, etc. You want a good, solid, base printer with a minimum of printed parts and a good enclosure.

    Obviously, you can design this yourself, and in fact that gives you lots of advantages - being able to easily incorporate bellows, for one. However, if you do go this route, be careful not to have heavy reliance on printed parts. Keep as much of it metal as possible.

    Similarly, if you're going to modify an existing, commercial printer, look for a Z-bed printer with lots of metal and a minimum of plastic.
  • Minimize your enclosure size. The smaller the enclosure, the easier it is to heat and the less power you'll need for your chamber heater. Z-bed printers are ideal for this, since you can build the enclosure directly into the frame. Bedslingers, not so much.
    This is also why I generally don't recommend large-format high-temp printers to everyday hobbyists. My 1200W is already running close to the limit of a standard US outlet (1650W). Trying to heat a printer twice as large in each dimension, and therefore 8 times larger in volume, would take way more power than a household circuit can provide.
  • Narrow your focus. I know, it's really tempting for us as enthusiasts to try to build a printer that can print at 200mm/s with 9k mm/s2 acceleration with all of the bells and whistles, but the goal here is HT, not a machine that would make Voron owners proud. Stick with the basics. You don't need a magnetic spring steel sheet or an ABL probe for example - a traditionally leveled glass plate is good enough.
  • Don't be afraid to run certain parts above their temp limits, if they're cheap and easy to replace. 2-3kg of PEEK costs about as much as your whole printer already, so tacking on the cost of a few tiny consumable parts doesn't make that much of a difference. If you can get a fan rated for 90C for 5 bucks, don't be afraid to run it at 110C and just replace it when it dies (and it will). Of course, the exception to this is if it becomes a fire hazard when it fails - a heater cartridge, for example.
  • Be prepared to do things over quite a few times. Lots of things aren't going to work the first time you try it. Expect that there are going to be a few times you'll have to tear out that part you spent a week installing, and redo it all from scratch.
  • Don't give up! It's not an easy project, but put enough work into it and you'll get it figured out!
Good luck with your high temp printer project!

The PEEK Performance Project Part 5: PEEK, and redemption

Several months ago I was contacted by /u/Ggalisky about a a project where he had extruded PEEK filament with a Filastruder, and was looking for testers. (On a side note, Ggalisky has also built a DIY HT printer, one much more impressive than mine - though it also cost quite a bit more! Go check out his project as well!) I figured, this was a pretty opportunity to jump back into PEEK, so I took him up on his offer of a couple small coils of PEEK to test.

PEEK: The second attempt

Armed with all of the experience I had built up as well as the ungodly power of Nano Polymer Adhesive, I tackled it again and this time went ham with the temperatures.

For the first print, I chose a little spur gear this time. It should prove to be pretty easy for any filament, being small and flat.

Hey, that looks pretty good! There were gaps in the top because of too low of an extrusion multiplier, but it didn't warp at all and the coloration was excellent throughout!

Picking it and playing with it, I could also feel none of the creaking present in some of my older prints. This is looking promising!

You know, the Ultem Marvin on my keychain has been looking kinda lonely lately.

And another great looking print! I was particularly worried about coloration here, being a more complex print with overhangs, but this time the entire print was consistently tan and opaque.

This time, I did have to turn the chamber temperature up to 110C. 90C was fine for the earlier print because of how flat it was, but this one is quite a bit taller.

Let's try something a little harder:
No sweat at all. The printer ate the gcode and spit this out like nothing.

Maybe it's finally time.

And there you have it. 9 months in the making, the humble little Maker Ultimate I bought on clearance for $320 has finally become PEEK Performance.

So where are we now?

PEEK Performance has now seen 901 hours of printing at the time of writing. In the time, it's eaten about a quarter kilogram of PEEK (okay, PEEK is expensive, alright?) 2kg of Ultem, and the rest has been PC and ABS. It's proven astonishingly reliable: during those 900 hours, the only part failure that's occured is when a Molex Microfit inside the chamber deformed enough from high temperatures to lose connection.

Max temp on the hotend is still 450C. Max temp on the bed that I'm comfortable using is now 230C, though E3D seems to say that 250C is passable for short periods. 

The chamber is...well, it's a tough question. Under the chamber heater power alone, it reaches 124C. With a 230C bed, it's enough to bring the chamber to 138C. However, I would not in any circumstance consider using the chamber at 138C, because at that point I become too nervous about my parts melting.

And also, that requires the full 1200W, and my electricity bill has already been raised enough.

No, the motors haven't failed. No, the fans haven't failed. No, the belts haven't failed. No, I don't understand why either.
As I've gotten better at using PEEK, I've also started sparingly incorporating it into some actual functional roles - shown here is that same PEEK fan shroud I'd been trying to make for months. Key word is sparingly. This stuff still costs $500/kg!

As for Ultem, well, it's become practically easy. I can do medium-large parts in Ultem on a routine basis, and have used Ultem in quite a few printer parts and other project parts already. Getting to this point wasn't easy, but we're here now so I might as well take advantage of it!

This entire project has gone so much more successfully than I ever anticipated. Printing PEEK was one of my interests, yes, but it seemed so much like a pipe dream in the early stages and I never expected I'd actually be able to reach this point. Who knows what else might be possible!

So where do we go from here?

Oh, this is nowhere near done.

Vision Miner had a guideline a long time back that basically said, if you want to do large solid parts in PEEK, you need a 180C chamber. That honestly seems about right - I've been doing PEEK at a 110C chamber still, and I can't do anything larger than 100mm or so in a single dimension without significant warping. 180C is a stretch goal, but 150C is my next target. 

To do that, I'm going to need several significant changes.

The belts I'm running are surprisingly still the stock Gates belts that came with the Maker Ultimate, supposedly rated for just 80C. 110C or even 120C still doesn't seem to kill them, but I have a feeling 150C will. I'm going to switch them to Gates EPDM belts rated for 135C, so that hopefully at 150C they'll survive (and I'll still treat them as a consumable).

Same thing with the bushings in the sliderblocks. The current polymer bushings seem to be struggling a lot at 120C. I intend to replace them with sintered bronze bushings.

The hotend fan is likely not going to survive. I'm slowly working out a way I can fit watercooling into this printer, and I'll be trying to move the hotend to be watercooled. While we're on it, might as well watercool the motors too. 

And finally, I'll need much heavier duty insulation. Lots of heat still escapes out of the metal frame of this printer. If I could find a way to insulate all of the walls of the printer, not just the ones easily accessible by removing the panels, it would do worlds for heat retention.

One day, maybe in the distant future, I may even try printing PBI. Who knows...

It's been a long road, and there's still quite a ways to go. But the possibilities are endless, and I'm looking forward to exploring as many as I can.

Final costs:
Total cost of printer: $820
Total project cost: $1125

Extra: Tips for your own HT printer

The PEEK Performance Project Part 4: PEEK, and the problems start

You know, if I'm gonna be doing this thing I'll have to eat this crazy $600/kg cost at some point.

I buy 250g of PEEK for $150. That hurt.

PEEK: The first attempt



It came in on my birthday! How nice!

The 3D printing discord had been talking to me about printing a low-poly Pikachu, named the PEEKachu, for a while now. So, that's what I decided to do as my first print. 390C hotend, 160C bed, 90C chamber, and let's go!

(Side note: I learned here that PEEK extrudes as a translucent gold, very much like Ultem, and solidifies an opaque tan. In fact, the first time I loaded PEEK I ended up purging way too much, because I thought what was coming out of the nozzle was still Ultem.)

That turned out...surprisingly good, actually! The geometry looks accurate and the surface were smooth. Overhangs weren't bad either.

That being said, there's some pretty odd coloration throughout the print. The PEEK we know from pictures and ads is a solid, opaque tan. Parts of this print looked right, but most of it was the same odd translucent gold as when it was extruding.

What's more, the entire print was extremely brittle. You could hear it cracking just from grabbing it and twisting it gently.

I went ahead and tried to do a MK3S fan shroud to replace the Ultem one I'd been using.

It broke during assembly.

Maybe I'm not ready for this yet. I chalk it up to the still limited 95C my chamber tops out, and decide to put PEEK on the backburner. Guess I'll go back to printing with Ultem, as well as stressing about the impending school year.

You know what's gotten incredibly annoying? This stupid glue scraping procedure. Every time I finish a print, the glue has charred and I have to scrape it off, then I have to go through that apply glue > bake > scrape > repeat process again. It takes 30 minutes just to prepare the bed before each print.

Nano Polymer Adhesive: The Solution to All Problems (no, seriously)

Disclaimer: I am not sponsored in any way by Vision Miner, and they have not sent me any free product. I purchased and paid for all products mentioned with my own money, and these are my true, unbiased thoughts.

No, that disclaimer shouldn't be necessary. It wouldn't be necessary in any other situation. It's just my thoughts on this stuff are so positive that I risk sounding like a shill if I don't state this outright.

This sums up my thoughts on it pretty nicely:

A couple weeks into having started printing, I found out that Vision Miner apparently has a 5ml sample bottle for just $8 shipped. I still couldn't swallow the full $50 price, but for $8 I might as well try the sample.

It came in, and I was surprised at how small the bottle was. By the looks of it, this would only last me a week or so. I went ahead and applied a coating to my bed plate.

Interesting...it went on very thin, somewhat like the consistency of water or isopropyl alcohol. It dried in just a few seconds, and when it dried it turned quite hard and glassy. In fact, I couldn't scrape it back off with a metal scraper. 

Let's try PC first.
Hey, it holds PC down quite nicely. The glue stick scrape method never worked nearly as well with PC. Also, for once instead of yellowing and turning ugly, it stays clear.

Ultem next?
Wow...this is sticking down brilliantly. Way better than the old glue stick. It also pops off nicely when cooled down.

And get this: It doesn't always need to be reapplied for prints. Even for Ultem. I can usually get 3-4 prints on a single application before I need to reapply, and unlike glue stick where reapplication means scraping off the charred and baked on glue, with Nano Polymer you just brush another coat on. I've now suddenly cut my bed prep time from 20-30 minutes every print to 30 seconds every 3-4 prints.

It can't be all perfect, right? I keep throwing more and more filaments at it to see what it does. Ultem 9085, PPSF, Nylon, ABS, even a bit of PEEK once again. It handles everything amazingly well, and for lower temperature filaments like ABS it doesn't need to be reapplied for dozens of prints.

This tiny bottle ends up lasting me from 7/29/2019 to 7/3/2020. Yes, you read that right - it lasted me nearly a full year.

When I finally ran out, dropping $50 on the full sized bottle was the easiest decision of my life.

Parts purchased: 
Nano Polymer Adhesive ($50)
Total project cost: $1025

The Revenge of the Janky Chamber Heater


Hey, remember the chamber heater we haphazardously mounted to the left wall? Yeah...that thing hasn't exactly been reliable. As it turns out PC is not sufficient for printing structural elements that the heater is blowing 150C air straight at, and as a result the heater started drooping rather badly over time. It got bad enough that I was propping up the chamber heater using a spare stepper motor I had lying around just to keep it from falling down all the way.

Also, let's be honest, 95C is a bit weak when I was originally shooting for 100C. I think we're overdue for an upgrade, don't you?

I'd actually been giving this problem a good bit of thought for months now, since this jank chamber heater never was intended to be permanent. Again, I had the same space constraints, which were proving to be difficult to work around. I went through many solutions - old oven heating elements, toaster heating elements, custom nichrome things - none of them could seem to work out.

The solution turned out to be pretty simple. I found this one PTC heater that was 300W, and just 20mm tall. I drew a quick mockup with this PTC heater stacked with a fan. Hey, this thing could fit just under my bed!

I ordered two heaters and two fans. (I explicitly chose 105C rated fans for this. Treating fans as consumables is all well and good, but I won't say no to higher temp parts when they're available.)

The "PTC" in PTC heaters stands for Positive Temperature Coefficient. What this basically means is that the heater has a sharp drop-off in heating power once it reaches a certain temperature, so that it becomes very difficult for the heater to exceed that temperature. This is very beneficial for safety.

Unfortunately, that max intended temperature was not specified for these heaters on their product page. This might have become an issue if their max temp was, say, 120C, which is not enough of a delta over 95C to bring the chamber temperatures up above it like I wanted.

Luckily, I tested it and they reach about 180C. Bullet dodged!

I finalized the chamber heater design and prototyped it. The fan is purposely offset a bit away from the heater, to avoid overheating the fan. This time, PC should be fine because the bottom of the case is the coolest, and the PC is not coming in contact with any hot parts.

I then tore out the old chamber heater and mounted the new ones here. They're short enough that they leave about 5mm clearance from the bed with the bed in the lowest position. Nice!


Electrically, there were a few new differences.
  • My old heaters were 120W, 24v DC each, and so they could be driven off the mainboard. These heaters are 300W, 110VAC each, and so instead I used an SSR to control them.
  • My old heater fan was also 24v, so it could be driven directly in parallel with the heaters. These new fans are 5v. Why must they be difficult? (Because they were the only ones rated for 105C, Karl) I ended up hooking up a buck converter into the old 24v board output to power the fans.
New chamber heater done! Total heating power = 600W.

I test heated and...whoa, these are really powerful. I underestimated 600W. The chamber temperature display shoots up like a rocket, and I now top out at about 124C. Without any bed heat contribution!

On the other hand, my printer now draws 1200W peak. (600W chamber, 500W bed, 50W hotend, 50W everything else).

Maybe I should cut down on my household air conditioning use?

Parts discarded: 
Old chamber heater (-$50)
Parts purchased: 
2x 300W 110VAC PTC heaters ($25)
2x 5v 50mm fans ($10)
DC-AC SSR ($15)
Total cost of printer: $865
Total project cost: $1075

A New Challenger Approaches: The BMG extruder

Throughout most of this time I kinda forgot that I was still using a genuine BMG made from SLS nylon. Bondtech rates their nylon for a 100C max temp.

After the chamber heater upgrade, I started getting weird striations in my prints that looked very obviously extruder-related. After a little bit of investigation, it turns out the idler arm on my BMG had significantly deformed due to constant exposure to 100C+ ambients. 

Now, I like genuine parts. I try to buy genuine parts whenever I can, to support the developers. But what am I supposed to do when the genuine part can't support the use case I have in mind for it?

Somewhat reluctantly, I bought a cloned, all-metal BMG.
It actually seems very well made and quite reliable. There was a slight hiccup where the clone was just a bit thinner than the original, which I solved by stacking a washer in each screw hole between the extruder and the back mounting plate.

Parts discarded: 
Genuine BMG (-$80)
Parts purchased: 
Cloned, all-metal BMG ($35)
Total cost of printer: $820
Total project cost: $1125

Part 5: PEEK, and redemption

The PEEK Performance Project Part 3: First Prints in Ultem!


The day is here! I took the package from 3DXTech that I'd been eagerly awaiting in, and threw it into the printer. I preheated the printer to 370C hotend, 160C bed, and 160C chamber, and hit print.

It's extruding!
It's printing!
It printed!

It's not pretty, but you know what? We'll go ahead and call that a success!

I wondered, though: in all the Ultem prints you see in promotional videos and stuff, they're colored this translucent golden-brown. How come my prints are rough, opaque, and tan?

I increased the temperature by 20C to 390C.

Nope, still tan. What's more, this time it started warping, so I redid the bed scrape procedure and added a brim. I guess Vision Miner wasn't kidding about having to reapply the glue every print.

I decreased the temp for the next print to 350C.

Jam.

Okay then. Back to 370C it is.

This is even worse now. wtf?

What's more, just removing it from the bed caused it to snap. Ultem should not be behaving like this.

Remembering that Nylon sometimes takes on a rough texture after absorbing moisture, I decide to throw the spool into the oven for a couple hours at 220F.


Wow. That looks much better.

That's lesson #1: Ultem really hates being wet. Dry it, even if you've just taken it out of the spool.

Time for a Benchy.

Hey, that looks great! Except I'm already seeing traces of the tan bubbles coming back, and I only dried this filament 3 hours ago!

Lesson #2: Ultem is really hygroscopic. It absorbs enough moisture from my relatively dry household to become unprintable in mere 5 hours. From this point on, I took to drying my filament before every single print.

Ah well, I guess that's what you have to live with when you print Ultem.

I played around with Ultem a bit longer, did a short stint with selling some MK3S fan shrouds, and got pretty good at Ultem. The final print temps I settled on were 380C hotend, 217C bed, and 95C chamber. 
This was not a cheap print. And yet, I never got around to installing it, and it's now misplaced.

The PEEK Performance Project Part 2: Aiming for Ultem

The first high temp filament I decided to print was not PEEK, but rather Ultem 1010. Ultem is the brand name for PEI, the same stuff you probably use on your print bed. Between Ultem there are two different common variants, Ultem 9085 and Ultem 1010, with 1010 requiring higher temperatures. Even so, 1010 is a good deal easier to print than PEEK, requiring lower temperatures and having lower shrinkage.

Of course, "easier" is relative. We're still talking about 370C hotend, 160C bed, and ??? chamber temps, so it's still a significant challenge. (In hindsight, maybe starting with PC would have been easier?)

So let's go back to those 4 requirements and address them one by one.

(The following section is not necessarily in chronological order)

1. Hotend

Okay, first order of business is to make sure this thing can even extrude Ultem. We need 370C. Right now we're limited to 265C.

I order an E3D v6 with a copper blo - wait, no, it won't fit.


Instead, I ordered a Microswiss all-metal hotend designed to drop into this printer.


However, that hotend kit only replaced the heatbreak, heatsink, and nozzle, and required that you keep the stock heater block. Being made of aluminum, the heater block still limited me to 300C.

Even more frustratingly, the heatbreak and the nozzle were M7 threaded. E3D hotends are M6. If even just the heatbreak were M6 as well, I could just stick an E3D copper block in there and call it a da...

Huh, neat, someone in Virginia is selling custom titanium heatbreaks. That fit this printer. That are threaded M6. I promptly bought two. 

And I went ahead and ordered an E3D copper volcano block, as well as an E3D PT100 with the fiberglass sleeving. Luckily, this printer already has a PT100 amp board integrated into the controller (the controller is an Ultimaker 2 mainboard clone).

As it turns out, the custom heatbreak has an 8mm shank and the stock cooling block (the purple-ish flat aluminum piece above the hotend) has a 7.8mm hole. Not to worry, the seller included an 8mm reamer.

Those blue streaks? Apparently heating the block to 450C turns it gold, except where your fingers have left fingerprints, which turn blue instead. I'm going to use this fact to paint a butterfly on my next block before doing the first heating.

Now we're in business.

Parts purchased:
Microswiss hotend kit ($60) (discarded: -$60)
Virginia special (tm) titanium heatbreak ($20)
E3D copper Volcano block ($35)
E3D copper Volcano nozzle ($20)
E3D PT100 $20)
Total cost of printer: $570
Total project cost: $630

2. Heated bed

The E3D bed is expensive, so let's save that as a last resort. What, the 3M adhesive won't hold at 200C you say? Nah, 3M says it does, so it must be fine.

I ordered a 500W, 110v silicone bed heater, and stuck it to the bottom of the aluminum bed.


Hey, look at that! It got to the temp I wanted to, and rather quickly at tha - crap, the heater's fallen off.

I spent about 3 days trying to get this thing to stick, applying and reapplying adhesive 5 or 6 times. If you know 3M 467MP, that's not a friendly process. Finally, I decided that it's not worth it, and ponied up for the E3D heated bed.

To my dismay, I found that the mounting pattern for the E3D bed and the stock Z stage are entirely dissimilar. What's more, the E3D bed is meant to be mounted on fixed PPSF standoffs, not screws, in order to limit the heat transfer into its mount. Since I wasn't planning on using a bed sensor, this would have left me with no way to level the bed.

To solve this problem, I added another intermediate aluminum plate (a scrap Prusa i3 carriage) between the bed and the stage. This plate has mounting holes for the E3D bed already, and I drilled new holes into it to fit the 3-point leveling system of the stock Z stage. This solved both mounting and leveling - now, to level the bed, I level the plate under it.
That big orange thing coming up next.
Damn, this is a nice bed. Why didn't I do this sooner?

As it turns out, sometimes the easiest result literally is just to buy whatever solution is available on the market. DIY is cool and all, but there are just some things that aren't worth doing.

Parts purchased: 
500W 110V silicone heater mat ($40) (Discarded - $40)
DC-AC SSR ($15)
E3D HT bed ($110)
Borosilicate plate ($20)
Total cost of printer: $715
Total project cost: $815

3. Heated chamber

This is the part I'd been dreading. Commercial, hobbyist-level chamber heaters don't exist. I'm on my own for this. I could sorta get an idea for what might work based on what Stratasys uses, but those are $50k+ machines the size of a fridge. This is a $320 desktop printer. Could I really copy them?

What's more, I wanted to avoid a draft if at all possible. In my mind, a hot draft was still worse than no draft. 

And finally, I had my space constraints to worry about.

I settled on figuring out a way to mount two flat heatsinks vertically facing the build volume, one on either side of the build plate. I'd then stick a silicone heater pad on the back of each of the heatsinks. In my mind, the heatsinks would radiate heat inward towards the build volume, and heat the build volume and chamber without needing to circulate air.

That fell apart on the first test. After I stuck a heater pad on the back of a heatsink and tried to heat it outside the printer, it was radiating practically zero heat outward from the fins. As it turns out, heatsinks aren't radiators. Who knew?


Instead, I ended up with a different approach using the same hardware. I took both heatsink-and-heater combinations and sandwiched them together, with the fins aligned. I then mounted a fan on one side of them and had it blow through both heatsinks, hopefully transferring the heat into the air. Finally, I added a ramp on the other side to try to guide the draft away from the print volume as much as possible. Total heating power = 240W.

Importantly, this chamber heater is a recirculating heater, meaning it intakes already hot air from inside the chamber and makes it even hotter before pumping it back into the chamber. This is in contrast to a heater that draws in cool air from the outside and makes it hot before pumping it into the printer.

Why? With a heater that doesn't recirculate, your chamber temperature is essentially limited by the outlet temperature of the heater. Drawing in cool, room temperature air from outside, the outlet temperature seem to top out at just 71C (I tested this).

However, if you're drawing in hot air that's already at 70C, that becomes a different story. The amount of heat you dump into it could raise it a few tens of degrees, and your outlet temperature becomes 100C instead (wild guess).

I mounted it very jankily to the left wall of the printer, stuffed into the narrow space between the bed and the enclosure panel. This looks...safe, right?

Parts purchased: 
2x big flat heatsinks ($20)
2x 120W heater pads ($30)
High-powered axial fan ($20)
Total cost of printer: $785
Total project cost: $885

4. Bed adhesion

So as it turns out, using an Ultem build plate to print Ultem isn't ideal for a number of reasons. Below 220C bed temp or so it simply doesn't stick, and above 220C it welds itself down to the build plate. Stratasys customers might have the budget to replace their build sheet every print, but I don't.

Luckily, this part's all figured out for me. I ordered 48 PVP glue sticks and made a scraper. Now, I just have to remember to reapply the glue stick, bake, scrape, and repeat 3-4 times between every print.

Parts purchased: 
48x PVP glue sticks ($10)
Total project cost: $895

Housekeeping items

This stock extruder is crap. It's ungeared and it's made of plastic.

Ah, that's better. Still plastic, but nicer plastic.

I also configured and compiled a fresh copy of Marlin 2.0, recently released with much more support for heated chambers. (Thanks, InsanityAutomation!) Furthermore, since my bed was now 110v and I have a 24v chamber heater, I assigned a spare digital pin to control my bed SSR, and hooked up the chamber heater to the bed output on the board instead.

The slotted cooling block has a big hole drilled straight through it to allow air to pass through into the part cooling fan. Since I don't have a part cooling fan, if I left the hole there the hotend cooling fan would just be blowing air at the bed. I stuck a piece of cardboard there to cover the hole up, and later replaced it with a printed ABS piece.

Finally, we need a sensor to control the chamber temperature as well - can't let that run open loop, can we? I stuck a screw-in thermistor into a heatsink, and rigged up a basic thermistor voltage divider circuit linked into a spare analog input.


I then mounted it on the left chamber wall, in a position I thought was reasonable.

Parts purchased: 
Bondtech BMG ($80)
Total cost of printer: $865
Total project cost: $975

Let's test heat! It seems I can reach 450C on the hotend easily (goal met!), 200C on the bed easily (goal met!), and 95C in the chamber...eventually. Also, 95C is significantly above the temperature rating for both the belts and the fans. That's a problem, right?

Part temperature limits

I knew this would be an obstacle I'd eventually run into, and had been trying to figure out how to address it since the beginning.

My fans are rated for 70C. My motors, unpredictable, but max coil temp is 130C. My hotend needs to be cooled to prevent heat creep, and it can't do that with a heatsink in 95C ambients. Normally you'd want to use bellows to isolate the printer's heated zone from its cold zone, but 1. that's patented by Stratasys, and 2. it would be a ton of work to retrofit this printer with bellows.

Time to...


Except, well...no. This weird proprietary hotend/extruder carriage has zero room left for water cooling tubes, and I don't have any space on the back of the printer to mount any radiators or reservoirs either.

The solution is, honestly, 90% wishful thinking. In my experience PLA has been the only filament that's ever encountered issues created by heat creep. Surely with Ultem, it wouldn't soften and jam just because the coldend of the extruder hits 150C. So, I treated heat creep as a non issue and just rolled with it.

And you know what? It's worked out to this day. I've never had a heat creep induced failure.

The motors...well, they're mounted on metal brackets. That are mounted to the frame. That is exposed to room temperature. In fact, when the chamber is at 95C, the enclosure only ever reaches low 60s. The motors having a direct conduction path to such a cold chunk of metal should keep them relatively cool.

And it worked out! They maintain a case temperature of 75C when the chamber is at 95C. 

The fans though, as well as the belts...the simple truth of the matter remains that they're rated for temps that the enclosure has exceeded. I can't wishful think my way out of this one. Instead, I decided on something rather simple - being such cheap parts, I'd treat them as consumables and replace them when they die. Simple as that. (They, uh, haven't died yet. )



With that, all that's left is to order some Ultem and try a print!

Part 3: First Prints in Ultem

The PEEK Performance Project Part 1: High Temp on a College Student's Budget

This is the story of how I raised our household's electricity bill by about $30 per month.

Many people have heard of the material called PEEK. If you've been around 3D printing for a long time, you may remember that old hotends used to have a thermal isolator made of PEEK. People with industry experience outside of 3D printing may also know that PEEK is widely used in aerospace, automotive, industrial, and medical industries, being very desirable for its strength, chemical resistance, and thermal stability.

Somewhat fewer people know that PEEK itself can be used as an FDM/FFF 3D printing material. In fact, some consider it the "Holy Grail" of FDM/FFF 3D printing. They also know there are a few good reasons it's not so commonly printed:
  • It takes hotend temperatures in excess of 400C and ambient temperatures in excess of 100C to print.
  • It costs $500/kg on a good day.
Not too many people print parts that actually demand PEEK's properties - namely, its 250C continuous use temperature or its chemical resistance. You can find filaments like carbon fiber nylon or polycarbonate which are similarly strong, and for general purpose printing (including the very common "printing upgrade parts for the printer") even PLA is often more than enough. I myself had no use for its temperature resistance, and being a college student with a part time job already trying to sustain a very expensive cycling hobby, I really couldn't handle the material or printer cost of attempting to print PEEK.

And that's exactly why I attempted to print PEEK.

The goal: breaking it down

PEEK is extremely difficult to print. It may be the hardest filament to print that currently exists. Yet, similar to ABS or PC, its main challenges can be broken down into a surprisingly simple and concrete set of printer requirements:
  1. 400C+ hotend temperature. We'll say the hotend should be capable of 450C max, to give a bit of headroom.
  2. 160C+ bed. We'll say 200C, again for headroom. (As we'll see later on, turns out this wasn't actually enough, but I'll get into that.)
  3. 100C+ ambients. Really, you just want to push ambient temps as high as you can. (Above 180C or so you can start to forgo the requirement of a heated bed, but for now we'll assume 180C is not reachable.)
  4. Some bed adhesion solution that will make PEEK stick.
That's it! It doesn't take some weird blackmagic printer tuning or a hotend capable of going back in time. It's just a simple, concrete set of temperature requirements.

Of course, that's easier said than done. Let's take a look at what each requirement entails:

  1. 450C hotend temperature.

    This one is fairly easy - lots of commercial solutions already exist to accomplish this. Slice's Mosquito does, as well as Dyze's DyzeEnd X, and both designed to handle these temperatures natively. Arguably the high temp variants of E3D hotends (the plated copper blocks and nozzles, as well as the Nozzle X) are not ideal for this task since they're basically the standard V6 shoehorned into the HT role - but they get the job done.

    So, all I have to do is spend some money, and maybe figure out a mounting solution. No big deal.
  2. 200C Bed.

    There are two ways you could go with this one. One, take the easy and expensive way out and buy an E3D HT bed. Two, spend a bit less and build your own heated bed also capable of these temps.

    Being tight on money, I initially aimed to build my own bed, but it's useful to know that the commercial option was available as a fallback to me.
  3. 100C ambient.

    Here we go.

    100C ambients are...not easy. Hell, 100C is enough to boil water!

    To even reach 100C ambients in the first place without overloading a US 15A household circuit, you're going to need a small and well insulated enclosure. That probably means enclosures for bedslinger styled machines - Prusas, Ender 3s, etc - are out, because they by necessity have to be large in order to clear the bed, and usually to encapsulate the whole printer as well. So, ideally, this would be a box-framed printer where you could enclose just the printed volume.

    At 100C, lots of other problems start popping up. PLA and PETG printed parts are out, and even ABS is going to have trouble (especially if there are local hotspots). Genuine Gates belts are only rated to 80C. Most fans are only rated to 70C. Many electrical connectors are only good to 70-80C, and bearings with plastic retainers could start suffering above 80C as well.

    And finally, 100C is practically out of the question without some sort of active heater for the enclosure. Bed heat will only get you so far.

    We'll, uh, cross that bridge when we get there?
  4. Bed adhesion.

    If you look at some of Intamsys' or Vision Miner's videos on the subject, their initial solution was to apply PVP glue to a glass plate, bake it in the printer for a few minutes, then scrape it with a scraper, and repeat that process a few times. They also go on to say that this method has been deprecated in favor of this stuff:
    They also make some rather bold claims about this stuff - that it makes printing PEEK and PEI and such practically easy, that it works with almost every filament in existence, that it eliminates warping, and that it can cure certain terminal diseases. Okay, maybe not that last part, but color me skeptical.

    They also price it at $50 per bottle. Yeah...no thanks.

    PVP glue and a scraper it is.(As we later find out this decision was a big mistake, but we'll get to that.)


Okay, now that we know what we're after, let's jump in, shall we?

Printer selection

I could say that I planned this all out ahead of time and drew up a CAD, a budget, a timeline, and all of the other things for a formal project before approaching this. Honestly, though, it all started from a meme and sorta spiraled.

At this time, I had been saving money for what was my dream printer for years: an Ultimaker 2. At the same time, I had found this neat little printer on Monoprice called the Maker Ultimate, also known as the Wanhao D6. It was pretty cool: it seemed to have an all metal frame, Ultimaker/Zortrax mechanics, and lots of stuff you'd usually find in much more expensive printers. However, as interested as I was, I couldn't buy it because I was saving money for an Ultimaker!

Then, the open box version went on sale for $320. Then, a certain user in a 3D printing discord I'm part of sent me this meme.

And just like that, I had hit the order button. I need to work on impulse control.


It came in, I did some tests, printed some PLA with it, and decided it was a pretty neat printer. I stuck it on a shelf to add to my growing collection of printers, and that was that.

Until...some weeks later I started giving some serious thought to printing high temp stuff. I realized that this printer was almost ideal to be the base for a high temp printer for several reasons:
  • It was mostly metal, from the frame to the bed stage to the sliderblocks to the print carriage. There were a few plastic parts that wouldn't survive the high temps, but I wouldn't have to replace anything major.
  • It was a small, compact printer with a box frame. It would be easy to enclose and eventually heat - in fact, it has both first- and third-party enclosure options that screw straight into holes already pre-drilled in the frame.
  • Its electronics and power supply were already reasonably well isolated from the main print chamber, instead being located in the bottom of the printer under a panel.
There were still several significant challenges, though:
  • It did not look easy to isolate the belts and motors from the main chamber. Bellows, as would usually have been used, would have been very difficult to install.
  • The hotend was only rated to 265C, and more frustratingly, it was a proprietary hotend in a proprietary mount. It would be difficult to get any high temp hotend into this machine.
  • There seemed to be very little space to install any sort of a chamber heater that will not interfere with the motion of the bed.
We'll tackle those when we get to it. Thinking about things too much tends to discourage me from even starting a project, so the most important thing for me right now was to jump in head first. So, I ordered the enclosure.

Parts purchased: 
Printer ($320)
PEI build sheet ($20)
Total cost of printer: $340
Total project cost: $340

Baby steps: ABS first?

Now, to this date I had never actually even printed ABS well. I had done small things, but medium sized prints always came out warping and splitting. I wanted to see for myself how well ABS could print if I did have some way to trap some heat. The enclosure was on its way, but I got impatient.


Yeah, I know, this is very much not a good idea. Flammable paper and plastic sheets near a 250C heater block is a recipe for fire. Check out the result, though!


I had never produced an ABS print that clean before. Okay, there was a little bit of vertical banding and moire, but overall geometrical accuracy was great and there was zero warping!

So, the enclosure arrived, and having committed to this high temp thing I immediately decided to insulate it right away. Now this printer is starting to look pretty serious.

Parts purchased:
First-party enclosure kit ($110)
Foam insulation ($25)
Total cost of printer: $475
Total project cost: $475

Part 2: Aiming for Ultem

Saturday, August 10, 2019

Calibrating steps/mm: the right way and the wrong way

For a lot of people this post is going to seem redundant, but this is a problem that should have died off years ago but still seems to be around today. So, here today I'm going to try to look at the various ways people try to adjust their steps/mm values on their printers, and explain which ways are correct and which are not.

Background

A long time ago, the agreed upon method to set and adjust your steps/mm value was to print a test piece, measure the dimensions on the axis, and figure out how much the test piece is off on each axis. A multiplier could then be calculated from the difference and applied to the current steps/mm value, and a new test piece would be printed at this new value. After a couple of iterations of this, you would have a nearly perfect test piece and your steps/mm would be assumed to be accurate.

This method was heavily flawed, and over time a new method arose that was both simpler and more accurate: simply take the set of known values and characteristics of your motion system (belt pitch, pulley teeth, motor steps/mm, etc) and calculate a theoretically perfect steps/mm value. As it turns out, this theoretically perfect value in practice is almost always far more accurate than a "calibrated" value generated by the first method.

Why? Essentially what it boils down to is that both your axes steps/mm and your extrusion accuracy affect your dimensional accuracy, and both should be adjusted independently. The first method does not keep them independent, and your extrusion error contributes to your axes steps/mm error.

What happens with Method 1?

Let's take a look at a common scenario today: we just bought a new Ender 3. Out of the box, the Ender 3's XY steps/mm are both set to 80, the Z steps/mm is set to 400, and the E steps/mm is set to 93. As it turns out, the XYZ steps/mm set on an Ender 3 are 100% theoretically (and pretty close to 100% practically) accurate from the factory, but the E is often not - we'll assume this Ender 3 is underextruding by 20%. However, we don't know any of this just yet.

We decide to use method 1, and print a 20mm, single walled test cube with a 0.45mm wall width to start the calibration process.

Not drawn to scale

Something to understand here is that the "path" drawn by the nozzle (shown here by the black line) is not actually 20mm long: instead, the slicer accounts for the extrusion width and subtracts it from the width of the object. That means the toolpath is in fact just 19.55mm long, and the slicer assumes half of the 0.45mm wall width is added to each side; that brings the total width of the cube to 20mm exactly.



Remember how we said we were underextruding by 20%? Well, now, instead of being 0.45mm the extrusion width is actually only 0.36mm. The slicer doesn't know that: it's still going to make the toolpath 19.55mm wide, which now means the overall width of the cube only turns out to be 19.91mm. Quite a ways off.

So now we take that 19.91mm, and see that it needs to be increased by .45% on both X and Y in order to bring it up to 20mm. As such, we set the new XY steps/mm to 80.362.

This is what the next test print looks like.


Because we increased the XY steps/mm by 0.45%, correspondingly, the length of the toolpath increased by 0.45% as well. Now it's 19.638mm instead of 19.55mm. However, we didn't touch the extrusion, so the wall width stayed the same **. Add those values together, and we see that our box is now 19.998mm wide.

It's still not exactly 20mm, but 0.002mm is beyond the capabilities of regular calipers to measure so it appears to us that it's exactly 20mm. Yay! Calibration complete! Right?

Well, let's take a look at what happens when we move beyond test cubes and start printing actual objects. This time, we have a print that's 200mm wide and 150mm long.


Under ideal circumstances, this is what that print should look like. The toolpath is 199.55mm wide, and half of the 0.45mm wide extrusion width is added to each side to make exactly 200mm wide.

Whoops, we're still underextruding. And we increased our XY steps/mm by 0.45%, so instead of a 199.55mm toolpath we get...

a 200.45mm wide toolpath, and an object that works out to nearly a millimeter larger than it should have been.

This is the problem with "calibrating" your axes steps/mm. You can calibrate those values so that you seem to get nearly perfect dimensional accuracy at the size of your test piece (in this case, 20mm), but you start losing more and more dimensional accuracy the farther you go from 20mm. Larger prints will come out oversized, and smaller prints will come out undersized. (The opposite is true if you were overextruding when you calibrated.)

A similar problem exists with the Z steps/mm as well. If you set your first layer height to 0.20mm, but you accidentally oversquish it so that in reality it's only 0.15mm tall, your 20mm tall test print will only come out to 19.95mm. Increasing Z steps/mm by 0.25% will similarly affect dimensional accuracy as soon as you start printing prints that aren't exactly 20mm tall.

Method 2 explained

Let's backtrack a bit and say that for some reason our Ender 3 didn't come with firmware preloaded. We have no factory values for steps/mm, and have to find our own.

What could we do? We could pick arbitrary values such as 50 on XY and 300 on Z and use method 1 to dial them in, but as we just saw, method 1 is not accurate.

Instead, let's look at the motion components. For X and Y, we know we have 2mm pitch belts, and the pulley on the motor has 20 teeth. So, what that means is that for every full revolution of the motor the belt moves 20 teeth, or exactly 40mm. It takes 1/40 of a revolution of the motor to move 1mm.

We also know that the motors have 200 full steps/rev, and given that 1/40 of a revolution moves the belt 1mm, we can determine that every 5 full steps on the motor moves the belt 1mm.

The drivers microstep the motors at 1/16, so every full step is in fact divided into 16 microsteps. The software doesn't distinguish between full steps and microsteps: it just considers 1 microstep a "step". When each of the 5 full steps is divided into 16 microsteps, that gives us 80 steps/mm - which happens to be the same number that the Ender 3's firmware ships with!

The final formula we arrived at is:

((motor steps/rev) * (microstepping)) / ((belt pitch) * (pulley teeth))

This is for a belt driven axis. For a leadscrew driven axis such as Z it's even simpler:

((motor steps/rev) * (microstepping)) / (leadscrew pitch)

Or, you know, if you don't want to do the math just use Prusa's Reprap calculator. It does the exact same thing.

Now, as we know nothing in real life is ever theoretically perfect. We could say that every revolution of the motor moves exactly 40.00mm, but if the belt's actual pitch is just a tiny bit off from manufacturing, you're going to get errors. So this theoretical value still isn't 100% accurate, is it?

It's not.

But it's close. It's reaaaal close.

The manufacturing tolerances on high precision timing belts and leadscrews is quite stringent, and it's far more than we would be able to measure by hand. And as we just saw, if we try to use method 1 to calibrate it we'd be thrown off far more by the error created by even a slight amount of underextrusion or overextrusion than we'd gain in accuracy. If you had some high precision measuring device on your axis that could tell you exactly how much your axis is moving, you might be able to use that to calibrate your axis to a better accuracy than this theoretical calculated value - but most of us do not.

So how do I make my prints more dimensionally accurate?

You...uh...calibrate extrusion. With something more akin to method 1.

It might seem odd to say, but your extruder is the only "axis" on your printer that will get better values with a measure>adjust>measure approach than calculating a theoretically perfect value. The reason for this is that the drive gear will sink its teeth into the filament slightly, which changes its effective diameter by an unpredictable amount. 

Instead, it's better to tell the printer to extrude 100mm and then measure it, and see how far off from 100 it was. You can then use that difference to adjust your esteps/mm. Unlike adjusting your motion axes, this value is not inaccurate because there is no fixed offset such as you would get with underextrusion while calibrating your motion axes.

Conclusion

So there you have it. Hopefully this explained a bit more about why you should calculate rather than calibrate your steps/mm on your motion axes.

Printer manufacturers (looking at you, Monoprice!) please stop using calibrated values. 


* A 20% underextrusion is quite extreme and rather unlikely for an out-of-the-box Ender 3, but it's not entirely unheard of. I chose an extreme value because it illustrates the point better. The same principles apply even if the printer is only underextruding 2%; the effects will just be less severe.

** Okay, the wall width decreased a tiny bit, because the longer toolpath with the same amount of plastic means the plastic will be run a bit thinner. I don't feel like calculating that though.