Tim,
No worries. Now that I am not at work, I’d like to take a moment to explain the BitSetter function and why the order of operations is important. For me, I remember things better when they are part of a process, and not just a blind list of operations.
I guess we start at the beginning.
*** Before you read the next bit, just understand that I love my current SO3 XXL and my previous SO3. This applies to all of the consumer grade CNC machines I am aware of. ***
Your SO3 is a big dumb machine. When you turn it on, it has no idea where the spindle is along the X, Y or Z axis. As far as it is concerned, it is waking up for the first time. If you have it configured right, it at least knows it’s limits, but it doesn’t know where the spindle is.
So, that is why the first thing it does is perform a homing sequence. Once that is done, it knows where the spindle is in machine coordinates. WoohHoo! It knows where the spindle is, and it knows how far it can go in machine coordinates.
It also does not know how long the bit in the spindle is, so if you have the BitSetter, you can run the BitSetter command, and the machine will then take note of the position of the Z axis in machine coordinates when the BitSetter button is pressed. This position is stored for future use.
Machine coordinates are different than work coordinates. Your g-code you run uses the work coordinate system. This is the coordinate system that you can edit and zero at different locations on your machine depending on where you clamp down your raw material.
When you zero your machine with a bit in it to your work surface/raw stock, you are zeroing the work coordinates. Your machine now has an X, Y and Z zero point for the work coordinates that is used by your g-code program. All g-code X, Y and Z locations are reference to this zero point.
Okay, so now, your machine knows:
- Where the spindle is in X, Y and Z machine coordinates.
- Where the spindle is in X, Y and Z work coordinates.
- Where the bit triggers the BitSetter button in machine coordinates.
Now to the good stuff.
When you turn on the machine and it homes, then uses the BitSetter to probe the bit length, it has enough info to adjust your work coordinate Z zero when you change bits and probe for the new length.
So, you start with a bit that when probed, triggers the BitSetter button at (completely made up coordinates for this discussion) machine coordinates Z = -50.00mm.
You zero your machine to your piece of stock - in the work coordinate system - and do your cutting on your widget with your first bit.
You now switch bits and then start the BitSetter routine. The machine then:
- Goes to the X and Y coordinates in the machine coordinate system that is unaffected by your zero you did in the work coordinate system for cutting your widget.
- Lowers the Z-axis until the BitSetter button is triggered.
- This time, the BitSetter button is triggered at (another made up number in the machine coordinate system) of Z = -45.00mm
- Now, your machine knows that the last time it probed, it was triggered at Z = -50.00mm, and this time it was triggered at Z = -45.00mm, so it knows the new bit is longer than the old bit by 5.00mm (remember, we’re using negative numbers).
- Your machine then adjusts the Z zero of your work coordinate down by 5.00mm, so that when you start cutting again, when your code tells the machine to go to Z = 0, the tip of your bit is actually at Z = 0.
So, that is why when you change a bit, the first thing you should do is run the BitSetter routine.
I hope this helps, and if I made a mistake, someone please let me know and I will edit this so I am not spewing false information.