Wednesday, 24 February 2021

Dehumidifying methods

I've had the worst time with my PETG filament, test prints literally exploding during the print and finished prints being very brittle. The most likely explanation is that the PETG is too moist, it's supposedly very sensitive to that. My friend Christina got me some Lock & Lock boxes, they are nice and quite airtight and fit four spools very nicely. So, it's time to dry things up!

My first drying attempt was a Drybag™, which I think I put in on January 12th. It didn't make a noticeable difference. The next attempt, based on the recommendation for drying wet phones, was rice. I used a wild&long rice mix, starting 2021-01-24. It didn't do much either. Next up, baking soda, starting 2021-01-30. Nothing really noticeable.

Sure, I could try with actual commercial desiccant bags, but where's the fun in that? Also, they're somewhat expensive. So based on a suggestion from the almighty Internetz, I got some silicate cat litter. It's quite cheap, so I figured why not?

On 2021-02-09,  I just put two ramekins with cat litter in. This time, to get a more precise measurement, I also dropped in the little temperature and humidity logger I found at the local measurement instruments store (yes, we have a measurement instruments store in my neighbourhood). The humidity changed drastically - but to more humid! It ended up at ~60%. In this chart, the X marks are where the humidity sensor picked up movement. You can see it matches drops in humidity when I take out the box and open it on the evening of the 9th and on the 12th.

On 2021-02-11, since there was a nice frost going on, I figured the frosty air would be very low humidity and would allow the silicate to evaporate off some water. I left some outside overnight and put it back in in the morning, this time in a little custom box I had printed in the meanwhile. Not any better. You can see a brief dip in humidity and temperature, but it quickly goes back up.

My next attempt was to bake off the humidity. Not wanting to use devices that also get used for food, in case there are other things in the litter, I used Deathtrap, our Danish-style toaster. I poured some litter into a container made of aluminium foil and set it to toast outside, stirring a couple of times. I could sit inside and watch the steam come off, but after half an hour I could see no more steam. I stirred it again and let it cool down to merely warm, then just plopped the foil container into the filament box (which had been standing open, letting it get back to the ~30% humidity in the room). 

I did this twice, the second batch letting it have over an hour of baking, and boy did this make a difference! You can see where I take out the box and open it in the morning, and it drops from 63% to 33%. Then there's a temperature peak when I put in first batch of still-warm litter, and the humidity drops to about 15% relative (relative to the now warm air, of course), and evens out at 24%. In the late afternoon, I put in the second, longer-baked litter at 18:00, after letting it cool off for a bit. Bam! Single-digit humidity!

I left the humidity logger in there for several days after, and the results were curious. The box stands in a closet in my bedroom, and I always sleep with my door tilted open a bit, for coolness and fresh air. You'd expect the humidity to change smoothly along with the temperature when it's just left to its own devices, but that wasn't quite the case - or at least the measurements didn't follow that pattern. See how in the first day, when the temperature starts to drop, the humidity almost doubles over 45 minutes, then stays at almost exactly 10% for most of the night, only to drop off much faster than the temperature rises come morning. And then this effects slowly disappears over the following days. I would love to hear an explanation for this!

I can also confirm that the Prusa doesn't like when it's this cold. When I tried to start a print one of these cold mornings, it refused, claiming there was an error in the thermistor! Being metal, the bed had gotten even colder, and the temperature readings started at 11ÂșC, even though the room was warmer.  Here's what it looked like a bit later, I was able to print shortly after this.


Saturday, 30 January 2021

Tests of magic numbers, part 1

 There's some talk about "magic numbers" in 3D printing, the idea being that the Z stepper motors are more precise when aligned with full steps (or somewhat with half steps). Others say that it doesn't matter with modern precise printers[1], and that since the stepper motor starts at some random state, using magic numbers won't help. With my Prusa i3 mk3s, I certainly have a modern and precise printer, so let's find out!

First, the magic number. Prusa i3 mk3s steps/revolution at a step angle of 1.8 is 200. By marking the Z threaded rod and moving the Z axis, I found that one revolution is 8mm. 8mm/200 means the magic number is 0.04mm - confirmed by this thread. One should thus always use layer heights that are a multiple of 0.02mm (because a half magic number is still OK, with the motor evenly balanced between two magnets).

Now to deal with the random initial state. The initial state could be reset by briefly disabling the stepper motors. That would offset the Z level by at most 0.01mm, less than I adjust the Z level by, and thus not a concern for bed levelling. So if I try with and without magic number layer height and with and without aligning, I should be able to determine if it really makes a difference.

This is the required GCode in the 'Before layer change G-code' section:

; Briefly disable Z motors before start to align magnets. 
{if layer_num == 0}
M18 Z
G4 P10
M17 Z
{endif}

First I tried with just plain DasFilament PLA and my current nozzle, because that's what was in there.

Here's a shaman with 0.2mm layers and alignment, two detailed areas zoomed in:



Details in larger:




The same shaman with 0.19mm layers and no alignment:

Details in larger:


There are some differences to be seen, but you have to look carefully. My current nozzle has been used for a while, including with UniCoFil filament and sparkly filament. Maybe it's a bit worn. and maybe the DasFilament filament doesn't match the settings as perfectly as Prusament does. 

So next I'll switch to a fresh 0.4mm nozzle and freshly unpacked Prusament and do a test piece with 0.2mm and 0.1975mm - one microstep away from a full step, presumably the worst case. Then I'll try with 0.1175mm unaligned and 0.12 aligned, probably the finest a 0.4mm nozzle can realistically do. Then I'll switch to my slightly used 0.25mm nozzle and go extreme: 0.04mm (yes, that's 40 microns) and 0.0425mm layers.

[1] Some of the posts in that thread get the numbers quite wrong, which is why I went to manually confirm the mm/revolution.

Sunday, 24 January 2021

A UniCoFil vase

Back in August, I did some more prints with the UniCoFil filament after replacing the heatbreak. It's possible that replacement wasn't necessary, but I will never know. Even after that, the stripping continued, though possibly not as often or as much. After printing out a failed hexagon vase that simply came apart at a layer that had stripped, I changed the filament settings to a) have a 1.0 extrusion multiplier, and b) extrude at 230°C. That eliminated the stripping, and I was able to print this nice small vase:



Just goes to show that each filament has its own best settings. 

Sunday, 26 July 2020

Replace *all* the things!

As mention last time, I had been trying out the UniCoFil filament, first the light blue, then the fast-changing rainbow. All through that, I had trouble with stripping mid-print. I got quite good at cleaning up after a stripping incident, disassembled the heater assembly several times, even swapped out the heatsink as I had been a bit forceful on the inserts. No luck. I was starting to blame the filament, but saw that it was considered a benchmark of quality by some filament testers, so unlikely to be the problem. I also tried pushing some filament through the heatsink and heatbreak after removing the nozzle, found some scrapiness at the heatbreak area, but that's probably just because it's metal rather than PTFE. 

Taking a second look at the removed nozzle, I realized it was badly damaged on the threads. Maybe I had put it in wrong? That would certainly explain the problems. Fortunately, I had bought an entire set of spare parts for the heater assembly, so I was able to swap the nozzle and heater block. That's a lot easier with the e3dv6 than the previous systems, no fiddly wires, just two stiff metal inserts and screws to fasten them. It has now printed for several outs without any issues (jinx!).

Here's a close-up of the nozzle:



Things I learned:

  • The spring-wound screw that holds the idler door in should be flush with the left side of the block when filament is in. That is the position of least stripping risk.
  • The neat little cover mount I had printed for cleaning the filament made it easier for the filament to break when doing the hot part of a cold pull. It should be unscrewed and moved above where you grab the filament (grab the filament with pliers).
  • The screw fastening the heater cartridge needs more force than I can apply with a normal hex wrench, I had to get a proper bit driver.
  • Pushing filament out while cooling down for a cold pull ensures that the nozzle is full and so is more likely to bring debris with it out.
  • The PTFE tube should be 11 mm over the top of the heatsink when in. It will be just visible in the gear chamber.
In related news, I tried using the "little master spool" designed by DasFilament, but the forces of the filament inwards opens up the locking mechanism, and I got this disaster:


Not what I hoped for. Also, it's even easier with this design to have the filament hop out sideways or get stuck between filament and spool. Need to find or make a better design. There are some promising things on Thingiverse, but right now they have a problem where occasionally - even after the page is fully loaded - the page will blank and go "Something went wrong". Web developers, have you heard of a little thing called "graceful degradation"? You should try it some day, it's delicious.

Sunday, 5 July 2020

Stripped again, and out of tubes

I was trying out some semi-transparent blue filament from UniCoFil. The temperature tower had quite a bit of stringing, so I tried with 2mm retraction. That, unfortunately, led to stripping when the next temperature tower got to 195C. Despite trying to help the filament come out, unloading didn't work, so I had to snip the filament and open up the extruder.

TIP: When snipping the filament, do so with as much filament above the PTFE tube as possible, to more easily grab it later.



I disassembled enough to have the heater assembly free and tried a cold pull, but there wasn't enough filament sticking out to get a good grip. So I unscrewed the heatsink (this time the heatbreak didn't follow) and could get the PTFE tube out easily. Not so the filament. I tried heating the tube on the bed and then pulling, but again with not enough to pull on. Eventually I used a small hex wrench to push out out from the other end, which worked.

Then I put the PTFE tube back in the heatsink, which was a mistake. I put it so far in that I couldn't screw the heatsink onto the heatbreak, and I wasn't able to pull it out without destroying it. Fortunately, I had a second one. Need to get more replacements, and maybe just a spare of each part.

Having mounted the heatsink on the heatbreak, I could insert the PTFE tube, but not quite enough, now the end would block the gears. So I took it apart again, pushed the PTFE a bit further in, and then it looked OK from my point of view. Not so from an actual functional point of view, it was high enough to hit the gears still. It needs to be barely visible above the edge of the hole.

I tried to align it better, but it took more squeezing than it really ought to, and one I had it in, the nozzle ended up being too low, possible because I couldn't screw the heatbreak far enough in. I will order a bunch of new tubes and spare other things, take the whole shebang apart, and then try first to install from fresh with a new tube, if that doesn't work then replace the heatsink - I think the black insert inside it has gotten damaged.

Monday, 29 June 2020

Hey, Slab!

Today, I decided it was time to reduce the noise of my printer.

First I did some measurements. I created a single-layer print of pure infill, increased first layer speed, and adjusted infill angle to make the printer move X, Y, or diagonally. Sure, I could have done a custom gcode sequence to just move the axis, but I didn't feel like digging into that. The first print was quite difficult to get off, so I moved Z adjustment from -0.8 to -0.6.

For each test, I used the Sound Meter app, first right in front of the printer, then on a separate table across from the printer, taking the average after about half a print. 

Y movement: Near printer 56 dB, other table 46 dB
X movement: Near printer 54.3db, other table 37.2 dB
Diag movement: Near printer 57 dB, other table 45 dB

Y movement is far noisier than X movement. There's some suggestions in this thread: Lubricate bearings, oil axis, add motor dampers. Oiling is an easy step, let's try that. After oiling, Y axis movement is 56.7 dB near the printer, 46.7 dB on the other table. Louder. Huh. Could be a measurement error.

I don't feel like taking the printer apart today, but I did get a slab of granite, and I have plenty of foam. So let's do some tests with them.

First step: Put pieces of simple camping foam under the feet of the printer. This reduced the noise level of the Y movement to 48.3 dB near the printer, 35 dB on the other table. Already noticeable! And this foam is pretty stable, so shouldn't make the printer too wobbly.

There's also a sound coming from the power supply, probably the fan there. Slightly irregular, not that loud yet.

I took the opportunity to fasten what bolts I could get to. I tried to open the power supply, but wasn't able to without taking more apart than I felt like. I did however notice a small piece underneath it that wasn't fastened correctly, so I fixed that. After that and putting the printer on a slab with soft foam underneath, the test print measures 40.4 dB near the printer, 31.5 dB on the other table. So this shaved off in total 15 dB, impressive! Even the power supply fan seems quieter.

Of course, I should have measured between fastening bolts and putting it on a slab, but I didn't. Maybe another day.

Luckily, the filament spool just fits under the cabinet above

I might want to have the filament spool mounted separately, possible between the two edges on the sides (you can see one in the picture). I would need a setup where the holder was easy to remove, though. I suspect some of the noise from fast moves is from the filament spool.

Clearly, this merits printing a really nice McBenchy!




There's a smidgeon stringing (that I have cleaned off), and the Z level is not quite perfect, but overall it's super smooth.

The first layer of the McBenchy had an average noise level of 34.9 dB (measured in front of the printer), the second one where the usually noisy bed fan started got up to 39.5 dB - that's not just the fan, though there were also some fast zig-zag moves that were somewhat noisy. Apparently moving the printer about has at least temporarily fixed what was wrong with the fan. Later layers averaged 37.7 dB, though there were places that were somewhat louder, it seems to occasionally hit a resonant frequency. Measured on my chair arm, so at normal distance for me, it's 29 dB, at the other table 28.2 dB.

All in all, I am satisfied with this noise improvement. In fact the power supply is not responsible for a fair amount of the noise, maybe I could dampen that by adding some rubber washers to the various screws.

Obligatory Borderlands 2 reference:



Sunday, 28 June 2020

Trying out FreeCAD

While fiddling around with making a cherry picker to catch the bounty of the cherries outside out windows, I found OpenSCAD to not be the right tool for the job. Time to try out FreeCAD, which people say are the other great free tool. These are my experiences.

Downloading was easy enough, but the DMG file is not properly signed, so I got alarming warnings. I know how to get around those, but still. Sign your stuff.

Opening showed a nice intro screen as well as a whole lot of icons. Some but not all of these icons are so big they are cut off - or they're designed that way? It seems somewhat random, the magnifying glass is normal size, but next to it is a too-big one with a cursor on it.

Issue #1: Icons are randomly oversized

I loaded the STL object I wanted to adjust and tried adjusting. There's the object, all right, and I can rotate and zoom etc. But I can't seem to do anything to it. I can't select it in any way, and any attempt at using the many function icons bring up a dialog saying 'Need to select a <something>' or similar. 

Issue #2: Some of the function icons are greyed out when not available, others bring up dialogs instead. This makes me waste time trying to do functions I can't actually do.

I tried right-clicking to get a context menu. All it showed was 'Navigation styles', as if that's something I want to change so often that I need it in a context menu.

Issue #3: Navigation styles do not belong in a context menu, but in settings. It's something you try out some of, then get used to the one you prefer until it's second nature.

While trying to get the object to do something, anything, I would occasionally select a function that sent me back to the start page. Wut?

Issue #4: Randomly switching between pages when double-clicking model tree entries.

I eventually had to search the internet for how to edit an STL file. Turns out, it's a mesh, not an object, and needs to be converted first. Maybe instead of all the various "You need to select a such-and-such" messages, this could have been prompted somewhere? Unless you know what a small icon means, there's no indication what type of object this is, not even a hovertext on the model tree entry.

Issue #5: No help figuring out what kind of thing I'm poking at. Not even the 'What's this' function will tell me what it is.

Even with a transformed object, things were confusing. I would click the transformed object (I thought) only to have the mesh selected again. Eventually I realised I had hit Space, and the transformed object got hidden while the mesh object stayed there. 

Issue #6: The model tree entries have toggles in the context menu but no indication what state they're in, not even in the context menu where there's plenty of space.

Ok, now I have deleted the mesh object, made the transformed object visible and selectable, and selected a few facets. On to filleting! Clicking the Fillet icon switches the left bar to Tasks, with a long list of edges and the options of "All" or "None". Mistakingly thinking this would apply fillet to all selected edges, I clicked all, only to have FreeCAD hang for minutes. This is not a hugely complex object (it's roughly this picker with the threads from this adapter). My machine is just stuck. Now I don't have a super beefy Mac Pro tower machine, just a MacBook Pro, but I've been able to do fairly complex things in OpenSCAD while also using IntelliJ, and having way too many tabs open. Is it trying to do a preview? Is it just broken? Left it for a while in this state while doing other things.

Issue #7: Too easy to accidentally do something that hangs the program.

Force quit it after two hours of spinning beachball of death and 100% CPU usage. Not a good start. Back to the documentation... it's really in a strange order. Why explain the many different mouse models and the settings page before getting to any actual modelling?

All in all, FreeCAD - like so many other open source programs - suffer greatly from the Curse of Knowledge. Most people working to improve it know exactly how it works, can figure out how to work around strange problems, and only spend the time necessary to scratch their personal itches. That adds many interesting features but an overall confusing UI full of missing stairs and just blatantly bad inconsistencies. Fortunately, there are many many alternatives, and I shall take a look at some of them.

LibreCAD: https://librecad.org/ - free 2D-only cad. Might be a good replacement for Inkscape on Mac.
QCAD: https://www.qcad.org/en/ - another free 2D-only CAD program, the Qt version. Not a big fan of Qt.
BricsCAD: https://www.bricsys.com/en-intl/ - professional and expensive
Rhinoceros: https://www.rhino3d.com/ - also professional and expensive
NanoCAD: https://www.nanocad.com/ - commercial, less expensive ($180+), maybe has free version?
Onshape: https://www.onshape.com/- commercial, quite expensive
BRL-CAD: https://brlcad.org/ - open-source, seems more graphics-oriented, but could be tried.
IronCAD: https://www.ironcad.com/ - doesn't even list a price
Catia: https://www.3ds.com/products-services/catia - "Contact sales" level of expensive
Shapr3d: https://www.shapr3d.com/ - iPad-only app
Creo Parametric: https://www.ptc.com/en/products/creo/parametric - commercial
KeyCreator: https://www.kubotek3d.com/ - commercial

Not listed on that site:
Sketchup: https://www.sketchup.com/ - tried it early on, really meant for house design, when used for 3D prints it has horrible crack problems (pun intended)
DraftSight: https://www.draftsight.com/ - focused on 2D, subscription based
Solid Edge: https://solidedge.siemens.com/en/ - Windows-only, subscription based
SolidWorks: https://www.solidworks.com/ - 
TinkerCAD: https://www.tinkercad.com/ - online-only, basic version is free

Out of all these, only TinkerCAD and BRL-CAD seem worth investigating at the moment, being free and 3D-oriented.

TinkerCAD is very cute, but as far as I can tell mostly allows putting things next to each other. It has a large amount of shapes available, from the most basic ones to continents and gaming pieces. The UI is super nice and intuitive, and it does have subtraction (set a shape to be "Hole"), but not fancy features like fillet. Surprisingly, it has programming of sorts in the Codeblocks feature, a drag-and-drop system. It's essentially a gateway drug for Fusion 360, even using the same Workplane concept.

BRL-CAD is 4 years out of date for Mac, even though it's still being developed. I unfortunately can't run it on my work machine for security reasons.

There's clearly a lot of money in this area, and I can see why. I may have to *gasp* actually read the manual for FreeCAD.