[RISOLTO] Problema movimento motori CNC

Ho montato a dicembre una CNC cinese 24x17, motori simil-NEMA17, spindle 12V da 5000 giri, struttura in buon alluminio e barre filettate in acciaio, nel complesso una buona meccanica ed una piccola scheda di controllo con innestato un Arduino Nano, firmware basato su grbl 0.9j e software di controllo grblControl 0.9; dopo aver settato i driver A4988 e "tarato" la meccanica in modo molto preciso e attivato il sistema di autolivellamento ho ottenuto risultati a dir poco eccellenti. Improvvisamente una decina di giorni fa, accendo l'apparecchio e, come al solito, faccio un test dei movimenti dei tre assi, ma i motori cominciano a dare i numeri...in pratica girano provocando una specie di cigolio, sembrano partire con difficoltà poi prendono velocità e si fermano dopo un movimento che sembra di inerzia, tutto ciò provoca "a vuoto" spostamenti doppi rispetto al valore impostato, mentre se si tenta di incidere gli spostamenti sono anche inferiori al valore atteso. Test effettuati, senza alcuna variazione del comportamento:
1 - Sostituzione alimentatore, driver e motori
2 - Sostituzione PC e cavo USB
3 - Sostituzione dell'intera scheda di controllo con un'altra completamente differente
4 - Aggiornamento driver USB del NANO (CH340, ma anche adottando la scheda originale non cambia niente)

Test di verifica:
1 - Arduino UNO con alcune righe scritte da me per far ruotare uno stepper motor continuamente ed a direzioni alterne, tutti i driver (montati su breadboard) sono OK e i motori girano come ci si attende e con estrema precisione. Ho usato i pin D6-7-8 che il Nano usa per il motore Z.
2 - Stessa prova fatta con l'Arduino Nano del controller e i test funzionano.
3 - Il Nano usa i pin D6-7-8 ma il pin D7 serve per pilotare il DIR e non l'STP, evidentemente il gcode non pilota lo step del driver in pwm ma con sequenze di 0-1. Quindi ovviamente montanto il Nano col mio scketch sul controller, pur invertendo i pin, si sente il rumore nel motore ma non gira.

Ho aperto un Topic su CNC ITALIA ma mi ha risposto solo il "nostro" ICIO, che mi ha dato alcune dritte ma purtroppo non ancora risolutive, quindi tanto vale provare qui, dove c'è molta più partecipazione in genere. Io al momento ho buttato la spugna, in tutti i test l'unico elemento comunque è il WIN10 aggiornato dei tre PC, tutto il resto è stato sostituito, l'improvviso cambio di comportamento della mia CNC potrebbe essere legato ad un recente aggiornamento di Windows 10 ma immagino che a quest'ora sarebbe successa la fine del mondo in giro, invece sembra che il problema lo abbia solo io. :confused:

non è che manca olio... :smiley:

Patrick_M:
non è che manca olio... :smiley:

No, il test con Arduino Uno, l'ho fatto anche con i motori collegati agli assi, ovviamente, per avere certezza che i motori non funzionassero solo perché "liberi". I motori quando girano male lo fanno anche a vuoto, infatti questa specie di cigolìo (purtroppo non trovo un suono onomatopeico per spiegarmi meglio, ma prova a pensare ad un motore elettromagnetico normale e più o meno ci sei) viene dal motore non dal movimento dell'asse.
A parte questo ti confermo che tutti gli assi, boccole e barre filettate sono bel oliate e pulite.
Peraltro il problema è comparso improvvisamente, ho acceso il PC, aperto grblControl e provato a far girare i motori, tutti e tre si sono comportati allo stesso modo, cioè non sembrano affatto motori passo-passo.
Secondo me arriva qualcosa di sballato dai PC (ma un PC e due portatili diversi... :disappointed_relieved: ).
Comunque grazie per l'interessamento, ogni suggerimento potrebbe essere risolutivo.

purtroppo a parte la battuta, non posso esserti di ulteriore aiuto. Seguo comunque cosa ne viene fuori

hai modo di controllare i micro step? oppure la tua elettronica non li prevede?

EDIT: confermo che è possibile configurare i microstep sui pololu tramite i pin ms1 2 e 3. ma avresti bisogno dei jumper sulla scheda. dai una spulciata qui e vedrai a metà pagina che c'è la sezione microstep.
mi viene in testa solo questa come causa al tuo problema perché ho l'elettronica per realizzare una cnc, che ho provato a volo un giorno, ed effettivamente al cambiare dell'impostazione del microstep (su driver tb6600 o 6560 non ricordo bene quali ho, so che sono da 3A max) variava il ronzio emesso dal nema (tirato fuori da una stampante epson)...

La scheda nasce già con i suoi driver, correttamente settata e funzionante, ho dovuto solo aumentare la corrente di pilotaggio all'inizio perché durante l'incisione perdeva qualche scatto, per 5 mesi ha lavorato alla perfezione, poi all'improvviso è sballato tutto il movimento, quindi il problema non può riguardare il settaggio dei microstep, peraltro caricando sulla scheda poche righe che ho scritto sull'IDE per testare i motori ho verificato che driver e motori funzionano alla perfezione. Ormai ho la certezza che il problema dipenda da ciò che il software invia alla scheda oppure il modo in cui ciò che arriva viene interpretato dal firmware. La conferma deriva dal fatto che un nuovo controller, di diverso modello ma sostanzialmente simile all'originale, fa lo stesso problema.

menniti:
...
3 - Il Nano usa i pin D6-7-8 ma il pin D7 serve per pilotare il DIR e non l'STP, evidentemente il gcode non pilota lo step del driver in pwm ma con sequenze di 0-1. ...

Domanda forse stupida, dato che probabilmente avrai gia controllato, ma non e' che pilotano l'enable ad impulsi invece dello step ? ... ma se prima funzionavano, probabilmente no ...

Prova alla disperata ... usare un vecchio PC con win7 tanto per essere sicuri che non dipenda proprio dal 10 ? ... difficile, lo so, ma con microsoft, l'esperienza insegna che in fatto di bachi e problemi e' possibile tutto e contemporaneamente il contrario di tutto ...

Ciao ETEM :slight_smile:

Etemenanki:
Domanda forse stupida, dato che probabilmente avrai gia controllato, ma non e' che pilotano l'enable ad impulsi invece dello step ? ... ma se prima funzionavano, probabilmente no ...

Ho verificato durante il funzionamento, i segnali col voltmetro sembrano corretti ma mi sono riservato di controllarli al DSO .

Prova alla disperata ... usare un vecchio PC con win7 tanto per essere sicuri che non dipenda proprio dal 10 ? ... difficile, lo so, ma con microsoft, l'esperienza insegna che in fatto di bachi e problemi e' possibile tutto e contemporaneamente il contrario di tutto ...

Questa è anche la mia idea "disperata", infatti ho preparato il controller con un motore ed un alimentatore per testarli domani all'UNI, infatti nel Lab abbiamo proprio un PC con Win 7, ti farò sapere l'esito domani in giornata. Grazie!

possibile che abbiano aggiornato i driver USB?

miky_police:
possibile che abbiano aggiornato i driver USB?

Per scrupolo li ho reinstallati ma il test con uno sketch scritto da me fa funzionare tutto, quindi penso sia un problema di dialogo tra windows ed il firmware del controller

quale sw usi per la tua cnc?

miky_police:
possibile che abbiano aggiornato i driver USB?

... da micro(bo)soft non mi stupirebbe piu nulla, ormai ... ma se il suo sketch va, non sembra quello il problema ...

Il "cigolio" potrebbe essere un fischio dovuto al pilotaggio incorretto dei motori se si fosse strinato parzialmente un driver, ma nel primo post dice di averli sostituiti senza esito (e poi, sarebbe su uno, non su tutti e tre) ... non mi viene proprio in mente altro, cosi al volo ...

hai provato a flashare il GRBL 1.1?

miky_police:
hai provato a flashare il GRBL 1.1?

No, sarà il prossimo passo dopo il test con Win7; sapevo che la scheda non è garantita per versioni successive alla 0.9, ma in questi giorni mi sono imbattuto in un video che parla proprio di questo upgrade, approfondirò.
Il problema è che purtroppo funziona solo con il file hex in dotazione, infatti la versione ultima grbl0.9j.hex non fa funzionare nessuno dei motori, quindi temo che dovrò partire dal codice per controllare le assegnazioni dei pin, mah!

Ho fatto un video che ho inviato al cinese, lo condivido qui così potete vedere (o meglio ascoltare) esattamente la cosa strana che succede, alzate l'audio altrimenti non vi rendete conto.

autoquoto la mia domanda al pst #10 (un po per curiosità, un po perché da quel poco che si vede nel video é carino)... io per sperimentare mi appoggio a mach3.

Comunque rileggendo un po tutta la discussione non mi torna qualcosa...
Hai detto che hai testato i driver su breadboard e vanno bene con la uno e sketch scritto da te, stessa prova (immagino sempre con i driver su breadboard) l'hai fatta con la nano che è sulla scheda di controllo della fresa cnc e funziona... ma poi nel momento in cui inserisci i driver su scheda di controllo della cnc non va più... almeno così mi è sembrato di capire...
la scheda è isolata?
le saldature dei pinhead dei driver e della nano sono integre? (saldatature chinesi fredde, io una ripassata con il saldatore ce la darei)
Il problema secondo me non è ne software ne firmware... ma hardware...
Un'altra prova, non ho ben capito se l'hai fatta o meno...
Nano con firmware grbl 0.9j e driver tutto su breadboard, prova a vedere se usando il tuo sw di comando fa la stessa cosa... se così non fosse (e i motori girano bene) è confermato che il problema è la scheda chinese...

edit:

peraltro caricando sulla scheda poche righe che ho scritto sull'IDE per testare i motori ho verificato che driver e motori funzionano alla perfezione.

pardon l'hai detto qui...
comunque la prova che ti ho suggerito alla fine la puoi fare...

miky_police:
quale sw usi per la tua cnc?

SCUSAMI! Mi era sfuggita la domanda, comunque uso il grblControl o la versione successiva che si chiama Candle, quindi siamo in ambito GRBL, ho letto dell'esistenza di questo MACH3, ma se ho ben capito è molto meno diffuso e, se non erro, dovrei ricorrere ad un controller diverso; il fatto è che dopo averci lavorato tanti mesi, e non sapendo ancora che tipo di problema ho, già la spesa a vuoto del secondo controller mi "brucia".
Se il problema dipendesse dal Windows potrei non risolvere nemmeno con questo software, temo; oggi farò la prova con win7, vediamo cosa ne esce.

ma se ho ben capito è molto meno diffuso e, se non erro, dovrei ricorrere ad un controller diverso

no no... non devi cambiare controller... più che altro va settato bene che è forse un po più laborioso degli altri... ma per il resto...
se usi eagle per disegnare circuiti e pcb-gcode (ulp) nella sezione "machine option" puoi selezionare proprio mach come sw di destinazione piuttosto che la generic per generare il gcode...
non ho ancora ben capito la differenza, ma funzionano entrambi i gcode generati (con Mach3) in ogni caso...

OK, comunque ho appena fatto la prova e con Win7 non cambia niente; a questo punto spero che mi faccia sapere qualcosa il fornitore cinese, altrimenti dovrò iniziare a fare un lavoro da squilibrati a partire dal firmware grbl originale, comunque è una situazione allucinante.

se il problema non si presenta configurando il circuito su breadboard, ma si presenta montando il tutto sulla scheda, è probabile che sia la scheda che crea qualche disturbo...
Ripeto, se non hai ancora provato come di seguito, ti consiglio di farlo:

  • nano su breadboard;
  • driver su breadboard;
  • fw originale caricato sulla nano;
  • cablaggi come se fosse sulla scheda;
    TEST con un grbl di prova da sw Candle (come se incidessi un pcb)...
  1. se NON va ---> problema sw/fw (no os perché hai provato anche con il w7)
  2. se VA ---> problema hw sulla scheda chinese ---> tester continuità piste/ripasso saldature su pedinatura...