TOM Z-min Endstop
by emmett, published
The Thing-O-Matic is a good machine, but it has one quirk that really irks me: the Z-height calibration never stays quite right. Since it goes all the way to the top to hit the endstop, then counts down 120 or so mm to find the build platform, if there is any change in temperature or humidity, the wood sides of the bot will expand or contract, easily making the nozzle move +/-0.1mm with respect to the platform. That may not sound like a lot, but when you're printing raftless, that's the difference between a first layer that doesn't stick down, and one that's so smashed the bottom of the print is wider than the rest.
This little block fixes all that. By making the Z-endstop contact the platform directly, the nozzle will always find the correct height, regardless of whatever thermal expansion the bot may be experiencing.
Beware, when messing with endstops and nozzle heights, it is very easy to make a mistake and ram your nozzle into your build platform. Go slow, measure twice, cut once, etc. I'm not taking any responsibility for you harming your bot.
I designed this around a HBP, and it's important that absolutely nothing sticks up above that surface. You'll need the aluminum plate with the counter-sunk bolts and I even clipped off the plug retainer because it stuck up a little. You will have very little clearance with the endstop. Now, for the steps:
1) Print the block and bolt an endstop into it (M3 screws should be able to tap themselves into the small plastic holes). I bought a 4th endstop for this purpose, but I don't see any reason you couldn't remove your current Z-endstop and use that. Just don't tell it to build something too tall, or you'll get a surprise.
2) Remove the metal switch lever. This is important, or else that'll get dragged through prints and ruin them.
3) Unbolt the left-hand M5 screw that hold the extruder. I designed this part for a MK6+ extruder; hopefully it'll work for others as well, since I believe the mounting points are universal, but the SCAD file is there so you can adjust as necessary. Set the block on the Z-stage as shown in the pictures and put the bolt back in through the large hole. Tighten it down and make sure it's sturdily attached (that goes for the extruder as well).
4) Plug the endstop cable into the endstop and route it down to the motherboard and plug it into the slot marked Z-min (instead of Z-max). I found the cable supplied was not long enough, so I had to solder an extra length of wire in as a splice.
5) Calibrate. The tip of the nozzle should extend slightly (~1mm) below the bottom of the endstop button, so that it will clear prints. If that's not the case, go into the OpenSCAD file and adjust the "e" value to make the block a different thickness. If that works, then jog your axes so that the build platform is in front of your nozzle (X centered, Y max). Then jog Z down until the endstop hits the platform and stops it. The nozzle should now be below the level of the platform, so don't jog Y. Instead jog up until you can just slide the platform barely under it. Record the vertical Z there for your Z-offset. Mine is -1.0mm (the number should always be negative, since we started below the platform).
6) Copy my start.gcode to your start.gcode and adjust as desired. Mine is for SF44, so you'll need to replace the extruder commands if you're still using SF35. Save your new Z-offset in the motherboard. Skein up a simple part and try printing. Keep your finger on the stop button at first in case it all goes wrong. You'll probably have to adjust your Z-offset a bit to get that first layer just right, but hopefully once you've got it, you'll never have to do it again.