Richiesta di aiuto su Arduino MEGA 2560 R3 + RAMPS 1.4

Ciao a tutti,
Sto cercando di "mettere in moto" una scheda Arduino MEGA 2560 R3 (originale) con una scheda RAMPS 1.4 e 3 drivers A4988 (X, Y e Z) ma nonostante tutto sembri ok, nulla si muove. I motori sono dei 17HD48002H mentre l'alimentatore è un 12V 160W.

Premetto che ho anche una Arduino UNO con una scheda CNC Shield e 3 drivers A4988 e collegando i stessi motori e stesso alimentatore, il tutto funziona. Penso quindi che il problema non sia sul lato PC visto che la UNO+CNC Shield funzionano con gli stessi software, librerie, motori ecc.

Con software Arduino 1.8.4 (ultimo) riesco a compilare e caricare senza problemi sia nella UNO che nella MEGA. Ho aggiunto le librerie GRBL come da istruzioni e se faccio il test mediante "monitor seriale" mi indica che sono caricate (messaggio Grbl 1.1e ['$' for help]) . Ho caricato anche l'esempio grblUpload senza problemi.

La porta seriale della MEGA è in Com10 con baud rate 115200. Quando invio una istruzione Gcode, come risposta ottengo OK ma nulla si muove. Il problema è identico sia con Universal Gcode Sender che con Grbl Controller 3.6.1

Qualcuno mi potrebbe aiutare a capire dove sto sbagliando? Grazie.

Benvenuto. Essendo il tuo primo post, nel rispetto del regolamento, ti chiediamo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO... Grazie.
Qui una serie di link utili, non inerenti al tuo problema:

Ciao Nid,

Mi scuso se non ho fatto la presentazione prima di postare ma non riuscivo a trovare dove farla, cercavo nel menu generale del forum e non nella sessione italiana. Ora l'ho fatta, spero che la mia richiesta di aiuto possa essere presa in considerazione. Grazie

MicroCAD:
Qualcuno mi potrebbe aiutare a capire dove sto sbagliando? Grazie.

La libreria grbl, che non uso, sicuramente ha bisogno di essere configurata sul hardware dove la carichi, la Ramps usa dei ben precisi pin per comandare i driver, se non dici alla grbl quali sono credo proprio che mai vedrai i tuoi motori girare. :slight_smile:

Probabilmente si, il problema è che al momento non ne capisco molto.
La CNC Shield con Arduino UNO è andata subito e senza alcina configurazione di pin, è bastato installare i drivers, dichiarare la libreria, caricare il file di esempio e tutto funziona (nel senso che se nel software di trasmissione premo le freccie su assi X Y e Z i motori si muovono). Sulla MEGA con Ramps mi basterebbe arrivare allo stesso risultato, ovviamente sui 5 assi e non 3 come sulla CNC Shield. Il mio progetto prevede l'uso di 4 assi ed è per questo che non posso usare la UNO+CNC Shield.

ciao

MicroCAD:
Qualcuno mi potrebbe aiutare a capire dove sto sbagliando? Grazie.

Che io sappia GRBL funziona solo con arduino uno.
Esiste però un fork per la Mega.

ciao
pippo72

Grazie Pippo72. Ho sostituito in Documenti/Arduino/Librerie la libreria con quella del link fork che mi hai indicato e ho caricato il relativo grbUpload dagli esempi.

Provando con Grbl Controller 3.6.1 in apertura tutto sembra ok (connettendo a 115.200) ma poi ogni volta che invio un comando (esempio G01 X1) ottengo come risposta error:22

ciao.

Un po' di ricerca (partendo dal link che ti ho dato) ti rende autonomo!

ciao
pippo72

Ciao, purtroppo sono giorni e giorni che faccio ricerche e tentativi ma non ne vengo fuori. Ormai ho scaricato decine di diverse versioni di librerie, firmware ecc tanto da addirittura far fuori la prima scheda MEGA, non riesco più a caricare nulla, nemmeno il blink vuoto (led rx e tx non si accendono più). Così ho ricomprato la MEGA, stavolta originale ma il punto al quale sono arrivato è lo stesso, tutto sembra ok, tutto si connette, se ad esempio da Grbl Controller invio un comando $110=500 questo viene accettato e mediante $$ verifico che infatti è stato memorizzato. Penso che questa sia una conferma che il software è stato installato correttamente, no?
Lo so che error 22 è relativo al feed rate ma come risolverlo? Forse nel mio config.h manca qualcosa? Oppure si risolve inviando qualche comando via Grbl? La definizione dell'errore 22 è: Feed rate has not yet been set or is undefined. Ma che feed rate si riferisce? Minimo? Massimo? Boooooo .... ufffff

ciao

MicroCAD:
Ma che feed rate si riferisce? Minimo? Massimo? Boooooo .... ufffff

Se il comando che hai dato è:

G01 X1

ed è anche il primo comando, GRBL non sa a che velocità andare.
Se invece provi con:

G0 X1

si dovrebbe muovere alla velocità massima che è specificata con $110,$111 e $112.
Se vuoi dare tu una velocità la devi specificare con F:

G01 X1 F300

ciao
pippo72

Ciao,

In effetti, se invio G01 X1 ottengo l'errore 22 mentre se invio G0 X1 oppure G01 X1 F300 non ottengo l'errori. Comunque nessun cenno dal motore X.

Ecco la mia impostazione digitando $$ ... per caso c'è qualcosa di sbagliato?

**** Connected to COM10 @ 115200 baud ****

Grbl 1.1e ['$' for help]

$$
$G
$0 = 68 (Step pulse time, microseconds)
$1 = 0 (Step idle delay, milliseconds)
$2 = 0 (Step pulse invert, mask)
$3 = 0 (Step direction invert, mask)
$4 = 0 (Invert step enable pin, boolean)
$5 = 1 (Invert limit pins, boolean)
$6 = 0 (Invert probe pin, boolean)
$10 = 0 (Status report options, mask)
$11 = 0.000 (Junction deviation, millimeters)
$12 = 0.000 (Arc tolerance, millimeters)
$13 = 0 (Report in inches, boolean)
$20 = 0 (Soft limits enable, boolean)
$21 = 0 (Hard limits enable, boolean)
$22 = 0 (Homing cycle enable, boolean)
$23 = 0 (Homing direction invert, mask)
$24 = 25.000 (Homing locate feed rate, mm/min)
$25 = 500.000 (Homing search seek rate, mm/min)
$26 = 250 (Homing switch debounce delay, milliseconds)
$27 = 1.000 (Homing switch pull-off distance, millimeters)
$30 = 0 (Maximum spindle speed, RPM)
$31 = 1 (Minimum spindle speed, RPM)
$32 = 0 (Laser-mode enable, boolean)
$100 = 250.000 (X-axis travel resolution, step/mm)
$101 = 250.000 (Y-axis travel resolution, step/mm)
$102 = 250.000 (Z-axis travel resolution, step/mm)
$103 = 500.000
$110 = 400.000 (X-axis maximum rate, mm/min)
$111 = 400.000 (Y-axis maximum rate, mm/min)
$112 = 400.000 (Z-axis maximum rate, mm/min)
$113 = 36000.000
$120 = 10.000 (X-axis acceleration, mm/sec^2)
$121 = -0.056 (Y-axis acceleration, mm/sec^2)
$122 = -0.056 (Z-axis acceleration, mm/sec^2)
$123 = -0.056
$130 = 100.000 (X-axis maximum travel, millimeters)
$131 = 100.000 (Y-axis maximum travel, millimeters)
$132 = 100.000 (Z-axis maximum travel, millimeters)
$133 = -2147483.648
ok
[GC:G0 G54 G17 G21 G90 G94 M5 M9 T0 F0 S0]
ok

$120 = 10.000 (X-axis acceleration, mm/sec^2)
$121 = -0.056 (Y-axis acceleration, mm/sec^2)
$122 = -0.056 (Z-axis acceleration, mm/sec^2)
$123 = -0.056

ciao mi sembra che il valore di $120 = 10.000 sia troppo diverso rispetto agli altri assi, per quanto io mi ricordo sulle fresatrici di nostra produzione i valori dovevano essere uguali perchè altrimenti si avevano dei problemi quando si andava interpolare tutti gli assi.

rslogix52

Si, sembravano strani anche a me i 120, 121 e 122 .... ma quale potrebbe essere un valore di partenza con cui provare? E poi, cos'è il $123 ?

$120 = 10.000 (X-axis acceleration, mm/sec^2)
$121 = -0.056 (Y-axis acceleration, mm/sec^2)
$122 = -0.056 (Z-axis acceleration, mm/sec^2)
$123 = -0.056

il valore di 10.000 come accellerazione mi sembra esagerato nelle nostre macchine andavamo massimo a 1000 mm/sec
ed inoltre 1 valori negativi in $121,122,123 non mi sembrano corretti, $123 potrebbe essere il mandrino io ti consiglio di mettere un valore di 100 e provare evedere cosa succede. Studiati il manuale del grbl per configurare la fresa.
rslogix52

rslogix52:
$120 = 10.000 (X-axis acceleration, mm/sec^2)
$121 = -0.056 (Y-axis acceleration, mm/sec^2)
$122 = -0.056 (Z-axis acceleration, mm/sec^2)
$123 = -0.056

il valore di 10.000 come accellerazione mi sembra esagerato nelle nostre macchine andavamo massimo a 1000 mm/sec
ed inoltre 1 valori negativi in $121,122,123 non mi sembrano corretti, $123 potrebbe essere il mandrino io ti consiglio di mettere un valore di 100 e provare evedere cosa succede. Studiati il manuale del grbl per configurare la fresa.
rslogix52

Ciao,

In realtà non è 10000 ma 10 ... c'è il punto e poi 3 decimali
Ora ho messo tutti a 100 (100.000) ma non cambia niente, a parte il fatto che se invio un comando al 4° asse mi muove il motore X .... che frustrazione :frowning:

Comunque è un valore anomalo rispetto a gli altri ,10.000 è molto diverso di -0.056, se comandi il quarto asse e si muove l' asse "X" vuol dire che il cablaggio non è corretto perche' il funzionamento di ramps è molto legato ad un file di configurazione ed al corretto collegamento dei motori e dei finecorsa.
ciao rslogix52

Ora la mia configurazione è questa:

$0 10 (Step pulse time, microseconds)
$1 0 (Step idle delay, milliseconds)
$2 0 (Step pulse invert, mask)
$3 0 (Step direction invert, mask)
$4 0 (Invert step enable pin, boolean)
$5 1 (Invert limit pins, boolean)
$6 0 (Invert probe pin, boolean)
$10 0 (Status report options, mask)
$11 0.000 (Junction deviation, millimeters)
$12 0.000 (Arc tolerance, millimeters)
$13 0 (Report in inches, boolean)
$20 0 (Soft limits enable, boolean)
$21 0 (Hard limits enable, boolean)
$22 0 (Homing cycle enable, boolean)
$23 0 (Homing direction invert, mask)
$24 25.000 (Homing locate feed rate, mm/min)
$25 500.000 (Homing search seek rate, mm/min)
$26 250 (Homing switch debounce delay, milliseconds)
$27 1.000 (Homing switch pull-off distance, millimeters)
$30 0 (Maximum spindle speed, RPM)
$31 1 (Minimum spindle speed, RPM)
$32 0 (Laser-mode enable, boolean)
$100 250.000 (X-axis travel resolution, step/mm)
$101 250.000 (Y-axis travel resolution, step/mm)
$102 250.000 (Z-axis travel resolution, step/mm)
$110 400.000 (X-axis maximum rate, mm/min)
$111 400.000 (Y-axis maximum rate, mm/min)
$112 400.000 (Z-axis maximum rate, mm/min)
$120 100.000 (X-axis acceleration, mm/sec^2)
$121 100.000 (Y-axis acceleration, mm/sec^2)
$122 100.000 (Z-axis acceleration, mm/sec^2)
$130 100.000 (X-axis maximum travel, millimeters)
$131 100.000 (Y-axis maximum travel, millimeters)
$132 100.000 (Z-axis maximum travel, millimeters)

Il cablaggio penso possa essere difficilmente sbagliato, non uso i jumpers e nemmeno i fine corsa.

Quello che non mi è chiaro nella Ramps 1.4: I fine corsa devono per caso stare sempre normalmente chiusi? Ho provato a mettere dei jumpers su minX minY e minZ ma non mi è cambiato nulla. Tutte le altre diavolerie della Ramps (piano riscaldato, ugello, schermo lcd ecc) non intendo usarle. A me basterebbe avere 4 assi indipendenti, nulla di più.

Io non ho mai usato una ramps tutte le mie conoscenze derivano da fatto che per lavoro costruvamo delle mccbine utensili ed io le collaudavo
Rxlogix52

Un mio consiglio su come procedere per la risoluzione dei problemi provare tutto singolarmente: i fine corsa informati se devino essere nc o no , provare i motori uno alla volta collegandolo a pin corrispondenti cercando di sapere come ramps 1.4 si aspetta che siano. Solo quando hai risolto tutti questi problemi potrai provare a far andare il tutto con il programma ramps caricato su arduino e mettendo a posto il file di configurazione. Per fare ciò devi studiare il manuale della ramps 1.4
ciao rslogix52