OSE D3D Circuit Mill: Steps per mm Calibration

The mill is up and running up at Michigan Tech. now. I have calibrated the X Y an Z steps per mm, and they are found to be:

  • X: 80.25 steps/mm
  • Y: 82 steps/mm
  • Z: 80 steps/mm

The mill was calibrated using a dial indicator and M92 commands. This is the procedure:

  1. Set a known value of steps per mm to the axis being calibrated using "M92 X80" Here X is the axis being calibrated and 80 is the steps per mm value.
  2. Set up dial indicator
  3. Move X axis a small amount in the positive direction in order to eliminate backlash
  4. Zero the indicator
  5. Enable Relative positioning with "G91"
  6. Move the carriage in the X direction. I use 2.54mm because it represents 0.1 inch (I have an imperial unit dial indicator, so this should give me one revolotion of the needle). Use the command "G1 X2.54"
  7. Read the measurement and plug it into this formula:
    $$Current  Steps/MM * \frac{Desired  Distance}{Distance  Traveled} = New  Steps / MM$$
  8. Enter the newly acquired value with "M92" again.
  9. Repeat this process 2 or 3 times till the movement is accurate. Perform this procedure on all 3 axes.

A side note here: When ever an Arduino is turned off, typically it loses all of the variable data. So you may be wondering how these values stay put and come up upon restart. Well, I have a strong hunch that these values are saved in a special type of memory called EEPROM (Electronically Erasable Programmable Read Only Memory). This memory is capable of storing variables even when power is removed.

Then, I cut out the test RJ45 break out board. I continue to use this board as it demonstrates closely packed traces, as well as cuts in all of the directions.

Attempt 1

This attempt ended because the v-bit broke. Note that the pads are decently round circles (not ovals). This indicates that the calibration is decent. However the traces are not continuous, so there are still issues to be worked out. This leads me to beleive that the issue is caused by backlash, which has not been compensated for yet.

Backlash compensation in CNC Gcode Controller does not appear to be strait forward or work as advertised. I am currently using a value of 2.5 for each axis, because I had found that it worked for the X axis. Note that this does not translate directly to a compensation of 2.5mm, in fact, the measured backlash is .15mm. This is something that needs to be further explored.

Attempt 2

 I used the broken bit and tried increasing the Y axis backlash compensation, this lead to very oblong pads. The cut quality is obviously bad due to the broken bit. It is possible to over compensate backlash, and cause issues, and this may be the case. Next I will attempt with lower backlash values. I may look into the source code to understand how backlash compensation works in this specific software.