After reading about the work Ryan has done with auto squaring I installed home and limit switches on my MPCNC. I’m using LinuxCNC and it has good support for input switches so I ended up installing 8 switches, yes 8.
I’m using the MPCNC to learn how to set up a CNC machine so I also went overboard with the wiring and built a configuration box.
I have wired each switch individually with the C, NO and NC contacts so I can set up the switches in just about any configuration. When using LinuxCNC with a parallel port you are essentially limited to 5 total inputs and since I also want to play with an ESTOP input and a probe input that leaves 3 input pins for endstops. Currently I have it setup with 3 input pins, one for each axis and just a single switch that does both minimum limit and home. I have found that the normal auto homing sequence homes the three axis separately, Z then X then Y so I think I can wire all three axis in series and use a single pin. I’ll give that a try. One nice thing about LinuxCNC is that you can set an offset for the home position from the home switch. This allows the home position to be in the center of the machine if required. I was using my MPCNC with a center home without the switches so that’s what I am used to. What does everyone else do, what’s the best place for home?
While the home switches are quite useful the limit switches just provide a safety net and work in conjunction with the LinuxCNC soft limits. If the machine gets lost and a limit switch is triggered the machine just stops, The downside is that the switches can limit the cutting area. I like Ryan’s endstop mounts, the ability to mount them after assembly has been really useful. I did have to modify one of the Z axis mounts and add an adjustment screw for the top mount.
I plan to tackle auto squaring and follow some of the work done by Tom, LinuxCNC and machinekit both support the concept of joints so that you can separately control each stepper motor, 2 each for the X and Y axis. I was thinking how to adapt the endstop mount for micro adjustment but I notice Ryan has mentioned the concept of a software offset for an individual switch.