A basso livello, l'errore indicato (STATUS_GCODE_INVALID_TARGET) appare nella parte di codice relativo ai movimenti ad arco.
Come detto, per qualche ragione, a grbl non piacciono i valori indicati.
E' molto probabile che la cosa sia dovuta a errori di arrotondamento e che non sia risolvibile, se non con modifiche al codice.
Ho visto che qualcuno ha bypassato il problema evitando di utilizzare G2/G3, soprattutto se il cam che lo genera, crea una moltitudine di piccoli archi.
E, come già detto, questo potrebbe essere un limite intrinseco di Arduino (e dei processori 8 bit, in generale) che non hanno coprocessori dedicati al calcolo floating-point.
E' probabile che i valori generati dal cam siano corretti, ma la precisione di calcolo di Arduino, no. Quindi non gli portano i valori.
In pratica, dato il punto di partenza, il punto di arrivo e il centro (I,J). Arduino pensa che la distanza del punto di partenza dal centro e del punto di arrivo dal centro siano differenti.
Alcuni spunti trovati in giro:
it seems to only occur on very small arcs. The theory is that is it is some kind of math or rounding error occurring when GRBL checks to see if the ARC is a valid geometry?...
But so few of my projects even use "arc curves", almost all of them use "smooth curves" which do not generate ARC commands, so this is a low priority bug for me. (and I suspect for the GRBL team for the same reasons)
At least I found a easy work around.
Questo è quello che accade. A mio parere non troverai soluzione, su grbl. Ma eventualmente sul cam/post che usi.