L'architettura "un controller per asse" è semplicemente assurda, il motion controller, la mente, deve essere una sola , dopo..ogni singolo asse può effettuare per conto suo il controllo di posizione ad anello chiuso gestendo il relativo errore di posizione , questo viene sempre più delegato all'azionamento, è tutto dentro l'azionamento che non è più un semplice servo amplificatore e al massimo un loop chiuso su una tachimetrica, come negli anni 80-90 , oggi l'azionamento comprende il controllo di posizione tranne encoder, che fa anche da tachimetrica, monta persino un processore a 8/16 bit e una CPLD oppure un processore a 32bit, nel mio azionamento CNC_ULTIMATE V2 monto ben 2 microcontrollori a 8 bit.
Arduino UNO o mega2560, può fare molto come controller 3 o 4 assi senza grossi problemi, con bresenham, ma se si vuole il massimo bisogna andare su arduino DUE che monta un ARM3 a 32bit a 84Mhz e ha un coprocessore a virgola mobile, ESSENZIALE per fare i calcoli a 32bit come minimo 10 volte più veloce di arduino UNO e mega2560
un progetto Motion controller con Arduino DUE esiste , si chiama tinyG2 , a dire il vero un pò fermo....
https://github.com/synthetos/g2/wiki
Anch'io ho in serbo di utilizzare arduino DUE per la versione futura utilizzando la shield PCAM13
http://www.dmxpassion.altervista.org/pg011.html progettata apposta a 3.3V e 5V per essere inserita indifferentemente su mega2560 o DUE.