Problemi di autohome e bed levelling con marlin 1.1.6

Ciao a tutti! Vista la morte violenta della mia ultima scheda per la stampante 3d (una geetech gt2560 finita contro una vite con relativo corto e scintille) ho deciso di procurarmi i pezzi per assemblare una scheda di controllo da me. La mia scelta è ricaduta su una Ramps 1.4 con 4 driver DRV8825 per gestire una Prusa i3 con l’aggiunta di un sensore a induzione (LJ12A3-4-Z/BX npn) per far autolivellare da sola la stampante.
Dopo aver provato a attaccare in modo canonico il sensore, cioè sostituendolo ai pin z min enstop con le varie resistenze del caso e le modifiche in configuration.h senza risultato, ho deciso di usare il sensore per comandare un relè’ collegato ai jumper che prima arrivavano al finecorsa dell’asse z per simulare lo stesso segnale che avrebbe dato il pulsante normale, per poi gestire la configurazione di malin decommentando

#define Z_ENDSTOP_SERVO_NR 0 // Defaults to SERVO 0 connector.

#define Z_SERVO_ANGLES {70,0} // Z Servo Deploy and Stow angles

senza attaccarci poi nessun servo (essendo il sensore induttivo già più alto dell’ugello) solo perchè altrimenti non riuscivo a scegliere una opzione di bed levelling.
Fino a qui tutto bene, la soluzione per il sensore induttivo non è delle più eleganti ma avevo un relè nel cassetto ed è stata agile, poi con quello attaccato fa un simpatico clic ogni volta che si attiva il sensore.

MA una volta risolti questo problema ne è venuto fuori un altro, in pratica se mando l’autohome o il bed levelling le prime due o tre volte tutto funziona: l’asse z si alza un pò, x e y vanno a zero e poi anche z scende cercando lo zero pure lei. Poi però mandando di nuovo uno dei due comandi l’asse z al posto di abbassarsi si alza avvicinandosi alla fine alta. Ora la prima cosa che ho pensato di fare è invertire l’asse z cambiando la configurazione di marlin
#define INVERT_Z_DIR true (/false)
ma controllando il conteggio dei passi sembra che la stampante voglia proprio alzare l’asse z al posto di abbassarla perchè passi positivi li fa verso l’alto, inoltre se l’asse fosse invertita lo sarebbe dal primo tentativo, non dopo un pò. Non capisco se è un errore stupido, un bug o un problema di hardware, ma ho già cambiato cavi usb e arduino mega, da uno cinese a uno originale, e comunque dopo qualche tentativo riuscito la macchina si rimette a andare verso l’alto al posto che in basso. :o
allego configuration.h
Configuration.h (62.6 KB)

Buongiorno, essendo il tuo primo post, nel rispetto del regolamento (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD ([u]spiegando bene quali conoscenze hai di elettronica e di programmazione[/u] ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.

MD

P.S.: Qui una serie di link utili, [u]NON[/u] necessariamente inerenti alla tua domanda: - serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - pinout delle varie schede by xxxPighi: Pinout - link [u]generali[/u] utili: Link Utili

Io ho avuto lo stesso problema con la prusa la piastra madre che ho è maker base non ricordo la versione cmq il mio problema era proprio il sensore autolivellante che andava in stallo e rimaneva acceso e quindi pensava di essere a Z 0 sempre ho risolto sostituendo il sensore, anche se il vecchio sensore lo uso per altro e funziona perfettamente..

grazie gmmg90, ho cambiato sonda ma il problema rimane..:o

Credo di aver trovato il problema(forse) in questo pagina

http://scifablab.ictp.it/2015/10/07/il-firmware-e-le-sue-impostazioni-di-base/

:

define X_HOME_DIR 1

1 = posizione endstop (home X) a DESTRA (connessione in RAMPS su X MAX pins) -1 = posizione endstop (home X) a SINISTRA (connessione in RAMPS su X MIN pins);

define Y_HOME_DIR -1

-1 = posizione endstop (home Y) sul RETRO (connessione in RAMPS su Y MIN pins); 1 = posizione endstop (home Y) sulla parte frontale (connessione in RAMPS su Y MAX pins);

define Z_HOME_DIR -1

-1 = posizione endstop (home Z) in BASSO; 1 = posizione endstop (home Z) in ALTO.

con queste impostazioni X=1 Y=-1 Z=-1 la stampante va in HOME con carrello X a destra, piatto Y dietro, Z in basso

Il problema è che non riesco a trovare queste righe..!!??

/ @section homing

//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed

//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case.

// Direction of endstops when homing; 1=MAX, -1=MIN // :[-1,1]

define X_HOME_DIR -1

define Y_HOME_DIR -1

define Z_HOME_DIR -1

>trias: Buongiorno, essendo il tuo primo post, nel rispetto del regolamento (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD ([u]spiegando bene quali conoscenze hai di elettronica e di programmazione[/u] ... possibilmente [u]evitando[/u] di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie. :)

Guglielmo