Hello! Great post, brilliant to hear about really big machines - I don't have enough wall to test that stuff! I knew there'd be a couple of these problems hanging around somewhere. I think you're exactly right about the issue, long being cast to int.
Is it only the "move to" that has the problem, or does "move direct" do it too? I suppose I would always recommend using move direct for something that big, because move to will sometimes take the pen entirely off the drawing surface, particularly with odd-shaped machines (wide/low, narrow/tall).
util.ino has
void moveA(int dist) ... and
void moveB(int dist)
Which might benefit from being changed to longs. The only other thing I can see that has me a little doubtful is the switch between strings, long, and then floats. It strikes me as a bit dopey, and did at the time I wrote it too. But I'm not sure how it could be causing an issue. The floats might be introducing some inaccuracy, but wouldn't be causing that kind of rollovery sort of issue.
It's not impossible for the controller to issue the same kind of rollover problem, but since java ints are as big as arduino longs I never saw that as an issue.
It'd be great to hear if you get anywhere with this.
sandy
|