Welcome! Log In Create A New Profile

Advanced

Problema endstops

Posted by maximogti 
Problema endstops
November 11, 2014 08:13PM
Ciao a tutti, ho dei problemi con l'utilizzo degli endstops della mia rework. Premetto che mi sono letto le faq e la guida sul loro collegamento, ho dei problemi quando effettuo dei test con printrun.

connessioni: tutti gli endstop sono collegati in C-NC, arrivano alla ramps sugli slot 1, 3 e 5 (andando da sx a dx), pin esterno NC pin centrale C.

primo passo: testare il funzionameno degli endstop, comando M119

SENDING:M119
Reporting endstop status
x_min: open
x_max: open
y_min: open
y_max: open
z_min: open
z_max: open

mm tutti open ? ma non sono Normally Closed?

se clicco l'endstop su y, comando M119:

SENDING:M119
Reporting endstop status
x_min: open
x_max: open
y_min: TRIGGERED
y_max: open
z_min: open
z_max: open

fatto sta che se mando l'asse y in home si muove in direzione opposta all'endstop, se invece lo mando "manualmente"(con i tasti) a toccare l'endstop, si attiva la segnalazione di raggiungimento finecorsa e non mi permette più di staccarmi dall'endstop, mentre invece mi permette di proseguire nella sua direzione(andando a forzare l'endstop).

penso proprio di essermi intricato nella configurazione di marlin, incollo qui lo stralcio di codice relativo ai finecorsa, l'ora tarda non mi aiuta nella risoluzione del problema, spero voi possiate grinning smiley

//===========================================================================
//=============================Mechanical Settings===========================
//===========================================================================

// Uncomment the following line to enable CoreXY kinematics
// #define COREXY

// coarse Endstop Settings
//#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors

#ifndef ENDSTOPPULLUPS
   // fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
   #define ENDSTOPPULLUP_XMAX
   #define ENDSTOPPULLUP_YMAX
   #define ENDSTOPPULLUP_ZMAX
   #define ENDSTOPPULLUP_XMIN
   #define ENDSTOPPULLUP_YMIN
   #define ENDSTOPPULLUP_ZMIN
#endif

#ifdef ENDSTOPPULLUPS
  #define ENDSTOPPULLUP_XMAX
  #define ENDSTOPPULLUP_YMAX
  #define ENDSTOPPULLUP_ZMAX
  #define ENDSTOPPULLUP_XMIN
  #define ENDSTOPPULLUP_YMIN
  #define ENDSTOPPULLUP_ZMIN
#endif

// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
//#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS

// Disable max endstops for compatibility with endstop checking routine
#if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS)
  #define DISABLE_MAX_ENDSTOPS
#endif

// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
#define X_ENABLE_ON 0
#define Y_ENABLE_ON 0
#define Z_ENABLE_ON 0
#define E_ENABLE_ON 0 // For all extruders

// Disables axis when it's not being used.
#define DISABLE_X false
#define DISABLE_Y false
#define DISABLE_Z false
#define DISABLE_E false // For all extruders
#define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled

#define INVERT_X_DIR false    // for Mendel set to false, for Orca set to true
#define INVERT_Y_DIR false    // for Mendel set to true, for Orca set to false
#define INVERT_Z_DIR true     // for Mendel set to false, for Orca set to true
#define INVERT_E0_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
#define INVERT_E1_DIR false    // for direct drive extruder v9 set to true, for geared extruder set to false
#define INVERT_E2_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false

// ENDSTOP SETTINGS:
// Sets direction of endstops when homing; 1=MAX, -1=MIN
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1

#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
#define max_software_endstops true  // If true, axis won't move to coordinates greater than the defined lengths below.

// Travel limits after homing
#define X_MAX_POS 205
#define X_MIN_POS 0
#define Y_MAX_POS 205
#define Y_MIN_POS 0
#define Z_MAX_POS 200
#define Z_MIN_POS 0

#define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)
#define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
#define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)

grazie a tutti !
Re: Problema endstops
November 12, 2014 02:26AM
Allora è vero che sono normalmente chiusi, ma è proprio la logica del sistema che controlla la pressione del pulsante (endstop).
Se il circuito è chiuso significa che il pulsante non è premuto e quindi l'endstop in quanto tale è aperto, si e vero la parola può confondere, ma tranquillo va bene cosi.
Ora se facendo la home y va nel senso opposto allo switch devi invertire il senso di rotazione del motore mettendo :
#define INVERT_Y_DIR true

in più disabilita gli end stop max
#define DISABLE_MAX_ENDSTOPS

Domandina dove è posizionato l'endstop di Y?


COMPRA ITALIANO - sostieni le nostre aziende - sostieni la nostra gente - sostieni il tuo popolo - sosterrai te stesso.
Alberto C. felice possessore di una Kossel K2
My Blog - My Thingiverse
Re: Problema endstops
November 12, 2014 03:22AM
Grazie Mago per la pronta risposta, ora sono a casa quindi in serata modifico il firmware..
L'endstop su y è posto come in figura, ho seguito la wiki della i3 rework

il motore si trova nella parte posteriore della stampante, mentre ho frontalmente il tendicinghia

pensi che il problema possa essere solo la direzione dei motori quindi? perchè nella configurazione attuale(prove di ieri sera), se muovevo il motore e poi premevo l'endstop la corsa non si interrompeva
Quote
MagoKimbra
Allora è vero che sono normalmente chiusi, ma è proprio la logica del sistema che controlla la pressione del pulsante (endstop).
Se il circuito è chiuso significa che il pulsante non è premuto e quindi l'endstop in quanto tale è aperto, si e vero la parola può confondere, ma tranquillo va bene cosi.
Ora se facendo la home y va nel senso opposto allo switch devi invertire il senso di rotazione del motore mettendo :
#define INVERT_Y_DIR true

in più disabilita gli end stop max
#define DISABLE_MAX_ENDSTOPS

Domandina dove è posizionato l'endstop di Y?

Re: Problema endstops
November 12, 2014 03:59AM
hai fatto la stessa cosa che ho fatto io, hai messo il motore y dietro, ma nel progetto della rework è messo davanti!

[reprap.org]

o cambi posizione al motore rimettendolo davanti, o metti l'endstop di y su max invece che su min.


Alessandro

Prusa I3 Rework molto modificata - Taurino Classic - Ramps 1.4 - Driver DVR8825 - Titan Extruder e Hotend E3D V6 - Bltouch originale - Firmware MarlinKimbra - Cura - Repetier Host
Re: Problema endstops
November 12, 2014 04:04AM
eye popping smiley non pensavo influisse, cmq procedo a modificare anche quella proprietà grazie !! fatto sta che cmq ho gli stessi problemi anche per gli altri assi

Quote
bilanciamist
hai fatto la stessa cosa che ho fatto io, hai messo il motore y dietro, ma nel progetto della rework è messo davanti!

[reprap.org]

o cambi posizione al motore rimettendolo davanti, o metti l'endstop di y su max invece che su min.
Re: Problema endstops
November 12, 2014 04:49AM
Ma no che problema c'è mettere il motore dietro e l'endstop dietro...
Basta invertire il senso di rotazione e il gioco è fatto tranquillo....
L'importante è la posizione dell'endstop, se è dietro è un min endstop (parlo dell'asse Y). quindi va tutti bene cosi come ce l'hai...
Se hai lo stesso problema anche per l'asse X, motore a sinistra e end stop a sinistra, l'endstop è un min endstop e basta invertire il senso di rotazione...
Se poi non vi piace invertire nel firmware basta che invertite il connettore sulla scheda che è la stessa cosa.....


COMPRA ITALIANO - sostieni le nostre aziende - sostieni la nostra gente - sostieni il tuo popolo - sosterrai te stesso.
Alberto C. felice possessore di una Kossel K2
My Blog - My Thingiverse
Re: Problema endstops
November 12, 2014 05:38AM
si, ha ragione mk, se è dietro è min, mi ero confuso perché il disegno della rework mette l'endstop davanti ma lascia a min la connessione dell'endstop. Semmai è l'endstop x che stando a destra è sul max invece che sul min.

Edited 1 time(s). Last edit at 11/12/2014 05:39AM by bilanciamist.


Alessandro

Prusa I3 Rework molto modificata - Taurino Classic - Ramps 1.4 - Driver DVR8825 - Titan Extruder e Hotend E3D V6 - Bltouch originale - Firmware MarlinKimbra - Cura - Repetier Host
Re: Problema endstops
November 12, 2014 05:40AM
La mia configurazione è la seguente:

y : endstop sul motore
x : endstop in posizione opposta al motore (max ?)
z : endstop sul motore (immagino min anche questo)

quindi in teoria dovrei sistemare solo la configurazione dell'endstop per x giusto?

Quote
MagoKimbra
Ma no che problema c'è mettere il motore dietro e l'endstop dietro...
Basta invertire il senso di rotazione e il gioco è fatto tranquillo....
L'importante è la posizione dell'endstop, se è dietro è un min endstop (parlo dell'asse Y). quindi va tutti bene cosi come ce l'hai...
Se hai lo stesso problema anche per l'asse X, motore a sinistra e end stop a sinistra, l'endstop è un min endstop e basta invertire il senso di rotazione...
Se poi non vi piace invertire nel firmware basta che invertite il connettore sulla scheda che è la stessa cosa.....
Re: Problema endstops
November 12, 2014 05:52AM
Che sia all'opposto del motore non vuol dire nulla... La X negli assi Cartesiani va da sinistra verso destra quindi il punto zero è a sinistra. Ora se il motore ce l'hai a destra e l'endstop a sinistra è un min, altrimenti è un max.
La Z è sotto quindi min...

Attenzione se lo metti come max, non devi disattivare i max endsotp come ti ho detto prima e devi invertire il valore:
#define X_HOME_DIR -1

perché la home la deve fare sul max...

Edited 1 time(s). Last edit at 11/12/2014 05:54AM by MagoKimbra.


COMPRA ITALIANO - sostieni le nostre aziende - sostieni la nostra gente - sostieni il tuo popolo - sosterrai te stesso.
Alberto C. felice possessore di una Kossel K2
My Blog - My Thingiverse
Re: Problema endstops
November 12, 2014 06:10AM
Esatto mi sono spiegato male, intendevo che ho il motore posto "sull'origine dell'asse x", mentre l'endstop è dal lato opposto, verso il positivo, quindi è un max;
restano quindi da testare ed eventualmente invertire le direzioni dei motori, nel caso in cui comandando home vadano a finire dalla parte opposta all'endstop!
Per adesso grazie ad entrambi per l'aiuto, sempre molto precisi e disponibili !!!!

Quote
MagoKimbra
Che sia all'opposto del motore non vuol dire nulla... La X negli assi Cartesiani va da sinistra verso destra quindi il punto zero è a sinistra. Ora se il motore ce l'hai a destra e l'endstop a sinistra è un min, altrimenti è un max.
La Z è sotto quindi min...

Attenzione se lo metti come max, non devi disattivare i max endsotp come ti ho detto prima e devi invertire il valore:
#define X_HOME_DIR -1

perché la home la deve fare sul max...
Re: Problema endstops
November 13, 2014 05:31PM
Allora, ho modificato il firmware come da voi consigliato
//===========================================================================
//=============================Mechanical Settings===========================
//===========================================================================

// Uncomment the following line to enable CoreXY kinematics
// #define COREXY

// coarse Endstop Settings
//#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors

#ifndef ENDSTOPPULLUPS
// fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
#define ENDSTOPPULLUP_XMAX
#define ENDSTOPPULLUP_YMAX
#define ENDSTOPPULLUP_ZMAX
#define ENDSTOPPULLUP_XMIN
#define ENDSTOPPULLUP_YMIN
#define ENDSTOPPULLUP_ZMIN
#endif

#ifdef ENDSTOPPULLUPS
#define ENDSTOPPULLUP_XMAX
#define ENDSTOPPULLUP_YMAX
#define ENDSTOPPULLUP_ZMAX
#define ENDSTOPPULLUP_XMIN
#define ENDSTOPPULLUP_YMIN
#define ENDSTOPPULLUP_ZMIN
#endif

// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool X_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
//#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS

// Disable max endstops for compatibility with endstop checking routine
#if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS)
#define DISABLE_MAX_ENDSTOPS
#endif

// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
#define X_ENABLE_ON 0
#define Y_ENABLE_ON 0
#define Z_ENABLE_ON 0
#define E_ENABLE_ON 0 // For all extruders

// Disables axis when it's not being used.
#define DISABLE_X false
#define DISABLE_Y false
#define DISABLE_Z false
#define DISABLE_E false // For all extruders
#define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled

#define INVERT_X_DIR false    // for Mendel set to false, for Orca set to true
#define INVERT_Y_DIR true    // for Mendel set to true, for Orca set to false
#define INVERT_Z_DIR false     // for Mendel set to false, for Orca set to true
#define INVERT_E0_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
#define INVERT_E1_DIR false    // for direct drive extruder v9 set to true, for geared extruder set to false
#define INVERT_E2_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false

// ENDSTOP SETTINGS:
// Sets direction of endstops when homing; 1=MAX, -1=MIN
#define X_HOME_DIR 1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1

#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
#define max_software_endstops true  // If true, axis won't move to coordinates greater than the defined lengths below.

// Travel limits after homing
#define X_MAX_POS 205
#define X_MIN_POS 0
#define Y_MAX_POS 205
#define Y_MIN_POS 0
#define Z_MAX_POS 200
#define Z_MIN_POS 0

#define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)
#define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
#define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)

ho settato a false X_MAX_ENDSTOP_INVERTING perché uso come max invece che come min l'endstop su x.
#define X_HOME_DIR 1 sempre perché settato come max.

1) carico il firm e avvio printrun
2) test degli endstop ok
3)tutti gli assi vanno in home correttamente ( guardando il piatto dall'alto, il carrello va a finire nell'angolo in BASSO a DESTRA )
4) muovo gli assi manualmente con printrun, -X fa spostare l'estrusero a sinistra, +Y avvicina il piatto verso di me, +Z fa alzare il carrello verticalmente; questo mi pare sia corretto

non torna però la linea rossa che printrun traccia sul piatto "virtuale" a schermo, come mai?Ho qualche problema ??
Sorry, only registered users may post in this forum.

Click here to login