Search This Blog

Friday, April 13, 2018

Venturi Flow Meter Testing, Part 3

I installed the new venturi meter and re-ran the previous tests. As a reminder, the goal is to determine the flow rate and pressure drop in the fan adapters so that fans can be selected. The previous venturi had a very high pressure drop across it. My guess is that it's contraction ratio was too high and the flow was detaching in the diffuser section. I designed a new one with a smaller contraction ratio. The printer is/was still having issues when I printed it, so I had to sand the crap out of it.

Anyways, the results are better than last time, but still not good enough. The fan simply isn't developing enough flow rate. I was about 12% short according to the venturi flow meter. This made me go back and have a look at the fan curve. Turns out that, at the pressure the fan is developing (according to the fan adapter's manometer referenced to ambient), the fan should be producing about 2-3 times as much flow rate as I'm measuring with the venturi flow meter. Unfortunately, I have no way of knowing which is wrong. Either the fan is producing far less flow rate and/or pressure than it is supposed to, or the manometers are reading incorrectly. The manometers are super simple devices...the only way they could be wrong is if the static pressure taps aren't actually measuring pure static pressure, which is certainly possible since I have no way of visualizing the flow inside these parts. I think it's more likely that the fan is simply not following its pressure vs. flow rate curve. I checked the input voltage, and it's right around 12.1V when the fan is connected directly (no controller). 12V is the rated voltage and what the curve was generated with. There's some loss through the PWM controller, which is why I've been running the tests with and with out it. So if it's not a power issue, maybe it's a blockage issue. The single phi adapter has a pretty severe contraction in it...perhaps that's simply blocking some of the area. In fact, looking at it from the fan side, it looks like about 1/2 to 2/3 of the area is taken by the contraction, so that might make sense.

I printed and tested a longer version (+30mm) of the single phi fan adapter. Lengthening it makes the contraction less severe. However, this one actually resulted in a lower flow rate, meaning it had a higher deltaP than the short single phi fan adapter. This still doesn't make a lot of sense to me. The larger surface area increases viscous drag loss, but the less severe contraction should have made up for it. Perhaps the contraction is still too severe. It's not worth making it much longer because a blower type fan will be more compact, then, and if these flow rate numbers are right, then possibly more efficient as well. I didn't bother testing this one any more.

Next, I hooked up the mock phi to the single phi fan adapter. The goal of these tests was to tune the restriction plate holes so that, at the same throttle, the pressure reading at the fan adapter tap referenced to ambient (which is also the pressure developed by the fan and the pressure drop across whatever comes after the adapter) was the same as the fan adapter + real phi + pci bracket (no venturi). I had estimated the hole size and number of holes using thin perforated plate theory, so I expected to be close. Turns out it was exactly right (within measurement ability). Nice.

Then I attached the mock phi and the real phi to the dual phi fan adapter, and ran some more tests.

Dual Phi adapter, mock Phi, real Phi with exit adapter
With the real phi in the bottom position, the fan was pushing about 73% of the required flow rate according to the venturi. With the real phi in the top position, the fan was pushing about 71% of the required flow rate. (pretty good balance for first try...will tune it). However, that's through one Phi. Remember that, with the single Phi adapter, it was pushing about 88% of required flow rate. So with the dual Phi adapter, the fan is actually pushing about 70% more flow rate than with the single Phi. This partially supports my blockage theory. However, it's still about 50% under what the fan should be pushing at that pressure. Looking at the fan side of the dual phi adapter, it looks like maybe 1/3 of it is blocked, so maybe it's still a good theory. I tried taking the fan grill off the back, but that didn't seem to make any measurable difference. Taking the venturi off, the fan adapter pressure corresponds to a flow rate of about 180 m^3/hr on the fan curve...no way it's hitting that.

Now, I did not tune the mock phi for the venturi attached, so I probably should have made the mock phi more restrictive so it matches the real phi+venturi. However, if I completely taped off all of the mock phi exits (100% restrictive), then the flow rate in the real Phi only increases about 5-10%, which is still way under the flow rate required. This also supports my fan blockage theory.

I tried taping off half of the bottom half of a single phi fan adapter, and installing it with the real phi and venturi. If the flow rate was the same as with no tape, then 100% of this problem is likely blockage. However, the flow rate dropped by almost half...which actually makes sense, but not given the other results of these tests. Maybe the tape being right at the exit plane is causing more severe blade stall than the adapter with no tape.

Anyways, either the pressure taps are reading some dynamic pressure or the fan is operating below its published pressure vs flow rate curve. I need to figure out which.

Assuming that blockage is the cause of the fan not operating on it's pressure vs. flow rate curve, how can I improve the efficiency of these adapters? Intuitively, smoother transitions/contractions should help, but as the extended single phi tests showed, they do not. Perhaps if the adapters were made much longer, and the area changes very gradual, then it would help, but there isn't room for that in a desktop computer, and the blower fans, which already have a compact exit area, would be better then. When I was doing initial fan selection, I assumed that the fan adapters would be fairly efficient. That may not actually be the case, particularly for a 80x80mm axial fan to a single phi. Assuming the fan is under performing, the efficiency seems to be ok for a dual Phi.

I can do a fairly easy check by hooking the fan directly up to the venturi. I was too impatient to wait for something to print, so I created a long paper cone to adapt from the fan to the tube before the venturi. Lots of tape for sealing.


It should be good enough...essentially no blockage. The result at full power was about 82 m^3/hr according to the venturi, which is about the same as with the dual Phi card setup. This kind of makes sense because only half of the flow is going through the lossier tubes+venturi with the dual Phi setup, and all of it is going through the tubes + venturi here (higher velocity = higher dP), which just happens to result in a deltaP similar to the dual Phi setup. I poked/cut a small hole in the side of the paper near the fan and put the other manometer tube in, leaving the other end ambient. Wiggling it around some (making sure it's not pointed into the flow), this gave me a pressure of about 186 Pa, which corresponds to about 162 m^3/hr on the fan curve. With the adapter and single Phi at this pressure, the flow rate is about 50 m^3/hr, so perhaps blockage is partially to blame, but clearly there is something else going on. Either the venturi is reading about 1/2 the flow rate, or the fan is outputting about half of its spec flow rate. I doubled checked all of my math...I'm multiplying the manometer height change by 2, the venturi equation and conversion factors are all correct, etc. Without the venturi the pressure is about 155 Pa, which corresponds to about 170 m^3/hr on the fan curve. So the venturi seems to be fairly low loss, which is good. But what is causing the discrepancy between the fan curve and what I'm measuring?

I'd need a hot wire anemometer or a pitot tube rake in order to measure velocity directly, so that's out. I can do a static stall test, though. I took the venturi off and taped off the end of the tube that leads to the venturi. I also added more tape to fan -paper cone interface, taped off the hole I cut there, and checked for any other holes. I used the pressure tap in the end of the tube (the original venturi high pressure port) to measure static pressure, with the other end open to ambient. I got about 470 Pa. I felt around for any leaks...there probably were some very minor ones, but wrapping my hands around various parts didn't move the manometer more than about 0.5mm. Besides, the published spec is 607 Pa...my error would have to be huge to be off by that much. Plus, the static pressure tap is basically a perfect pressure tap at this point because the flow rate over it at the end of the sealed tube is 0. This test lends support behind the motor under performing theory. In fact, some of the measurement points seem to fall just below the next fan in the series' curve, so perhaps the variant Nidec made for supermicro is actually closer to that variant. That said, the current drawn at 12 V agrees more with the first variant...

Anyways, I think my static ports and manometers are probably fine. For whatever reason, the fan is under performing by about half. Blockage from the Phi adapters makes this problem worse, but I've already minimized that, so there's not much more I can do about that. I'll take another look at blowers for single Phi setups. IIRC, the smallest blower that could meet the required flow rate and pressure drew about 18W, which is right around what this Nidec axial fan is drawing now.

Another thing worth mentioning: This required flow rate is worst case scenario, which is 45 C inlet temperature and running the Phi at full power. Properly cooled desktops will not have 45 C air inside them. The measured flow rates achieved with the current dual Phi setup are good for ~39 C inlet air. The measured flow rate achieved with the current single Phi setup is good for ~43 C inlet air. I'm really close to where I wanted to be. These adapters should work fine.

The test goals were partially met. I was able to estimate the pressure drop in the adapter + pci bracket for the single Phi setup. Since my measurement error is fixed, the dual phi setup had relatively more error for this because the dual adapter's dP is lower than the single phi adapter. However, I was unable to determine primary vs. secondary flow due to all of the holes in the secondary flow path of the Phi. I've simply scaled the area of the secondary flow inlet assuming a uniform velocity profile, which is not a good assumption, but it's the best I can do. Overall, I can size fans based on these results. However, this is all based on the partially supported but unconfirmed assumption that the fan I was using was under performing significantly, and that I didn't have another test setup error. If I had a test setup error and the fan was performing correctly, then it means all of my flow rate measurements were low, which means that this fan and these adapters are more than sufficient. I need to try another fan to see if it's just this one under performing. If that one also under performs, then either it's common to embellish the published fan curves and I need to add some serious safety factors to the fan sizing formula, or both fans are actually correct and I had some unknown measurement error that gave extremely conservative results.

Actual Phi testing to commence next week...

Bad printer is bad...another painful lesson

I set up a long print for two of the Phi fan adapters. I checked on it every now and then, and it seemed fine, but I didn't look close enough...

Sorry, bad camera angle and lighting. Both have shifts to the right.
What the hell...it's never layer shifted before. There goes about 20 m of filament. The shift was limited to the X-axis and seemed to happen randomly, but repetitively. The belts and motor are fine. I actually used repetier host to send G1 F9000 X200 command and then back to X0 multiple times to see if it was skipping on long travels. It was fine. So it's not mechanical. So what the heck is it. I set up a test case with two 25mm boxes at the maximum extents of the X axis build plate. It printed them fine up to 1cm. I then wondered what would happen if the X-axis limit switch was touched while it was moving to the left on the left side box, so I did that. It layer shifted! It just kept going, but moved about a cm to the right. In fact, it was far enough to engage the 200mm limit on the right half the x axis, so the right side had a layer that was squished in X. This is idiotic design. There is no conceivable circumstance in which continuing to print after a limit switch is engaged is a good idea. With real CNC machining equipment, if a limit switch is ever engaged, it means something went wrong and everything should immediately stop. I can just imagine the carnage if this was a CNC mill, the part was a big piece of steel, and it did this...*shudders*. I keep saying this over and over, but it's shit like this that shows that 3D printers are not precision machines.

As to what hit the X limit switch, I'm not entirely sure, but the only thing it could have been was the filament. The new spool holder is so friction-less that any torsion of the filament will wind more of it off...there was a single spiral of it above the print head when I noticed the layer shifted parts, but it didn't register as a potential cause.

Fix, filament guide:
No idea why there's a line on the top skin. Also needs more
extra prime at the Z seam (top left)

As with most thingiverse things, there's usually something wrong
 with them. This slot was angled wrong.



I printed it at 30 mm/s inner wall, 20 mm/s outer wall and top/bottoms, 40 mm/s infill, 0.3mm layer height. The extruder started occasionally skipping on long infill runs, so I think ~30-35 mm/s is maximum feed rate at 0.3mm layer height. There's a locking cup thing you can print for it, but a piece of tape (with some more covering sticky part in slot) works fine to hold the filament in.

Lesson learned: filament holders aren't just for guiding filament. They're for keeping it out of the way and off of your X axis.



UPDATE: The above didn't help. It did the same thing again. Definitely filament spooling off and forming a loop near the x axis limit switch. Large x traverses seem to promote this behavior. I added a ~6 in piece of teflon tubing to the filament guide with tape. This prevents the filament from spooling off and forming a loop. I printed a holder for the tube that fits into the filament guide's hole that I will install with the next filament switch.


Better than tape

Thursday, April 12, 2018

Good prints again

After applying the slicer software band-aids determined in the last post, the print quality is now adequate at normal speeds.

XYZ calibration cubes are coming out ok at 30 mm/s wall speeds with 0.2mm layer height, and 20 mm/s wall speeds at 0.3mm layer height, now. I printed a benchy at 30 mm/s, 0.2mm layer height, and aside from the text on the back (which is never very legible anyways), it looks great. That's double the speed I was having to print them at earlier.

I attempted to use these settings on a more complicated part, i.e. the double Phi fan adapter. I'm not sure why, but on the larger parts, it can't seem to handle the speed well. The first few cm's of every extrusion on the first layer were missing, so I had to kill it and drop the speed to 60% for the first two layers. I turned it back up to 85% after that. The extra prime helped, but occasionally layers would be under-extruded, particularly small features like small top skins or small profile tabs. Also had some light stringing.


Ignore black cable in background

I'm pretty happy with how it turned out overall, though. It's definitely better than the extended single Phi adapter I printed earlier.



Sunday, April 8, 2018

More under-extrusion troubleshooting

Well, the hot end repairs definitely helped, but not enough. So this under extrusion/blob thing is not all a thermal problem.

Update/summery: I couldn't fix the hardware problem...no idea what it is. I created some software band-aids that result in tolerable prints at higher (normal) speeds. These are presented near the bottom of this post.

I printed a new venturi, but the under extrusion at the start of every layer was present.


The rough look surface is due to the initial under extrusion at the start of every layer. It gradually builds up to the correct line width by the end of the pass, so the Z seam ends up being a ridge with the low side the start point and high side the end and Z-raise point. The initial settings were 0.2mm layer height, 0.5mm line width, 40 mm/s speed, 205C, align Z seam on, but I had to turn the speed down and temperature up in order to prevent gaps in the inner wall. Interestingly, the amount of under extrusion seems fairly random. Sometimes it's almost half a line with, sometimes only < 0.1mm.

In a previous post, I mentioned how I added a spring inside the spring in the extruder to give it more pressure. I later had to remove it because it was providing too much force. I just cut it down about 4 mm and added it back in. I then re-calibrated my esteps, which seem more consistent now. I printed a single perimeter 25 mm cube box.




It is stupidly hard to take pictures of small black objects with a cell phone camera...

The dimensions were basically dead on, so I think the extruder is well calibrated now. Floor and corners looked excellent, too, except for the corner with the Z-seam. The initial under extrusion was present, but didn't look particularly bad. There was a slight (+/-0.05mm?) variation in alignment (stacking) of layers, but I don't think I can solve that without making the printer significantly stiffer structurally. I then printed a 20 mm x 40 mm cylinder with 2 perimeters, 0.5 mm line width, 0.25 mm layer heights, z seam aligned, 40 mm/s (actually 20 mm/s because CURA's outer wall speed is half of "print" speed):


Beautiful layer alignment = great consistency. But the under extrusion at the start of every layer is still present. Since both perimeters' Z seam is aligned, the wall thickness on the seam side of the cylinder is 0.1 mm less than the opposite side, so the under extrusion is about -0.05 mm for this part. It's really obvious when looking at the cylinder end on. It looks like a perfect ring was cut (not in half, just one cut), then the edges glued back together but offset about 0.05 mm. See below picture.


Referencing the above picture, outside perimeter starts at the top and goes counter-clockwise around, and the inside perimeter starts at the top and goes clockwise around. Examining tangents, you can see that there isn't actually much of a bump...it's mostly just missing material at the start of the perimeters.

I reprinted the cylinder 30 mm tall with z-seam random. Everything else the same. The two pictures are of different sides of same cylinder.



If you zoom in, you can see a bump (the end point), then a gouge in every layer for the first few mm that then disappears. That gouge is the initial under-extrusion. It looks like I'm getting excellent consistency after the first few mm. That length varies from ~3 to 15 mm. It seems to be worse on the inside. Again, the bumps aren't as bad as they look...they're normal Z-seam bumps. But the under extrusion on one side of them makes the bumps look terrible.

I printed the exact same file again, but at 195C instead of 205C. They look identical. Same size bumps and the gouges were similar lengths on a per-layer basis...meaning the length of the gouge isn't random. Very odd. Maybe it has something to do with the length traveled prior to start of the perimeter?  Tried another at 185C. Also looked identical, but layer adhesion wasn't quite as good and there was some stringing on the inside. It's unclear why there was stringing. Typically that happens at higher temperature, but I seem to only see it at low temperatures now. I then printed one at 215 C. Comparing the 185 to 215 C...they look identical. Unless you try to pull layers apart, you can't tell one was printed 30 C colder than the other. I think this pretty definitively proves that this is not a thermal problem.

Tried extruding less with esteps and flow multiplier. Didn't seem to make a difference other than slightly smaller dimensions.

Tried running faster, which made the bumps and under extrusion worse as expected.

Tried turning on coasting and turning off wipe, but neither seemed to make a difference to the bumps.

Watched more closely, it looks like most of bump seems to form at start of layer. Not all at end like I previously thought. Retract before outer wall doesn't help, though.

I did a cold pull. Came out clean...perfect little 0.4mm diameter nub on the end. However, the part of the filament that was in the PTFE tube had melted and expanded to ~2mm (the PTFE tube ID), and in doing so had formed air/gas pockets in the filament. I'm not sure if this is normal or not. I've tried two different filaments, both fairly new, and both show this under extrusion problem. One of those didn't before the nozzle clog incident, so I don't think it's necessarily filament related.

The only things different before and after the nozzle clog: 1. different nozzle (same diameter and from same batch), 2. new PTFE tube (tried old PTFE tube, no difference), 3. extruder spring pressure. I've rebuilt the hot end with clean/new parts since then, and it didn't help much. So I have no idea what's causing this.

Removing inner spring from extruder made the problem worse.

I put the spring back and changed the nozzle to the one that I used before the clog (after unclogging and cleaning it well). The nozzle that I had been using looked fine. In fact, there wasn't any gunk on the threads, meaning I seated everything correctly this time. I installed the new (pre-clog) nozzle. Both nozzles' holes look round and unworn (they're basically new). Still under extruding at start of perimeters after a blob.

I did another test (20x30 mm cyl, 30mm/s walls) with retract at layer change enabled, and that helped the blob problem on the outer walls (since the layer change happens at the outer walls), though not really the under extrusion. This is not the same as retract before outer wall, which I'm pretty sure retracts before traversing to the outer wall. Anyways, the fact that it helped a little supports that the blobs are a pressure/oozing problem.

I tried the flow equalization option, but I think that's just for narrow walls because it didn't seem to do much.

I tried turning off combing, which retracts between direct moves to both inside and outside perimeters because it doesn't go around the part. This helped both inside and outside blobs significantly, and also might have slightly reduced under extrusion.

A finer angular resolution STL did not help or hurt.

These slicer settings seem to just be band-aids for an unknown hardware issue though. I am literally out of things to try other than replace the extruder or hot end completely.

But before I do that...

Physically, what must be happening to produce the observed bump and subsequent under extrusion? I already tried to reason this out in a previous post with a thermal argument, but the test results above show it's invariant with temperature, so it's probably not a thermal issue. It does the outer wall, then the inner wall, so the outer perimeter starts on a layer change. Z goes up rapidly, then it starts the extrusion with the first XY move. The blob oozes out during the Z axis move due to internal pressure or gravity, then it there is a filament deficit, i.e. pressure deficit, that is not compensated for and takes some time to overcome. It may also take time to build up pressure again in general, regardless of blob or no blob. It finishes the outer wall, traverses around (combing on) to the inner wall random start point with no extrusion, and then starts extruding again with the first XY move of the inner wall. Why it forms a blob without a Z move on the inner wall, I'm not sure, but it does.

I created a new model. A 50 mm square box with no floor or ceiling. Single 0.5 mm perimeter, 30 mm/s wall speed, z seam aligned on one corner, 205 C, no fancy retractions or settings except default wipe. I then manually modified the gcode for layers 3,4, and 5 to have a 0.5s, 1s, and 1.5s dwell (G4 PXXX) 1 cm from the corners of the 2nd, 3rd, and 4th edges (respectively) of the square of each layer. I kept split the extrusion length up accordingly, so it is not extruding more or less per edge than originally. This test should reveal whether the waiting dwell time is to blame for the blobs, and if the blobs are all of the plastic that is the cause of the under extrusion.

0.5s dwell

1s dwell

1.5s dwell
As you can see, the blobs are clear, as is the resulting under extrusion. The 0.5s dwell one looks very similar to all of the cylinder blobs. The 1 and 1.5s ones are much more extreme...larger blobs = more under extrusion. The 0.5s blob has bad under extrusion (can see part of the bottom/top of surrounding layers) for about 3mm after it, then noticeable (can distinguish from other layers) under extrusion until about 13 mm past it. The 1s blob has bad under extrusion for about 6mm after it, then noticeable under extrusion until about 15 mm past it. The 1.5s blob has bad under extrusion for about 9mm after it, then noticeable under extrusion until about 18 mm past it. I checked the wall width of the 1st edge (no dwell) with calipers, not including the first two layers, which were smooshed. Right after the corner (where z seam is), it's around 0.44mm, but then rises and levels out around 0.58 +/-0.2 mm around halfway down the edge. The regular corners aren't as extreme and are hardly causing any under extrusion, which makes sense because the dwell there is just caused by acceleration.

I printed another one with extrusion multiplier set to 0.78. The under extrusions bad and noticeable under extrusion lengths were longer, and the walls were proportionally thinner, as expected. One with extrusion multiplier of 0.86 fell in the middle of the two, as expected. So this phenomenon is obviously dependent on flow rate. The blobs get smaller with smaller extrusion multiplier, so 0.78 had smaller blobs that 0.86, which had smaller blobs than 1, but the size change was on the order of 0.05mm or so (small).

Conclusions: gravity and pressure cause oozing blobs whenever the nozzle is stationary, which then causes under extrusion because the nozzle is missing plastic. Longer dwells = larger blobs and more under extrusion. Larger and shorter dwells could be caused by longer and shorter travels, which would explain why with random z seam objects, the under extrusion distances changed every layer, but were consistent across multiple printed parts from the same gcode.

What's odd is that lower temperatures should result in less blobbing and oozing because the viscosity is higher, but I didn't find that was the case with the cylinder tests (185-215 C). I tried another one of these squares with the temperature set at 180 C. This resulted in poor layer adhesion and the extruder stepper starting to skip, but it did decrease the size of the blobs and under extrusion lengths slightly (~25-40% shorter). So there is some temperature dependence, but that's not the primary problem.

Perhaps the cooler isn't aimed at the filament extrusion point well enough? I tried repositioning the cooler, but it didn't seem to help.

Tried one with 0.1, 0.25, and 0.5s dwells. These under extrusions and blobs look much like the ones from the cylinders and are probably more realistic travel times. Then I added retractions (60mm/s, 2mm) to layer changes and to all dwells for the first 5 layers. The blobs and under extrusion are reduced significantly. I tried upping the retraction to 3mm, but that didn't help. Also tried upping speed to 80mm/s, didn't help. The blobs are about all about 0.8 mm, so about +0.15mm on either side. The under extrusion is visible, but not bad. Perhaps some sort of coasting would help, but manually modifying the gcode for that would be a huge pain. I figured out how to do a quasi-coast before the dwells easily: I extrude the original amount for the move before the dwell up to 0.8mm before the stop point of the move, then move the next 0.8mm with no extrusion, then stop and dwell. I don't think that's how the coast function works, but it might approximate it. This actually made the under extrusion after the blob worse and the blobs about the same. So I went back and combined the retraction before the dwell with the coast. This makes the retraction speed the same as the moving speed, but that might be ok. The de-rectraction is still 60 mm/s since that's done at a stop. That helped the bump size significantly. Interestingly, longer dwells resulted in smaller bumps, with the 0.5s one the same width as the line width. However, there is under extrusion before the bump now, with longer dwells resulting in more under extrusion before the bump. This is counter intuitive...longer dwells should have more ooze, not less. The gcode doesn't "know" the length of the dwell before it happens, unless it's somehow modifying acceleration due to it. The only way I can think of this being possible is if filament is actually flowing back into the nozzle, which doesn't make any sense. The under extrusion after the bump seems unchanged  I repeated this with 0.4mm coasts. The under extrusion pre blob is gone, but the blobs are now between the no coast and 0.8mm coast sizes. The same trend of smaller blobs for longer dwells is present. I repeated the 0.8mm coast one with the 0.5,1,1.5 s dwells. The trend is continued! The 1.5s blob is almost completely gone, but it's been replaced by bad under-extrusion before and slightly after the blob. So some coast helps, but too much is bad. Impossible to eliminate blob with coasting.

I tried the original short dwells one (no retractions or coasting), but at 50% speed (15 mm/s outer wall speed). As expected, running slower reduced the blob size and under extrusion lengths. Doing the retract (no coast) at 50% speed reduced all the blobs to about +0.07mm on either side of the wall and the visible under extrusion lengths to a few mm (no bad under extrusion). There could be a few reasons running slower helps: 1. less flow rate means less pressure, so less blobbing when slowing/stopping. 2. more time for pressure recovery, so less under extrusion.

Tried a negative prime of 0.1mm on de-retract with no coasting. I kept the original amount extruded over the edge the same. Theoretically, if the bump is happening before or during the dwell, this should make the under extrusion problem worse. But if the bump is happening after the dwell, it will make it better. 0.1mm made no discernible difference, so I tried 0.5mm. This might have reduced the blobs by 0.01mm, but that's within repeatability and measurement error. It did create long gaps in the layers after that, though, as a result of not being primed enough. Thus, the bumps are happening either before or during the dwells (or both).

I then tried one with a 1, 10, and 100 ms dwells, no retracts or coasting. These started at about +0.05mm and grew to about +0.3mm on either side of the wall. With no retract, blob diameter or area appears to have an increasing at a decreasing rate dependence on dwell time.

Conclusions: Part of the blob forms while decelerating to a stop. Part of the blob forms while stopped, with more stop time = more blob. Retraction helps with reducing blob formation during stop, and retraction during coasting helps with both before stop and stopped blob formation. However, completely eliminating the blob and post dwell under extrusion is impossible with software. Some of the low viscosity hot filament will leak out, and if you try to stop it all, you'll end up with under extrusion elsewhere. Perhaps some (between 0.4mm and 0.8mm) coast with a slight positive prime during de-retraction would be optimal, but it seems I can't completely get rid of the bumps.

I tried removing some of the insulation around the nozzle. I had insulation actually covering part of the cone of the nozzle up to the last 2mm or so. I removed it about 1mm above the start of the cone, so it still surrounds the hex part, but isn't on the cone. The idea is that if the nozzle tip can be cooled below the temperature where the PLA is too viscous to ooze out, then it won't ooze out, but still be extrude-able. And since the material is still hot inside the nozzle, once it starts flowing, it doesn't affect adhesion strength. I checked with a thermocouple multimeter, and the DiiiCooler + over powered fan I'm using manages to cool the outer surface of the nozzle to ~110C, while it's about 165C without the cooling (200C set point). However, material still oozes out. Even when I take the fan off the cooler and aim it directly at the nozzle, it still oozes. That's a pretty serious temperature gradient in such a small piece of metal... I must have improved the conductive heat transfer a lot, which may actually be a problem. Before the clog, I may have just gotten lucky and struck a perfect balance between too much and too little conduction and insulation, because it didn't ooze as much as it does now. The only thing that seems to stop the oozing is reducing the internal pressure by retracting the filament 1-2mm.

I did another test cylinder with the following settings in CURA: 205C, 30 mm/s walls, 0.25mm layer height, 0.5mm line width, random z seam, retraction 2mm at 60 mm/s, retract at layer change (only retracts right before a Z move), extra prime amount = 0.4^3=0.064 mm^3, combing off (so it retracts between inside and outside wall), retract before outer wall on (this retracts before the inside wall, which is an "outer" wall), coasting on, coasting volume 0.064. CURA's coasting doesn't retract while coasting, which worked the best for the square part with dwells, but CURA doesn't have that option. These settings resulted in the best cylinder yet, but it still has bumps. The extra prime amount helped reduce the under extrusion significantly. The biggest problem though is that this massively increases the number of retractions, which is generally regarded as bad in terms of reliability. I really need to fix the hardware problem.

I tried loosening the nozzle, tightening the stainless steel tube a quarter turn, then tightening the nozzle back. This resulted in a small gap between the hexagonal part of the nozzle and the heater block. Before, I had a fairly large gap between the heater block and the nozzle because the stainless steel tube was screwed all the way in (and the gunk in the threads). The theory is that I had too much heat conduction with the nozzle fully seated, this should reduce it, thereby increasing the temeprature gradient between heater block and nozzle tip, thereby reducing the temperature of the nozzle tip, and finally reducing ooze. Alas, no...blobs and under extrusion are still present. Tried screwing in the stainless steel tube about 1-2 turns, just before it bottoms out. Then tightening the nozzle back, re-assembling the hotend for the 20th time, releveling the bed, and printing another cylinder. Still shit. Seems like that wasn't the problem.

Tried switching out the PTFE tube again...no change.

There is literally nothing else in the hot end I can change. The lucky/magic pre-nozzle clog no ooze characteristic is gone. *sigh. When I switch out the nozzle next, I'll probably put the new PTFE tube back in and tighten the nozzle in closer to the heat block.

Final notes on software band-aids:

  • Most parts will require multiple tries. These suggestions are just starting points.
  • For my test the cylinders, retract before outer wall retracts before doing the inside wall, which is an "outer" wall because the cylinder model is hollow. If I had made a solid cylinder, 0% infill, and made the wall thickness big enough, it would create "inner" wall(s) on the inside.
    • for my cylinders, it retracts before the move to the inside, which helps the inside wall a lot. 
    • If the part has one outer perimeter (instead of two like my cylinder, such as a solid cylinder) and you only care about outside surface (usually true), then this will help better than combing off. If you care about the inside surface of a solid part (rare, it's usually full of infill), then this is not ideal.
    • Using this with combing off is redundant, so don't
  • Retract before layer change retracts just before a Z move, which is on the outside wall for my test cylinders. It then de-retracts immediately after the Z move. This helps with the outside wall bumps a lot, though they aren't completely eliminated, likely due to the time spent waiting at that point before and during retraction allowing material to ooze out. However, most of the bump is definitely formed during the Z move, so the retraction helps.  
    • If the part has Z moves on the outer wall, and don't care about inside, then this could be better than combing off
    • CURA defaults to Z moves on an inner wall. 
    • Using this with combing off is redundant, so don't
  • Combing off retracts before every travel, including Z.  
    • This helps both inside and outside walls significantly, but massively increases number of retractions, which is supposedly bad, though I haven't confirmed this.
    • It can also increase light stringing because now the nozzle travels over empty space instead of the part. 
  • Combing no skin only doesn't retract for infill (only combs in infill). It won't retract or de-retract over skins or walls, which means it adds little lead in and lead outs to the travel paths if you don't have infill. 
    • Only use this if have infill. Turning combing off is better with no infill areas
  • Extra prime amount adds a bit of filament to the end of a de-retraction. This is good for reducing the under extrusion after a bump
    • Started with nozzle size cubed, then adjusted from there
    • The amount depends on layer height and speed
    • Too much forms a second bump because it occurs during the de-retract
    • May depend on parts. Arcs seem to require less than straight edges.
  • Coasting helps reduce the bumps by reducing nozzle pressure by stopping extrusion some amount before the end of the previous wall. There is less pressure when the next wall is started, so less of a bump forms. 
    • Started with nozzle diameter cubed, then adjusted from there.
    • ~0.15 seemed to help
    • However, this does not help with under extrusion after a bump, and can make it worse. 
    • Best used coupled with retraction + extra prime
    • Can smear corners if too much
  • Best combinations tried (for cylinders):
    • 40 mm/s print speed (20 mm/s outer wall), 0.2mm layer height: combing off, extra prime 0.1, coasting 0.15. 
      • Under extrusion after bump gone, bumps are small (about +0.05mm). Hard to measure
    • 60 mm/s print speed (30 mm/s outer wall), 0.2mm layer height: combing off, extra prime 0.064, coasting 0.15,
      • Under extrusion after bump gone, bumps are small (about +0.05-0.1mm). Hard to measure
      • Inner wall will be bad at 60 mm/s. Turn down speed
    • 40 mm/s print speed (20 mm/s outer wall, 30 inner and top/bottom), 0.3mm layer height: combing off, extra prime: 0.13, coasting 0.18
      • Under extrusion after bump gone, bumps are small (about +0.05). Hard to measure
      • Extruder will occasionally skip if print at 40mm/s, 0.3mm layers, such as infill. Drop infill speed to 30-35, too.  
    • 60 mm/s print speed (30 mm/s outer wall), 0.1mm layer height: combing on or off, extra prime 0.04, coasting 0.08
      • Hard to see/find bumps and underextrusions
      • Could probably run faster
    • 40 mm/s print speed (20 mm/s outer wall), 0.1mm layer height, combing off, extra prime 0, coasting 0.06
      • bump is very small
      • Good for super precision parts
    • 100 mm/s print speed (50 mm/s outer wall), 0.1mm layer height, combing off, extra prime 0, coasting 0.18
      • faster = larger bumps
  • Other Notes
    • Aligning Z seam will help concentrate all the bad stuff in one area, which makes all the rest better. I suggest doing this. 
    • Can't really extrude more than that (30 mm/s, 0.2mm layer height) without large bumps.
    • Can't really extrude faster than 45 mm/s, 0.2mm layer height anything without very poor quality. Might be able to go slightly faster with lower heights, or slightly slower with higher heights. Can always go slower with lower heights (best quality).
      • Will need to adjust coasting and priming for every setting combination, though.
    • Straight edges and corners: may want to turn off coasting
      • Coasting into corners looks weird, but if you have a perimeter starting in the middle of an edge, coasting might help reduce blobs.
      • Generally want some prime if have coast to make up for coast
    • Thicker layers generally need less prime. Some straight flat faces might be better with half the above values or 0 extra prime. 
    • Hiding infill requires at least 2 perimeters, 3 are better. 3-4 is also best for strength.
I think to reduce blobs at high flow rates, you really need to use a larger nozzle. If you examine the equation for an orifice, assuming a constant flow rate, then deltaP is proportional to 1/area^2. So increasing the nozzle diameter from 0.4 to 0.5mm at a constant flow rate should result in 60% less internal pressure. There's a limit (discussed in a previous post) to the amount of material the MK10 can melt, but as long as you're under that, increasing the nozzle diameter should help reduce extrusion pressure, which should help reduce blobs.

That's all the ideas I have for now. I will keep updating this post

Saturday, April 7, 2018

Wanhao i3, Part 5

First, some successful prints. These were printed at 20 mm/s due to the aforementioned thermal problems. Despite some initial under extrusion at every layer, they came out great.

Bathtub Tugboat. This was made for a friend's kid. The files include a complete tugboat, a bottom part, and a top part. It's a very very nice model. The tugboat needs to be printed with 50% infill in the bottom for it to stay up right when floating. The problem is that Wanhao's Cura 2 does not have the option to change infill in different locations, and the swapatz plugin cannot be loaded. There are some hacks you can do to get different infills in different portions of your part, but since this came with the top and bottom part, I figured printing them separately would work. I then thought about how much extra filament filling at 50% would use...a lot. I calculated that it'd be cheaper to put some pennies in the bottom of the boat and fill at 10%, so that's what I did. Check it out:

This is just the top part. Amazing detail


There's even a person and steering wheel in the cabin! 


Taking pictures of black objects is hard. Here you can see some under extrusion.
Cutting/pulling out infill in bottom part. I put 11 pennies in the bottom along the centerline.

Scotch taped up for a float test. Passed!

Scrap plastic used to jam the pennies in place.

Completed!
I also printed Roger from American Dad. Again, very impressive model, and it came out great. I used supports with this, which took quite a lot of time to remove from everywhere. Some of it got jammed in between his lips.

Interesting blob patterns between the supports.


The new heat block came in today, too. On closer inspection, this "Wanhao MK10 heater block" was not a wanhao MK10 heater block. It had one M4 threaded hole, I guess for a threaded stud thermistor, the hole for the heater core was 6.5 mm (should be just a tad larger than 6.35), and it was 1 mm larger in length and width. It was purchased from tinlydscreations on eBay UK. I believe he is a Chinese reseller, but unlike most of the "UK based"/"UK shipping!" sellers, he actually runs the business from the UK. One way to distinguish those from the ones who (I think) just have a warehouse setup is that they offer "fast-n-free" shipping and the shipping estimate is a few days, not a week+. Despite the prices being slightly higher, it's worth it for the shorter shipping times and the customer service (he speaks English, haha). He was very responsive, and I'm happy with the resolution.

Since the old block's threads are caked with burnt plastic and was beyond saving, I figured out how to make the block I had on hand work. Since the original 2.5mm hole for the thermistor was a bit large, I drilled a 2mm hole as far as I could into the block without hitting the nozzle threads. That way the thermistor has the best chance of reading the actual nozzle temperature. At least that was the idea...I ended up knicking one of the threads, but hopefully no plastic leaks into the thermistor hole. Still, not bad for a hand drill. I used a larger bit to deburr the hole.


Little black spot in upper part of nozzle hole is a hole. Oops
Next step was disassembling the old hot end. The old insulation was brown, and seems to have sort of burned/adhered to the old aluminum block, which is kind of concerning, but apparently common. Getting the stainless steel heat break/tube out of the heater block is tricky without a thin 5.5mm wrench/spanner. I had to wrap some pliers in paper and tape to keep from scaring it up.


I spent about an hour cleaning the gunk off/out of the nozzle and the stainless steel tube. The best method I've found to do that is to heat it up with a lighter (blue part of flame, yellow part is sooty), then stick something in there and wiggle it around and pull out gunk. Then when most of the big stuff is out, use cotton swaps in alcohol, small metal scraper like a needle, etc. to get the rest of the gunk out. The lighter trick works on the threads, too, then use a cloth to wipe up the gunk. I managed to get them pretty clean.

I figured out that the proper length of PTFE tubing is long enough to go from base of nozzle to tip of inside of stainless tube with just a tad of compression. If it's too long, it bends and filament gets stuck. If it's too short, it can shift around and cause filament oozing = bad. So I cut a new length and slowly trimmed it down until it was just right. I then tightened the nozzle on all the way (for maximum thermal contact area), then put the PTFE tube in and the stainless steel tube on and threaded it in. Then I tightened the tube with the paper pliers and a wrench on the heat block. The end of the tube presses up against the nozzle to form a semi-seal. Then I installed the thermistor. I didn't have a super short 4mm screw, so I had to use 4 washers, but I think it worked ok.


Re-insulating took about an hour because I wrapped all the sides in 2 layers. I put kapton on the inside of the insulation this time...should help prevent the browning/adhering to the block. I had to cut a flap for the set screw for the heater core, which I then taped back. I wrapped the heater core in about 2 layers of aluminum foil and installed that.


I checked tightness of the nozzle when I had heated up the block...seemed ok. Manual extrusion tests worked fine, so I reinstalled the DiiiCooler. It sits an angle this time for some reason...I'll try to shim it later. I really need to print the PETG one soon. This one is about 1/4 super glue now. Then I re-leveled the bed.

Then I was back in business. I'm running the heat bridge test right now. The goal is to be able to run at high speed (~40-50 mm/s) with the same quality I was getting before the clog, i.e. no blobs or initial underextrusion every layer.

Update: heat test done. It looks like ~200-205C will be a good temp for this black PLA at ~40 mm/s. That's down from before the hot end rebuild, so that's good. Unfortunately, the initial layer under extrusion problem remains. I'll have to think about what to do about that.

Venturi Flow Meter Testing, Part 2

I completed the test setup. I'll let the pictures do most of the talking:

Drying after washing after sanding ports flush to inside

Trick from rocketry: coat edges of cardboard tubes with superglue and sand.

Test fit

Screwed together and test fit for cables

PWM controller and ghetto ammeter wiring

Ignore shitty chinese fan cable wire colors

Powering from desktop PSU

It lives!

Making ruler parallel to gravity

Manometers filled and working
Filling the manometers was a pain. I filled them with another tube + straight connector because I didn't have a funnel small enough. The ID of the tubing is so small that the water's surface tension allows bubbles to stay in the tubing. I had to flick the tubes a lot to get the bubbles to float out.

Anyways, it works, but there are two major problems. 1. The assumption about the downstream components not affecting the Phi's airflow is definitely violated. I can feel significantly higher flow rate out of the holes/slots in the Phi with the venturi attached. 2. The venturi causes so much pressure loss that the fan is at a point in its operating curve where it's only pushing about 60% of what I need it to. Without the venturi, and the fan on full throttle, the pressure drop across the Phi is significantly higher than spec, which means the fan is probably pushing a significantly higher flow rate than spec. That's not surprising considering the fan should be way over powered. When the venturi is attached, the pressure drop across the phi is significantly lower than spec, which supports the low flow rate measurements. *sigh...

I can't do anything about #1 other than tape or partially tape over the holes. I can't increase the fan's input voltage because I don't have an adjustable power supply here, and the fan is already at about 75% of max power. I checked, and the pipes don't cause much pressure drop, which makes sense considering the flow is fairly slow. I'm guessing that the venturi diameter ratio (beta =~0.38) is too extreme, which is resulting in separation in the diffuser and high pressure loss instead of recovery. The only thing I can do is redesign the venturi with a larger diameter restriction, but then I lose accuracy. For example, increasing the diameter of the restriction from 20 to 30 mm (beta from 0.38 to 0.59) reduces the expected total change in fluid height (and thus pressure difference) by more than 80%. It will still be readable, so that's probably what I'll do. I gotta fix the 3D printer first, though.

Backup plan: print best guestimate designs for the adapters and test them on powered Phi's. If the Phi's don't overheat, then they're probably ok. 

Friday, April 6, 2018

Venturi Flow Meter and Phi Testing

I hinted at another big project I was undertaking in my first homelab post. I purchased 140 used Xeon Phi cards recently, from the same source I got the original 12 from. The plan is to test them all, keep some of the working ones, and sell the rest.

Of course, it's not that easy. These are all passively cooled server cards, and I sold the server I used to test the original ones with. Not that that server was ideal anyways, because it only technically supported one variant of the Phi family. Thus, I'm assembling a new desktop machine to test them with. But because it's a desktop, it doesn't have a high enough cooling air flow rate for the cards. There are some examples on the intel forums of people building their own coolers out of foam board and strapping a fan to them. Some people 3D printed fan adapters, and you can even buy one for a blower fan on eBay from Australia for ~$20. I looked at what was available and thought, "I could do better." I wanted to engineer the fuck out of this.

The Xeon Phi datasheet contains a lot of useful information, including exact flow rate requirements for the primary and secondary side of the card vs. inlet temperature and pressure drop across the card. I extracted the worst case condition, i.e. highest inlet temperature, maximum flow rate. I figured out the total flow rate required, the pressure drop across the card, and started researching fans powerful enough to meet that requirement.

But first, what am I testing exactly? The experiment has two main goals:
  1. Verify that the fan adapter designs I make split the flow in the correct proportion between primary and secondary sides to meet flow rate requirements
  2. Determine how much more pressure the fan needs to develop over the published Phi pressure drop spec due to the fan adapters. This will be used to select fans for one and two card adapters based on their published fan curves. 
Examining the goals, I could tell I'd need the following:
  • Two Xeon Phi cards
  • Fan(s)
  • A way to power and control the fan(s)
  • Fan adapter for one Phi
  • Fan adapter for two Phis
  • A way to measure relative and absolute pressure
  • A way to measure flow rate
I realized early on that a 3D printer could help supply most of those things. In fact, this is why I purchased the Wanhao i3 about a month ago now. 

Before I could design a fan adapter, I needed to select a fan. In general, axial fans are more efficient than blowers. I chose an 80x80mm axial fan size for a few reasons. 1. It fits inside the width of the card, so it's unlikely to interfere with anything on the motherboard. 2. Its flow can be funneled into one card in a fairly short space (fan+ adapter can be shorter than a blower + adapter), 3. It's the perfect height for cooling two cards at once, 4. There are many 12V 80mm square fans to choose from, 5. It's more efficient than a blower fan (about 30-50% less power). I probably went through about 50 fan datasheets looking at fan pressure vs. flow rate curves to find one that could deliver ~20% more pressure at the desired flow rate. I looked for ones that would be good for 1 or for 2 cards. Cooling two cards in parallel doubles the flow rate requirement, though the pressure drop stays the same, so fans good for two cards would be able to handle one card, as well. For testing purposes, I decided to go with a far overpowered fan and use a PWM controller to throttle it. In fact, I already had a fan controller in my homelab cabinet, so I could just use that. I chose a fan I could obtain from eBay for cheap, which happened to be a Nidec v80e12bs2a5-57 from a supermicro fan-0148L4 kit.

It turns out most 80x80mm axial fans have similar exit geometry, so designing one that works for one fan will likely work for most fans. I decided to start with a single Phi adapter because I only have one Phi.

Fan adapter attached to fan


The fan adapter is the same one from this post. I designed the primary and secondary flow areas to roughly match the proportion of flow for each. I'll probably have to adjust it some for the final version. The plan is to superglue in the M3 nuts for the Phi screws. Threads in 3D prints are difficult. I went with nuts because I didn't want to deal with heated press-in inserts, and thread-in inserts are huge. You can design nuts to be pressed in, but there really isn't room do a good press fit inside of the adapter.

I designed a mock Phi with a similar airflow path as the real one, but shortened, and with a restriction plate so I can tune the flow loss. 

Took 16 hours because the printer isn't doing so well right now...can see some under extrusion near top right.

Hard to see, but poor bridging inside.

Mounted to fan-Phi adapter. Restriction plate goes in the slot near the top
The plan is to do the testing on the single Phi, then do testing on the mock Phi and adjust it until its pressure drop matches the pressure drop of the real one. Then I can test a two Phi adapter by measuring the flow output of the real phi in both positions (top and bottom). Anyways, that'll become more clear when I actually do it and write it up. 

Now I have the fan, fan controller, fan power (PC molex to fan connector), fan-to-Phi adapter, and Phi. I still need a way to measure pressure and flow rate.

I started looking at pressure transducers and gauges...things I'd used in the past back in lab in my undergrad and masters. While they would work, they're more accurate than I need and quite expensive for a project this simple. So I stopped, took a step back, and thought about what the simplest way to measure pressure is. A water manometer! These are super simple to make, and cheap, too. All you need is a piece of flexible clear tubing, some barbed tube fittings, a ruler, and water. I bought some 6mm aquarium tubing and straight 4mm connectors for it off eBay for ~$5.

I also need to measure flow rate. I started looking up flow meters that could measure the flow rate I needed to, and they're all fairly expensive. There are numerous methods for measuring flow rate, but one of the simplest is an orifice plate. Just stick an orifice in your pipe with a known Cd, measure the pressure drop across it, do some math, and then you know the flow rate. The problem is knowing Cd accurately. A possibly more accurate way is with a venturi flow meter. A smooth venturi will have a fairly constant Cd around 0.98. They're also pretty easy to design and 3D print. I figured out that a 50 mm to 20 mm diameter venturi would give me ~150 mm H2O, which is large enough to be easy to measure with a ruler. Bonus: I can use the same water manometer for this! I'll show the math for this in the next post along with the results.

I also needed an exit adapter to funnel the Phi's exit flow into a tube, which would then go to the venturi flow meter. I designed and printed that, too, but in two parts because the Phi's used in desktops have a PCI bracket that impedes the flow some and I wanted to model that.


I also needed a tube to go between the exit adapter and the venturi meter, and then after the venturi meter. You need a pipe after the meter to eliminate exit effects. If I was in the US, I'd just go to Home Depot or Lowes and get some PVC. In fact, you can make a reasonably good venturi meter out of PVC reducers and pipe. But this is the UK, and they don't have anything equivalent. B&Q is close, but not the same. I'd have to order the pipe to be shipped here, which seemed dumb. Instead, I bought two 50 mm diameter mailer tubes off eBay for ~$2.

Most of the parts. Venturi on right
The printer messed up right before the venturi print. I managed to get it printing again, but the quality is degraded. I ended up sanding the venturi pretty heavily to remove ridges, but I think I did a good enough job.

I then drilled and put in the static pressure ports (cut up aquarium tube connectors).  I'll also put one in the tube right before the entrance to the venturi. These will be glued in and sanded flush on the inside. I chose locations where the wall was fairly flat relative to the central axis to minimize flow components along the axis of the port, which would throw of the static pressure reading because it would be reading part of the dynamic pressure. The unused ports will be plugged during testing.


Measuring from fan to ambient (with nothing after the Phi) will give me the pressure developed by the fan, which will be the pressure drop across the Phi and fan adapter. However, I won't know what flow rate that is. Measuring from fan to exit adapter should also be the pressure drop across the Phi and fan adapter. Measuring from before venturi to venturi throat will be the dP required for the flow rate calculations. Those measurements will give me everything I need to know to select fans.

Measuring primary and secondary flow rates in the Phi will be tricky. I can measure the primary flow rate fairly easily, but the secondary flow is open to ambient in multiple places. If I can't figure out a good way to measure full flow rate (maybe taping off all the exit paths?), then there's no way for me to calculate the secondary flow rate (full-primary = secondary). I'll just have to estimate at that point.

One of the main assumptions I'm making here is that the heating of the flow doesn't affect pressure drop. This is not strictly true, but for incompressible flows, it's not a terrible assumption. Another assumption is that the tubes and venturi flow meter don't influence the flow in the Phi. If the Phi was a closed tube, then this would be a good assumption. However, the Phi has holes in it. Since the pipes and venturi add pressure drop to the system, there will be a higher pressure relative to ambient in the Phi with them than without them, which will cause more air to escape from the holes. I forgot to mention this, but high quality (good layer adhesion) 3D prints are pretty air and water tight. This wasn't at all obvious to me when I started out with 3D printing, so I tested a small 3D printed cylinder by sealing one end and blowing into the other. The pressures in this test will be fairly low, but I bet you could 3D print parts that hold a fair amount of pressure. 

That's all I have for now. Next post on this will include the testing results. 

Oh, I never fully answered why I'm doing all this when I could just fudge something and use a bigger fan. 1. This is fun for an enginerd. 2. I think I can sell these Phi adapters with the Phi cards and hopefully earn enough to cover the cost of the 3D printer (minus time). I'll probably list them on eBay for a few years, too.