Running without limit switches

January 7, 2014 - Comments - 0 comments

The minimalistic QU-BD OneUp printer is meant to have the essentials of a 3D, without any frills.  But they left out the Z-limit switch which I think is essential. And, while it's not quite so essential, having X and Y limit switches would have made the printer a far more easier to use machine.

The biggest problem of not having the Z-limit is simply that it's too easy to crash the nozzle into the print bed. When set correctly, a Z-limit switch would guarantee that the nozzle would not plow into the print bed, no matter what commands you send to the printer.  This is important, as the forces acting on the nozzle can easily throw the rest of the printer out of whack -- I've had to re zip-tie my OneUp a few times because I forgot to reset the coordinate after manually homing the nozzle.

The other reason why the lack of Z limit switch (and the X and Y switches, too) is a problem: lack of repeatability. When you manually home your nozzle, it's hard to ensure that subsequent prints are in the same location.  It's particularly important for Z, as accurate positioning is cruical to proper extrusion layer thickness.  But it can make a difference with X and Y as well when you have larger objects that reach out to the very edges of the build envelope.

Of course, one of the big pains that almost every OneUp/TwoUp owner will encounter early on is that they will accidentally issue a g28 "home" command either via gcode or via the control software (RepetierHost).  The command does not tell the (cloned) PrintrBoard that the nozzle is at the home position.  Instead, the command asks the PrintrBoard to seek out the home position by moving toward the (non-existent) limit switches until each of the switches are activated.  If you accidentally issue the "home" command, your best bet is to immediately hit the reset button on the (cloned) PrintrBoard.  If you're too late, much gnashing of parts will occur as the controller will keep moving in search of the non-existant limit switches.

Finally, as you are setting up Repetier Host and Slic3r, you'll want to remove the G-code that auto-seeks the home position.  And, while you're at it, you should also remove the G-code that sets the (non-existent) bed temperature for those of us without the heated beds.  Otherwise, the controller will wait forever for the missing bed to come up to temperature, ignoring all other commands (and appearing to be dead).

The manual way is to hand-edit the gcode and remove ALL references to G28 and M190 at the start and at the end of the g-code program.  But having to do that each time you slice is a pain.  

The better way is to tell Slic3r to not automatically tack on the G28 and M190 codes.  To do that, simply go into Slic3r and addcommented out G28 and M190 codes in the Start and End custom gcodes:

Note the commented out G28 and M190 codes.  If G28 and M190 were missing, instead of simply commented out, Slic3r will "help" by adding those commands in!

Then, when you first set up your printer, home the nozzle and issue "G92 x0 y0 z0" to reset the coordinate to 0, 0, 0.

If you find that you just need to fudge the Z up or down in small increments, you could move by the correction distance and reset that to zero.  To lower the nozzle's 0 position by 0.1 mm, do "G1 Z-0.1" to move it down 0.1mm below the intended zero, and then "G92 Z0" to set that as the new zero.

comments powered by Disqus