C17 is rocking the house.
So I decided how many slices to cut the line into (to keep it on track), and iterated through the lines, and in each iteration I was recalculating the cartesian position, and then recalculating the delta (the change required). But that wasn’t working (see previous posts). I took advice from Andy Kinsman who is much smarter than me, and took out the recalculation, and now it workings brilliantly.
I don’t understand why recalculating it sent it off so wildly. Very possibly an off-by-one issue with my getCartesian() methods. But it’s fixed now, so I’m not going to worry about it unless I have to.
Repository updated, in the arduino 1.0 style (ouch, sorry).