Sunday, January 26, 2020

UMMD X and Y Axis Modifications

When I was mounting optical endstops on the X and Y axes in UMMD I discovered that one of the Y axis linear guides had gone bad- motion was very rough.  I tried cleaning it to see if that would fix the problem but nope, it was finished.  I bought the guides in used condition, so there's no telling what sort of abuse they may have been subjected to before they ended up in my printer.

I searched ebay for the same type NSK linear guides I had used originally and couldn't find a pair, but I did find a single, new-old-stock guide that came with two bearing blocks and was 760 mm long.  After checking my CAD model of the printer to make sure it would work, I ordered the guide.

When the new linear guide arrived I cut it using a cut-off saw at the makerspace and ended up with two pieces just under 380 mm long- shorter than the original guides, but still long enough to allow edge to edge printing on the 300 mm square bed, because the new bearing blocks were shorter than the originals.

The belt layout with pulleys labeled for reference.

The screw hole spacing in the new bearing blocks was different, requiring a minor redesign of the X axis.  The P1 and P2 pulley mounts at the ends of the X axis were originally made from 2" square aluminum tubing.  If I had reused the old pulley mounts, the extruder would not have been able to print over the entire surface of the bed without moving the whole Z axis toward the front of the printer.  I decided that I'd rather just make new, smaller pulley mounts.  I also had to print new spacer blocks for the P3 and P4 pulley mounts at the back corners of the machine, which I did before I took everything apart.

Original P2 pulley mount from the left end of the X axis, made from 2" square aluminum tubing.  The four small holes on the top of the tube are tool access holes to get to the screws that hold the tube on the Y axis bearing block.  The four small holes on the front of the tube are to access the screws that hold the X axis bearing block on the tube.
The new pulley mounts are made from 1.5" x 2" tubing instead of 2" square tubing.  In the original tubes, I cut back the metal near the pulleys to give the belts more room, but it really wasn't necessary.  I didn't bother to cut the material back in the new mounts.  I found my original tool access holes too small, so I made them a little bigger.

The overall size of the mounts was 1.5" x 2" and 58 mm long, so I cut the tube on a bandsaw into a couple pieces roughly 62mm long.  Next I milled one cut end of each piece square, then milled the other end of each piece square and to 58mm long.  

I prepared drawings with ordinate dimensions of each piece so I could drill the holes accurately on the mill.  Here's an example of one of the drawings with the ordinate dimensions.  I put the origin in each view at the top left corner of the part because the left edge of the fixed jaw of the vise on the mill is at the left rear of the vise.  Now I set the origin of the DRO of the mill at the corner of the fixed jaw of the vise on the mill table using an edge locator tool.  Once that was set, all I had to do was position the workpiece against the left rear corner of the vise and use use the DRO on the mill to move the drill to the coordinates on the drawings and drill the holes.

The new P2 pulley block made from 1.5 x 2" aluminum tubing, with no metal cut away near the belts- not necessary.  Larger tool access holes, smaller Y axis bearing block, opto endstop flag mounted on top.
The new pulley mounts had the pulleys positioned closer to the X axis guide rail than the old ones, so I needed to move the extruder carriage belt clamps a little closer to the X axis guide rail, too.  All I had to do there was drill new holes for the screws at the right position to keep the belts parallel to the X axis guide rail.  The original printed ABS belt clamps, three years after installing them, have held up well, and I can see no evidence of distortion due to belt tension and heat.  This is why I print with ABS instead of PLA.

Left side belt clamp on the extruder carriage moved a little closer to the X axis guide rail.  You can just see the edge of one of the original mounting holes peeking out from under the edge of the clamp.
In the original design, the belt clamps were able to fit inside the P1 and P2 pulley mounts when the extruder carriage moved to the ends of the X axis.  There was no change there- they still fit so I get the full range of motion in the X axis.

Extruder carriage at the right end of the X axis.  The right side belt clamp disappears into the P1 pulley mount without touching anything.

The extruder carriage at the left end of the X axis.
When I installed the new guide rails, I aligned the left side rail with the edge of the aluminum plate on which it mounts.  I made a spacer bar from a piece of aluminum scrap and drilled holes to mount it on the Y axis bearing blocks, then starting at one end of the Y axis, screwed the right side guide rail down as I moved the bearing blocks along the rails.  That put the rails into parallel alignment.

After that I mounted the right side of the X axis guide rail and the spacer on the back of the P1 pulley mount (had to do that first because the pulleys would block access to the screws), then mounted the X axis bearing block on the left side (P2) pulley mount.

Next I installed the pulleys and all the nylon washers used as spacers, and then mounted the X axis on the Y axis pulley blocks.  The next steps were to check and adjust the level of the X axis guide rail and then to reassemble the extruder carriage and connect the cables.  

The final job was to tweak the config file because the range of motion changed by a few mm, adjust the bed level, and then run a test print to check squareness of the X and Y axes.

I initially thought this was going to be a real PITA job, but it turned out to be pretty easy.  I was able to access everything from the front openings of the printer so I didn't have to take any of the side panels off the machine.  That would have been a pain because the side panels fit into the slots in the frame and I would have had to take some frame members out to get the panels out.  I never took the belts out of the belt clamps, and was shocked to discover that when I put it all back together and ran a test print, it came out perfectly square- I didn't have to tweak the belt tension (that's how you get X and Y square in a corexy printer) at all!

The latest view of the XY stage of the printer.


I put a copy of the Fusion 360 CAD file of the XY stage here.  Note- the design was originally done in DesignSpark Mechanical, and someone was able to port it to Fusion360 for me.  That process isn't very neat so if you look at the structure of the components in the browser, it's a bit of a mess.  I tried to clean it up a little, but it's still pretty bad.  As I do more work on the printer it should get better over time, but don't hold your breath and wait.

If you were going to try to build this XY stage, you might consider that the P3 and P4 pulley mounts in the back corners don't have to be made from 2" square tubing.  They can be made of 1.5" x 2" tubing.  Both motor mounts can be made from 1.5" x 2" tubing, too, with the upper belt mount sitting on a printed spacer.  That means you can buy a single short piece of 1.5" x 2" tubing to make all the pulley mounts and the extruder carriage belt clamp mount for the XY stage.

Update: 2/19/20


I replaced the printed ABS Y axis endstop flag with one made of aluminum.

New aluminum Y axis endstop flag made from a scrap piece of aluminum tubing.

UPDATE: 3/30/20


I tested the precision of the optical endstops and wrote another blog post that you can read here.

Tuesday, January 21, 2020

UMMD Gets Opto Endstops

UMMD was originally built with micro-switch endstops in all three axes.  They're easy to set up and use, and if you use quality switches, they can last for a very long time.  Quality microswitches are good for a million operations or more.  In typical printer operation, homing X and Y doesn't have to be super precise because variations in the home position will simply move the print on the bed a little.  Homing Z should be very precise and accurate to get that critically important first layer right.

I recently observed a printer made by Markforged while it was printing.  I noticed that it was homing the printer before the start of every layer.  It used optical endstops for at least the X and Y axes, and probably Z as well.  Print quality was excellent, so I thought it would be interesting to try a similar operation in UMMD and see if it improved print quality.

A while back I installed one of these optical endstops that I bought on amazon (3 for $10) in SoM.  I chose these particular optical endstop modules because all the parts were located on one side of the circuit board making them easy to mount, there is an on-board LED to indicate when the stop is activated, and they use an LM393 comparator chip to debounce the signal from the opto interruptor. As per usual with low cost Chinese stuff, there was no schematic or data sheet, so I didn't really know if the modules would work with the Duet controller board until I tried one.  The Duet supplies 3.3V to the endstop modules, and there have been no problems with the one I used in SoM.

It was really handy to make the Z=0 adjustment in SoM by watching the LED as I made the adjustment, so I used the two endstop modules I had left over in UMMD's X and Y axes.


Here's the CAD model of the opto endstop module.

The opto endstop module.



Since I had already modeled the endstop module in CAD for the Z=0 stop for SoM, all I had to do was design the mounts and flags for UMMD.  Once they were designed, I printed them in ABS, mounted them on the machine, and tweaked the config file (the mechanical endstops were normally closed, the optical endstops are normally open).

The config file change was simply to convert the endstops from active low to active high by using the S parameters in the M574 endstop definitions:

M574 X2 Y2 S1       ; active high endstops at Xmax and Ymax
M574 Z1 S0             ; active low endstop at Zmin
The Y axis endstop mounted on the rear corner pulley block.  The slotted mount allows the trigger position to be adjusted.  The flag is mounted on the X axis pulley block.

Here is the Y axis opto endstop on the printer.  The flag is pretty thin and fragile, so I may modify the design to make it a little less likely to get broken.


The X axis optical endstop is mounted in place of the old mechanical switch.  One screw hole is a slot to allow the mount to be rotated to adjust the trigger position of the endstop.  The flag is a part of a new hot-end clamp (yellow) that I printed.

Here's the X axis opto endstop on the printer.

The X axis endstop is mounted on the printer's frame to avoid having to run an extra set of wires to the extruder carriage.  That means the Y axis has to be homed before the X axis is homed.  The slot in the X axis optical endstop had to be positioned to allow movement in the Y direction before or after after homing, even if the extruder carriage is at the X endstop end of the axis.  In other words, the opto interrupter had to be positioned to allow the flag to move into and out of the endstop from either the left side or the front.

I used printed plastic flags to activate the endstops.  I have no idea if the pink plastic I used is really opaque at the IR wavelength of the LEDs used in the endstops.  It appears to work fine, but I haven't tested precision yet.  I may reprint the flags in black or even redesign parts to use metal blades for the flags screwed to printed plastic brackets.

Now that the X and Y optical endstops are in place, I'll try running some prints in which the machine is homed only at the start of the print and then run identical prints where the machine is homed at every layer change like the Markforged machine.  It will slow down the prints but if it improves print quality it might be worth the extra time.

Something that remains to be seen is how long the optical endstops last when the chamber is heated to 50C to print ABS.  They are being operated from 3.3V supplied by the Duet controller board, which is well within the LM393 voltage and temperature specs, so they may last a long time.  The opto interrupters are the big unknown here.

I haven't made an optical Z endstop for UMMD yet because I'm still thinking about how leveling and zeroing the bed will be accomplished- it's a bit different from SoM.

Update 2/19/20:


I replaced the fragile, printed ABS Y axis endstop flag with an aluminum piece made from 3/4" square aluminum tubing.

Aluminum flag replaces the printed ABS flag for the Y axis endstop.

UPDATE  3/30/20:


I tested the precision of the X and Y axis optical endstops.  Read more about it here.

I also installed an optical endstop in the Z axis and used a differential screw to make fine adjustments to the bed's home position.  Read more here.

Finally, I tested the Z axis endstop precision and the accuracy of the differential screw adjuster.  Read more here.