The PS:One ShopBot is a great CNC machine that has the benefit, among other things, of being huge, allowing for a lot of cuts on large pieces of material. One of the difficulties working with the machine, however, is getting the bit at exactly 0,0,0 in the X, Y, and Z axis so that if you need something cut at exactly six inches from the edge of the material, it will be exactly six inches. There is already a built-in method for setting the Z axis, using a metal plate and clip and running a specific program on the ShopBot, but there is no such program for setting the X and Y, requiring the user to manually position the bit. This can lead to inaccuracies and wasted work.
To help everyone with accurate setting of the the X, Y, and Z axis, I made a thing:
This is an aluminum plate that is milled to be as precise as I could make it (read: probably a lot of room for improvement) where it sits on the lower left hand corner of the piece to be cut, with the corner of the work sitting directly in the middle of the circle.
With the piece placed on the work, the cable is plugged into the back (I had originally drilled two holes on the front left and bottom of the plate, forgetting that is where the bit has to touch so as to not push the plate off the work, so I drilled a new hold on the back and wrote “Do not use this hole” on the other two) and attached via the alligator clips (ToDo: make a better cable) to the Z plate.
The user should position the bit somewhere over the top part of the plate, where doesn’t matter. The user loads xyz-zero-finder.sbp (the code is available at this GitHub repository) into the ShopBot software and runs it. Assuming the bit is somewhere over the top, it will then slowly move the bit down until it touches the top, at which point it will move to the side (visually this appears to be moving towards the front of the machine, but in reality the side of the machine with the power switch is technically the bottom, or X axis). The program will move the bit inside the circle at what it believes is exactly 0,0,0 and, after displaying a message, will move the bit up two inches to allow the user to remove the plate and put it away.
The plate is in the drawer under the ShopBot in the Arduino box (ToDo: Make a real box for the plate). Feel free to use it and report back how it worked for you, so that we can make it better.
I want to thank Dean, Everett and Todd for giving me valuable advice about how to mill the plate on the Bridgeport; it was tricky because both sides of the plate are milled and getting it to sit properly in the vice was very worrying to me. I also want to thank Eric for suggesting the project in the first place.