Slow progress. It's not so much writing the code as figuring out what I am trying to achieve.

My first attempt a locating the tool to the billet was basically crap. Much too complicated. I just rewrote it to be easy.

I now have a blinky led when the billet position would exceed the Roland active area.

The positioning buttons P1, P2, Z0, Z1, Z2 now move to their set position if I click them, or set themselves (and everyone else) to their current position if held down for more than 1 second. It is wonderfully intuitive.

I decided on a compulsory trip to the limit switches when switched on. I have to know where it is to make any sense of the G code limits. I follow the 'home' move with a a fast return to the starting point to make it less of a chore.

Next problem: If I press PAUSE mid cut the tool winds down through it's acceleration table to a dead stop, then rewrites the cut buffer so it will accelerate again when unPAUSED.

I now have to guess everything I might want to do when it is paused.

Having fun