I would agree that programming an Arduino (just because I know that one) would be pretty easy if all I wanted to do was measure offset between a couple of not-quite-accurate home switches. I haven't thought through the details, but I suspect that that is only simplifying what is not a particularly difficult task anyway. Measuring gantry squareness seems like the biggest issue rather than tweaking switch positions and that's common to all setups. However, I'm not sure that I could use those values in any of the usual solutions, so the straight hardware-based "tweak switch until dual-homing leaves the gantry square" solution seems inevitable.

I currently use LinuxCNC and I've had a look at that from the point of view of dual-motor homing and operation. It seems somewhat incredible that with all its users, there still seems to be no official solution to this particular problem. From what I see and read, it seems to be bound up in the internal representation of a machine which makes a generalised solution very difficult, although I did wonder if a custom job for my particular machine geometry might not be possible. Still, at the time, the latency of my garage/CNC PC was such that an external motion controller looked like a good option for my Mk2 router, despite needing a move to Mach3. Then the motherboard went pop a week or so back, and the cheap replacement is performing much better, so I'm just confused.

Stay with LinuxCNC? That forces me to single-motor/twin belts, but I probably now have sufficiently low latency figures that I can get reasonable performance. Dual-motor? That means Mach3 (or one of the dedicated hardware/software combinations like PlanetCNC). What I don't want to do is invest in kit that limits later options, at least not unreasonably, and the CS Labs boxes seem to have a decent reputation from the point of view of reliability, etc. Hence the interest in this new IP-M development.