Tuesday, 28 June 2016

A horrible suspicion

Continuing the dowel tests.

0.2mm layer height, outer walls first, .9 extr. mult.: 5.45 - 5.55 mm male/5.42-5.47 female

Changed TEMP_RESIDENCY_TIME in Marlin to 10 seconds. 60 seconds is just time during which the filament can drool and the hair spray dry.

Another print died yesterday due to being too close to the bed. I suspect that the MDF changes size a bit depending on weather - hard to measure directly , but enough to cause trouble. This clearly calls for auto-levelling.

Monday, 27 June 2016

Printing some actual things, and some small dowels

Printing things! Did a test run of the adapter part of a lens extension piece (http://www.thingiverse.com/thing:74217) and it fit just nicely. Now I can print the whole thing.

Decided to try out Cura for slicing. A simple test cube looked mostly good, except one corner ended up sort of sliced off. And then the piece came loose when doing the top layers, due to forgetting the hair spray. Cura doesn't allow higher temperature at the first layers, and is more aggressive with the fan.

Repeating with hair spray worked, but there was no noticable difference. I don't feel like throwing $150 at Simplify3D right yet.

Next attempt: Full height macro extension piece. First one clogged up quickly, but after a quick atomic, it went nicely. Suggests that my Z offset and/or initial layer height is too high.

The difference in magnification is noticable (note these are handheld shots, so not super sharp):

Test piece at maximum magnification with EF-S 60mm f/2.8
Same test piece, same lens, with extension tube
Over several prints, some of which jammed early on, I have come to the conclusion that the right Z height is critical. I need the nozzle low enough that I get proper adhesion, but high enough that the filament can squeeze out without too much backpressure, or the resulting grinding of filament will cause the hobbed bolt to slip more and more over time.

Initial layer squeezed out so tight it turns white
I printed a sample hinge for the piano, but smaller than necessary so it didn't hinge well.

I printed a battery dispenser for tracked charged/discharged Eneloops. It came loose from the bed while printing, and when moving across a slightly lifted layer would make a chack-chack-chack sound. Now I know what that is, at least, but the lifting is problematic. In the end, it caused a jam, though the piece ended up OK:

As part of printing a dish rag holder, I experimented with making simple dowels. A good test, for it takes only 10 minutes to print a short pair, and it's obvious whether it works.

0.2mm layer height, outer walls first: 5.80-6.05 mm male/5.30-5.40 female
0.2mm layer height, not outer walls first: 5.85-60.5 mm male/5.05-5.20 female
0.15mm layer height, outer walls first: 5.60 - 5.80 mm male/5.25-5.35 female
0.1mm layer height, outer walls first: 5.65 - 5.90 mm male/5.25-5.45 female

Trying with perimeter adjustments of 80% exterior/90% interior. Also slowly moved the Z offset up to +0.1mm, since the first layer still got squeezed enough to be white, which I take as a bad sign.

0.1mm layer height, outer walls first, 80%/90% ext/int: 5.85 - 6.10 mm male/4.75-5.00 female

This also made the sides of both pieces look funny, with extra extrusion on the top part of the female piece, and some gappiness on the male piece. Probably not a good adjustment to make. Going back to default on those, and 0.15 mm layer height, but then (just on a lark) with 0.9 extrusion multiplier.

0.15mm layer height, outer walls first, .9 extr. mult.: 5.45 - 5.55 mm male/5.42-5.47 female

That's an incredible improvement! These actually fit together with just a bit of squeezing. And they look good, too, except for rather large flanges at the bottoms:

Sunday, 19 June 2016

Getting printing sorted out, finally

After last post's success, it figures I would get a clog. I printed two more of the dog bag endstops, then tried doing the hole size test piece, during which the hotend drooled quite a bit while parked before printing, and the drool cooled down enough to harden and make it bump when starting the print. The print then started suffering from underextrusion on the very first layer and extrusion slowed down quickly and stopped. There was quite a bit of (pretty) drooling when pulling the extruder up:

Doing the Atomic was a lot easier with this filament. The end had a small air bubble in it, making me wonder if overextrusion is an issue. There was also a rim a bit further up, but not enough that it could be what's blocking extrusion.

The thin part of the filament, obviously the part that got stretched during the cold pull, also seems to have a hollow inside. Either retraction somehow brings in air pockets, or this filament has air in it, which would be disappointing for Innofill filament.

I should at the very least make sure the first layer isn't too low, that could cause this kind of early clogging. Let's try adjusting Z level upwards over a few prints. Also adjusted bed size 10mm to have it not start over the edge, and added an extra skirt.

I decided to re-calculate the E_STEPS_PER_MM settings. Before I had calculated (and then fudged, not shown).

#define E_STEPS_PER_MM ((3200 * 39.0)/(11.0 * 6.75 * 3.142))

This gives 535 steps/mm. But there are only 9 teeth on the small gear (as shown in below "selfie with gears"), and the hob diameter is actually only 3.7mm at the middle. So instead I should use 

#define E_STEPS_PER_MM ((3200 * 39.0)/(9.0 * 3.70 * 3.142))

Which gives 1192 steps/mm! Holy mackarel, Batman! That's a big enough difference that I'm going to question some givens, such as the basic steps/rotation and microstepping implicit in the 3200. By removing the gear parts of the equation and turning off PREVENT_DANGEROUS_EXTRUSION, I can just run the motor. Then I add a bit of tape to mark a point on the gear and tell it to extrude 1mm. It nicely made two complete revolutions - but only because I can't figure out to divide 32 by 2 and had asked for 32 * 200 steps/mm. At the appropriate 16*200, one revolution. So the 1192 steps/mm is apparently correct.

It's a nice touch that when done uploading new firmware, it runs the fan for a moment. Also when Pronterface connects. Nice subtle signal.

Almost forgot to re-enable PREVENT_DANGEROUS_EXTRUSION.

Now if the E_STEPS_PER_MM varies by print speed, as suggested by previous measurements, it depends also on how extrusion goes. But since extrusion differs by all manner of factors, that's not a useful setting.

The 100 mm test extrusion went totally smoothly, with the filament piling up in an amazingly regular circle, like I've never seen it before. But it extruded way too much. eating the mark I made at 120mm. With a 50 mm extrusion, it used 120-42=78mm, a factor 1.56. Odd. At least I can't blame that on the nozzle pushing back. And it's consistent. Adding in that factor gives a nice, consistent (up to my measuring ability) output.

I also managed to have it make a bistable system while it was extruding, because the first piece of filament rounded, then tumbled to form a little rocker. When enough filament landed on one side, it would rock to that side, then filament would fall on the other side, etc. Video (late in the process):

Test print with 0.3mm bed offset failed, the nozzle wasn't even close to the bed. How very odd. The Z max is now about 5mm off the bed. WTF? Recalibrating, but how can this happen? I checked that the Z rod holders weren't lifted. The hotend is securely fastened. The bed has nowhere to go. Is my Z end-stop flaky? The gap after homing is currently 2.82mm. Alternatively, the Z motors are wonky, I did pull some dirt out of the right-hand one. They sound good to me, though. 

When calibrating, some of my Z move commands got ignored. The Z height was still calculated correctly, so it's a command problem, not a mechanical mismatch.

I also started using hair spray on the surface.

Tried a few Z offset settings, though Slic3r does seem to take the thickness of the extruded parts into account for the first layer. I had a couple aborted attempts because restarting a print doesn't pick up Slic3r setting changes. At 0.2 mm, it only barely gripped on parts of it. At 0mm, it gripped somewhat loosely, and looking at the bottom afterwards, it clearly wasn't squished together enough to form a closed surface. At -0.2mm (!), it placed itself nicely on the bed, though didn't quite fill in, and there was a bit of corner upturn. At -0.3, it squeezed a little more together, I didn't notice any corner upturn, but I peeled it off while soft before checking. At -0.4, the bottom was quite nice. At -0.5, the print stopped when it was almost done, not quite sure why. After pause and resume it finished surprisingly nicely. The bottom was quite nice. There's perhaps a little bit of overextrusion going on.

Test cubes at Z offsets 0, -0.2, -0.3, -0.4, -0.5 (first three aborted early)

Test cube #43, -0.4mm Z offset.

Test cube #44, -0.5mm Z offset.
Tried the hole test by +Giles Bathgate and it came out really nice, even though it stopped partway through and stood drooling for a while - the nozzle pretty much just plowed through the lump. The holes from 2mm and up were consistently 0.05mm too small - not much, but enough that it would be a problem. 

That was with 2mm layer height, I'll try with 2.5mm and see if it squeezes outwards a little less. And it does! Actually enough less that make the holes roughly .2mm too large, and more variable in their error.

I made a somewhat more complex test cube, with round and square holes, a peg, and overhangs. It prints nicely at 220C [CC2#1] and 210C [CC2#2].

Complex test cube 2, #1 @220C

Complex test cube 2, #2, @210C
The first print at 200C failed to stick properly, possibly since I had done a few prints since last hairspraying. With some more spray, it stuck. Except one corner that curled up, otherwise perfect print, features look even better.  Solution: Print first layer at 220, rest at 200. Trying that with 0.2mm layer height, works nicely.

It's amazing that the print can stop for quite a while while the machine sleeps and yet (sometimes) not be much worse off. It's annoying that Pronterface can't keep the machine from going to sleep, though. I keep getting Python errors when it's trying.

My theory about the clogs and height changes is that the loose print earlier bumped the Z axis up a bit. After adjusting for that, the screw eventually fell down again. The print after that was close enough to the bed to cause backpressure and an early clog, as hinted at by the bottom layer already showing less extrusion. 

Tuesday, 14 June 2016

The Strange Case of the Missing 1.7 mm

With my setup now working, I started printing useful things, such as endstops for the wires on Frida's bag and cooling rack feet. I printed several pieces without trouble, but then one of the endstops  for some reason didn't raise the head while printing and started to crash into the print. Good thing I was nearby to notice, rather than in the other end of the house.

After resetting the Z axis and oiling it, I tried another print - and the nozzle crashed into the side of the bed! After careful calibration, I found the Z height was now 202.8 rather than the 204.5 I had it set to. Where does one lose 1.7 mm of height in the middle of a print? My suspicion is that the hotend got a bit slanted/pulled when hitting various parts, so now it's at a different height. Sounds dodgy. If it became slanted, it would have more height, not less. If it got pulled out of the mount, it could have more height, but it's pretty damn tight on the mount.

It would be nice to have something that notices when the motors skip, either due to lose connectors or due to hitting something. But then that'd need to be calibrated, too, and could have errors, too.

It starts out slightly high, now. And I did notice the failed print was loose in one corner, maybe the problem was that it buckled upwards and that part hit the head. The UHU stic seems to have two modes, either it's sticking so much I have to use a wrench to twist off the print, or else it doesn't stick at all. Quite possibly sticks better at low temperatures. I should get some hair spray.

Prints nicely again with the adjusted height.

I'm also having small holes being too small, up to 1 mm too small for 2mm holes. Apparently, slic3r is still not good at compensating for what happens in a tight interior space. I see from +nop head 's explanation here that it's not a trivial problem at all, but some more tests by +Giles Bathgate indicate that it can be correctly accounted for - and he uses slic3r, too, so I should be able to reproduce it. I will print that when I have an hour to spare for tests, and once I'm satisfied that my bed can handle the size of that thing!

Every so often, there's a little popping noise, or perhaps it's a sticky noise, I just noticed it happening when going from printing a surface to printing around holes. Not sure what that is, but it's probably a sign of some surprising failure mode sneaking up on me.

The bed fan seems to turn on or off fairly randomly. It works when forced on, but in the current print turned off after being on for a while. Then turned back on. Seems some parts are cooling-free.

Sunday, 12 June 2016

Purple printing process promises perfect pieces

Got the new thermistor from e3d faster than expected, so I had some time to put it in this weekend. Putting in the thermistors was a bit fiddly as the covering was fraying, hopefully using the crimps will help:

Other than that, putting it back together was easy enough.

At 220C, 50mm/s, extruded 44 mm out of 50. There was a faint sweet smell, so this is hot enough to melt the PLA properly. At 75mm/s, the same. At 210C 100mm/s, it extruded somewhat less. 100mm/s at 230 extruded 42 mm, but with 75mm/s 44mm. Doesn't look like I can get more than 45 mm out of this, so I'll adjust the firmware accordingly.

After adjusting, it gave 47mm. Odd. Resetting the multiplier and trying again, getting 34mm, 33mm, 34mm. Adjusting for that give about 48mm at 50mm/s, but once I went to 75mm/s, only 46mm. That's exactly the same weirdness I saw before switching.

The brand new nozzle and brand new Innofill filament curled up at the nozzle at once, but after a bit more extrusion it got better, nice and smooth.

First test box got overextruded because Slic3r again didn't pick up the right settings. I've reverted to not specifying a settings file.

On the next print, it picked up the change in layer height (2mm -> 2.5mm) but not the change in temperature. Huh. The cube came out nicer, but still with upturned corners and splits in the top layer. Since my bed stickiness is good, the corners hint at too high a print temperature, or lack of fan.

Added the slanted fan mount and got a decidedly nicer result. No corner lifting, nicer top cover. A bit of gap in the top, though. Changed the slic3r command to be very specific: /Users/lars/Applications/Slic3r.app/Contents/MacOS/slic3r $s --output $o --load "/Users/lars/Library/Application Support/Slic3r/print/Simple Mode.ini" --load "/Users/lars/Library/Application Support/Slic3r/printer/Simple Mode.ini" --load "/Users/lars/Library/Application Support/Slic3r/filament/Simple Mode.ini". Now it picks up changes from Simple Mode. I have only one skirt, but with this hotend/filament combination, that doesn't matter.

Trying with 0.2 layer height instead of 0.25, plus no bed heat since the previous part was really hard to get off. First layer adhesion was much worse, but it fixed itself. The top is great, 0.2mm is the way to go. It was, however, so hard to get off that I had to use the stovetop scraper and tear the tape.

Just for kicks, made a more complex cube. Also took off the tape to see how well that works, and turned off bed heat. Why test only one thing at a time? :) It did quite well until it got up to the top part, then the cube itself came loose from the glass.

Tried again with hotter plate. Came loose at pretty much the same place and in the same way. Curious.

Tried, as I have seen suggested multiple times, coating the glass with UHU stic, still with 80C bed temperature for the first layer and 60C for the rest. And it worked! This piece is pretty close to perfect! And pretty close to impossible to remove...

That cube is at a 60 degree angle, and the overhang is just fine.

Sunday, 5 June 2016

Filament failures and thermistor troubles

Realized after taking off the nozzle for cleaning (without removing the filament first - oops!) that it's a 0.4 mm, not 0.5 mm like me previous one. No wonder the needle did no good for cleaning. Fortunately I have some 0.3 mm metal wire at hand, so I can clean it.

I adjusted Slic3r settings to have 2 skirts, 0.4 mm nozzle, and go at 50mm/s for edges, 60mm/s for infill, hopefully that will prevent the too-high backpressure.

...three-week break here due to general annoyance, business, vacation, and wanting to get better filament...

After talking with +Richard Jørgensen, I got a spool of Innofill filament, since I suspect my current filament of being dirty. He also prints PLA at 230-240, which seems rather high to me. He mentions a sweet smell when getting the temperature right, which I would have expected is actually the PLA starting to burn (or caramelize), but it works for him.

Last time I printed three cubes at different layer heights - or so I thought. They were all the same, for some reason Slic3r is remembering but then ignoring my settings changes, including then of course temperature settings. If I set the layer height on the command line, it does use it.

Dug into the settings problems. It all stems from my attempt to set 2 skirts. That required going into expert mode, in which each of the three parts of the settings can be read from a different file (which file is nowhere specified). Trying to use --load to specify a different file doesn't work too well, since any changes are still saved elsewhere. Using --load and --save just copies the settings. Used `find` to figure out where the files are (./Library/Application Support/Slic3r/print, of course) so I can specify the right one from Pronterface. Pronterface helpfully ignores the stderr output in their console, so I can't tell if the file is missing or corrupt or I gave an invalid option or what.

Slic3r's option file handling is also silly. There are three separate settings for option files, one for each part of settings, and they're remembered separately (somewhere). But they all contain the full settings, so using the wrong place will be silently ignored. Plus the simple mode doesn't use the same files as expert mode. In expert mode, the settings files are shown without the .ini extension, unless you specify the file on the command line (which you have to do to use it in simple mode), in which case the same file can appear with and without extension - or if you open the same config file twice, it can occur twice. Confusiorama!

It would appear that I have finally got my slic3r settings in sync with what actually slices, using /Users/lars/Applications/Slic3r.app/Contents/MacOS/slic3r $s --output $o --load  "/Users/lars/Library/Application Support/Slic3r/print/Simple Mode.ini". At least it doesn't ignore the number of layers any more.

After some simple tests I should run a temperature tower. Just need a good way to set the right temperatures. It would be nice if STL had some way to indicate that, or at least to pass a comment through, but STL is an exceedingly primitive language (for better and for worse). Looks like I'll have to figure out the appropriate Z heights to insert temperature changes. Later.

Found part of my mounting problem. The diameter of the e3d part that gets mounted on is 12mm, but the holes in the extruder motor mount are 12 mm from center to center. So the screws are forced wide apart. Grr. Is nothing standardized around here? However, a bit of offset or angling is not going to make the filament catch, since the e3d has a nice slanted filament entry. It's just ugly and annoying and I get big gashes on the e3d mounting area from screwing into it.

Had to disassemble the hotend entirely to get the filament out. Here's the part I finally pulled, I think the dark marks are from rubbing against the side. Also notice the specks in there. Accumulated dirt or bad filament? Good question.

The blob on the left is also interesting. I suspect that's from where the heatbreak meets the heatsink (see below) if they're not screwed in well enough. Though I don't see much of a gap when peeking through it.

While fiddling with getting the filament out, my thermistor broke off one leg. Bother. I don't have a spare of the same kind, but I do have two spares of the old kind. Except (and I see that only after carefully soldering them onto the wires) the head of the thermistor is larger, large enough to not go properly in. Arghety-argh-argh. Since I have a spare, I'll try sanding off part of the head.

Did some macro shots of the old (grey) and new (purple) filament, focusing on places with visible splotches.