Has anyone tried putting in some switches to stop the motors when the reach the end of the screws?
Currently my Handibot gets to the end of the screw and grinds in order to find its position when I put in a new bit. While I am not sure about how this affects wear on the Handibot, I do know it causes me problems if I don't have the bot clamped to the work piece. When it isn't clamped, the slamming into the end of the screw causes the bot to jump on the work and everything gets miss-aligned.
The lack of switches also affects the cutting if my job goes outside the bounds of the Handibot. In this case, the Handibot doesn't detect that it reached the end of the screw, and it assumes it continued, so when it moves back it doesn't account for the distance it did not actually travel. The result of course is the rest of the job is miss-aligned on what ever axis went out of bounds.
I suppose what is needed is 6 switches and six input pins on the hardware, some software changes to check the appropriate pin after each increment of movement, and placement of the switches.
Alternatively we could just use 3 switches and pins, and have a procedure for detecting the position of the motor at the start of each job by moving the motor until the switches are triggered. Thus we would need to track all movement from there on to know our exact position, and we would need to use the position to detect a movement command that takes us outside the bounds of the hardware and prevent the movement and set an offset to prevent the return movement. We would also need to prevent any cutting while out of bounds.
Another alternative is to not use any switches and move the bot into a corner (grinding of course), then track all movement from there to achieve the same affect as with the 3 switch solution.