The Smell of Molten Projects in the Morning

Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.

Category: Machine Shop

Mechanical widgetry

  • Thing-O-Matic: Polyholes Print Quality at 25, 50, 75 mm/s

    Nophead’s polyholes test piece (search for it here to find other attempts) seems to be a particularly difficult-to-print object: it’s 1 mm thick and has narrow openings between the holes.

    Here are three variations, printed in quick succession, on three different plates, at 0.33 mm layer thickness, 2.0 w/t = 0.66 mm width, and speed variations to maintain those numbers:

    • 25 mm/s, 50 mm/s, 1.65 rev/min
    • 50 mm/s, 80 mm/s, 3.3 rev/min
    • 75 mm/s, 100 mm/s, 5.0 rev/min
    Polyholes at 25 50 75 mm per sec
    Polyholes at 25 50 75 mm per sec
    Polyholes - large hole detail
    Polyholes – large hole detail

    Those are as-printed, with no cleanup other than breaking off the final filament leading to the extruder.

    I’ve turned off Comb, because the extruder really isn’t dribbling very much and high-speed travel stretches what’s left into very fine hairs. Comb tends to run the nozzle along the path of the infill threads, which can be jarring at 80 mm/s.

    A higher-resolution slice (clicky for more dots) down the right side shows the largest filled area; I stretched the contrast and added a little unsharp mask to highlight the threads. The 25 mm/s version has much straighter fill lines, with the other two exhibiting side-to-side jitter; the platform seems unstable  at those speeds.

    The upper hole is nominally 9.5 mm and measures 9.1 mm on the 25 mm/s plate and 9.2 mm on the other two. This is with my HoleWindage tweak set to zero, so the larger holes now print 3% smaller than nominal. That’s a considerable improvement over my previous attempts, with the new Z-min height measurement making all the difference.

    Polyholes - small hole detail
    Polyholes – small hole detail

    This slice down the left side shows that the small holes come out rather ugly, but they’re actually pretty close to the right size amid all the chaff: around 0.3 mm too small. Of course, that’s a huge percentage of the nominal 1 to 4 mm size, but so it goes.

    The fill around the small holes looks much worse on the higher-speed plates.

    The longer threads parallel to the X axis have an odd stippled pattern that might be coming from the extruder stepper motor. Given that it’s driving an 8:51 gear reduction, I find that hard to believe, too. It’s only present on the fill threads, so most likely it’s something weird.

    One of Skeinforge’s myriad settings very predictably chops off the initial or final (or both?) section of the inner extrusion of some circles. It’s probably not Clip, because that’s set to 0.34 × width = 0.24 mm and the gaps can be just shy of 1 mm long. Ditto for early Reversal, which has threshold of 3 mm that’s much smaller than the distance to the next perimeter thread. More tinkering seems inevitable.

    So a super stock TOM can print upwards of 50 mm/s on non-critical parts, but something around 30 mm/s would work better should you care about surface finish. I think the results will be much better on thicker parts that can absorb some of the excess plastic around the holes; this is likely a lower limit on print quality.

  • Thing-O-Matic: Z-Min Platform Height Switch Testing

    After building a few large objects (about which more later) and verifying that the Z-minimum switch remains stable and delivers useful results, I cobbled up a test script that simplifies measuring the build platform tilt and extrusion thickness for a given switch height value.

    The pattern looks about like this, although the G-Code script below connects the top of the X so it hangs together better.

    Test X extrusion pattern
    Test X extrusion pattern

    The extrusion uses my defaults for the first layer: 0.33 mm layer thickness, 2.0 w/t, 10 mm/s, 0.66 rev/min. Those are 20% of the normal extrusion speeds: 50 mm/s and 3.3 rev/min.

    I built all the objects without adjusting the plate tilt to determine if all three plates produced the same result: they do! The results showed a consistent tilt, with the rear left corner high by 0.10 mm and the front right corner low by 0.10 mm. Those are all rubbery numbers, with accuracy based on measuring a filament, but they’re reasonably consistent.

    The Z-min switch set the middle of the platform to about 0.35 mm, making the corners around 0.25 mm and 0.45 mm. That led to slightly too much plastic (plate too high) and slightly too little (plate too low), respectively, but the objects printed quite well.

    Running the G-Code below under those conditions produced these numbers:

    30 29
    32 30 34 33
    30 32 41
    28 36

    The numbers come from two measurements on each side of the outer square at about the 1/4 and 3/4 points, plus four measurements near the middle of the X. I didn’t average multiple measurements, some are definitely off due to error, and your mileage will vary.

    Those thicknesses aren’t quite the same as I’d been seeing around printed objects, but if you squint you can see the tilt. There’s one missing number; that part of the X broke off and vanished somewhere between the Basement Laboratory and my upstairs desk.

    I tightened the rear left bolt 1/6 turn (about 0.08 mm) to lower that corner and raise the opposite one, then stuck a sheet of 8-mil (0.008 inch = 0.021 mm) shimstock under the upper plate to see how the switch handled an abrupt change in plate height:

    Built plate on 8 mil shimstock sheet
    Built plate on 8 mil shimstock sheet

    Another text X extrusion produced these thicknesses:

    25 26
    28 27 34 30
    29 31 30 38
    28 36

    It’s obviously tilted even worse than before, which means the shimstock has the odd nick, bend, or bit of grit. What’s important, however, is that the extrusion thickness remains pretty close to normal, despite having the build surface 0.22 mm higher than usual. Without the Z-min switch on the plate, the extrusion thickness would suddenly decrease by 0.21 mm… and that’s enough to wreck a print!

    Removing the shimstock and running another test extrusion produced about what I expected:

    35 32
    36 24 35 33
    30 36 35 38
    29  35

    Overall, the thickness now lies within 0.05 mm of the 0.33 mm average. My measurement accuracy simply isn’t good enough to get any better than that.

    The evidence so far suggests the platform tilt remains reasonably constant, even as the overall height varies, so I think a Z-minimum switch on the build platform should compensate for the changes that affect first layer extrusion thickness.

    What that means: slice an STL into G-Code and fire the Thing-O-Matic!

    This Level Test.gcode file, which is basically my start.gcode and end.gcode laminated around the snippet that draws the boxed-X pattern, lives in ~/ReplicatorG/scripts/calibration and thus appears on RepG’s pulldown menu:

    (---- start.gcode begins ----)
    (MakerBot Thing-O-Matic with aluminum HBP and Z-min platform switch)
    (Tweaked for TOM 286 - Ruttmeister MK5 stepper extruder mod)
    (Ed Nisley - KE4ZNU - May 2011)
    (- set initial conditions -)
    G21		(set units to mm)
    G90		(set positioning to absolute)
    (- begin heating -)
    M104 S210 T0	(extruder head)
    M109 S120 T0	(HBP)
    (- coarse home axes -)
    G162 Z F1000	(home Z to get nozzle out of danger zone)
    G161 Y F4000	(retract Y to get X out of front opening)
    G161 X F4000	(now safe to home X)
    G92 X-53.0 Y-59.0 Z117.0	(set XYZ coordinate zeros)
    (- fine home axes)
    G0 X-51 Y-57 Z115 F400	(back off switches)
    G161 Y F200
    G161 X F200
    G162 Z F200
    G92 X-53.0 Y-59.0 Z117.0	(re-set XYZ coordinate zeros)
    (- manual nozzle wipe)
    G0 X0 Y0 Z10	    (pause at center to build confidence)
    G4 P500
    G0 X40 Y-57.0 Z10	(move to front, avoid wiper blade)
    G0 X56            (to wipe station)
    G0 Z6.0           (down to wipe level)
    M6 T0			        (wait for temperature settling)
    G1 Y-40	F1000		  (slowly wipe nozzle)
    (- home Z downward to platform switch)
    G0 X55.9 Y8 Z3	      (get over build platform switch)
    G161 Z0 F50	          (home downward very slowly)
    (-----------------------------------------------)
    (- Set the Z height based on the switch height  )
    G92 X55.7 Y8 Z1.45
    (-----------------------------------------------)
    G0 Z6.0			          (back off switch to wipe level)
    (- start extruder and re-wipe)
    G0 X56 Y-40     (set up for wipe from rear)
    G1 Y-57.0 F1000 (wipe to front)
    M108 R2.0	      (set stepper extruder speed)
    M101		        (Extruder on, forward)
    G4 P4000  	    (take up slack, get pressure)
    M103		        (Extruder off)
    G4 P4000  	    (Wait for filament to stop oozing)
    G1 Y-40	F1000		(slowly wipe nozzle again)
    G0 X0           (get away from wiper blade)
    (- manual splodge)
    G0 X0 Y-58		  (to front center)
    G0 Z0.5 		    (just over surface)
    M108 R2.0	      (set stepper extruder speed)
    M101            (start extruder)
    G4 P2000        (build up a turd)
    (---- start.gcode ends ----)
    (--------------------------)
    (- print thread around platform)
    ( Speed as in Raft plugin for first layer)
    ( Print continuously to make it hang together while measuring)
    M108 R0.66				(set stepper extruder speed)
    G1 X-45 Y-45 Z0.33 F600	(to front left corner)
    G1 Y45
    G1 X45
    G1 Y-45
    G1 X-45					(return to front left)
    G1 X40 Y40				(diagonal to rear right)
    G1 X-40					(to rear left)
    G1 X45 Y-45				(diagonal to front right)
    (--------------------------)
    (---- end.gcode starts ----)
    (Tweaked for TOM 286)
    (Ed Nisley - KE4ZNU - May 2011)
    (- inhale filament blob)
    M102		(Extruder on, reverse)
    (- turn off heaters)
    M104 S0 T0 	(extruder head)
    M109 S0 T0 	(ABP)
    (- move to eject position)
    G162 Z F1500	(home Z to get nozzle away from object)
    M103		(Extruder off)
    G0 X0		(center X axis)
    G0 Y40	(move Y stage forward)
    (---- end.gcode ends ----)
    

    Things are looking good!

  • Thing-O-Matic: Z-Minimum Probe G-Code

    The G-Code in start.gcode homes all three axes, but now I have two limit switches on the Z axis: the MBI Z-Maximum at the top and a new Z-Minimum on the platform. The Z axis platform can’t miss the switch at the top, but I must position the nozzle directly over the Z-Minimum switch on the platform before probing for it. Homing the stage at the top of the Z axis makes sure the nozzle starts more-or-less at the right height over the switch, which then provides an exact adjustment.

    For the home switches on my Sherline CNC milling machine, the EMC2 homing routines proceed in two stages: a fast slew to find the switch, then a slow approach to ensure the axis doesn’t overrun the switch. That seemed like a good way to ensure that the X and Y stages would home repeatably enough to hit a 2 mm button with a 1 mm nozzle every time.

    I recycled the default home sequence for coarse homing, albeit with the speeds cranked up a bit:

    (- coarse home axes -)
    G162 Z F1000	(home Z to get nozzle out of danger zone)
    G161 Y F4000	(retract Y to get X out of front opening)
    G161 X F4000	(now safe to home X)
    G92 X-53.0 Y-59.0 Z117.0	(set XYZ coordinate zeros)
    

    Then the fine homing sequence backs off a few millimeters and bumps the switches very slowly:

    (- fine home axes)
    G0 X-51 Y-57 Z115 F400	(back off switches)
    G161 Y F200
    G161 X F200
    G162 Z F200
    G92 X-53.0 Y-59.0 Z117.0	(re-set XYZ coordinate zeros)
    

    You could set relative motion mode with G91; that might be cleaner all around.

    I discovered experimentally that you must set all three axes in the G92 command, because any missing axes get set to 0.0: probably not what you want. It’s not what I expected, either, but this isn’t the EMC2 G-Code dialect I’m more familiar with.

    In normal use, the extruder has been heating for quite a while and there’s no pressure inside. There’s most likely a long strand of filament hanging off the end that will interfere with the switch, so a preliminary wipe is in order. I first pause the nozzle over the middle of the platform as a visual indication that everything started up OK, then make a dogleg around the wiper blade to the front of the wipe station:

    (- manual nozzle wipe)
    G0 X0 Y0 Z10	    (pause at center to build confidence)
    G4 P500
    G0 X40 Y-57.0 Z10	(move to front, avoid wiper blade)
    G0 X56            (to wipe station)
    G0 Z6.0           (down to wipe level)
    M6 T0			        (wait for temperature settling)
    G1 Y-40	F1000		  (slowly wipe nozzle)
    

    With the dry wipe done, move to the Z-Min switch and poke it very very slowly:

    (- home Z downward to platform switch)
    G0 X55.9 Y8 Z3	      (get over build platform switch)
    G161 Z0 F50	          (home downward very slowly)
    G92 X55.7 Y8 Z1.45	  (set Z for actual switch trip height)
    G0 Z6.0			          (back off switch to wipe level)
    

    I had to determine the actual height of the trip point experimentally, by doing some test extrusions and adjusting that Z1.45 to make the answer come out right. I’m sure that will change as things settle into their final places.

    Ditto for the exact XY location of the Z-Min switch, which I found by using a very slow G1 move to Z2.0 in place of the G161 probe.

    Note that you increase the Z value in G92 to lower the initial nozzle position and vice versa. It helps to draw some diagrams and work through the whole thing to be sure you understand it; that’s what I had to do, anyway.

    Then return the nozzle to the wipe station by running over the blade again to dislodge any gunk on the front side, crank up the extruder to build up pressure, and wipe again to get rid of the snot ball:

    (- start extruder and re-wipe)
    G0 X56 Y-40     (set up for wipe from rear)
    G1 Y-57.0 F1000 (wipe to front)
    M108 R2.0	      (set stepper extruder speed)
    M101		        (Extruder on, forward)
    G4 P4000  	    (take up slack, get pressure)
    M103		        (Extruder off)
    G4 P4000  	    (Wait for filament to stop oozing)
    G1 Y-40	F1000		(slowly wipe nozzle again)
    G0 X0           (get away from wiper blade)
    

    Running the extruder here ensures that, no matter what, the molten ABS in the hot end begins the print in a consistent state every time. The extruded length varies from a few millimeters to a real string, so there’s obviously plenty of variation.

    Then I put a manual splodge turd at the middle of the front edge of the platform. This is unnecessary now that SF40 shuts off the extruder before zipping off to the first Skirt, so I’ll probably junk it in the near future:

    (- manual splodge)
    G0 X0 Y-58		  (to front center)
    G0 Z0.5 		    (just over surface)
    M108 R2.0	      (set stepper extruder speed)
    M101            (start extruder)
    G4 P2000        (build up a turd)
    

    Putting all that together with some odds & ends gives the complete current version of start.gcode:

    (---- start.gcode begins ----)
    (MakerBot Thing-O-Matic with aluminum HBP and Z-min platform switch)
    (Tweaked for TOM 286 - Ruttmeister MK5 stepper extruder mod)
    (Ed Nisley - KE4ZNU - May 2011)
    (- set initial conditions -)
    G21		(set units to mm)
    G90		(set positioning to absolute)
    (- begin heating -)
    M104 S210 T0	(extruder head)
    M109 S120 T0	(HBP)
    (- coarse home axes -)
    G162 Z F1000	(home Z to get nozzle out of danger zone)
    G161 Y F4000	(retract Y to get X out of front opening)
    G161 X F4000	(now safe to home X)
    G92 X-53.0 Y-59.0 Z117.0	(set XYZ coordinate zeros)
    (- fine home axes)
    G0 X-51 Y-57 Z115 F400	(back off switches)
    G161 Y F200
    G161 X F200
    G162 Z F200
    G92 X-53.0 Y-59.0 Z117.0	(re-set XYZ coordinate zeros)
    (- manual nozzle wipe)
    G0 X0 Y0 Z10	    (pause at center to build confidence)
    G4 P500
    G0 X40 Y-57.0 Z10	(move to front, avoid wiper blade)
    G0 X56            (to wipe station)
    G0 Z6.0           (down to wipe level)
    M6 T0			        (wait for temperature settling)
    G1 Y-40	F1000		  (slowly wipe nozzle)
    (- home Z downward to platform switch)
    G0 X55.9 Y8 Z3	      (get over build platform switch)
    G161 Z0 F50	          (home downward very slowly)
    G92 X55.7 Y8 Z1.45	  (set Z for actual switch trip height)
    G0 Z6.0			          (back off switch to wipe level)
    (- start extruder and re-wipe)
    G0 X56 Y-40     (set up for wipe from rear)
    G1 Y-57.0 F1000 (wipe to front)
    M108 R2.0	      (set stepper extruder speed)
    M101		        (Extruder on, forward)
    G4 P4000  	    (take up slack, get pressure)
    M103		        (Extruder off)
    G4 P4000  	    (Wait for filament to stop oozing)
    G1 Y-40	F1000		(slowly wipe nozzle again)
    G0 X0           (get away from wiper blade)
    (- manual splodge)
    G0 X0 Y-58		  (to front center)
    G0 Z0.5 		    (just over surface)
    M108 R2.0	      (set stepper extruder speed)
    M101            (start extruder)
    G4 P2000        (build up a turd)
    (---- start.gcode ends ----)
    

    Then I did a bunch of measurements to see how it worked…

  • Thing-O-Matic: Z-Minimum Platform Height Switch

    Z-minimum switch - left view
    Z-minimum switch – left view

    Getting a good bond between the build platform and the first extrusion layer depends on the nozzle height above the platform: too high and it doesn’t stick, too low and the excess plastic ruffles up to ruin the next layer. I’ve been setting the height manually, but that’s tedious, fraught with error, and goes best with a cool platform that may change size when it heats up. Measuring the Outline or Skirt extrusion provides after-the-fact information about build platform alignment, but doesn’t ensure that the current print will work.

    The best way to do this is to measure the actual height of the nozzle above the build platform immediately before starting the extrusion, with everything at operating temperature, then set the Z axis so that Z=0.0 puts the nozzle on the platform. Nophead put a height measurement station beside the build platform and I’ve built a tool length probe for my Sherline, so I’m not breaking new ground here.

    The catch is that the switch must sit flat on a 120 °C platform, withstand being poked with a 220 °C nozzle, repel ABS, and trip with better than 0.1 mm repeatability. I don’t know that what I’ve done here meets all those criteria, but it’s a first step along the way.

    The top picture shows a surplus SMD pushbutton switch with a metal actuator button mounted on a small steel strip. The gray epoxy blob to the front secures a brass tube that protrudes from the bottom into the middle socket head cap screw along the right edge of the platform.

    [Update: The surplus place was likely Electronic Goldmine, but it seems they have no more. Sorry. Maybe glue a metal disk atop a plastic switch?]

    Drilling thin sheet metal
    Drilling thin sheet metal

    The steel strip was an RF shield from a junked wireless network card. I bent the edge in a small sheet-metal brake to keep the whole thing rigid and, somewhat to my surprise, the strip remained as flat as I can measure throughout the adventure.

    Drilling a good hole through sheet metal is easier when you clamp it between two sacrificial sheets and drill through the whole stack. That keeps the metal from warping and gives you a nice, circular hole; otherwise, you get a rumpled sheet with a triangular hole that’s good for nothing. You can see the bent edge sticking up on the left; the drill center is 4 mm from that side.

    The brass tube in the hole and the bent edge constrain the switch to a known position relative to the underlying HBP. The tube fits snugly in the center bolt’s hex socket to set the XY position and the bent edge keeps the whole affair parallel to Y. That allows the upper plate to shift slightly in XY while the switch remains in the same location relative to the TOM’s XY home switches (the bent edge allows a bit of slop in X for the top plate’s hole tolerance)

    The Z height, of course, depends only on the altitude and thickness of the top plate, which is exactly what’s being measured relative to the nozzle.

    I built it in two stages: epoxy the brass tube, then mount the switch and a second tube as a strain relief around the wire. A layer of Kapton tape insulates the SMD switch terminals from the steel strip; the epoxy sticks well enough to the tape for my present purposes.

    Attaching Z-min switch and cable
    Attaching Z-min switch and cable

    None of the dimensions are critical, although having the whole assembly narrow enough to stay out of the build area seems like a Good Idea. The center line of the platform bolts sits 4 mm inward of the plate edge, to give you an idea of the scale.

    The right-side bulldog clamp holds it securely in place, with the wire from the switch threaded beside the platform and wrapped around a solderless lug on the front corner:

    Z-minimum switch on build plate
    Z-minimum switch on build plate

    I think a tiny neodymium magnet embedded in the top plate would work just as well, although it’d tend to suck steel swarf out of the rest of the shop. This is not the right place for a random speck of grit!

    The wire connects to a 24 inch CD-ROM audio cable fresh from the usual eBay supplier. I snipped off the end and added a resistor to resemble an MBI mechanical endstop switch: 10 KΩ to +5 V, switch connects the resistor to ground. No LED, alas.

    Next, a dab of G-Code to poke the nozzle into the switch…

  • Thing-O-Matic: Build Plate Clamps

    I’m using a removable aluminum plate atop a fixed plate on the HBP, but haven’t clamped the two together because I couldn’t figure out how to do it without an overly complex gadget.

    It turned out to be easier than I expected, after I found a couple of bulldog clips in a drawer while looking for something else:

    Aluminum plates with bulldog clips
    Aluminum plates with bulldog clips

    The clip on the right must be well toward the rear in order to clear the X axis limit switch and its cable. The clip on the left then goes near the front just for symmetry.

    The nozzle can’t quite reach the left clip, but it can clobber the right one. I try to align the end of the clip with the middle of the bolt heads to keep them out of the build area.

    The wire handles don’t quite touch the TOM’s case on the left side and have plenty of clearance on the right. They don’t get too hot after an hour’s worth of printing; clips with solid metal handles wouldn’t work well at all.

    News flash: that’s almost the last of the pink plastic!

  • Ensuring a Sharp Blade

    Cutting those compliant washers required a really really sharp blade, which prompted me to put a new one in the cutter.

    As a matter of course, I run a marker along the edge of all the new blades when I restock the utility cutter’s supply. The idea is that sometimes I can’t tell if the current blade’s been used; there’s nothing worse than sawing away at something delicate with a dull blade.

    Utility cutter with marked blade
    Utility cutter with marked blade

    I generally use a blue marker, but the last time around the red one must have been closer to hand. I won’t make that mistake again…

  • Thing-O-Matic: Fastest Cephalopods EVAH!

    Having printed out a quartet of small octopi in half an hour, I decided to see just exactly how fast this printer can go with its new steppers.

    The starting point:

    • Print = 40 mm/s
    • Travel = 60 mm/s
    • Extrude = 2 rpm
    • Thickness = 0.33 mm
    • Width = 0.58 mm = 1.75 w/t
    • First layer = 10 mm/s

    Which produced another batch of these cuties:

    Small octopus quartet
    Small octopus quartet

    From here on, though, they’re full sized critters that sprawl over the entire aluminum plate.

    Print = 40 mm/s, travel = 100 mm/s, extrude = 2 rpm:

    Octopus at 40 mm per sec
    Octopus at 40 mm per sec

    The numbers scrawled around the tentacles indicate the thickness of the single-layer Skirt extrusion around the outside of the octopus. The platform is high by 0.1 mm in the left rear and low by 0.1 mm in the right front.

    Print = 60 mm/s, travel = 100 mm/s, extrude = 3 rpm:

    Octopus at 60 and 100 mm per sec
    Octopus at 60 and 100 mm per sec

    Still low on the back and high in the front, which is comforting. I forgot decided not to adjust that before starting the next part; given my proclivity for hurting myself, that makes sense.

    Print = 80 mm/s, travel = 100 mm/s, extrude = 4 rpm:

    Octopus at 80 and 100 mm per sec - lost Y steps
    Octopus at 80 and 100 mm per sec – lost Y steps

    This one failed with at least two cases of Y step loss, giving it a rather rakish, swept-back ‘tude that doesn’t look all that bad on an octopus. The motor was still at 900 mA (REF = 1.8 V), so I goosed it to 1.1 A (REF = 2.2 V) and tried again:

    Octopus at 80 and 100 mm per sec - success
    Octopus at 80 and 100 mm per sec – success

    That one worked perfectly, which just goes to show that diagnostic tests never find the errors that crop up in real life.

    So here’s a data point: a Super Stock Thing-O-Matic laying down ABS at 80 mm/s!

    As it turns out, the TOM actually prints at top speed only up to about the eyeballs, at which point the Cool plug-in begins slowing things down. I started with a minimum of 15 s/layer, then dropped it to 10 s/layer for the 80 mm/s prints. It still takes about 25 minutes overall, with most of the time devoted to pasting the first layer on the build plate at 10 mm/s.

    I didn’t do any optimizing for these prints: I just increased the speeds & flows, then reduced the first layer speed ratio to compensate. I’m sure some tweakage would improve things, but the results look pretty good right out of the box!

    In particular, the Reversal plugin is still at 25 rpm, 90 ms in/out, 3 mm threshold, no early action. Those aren’t optimized, but the results seem workable.

    The Y axis motor has a winding resistance of 2.2 ohms, so 1.1 A dissipates about 2.7 W. I left the motors continuously energized for about four hours while printing, pausing to make pizza for supper, and printing some more. After an hour at 1.1 A, the Y axis motor was at the high end of “comfortably warm” to the touch and the driver chip was just barely over room temperature. No heatsinks, no fans, no muss, no fuss: the right steppers Just Work.

    This is without acceleration limiting, so the X and Y stages must accelerate to full speed in less than two full motor steps. That’s absurd, but that’s how it works right now.

    In truth, I think anything over 50-ish mm/s shakes the printer entirely too hard and certainly doesn’t print as precisely, so I don’t plan to run it at those speeds. Except maybe for demos.

    Cuing Jan & Dean on Turntable One…