[HELP] Info su libreria GRBL (CNC) per porting su Ardunio DUE

Ho dato un'occhiata ai sorgenti della libreria GRBL (di cui, invero, ne esistono diverse declinazioni) e sarei molto interessato a farne il porting sulla DUE, giusto per stare larghi con la potenza di calcolo, specie quando si devono disegnare cerchi o, peggio, archi e curve a raggio variabile.

Il problema è che non ho trovato documentazione alcuna, salvo i file commentati dentro i sorgenti (un pò pochetto...).

C'è qualcuno che ha già usato questa libreria e sa dove trovare documentazione seria?

Secondo me dovresti parlarne direttamente con l'autore. --> https://github.com/grbl

Si. il codice l’ho preso lì, però piuttosto che chiedere volevo sapere se c’è in giro della documentazione esaustiva on-line su cui studiarci sopra.

C'è la Wiki --> https://github.com/grbl/grbl/wiki

Comunque c'è da lavorarci visto che usa direttamente i registri. Puoi iniziare creando una nuova configurazione cpu_map.h, poi devi verificare tutte le librerie come la serial.h che accedono direttamente all'hardware tramite registri. E' scritto tutto in C, niente C++. :grin: E non è compatibile con l'IDE di Arduino (dovresti modificare il main.c) A questo punto meglio fare un fork del progetto.

--> https://github.com/grbl/grbl/wiki/Compiling-Grbl

Mi pare che la DUE non abbia la EEPROM. :sweat_smile:

PaoloP: E' scritto tutto in C, niente C++. :grin: E non è compatibile con l'IDE di Arduino (dovresti modificare il main.c) [/quote] Con l'IDE di Arduino è più che compatibile visto che è una libreria per Arduino, semmai il problema è che gira solo su ATmega328, su ATmega2560 non è testata al 100% Scritto nel header dell'esempio della libreria ``` Supported hardware: Arduino Duemilanove Arduino Uno Arduino Mega 2560 (Limited Testing) ``` Il fatto che sia in C ANSI è un grande pregio e non certo un difetto, comunque non c'è nessun motivo per cui un programma ANSI C non deve girare su Arduino, avr-gcc prima di tutto è un compilatore C e solo dopo è un compilatore C++ castrato :) Il grosso problema con la DUE è che la libreria agisce low level sul hardware degli AVR, farne il porting sul SAM è un bagno di sangue, tocca riscrivere buona parte del codice.

In EEPROM si salvano i settaggi di setup della macchina (velocità stepper, nr passi e cose così), nessun problema a buttare i parametri su una 25C64 (in SPI) esterna.

Per i registri vediamo fino a che livello si spingono le librerie. Finchè sono le definizioni dei GPIO che gestiscono gli I/O, che problema c’è?

BaBBuino: Per i registri vediamo fino a che livello si spingono le librerie. Finchè sono le definizioni dei GPIO che gestiscono gli I/O, che problema c'è?

Non è solo questione di GPIO, leggili questi sorgenti così ti rendi conto da solo quanto può essere complesso il porting verso la DUE.

quoto astro, uso GRBL ed è codice ottimizzato soprattutto per atmega328 (e vedi pure qua: https://github.com/grbl/grbl/blob/master/cpu_map.h)

Inoltre un passo successivo sarà quello di verificare se i vari shield che esistono per GRBL funzionano anche a 3V3 altrimenti non puoi sostituire semplicemente la UNO con la DUE ma devi sistemare le tensioni dei segnali.