Welcome! Log In Create A New Profile

Advanced

PiBot Optical Reflection Endstop thumbs up

Posted by MagoKimbra 
PiBot Optical Reflection Endstop thumbs up
July 01, 2015 08:30AM
Mi sono arrivate stamattina le due sonde Ottiche della PiBot...
Ne ho subito montata una alla meno peggio sulla mia Prusa I3 oramai usata solo per test... sad smiley

La sonda ha tre contatti


Positivo GND Signal quindi molto facile da attaccare alle nostre più comuni schede. In Più ha un jumper per definire la logica, 5v quando è attiva o GND quando è attiva...
Collegata alla scheda Alligator ha subito funzionato. Con il trimmerino si regola la distanza che è più o meno di 1,5 dal piatto....
E udite udite il piatto è il comunissimo vetro d'ikea senza nastri e altro...
Fatto il g29 e il controllo di precisione con M48..... questo è il risultato:
> 13:40:16.560 : FIRMWARE_NAME: MarlinKimbra 4.1.3 dev FIRMWARE_URL:[github.com] PROTOCOL_VERSION:1.0 MACHINE_TYPEtongue sticking out smileyrusa K1 EXTRUDER_COUNT:3 UUID:00000000-0000-0000-0000-000000000000
> 13:40:39.022 : echo: G29 Auto Bed Leveling
> 13:40:44.000 : echo: Bed X: 10.000 Y: 0.000 Z: -2.277
> 13:40:49.260 : echo: Bed X: 180.000 Y: 0.000 Z: -2.285
> 13:40:54.750 : echo: Bed X: 10.000 Y: 150.000 Z: -1.880
> 13:41:00.011 : echo: Bed X: 180.000 Y: 150.000 Z: -1.902
> 13:41:00.011 : echo: Eqn coefficients: a: -0.00008456 b: 0.00260208 d: -2.27306061
> 13:41:00.011 : echo: Mean of sampled points: -2.08593747
> 13:41:00.011 : echo: Bed Height Topography:
> 13:41:00.011 : echo: +-----------+
> 13:41:00.031 : echo: |...Back....|
> 13:41:00.031 : echo: |Left..Right|
> 13:41:00.031 : echo: |...Front...|
> 13:41:00.031 : echo: +-----------+
> 13:41:00.051 : echo:  +0.20594 +0.18438
> 13:41:00.051 : echo:  -0.19156 -0.19875
> 13:41:00.051 : echo: planeNormal x: 0.000085 y: -0.002602 z: 1.000000
> 13:41:00.051 : echo: Bed Level Correction Matrix:
> 13:41:00.051 : echo: +1.000000 +0.000000 -0.000085
> 13:41:00.051 : echo: +0.000000 +0.999997 +0.002602
> 13:41:00.051 : echo: +0.000085 -0.002602 +0.999997
> 13:41:00.061 : ok X:180.00 Y:149.99 Z:10.00 E:0.00 Count X: 180.00 Y:149.97 Z:10.38
> 13:41:00.061 : echo: X:180.00 Y:149.99 Z:10.00 E:0.00 Count X: 180.00 Y:149.97 Z:10.38
> 13:41:00.061 : echo: M48 Z-Probe Repeatability test
> 13:41:01.371 : echo: Positioning the probe...
> 13:41:06.604 : echo: x: 190.00 y: 250.00
> 13:41:07.694 : echo: x: 190.00 y: 250.00
> 13:41:07.694 : echo: x: 190.00 y: 250.00
> 13:41:11.642 : echo: 1 of 10 samples
> 13:41:11.662 : echo: z: 10.122500 mean: 10.122500   sigma: 0.000000
> 13:41:12.977 : echo: x: 104.70 y: 98.29
> 13:41:13.057 : echo: x: 190.00 y: -13.00
> 13:41:13.937 : echo: x: 190.00 y: -13.00
> 13:41:17.712 : echo: 2 of 10 samples
> 13:41:17.712 : echo: z: 10.110312 mean: 10.116406   sigma: 0.006094
> 13:41:19.022 : echo: x: 190.00 y: -13.00
> 13:41:19.933 : echo: x: 190.00 y: -13.00
> 13:41:19.933 : echo: x: 190.00 y: -13.00
> 13:41:23.714 : echo: 3 of 10 samples
> 13:41:23.714 : echo: z: 10.102187 mean: 10.111667   sigma: 0.008348
> 13:41:25.033 : echo: x: -2.00 y: 250.00
> 13:41:26.173 : echo: x: -2.00 y: 250.00
> 13:41:26.173 : echo: x: -2.00 y: 250.00
> 13:41:30.174 : echo: 4 of 10 samples
> 13:41:30.174 : echo: z: 10.106875 mean: 10.110469   sigma: 0.007521
> 13:41:31.484 : echo: x: -2.00 y: 250.00
> 13:41:32.626 : echo: x: -2.00 y: 250.00
> 13:41:32.626 : echo: x: -2.00 y: 250.00
> 13:41:36.626 : echo: 5 of 10 samples
> 13:41:36.626 : echo: z: 10.107500 mean: 10.109875   sigma: 0.006831
> 13:41:37.946 : echo: x: -2.00 y: 250.00
> 13:41:39.067 : echo: x: -2.00 y: 250.00
> 13:41:39.087 : echo: x: -2.00 y: 250.00
> 13:41:43.081 : echo: 6 of 10 samples
> 13:41:43.081 : echo: z: 10.099688 mean: 10.108177   sigma: 0.007301
> 13:41:44.417 : echo: x: 94.37 y: 110.60
> 13:41:44.527 : echo: x: 91.82 y: 108.78
> 13:41:44.577 : echo: x: 89.28 y: 109.00
> 13:41:47.629 : echo: 7 of 10 samples
> 13:41:47.629 : echo: z: 10.107813 mean: 10.108125   sigma: 0.006761
> 13:41:48.939 : echo: x: 122.50 y: 61.03
> 13:41:49.259 : echo: x: 190.00 y: -13.00
> 13:41:49.899 : echo: x: 190.00 y: -13.00
> 13:41:53.680 : echo: 8 of 10 samples
> 13:41:53.680 : echo: z: 10.100938 mean: 10.107227   sigma: 0.006756
> 13:41:55.002 : echo: x: -2.00 y: -13.00
> 13:41:55.952 : echo: x: -2.00 y: -13.00
> 13:41:55.952 : echo: x: -2.00 y: -13.00
> 13:41:59.772 : echo: 9 of 10 samples
> 13:41:59.772 : echo: z: 10.105000 mean: 10.106979   sigma: 0.006408
> 13:42:01.104 : echo: x: -2.00 y: -13.00
> 13:42:02.044 : echo: x: -2.00 y: -13.00
> 13:42:02.044 : echo: x: -2.00 y: -13.00
> 13:42:05.864 : echo: 10 of 10 samples
> 13:42:05.884 : echo: z: 10.095625 mean: 10.105844   sigma: 0.006968
> 13:42:08.205 : Mean: 10.105844
> 13:42:08.205 : Standard Deviation: 0.006968
> 13:42:08.205 : ok


E l'ho fatto più volte e il risultato è sempre nell'ordine di 0,006 mm quindi ben al di sotto delle accoppiate servo switch..... Io avevo 0,01 come Deviation con il servo e switch...

Per il fw è semplice basta solo disattivare la resistenza di pullup dal fw... Sull'Alligator che di default sono tutte disattivate, visto che lo fa di suo la scheda, praticamente non ho dovuto cambiare nulla al fw rispetto lo switch...

Per ora mi fermo quì a presto nuove prove, ma secondo me questa è la sonda definitiva........ Nessuna meccanica per tirare giù o su, piccola precisa e si può montare benissimo su una Delta....

VIDEO per i più curiosi.... Cosi vedete pure come si è ridotta la mia Prusa I3 R2.... sad smiley


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: PiBot Optical Reflection Endstop thumbs up
July 01, 2015 09:39AM
bello ...presi cosi faccio prove anche su falla tx
Re: PiBot Optical Reflection Endstop thumbs up
July 01, 2015 11:02AM
Quote
MagoKimbra
E l'ho fatto più volte e il risultato è sempre nell'ordine di 0,006 mm quindi ben al di sotto delle accoppiate servo switch
Ottima, ottima, ottima notizia!!!

PS: quanto ci ha messo ad arrivare? Suppongo che lo hai preso direttamente dal loro sito vero?


Qualcosetta più che un neofina oramai, anche se non si finisce mai d'imparare!
DUE Stampati GEEETech i3B, GT2560+, Marlin GEEETech originale con un paio di modifichine personali (Pin dedicato per la Z Probe e stampa dell'ETE da SD), Barre Trapezie, Estrusore da 0.3 con filo da 1.75, una con estrusore metallico ed una con estrusore ridisegnato e stampato da me, Software AutoCAD/Slic3r/Repetier

My Thingiverse
My Linkedin
Re: PiBot Optical Reflection Endstop thumbs up
July 01, 2015 01:54PM
bello, mi sembra anche costino poco!


Alessandro

Prusa I3 Rework molto modificata - Taurino Classic - Ramps 1.4 - Driver DVR8825 - Hotend IEC 1,75mm 0.4mm - Firmware MarlinKimbra - Cura engine - Repetier Host
Re: PiBot Optical Reflection Endstop thumbs up
August 25, 2015 04:51PM
Quote
bilanciamist
bello, mi sembra anche costino poco!
Si io gli ho pagati due pezzi spediti
Subtotal $9.98
Shipping & Handling $3.89
Grand Total $13.87

Questa la spezione pezzente da 10 a 35 gg lavorativi se hai fretta 20 dollari di spedizione e arriva a casa in 10gg lavorativi grinning smiley
Se hai paypal fai il cheout con quello e non devi neanche fare menate per registrarti al sito


www.saviot.com Stampante Prusa I3 R2.2 By Nicola P.
Ramps 1.4 Con FW MarlinKimba Fusore HE IeC 1.75mm Con Flusso Canalizzatore Estrusori BullDog XL
Piano maggiorato 240*311mm pilotato da SSR 24V con letto scaldante autocostruito
Lavori in Corso Prossimetro Autolivellamento Z Gestione Remota Raspberry PI 2 con OctoPrint
Rilevamento ottico Fine Filo Illuminazione e Visione AreaStampa Remotata In costruzione Trafilatore TL-Plastic
Re: PiBot Optical Reflection Endstop thumbs up
August 26, 2015 03:49AM
mi interessa, ma aspetto prima che vada avanti qualcun altro a provarli.


Alessandro

Prusa I3 Rework molto modificata - Taurino Classic - Ramps 1.4 - Driver DVR8825 - Hotend IEC 1,75mm 0.4mm - Firmware MarlinKimbra - Cura engine - Repetier Host
Re: PiBot Optical Reflection Endstop thumbs up
August 27, 2015 06:16AM
Ma per usarli come semplici endstop non c'è da settare niente sul Marlin ?


[www.3dmaker.systems]
Lo store online dedicato interamente alla stampa 3d
Re: PiBot Optical Reflection Endstop thumbs up
August 27, 2015 07:14AM
Da come ha scritto il Mago disattivare la resistenza di pullup dal fw..
Per schede tipo Ramps si setta in GND Trigger esatto ?


www.saviot.com Stampante Prusa I3 R2.2 By Nicola P.
Ramps 1.4 Con FW MarlinKimba Fusore HE IeC 1.75mm Con Flusso Canalizzatore Estrusori BullDog XL
Piano maggiorato 240*311mm pilotato da SSR 24V con letto scaldante autocostruito
Lavori in Corso Prossimetro Autolivellamento Z Gestione Remota Raspberry PI 2 con OctoPrint
Rilevamento ottico Fine Filo Illuminazione e Visione AreaStampa Remotata In costruzione Trafilatore TL-Plastic
Re: PiBot Optical Reflection Endstop thumbs up
August 27, 2015 10:58AM
con la Ramps si, io l'ho messo in GND Trigger e funziona perfettamente. Il problema secondo me è il piatto di stampa, cioè le condizioni della superficie riflettente. In ambiente di prova, quindi a condizioni costanti funziona perfettamente, con la stampante in assetto di stampa , quindi con la lacca sul vetro ogni tanto sballa. Tra l'altro nel suo forum il costruttore dice di non usarlo ne su superfici nere o molto scure ne sul vetro


[www.3dmaker.systems]
Lo store online dedicato interamente alla stampa 3d
Re: PiBot Optical Reflection Endstop thumbs up
August 27, 2015 11:06AM
forse potrebbe funzionare meglio con un vetro opalino, o comunque non trasparente.


Alessandro

Prusa I3 Rework molto modificata - Taurino Classic - Ramps 1.4 - Driver DVR8825 - Hotend IEC 1,75mm 0.4mm - Firmware MarlinKimbra - Cura engine - Repetier Host
Re: PiBot Optical Reflection Endstop thumbs up
August 27, 2015 11:25AM
Be il risultato di 0,006 mm sullo specchio ikea del Mago credo che parla chiaro
poi scusate non ho grandissima esperienza di stampa ma generalmente si fa home e poi si mette lacca e stampa
quindi il problema non lo vedo cosi penalizzante o sbaglio ?


www.saviot.com Stampante Prusa I3 R2.2 By Nicola P.
Ramps 1.4 Con FW MarlinKimba Fusore HE IeC 1.75mm Con Flusso Canalizzatore Estrusori BullDog XL
Piano maggiorato 240*311mm pilotato da SSR 24V con letto scaldante autocostruito
Lavori in Corso Prossimetro Autolivellamento Z Gestione Remota Raspberry PI 2 con OctoPrint
Rilevamento ottico Fine Filo Illuminazione e Visione AreaStampa Remotata In costruzione Trafilatore TL-Plastic
Re: PiBot Optical Reflection Endstop thumbs up
August 27, 2015 11:35AM
Io ce l'ho montato da circa una settimana ma non l'ho ancora provato perchè settimana prossima metto un "tappetino" sul piatto e sarebbe da ricalibrare.
Convenevoli a parte, ho fatto qualche prova e da materiale a materiale cambia veramente tanto la riflessione. Se si vuole rimanere su precisioni accettabili (0.01 ? ) bisogna vedere se mettendo più o meno lacca o il tappetino è un po' sporco il risultato cambia, il rischio è di spaccare o il piano o l'hotend o tutte e due, io ci andrei cauto ad usarlo.
Re: PiBot Optical Reflection Endstop thumbs up
August 27, 2015 02:14PM
Quote
Paso
il rischio è di spaccare o il piano o l'hotend o tutte e due, io ci andrei cauto ad usarlo
Io quello meccanizo in Z tarato a 2mm sotto come extracorsa lo lascierei proprio per eivtare questo


www.saviot.com Stampante Prusa I3 R2.2 By Nicola P.
Ramps 1.4 Con FW MarlinKimba Fusore HE IeC 1.75mm Con Flusso Canalizzatore Estrusori BullDog XL
Piano maggiorato 240*311mm pilotato da SSR 24V con letto scaldante autocostruito
Lavori in Corso Prossimetro Autolivellamento Z Gestione Remota Raspberry PI 2 con OctoPrint
Rilevamento ottico Fine Filo Illuminazione e Visione AreaStampa Remotata In costruzione Trafilatore TL-Plastic
Re: PiBot Optical Reflection Endstop thumbs up
August 27, 2015 03:19PM
Quoto in pieno Paso thumbs up


[www.3dmaker.systems]
Lo store online dedicato interamente alla stampa 3d
Re: PiBot Optical Reflection Endstop thumbs up
September 04, 2015 12:01PM
ci sono novità su questo progetto? devo fare delle modifiche all'estrusore per montare il "dondolo", e il servo non mi ci sta più. Questa mi sembra una buona alternativa.


Alessandro

Prusa I3 Rework molto modificata - Taurino Classic - Ramps 1.4 - Driver DVR8825 - Hotend IEC 1,75mm 0.4mm - Firmware MarlinKimbra - Cura engine - Repetier Host
Re: PiBot Optical Reflection Endstop thumbs up
September 04, 2015 01:09PM
Io non ho nessuna novità perchè purtroppo il mio amico con il "tappetino" ha deciso di tornare dalle vacanze dopo il 14, inoltre stiamo ridisegnando tutta la struttura per renderla più stabile.
Prima di due/tre settimane non saprò dirti nulla...

Che piatto hai? vetro e vai di lacca?
Re: PiBot Optical Reflection Endstop thumbs up
September 04, 2015 01:22PM
Quote
Paso

Che piatto hai? vetro e vai di lacca?

si, anche se stavo pensando di passare ad un vetro opalino o bianco nel caso implementassi il pibot.

Mi piacerebbe sapere se MK ha portato avanti il test oppure è morto li.
se lo ordino dal sito pibot, quanto ci mette ad arrivare? e la spedizione? sarebbe meglio se riuscissi a trovarlo in europa.

edit: sul sito indica 3,89 dollari di spedizione e arrivo in 10-35 giorni.

l'ho trovato anche qui: [www.3dmaker.systems]
è incredibile che costi più la spedizione dall'Italia che dagli USA.

Edited 3 time(s). Last edit at 09/04/2015 01:27PM by bilanciamist.


Alessandro

Prusa I3 Rework molto modificata - Taurino Classic - Ramps 1.4 - Driver DVR8825 - Hotend IEC 1,75mm 0.4mm - Firmware MarlinKimbra - Cura engine - Repetier Host
Re: PiBot Optical Reflection Endstop thumbs up
September 04, 2015 04:09PM
Lo sto usando tutti i giorni sia sulla prusa che sulla delta... Per ora nessun problema...


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: PiBot Optical Reflection Endstop thumbs up
September 04, 2015 05:05PM
Bene, allora posso anche ordinalo. Ti funziona anche con il piatto in vetro?


Alessandro

Prusa I3 Rework molto modificata - Taurino Classic - Ramps 1.4 - Driver DVR8825 - Hotend IEC 1,75mm 0.4mm - Firmware MarlinKimbra - Cura engine - Repetier Host
Re: PiBot Optical Reflection Endstop thumbs up
September 05, 2015 09:27AM
Ciao
ho appena acquistato anch'io un paio di questi sensori!
solo che non riesco a farli andare!
L'ho messo in GND trigger (verificato con M119) e ho collegato alla ramps in Zmin
ho invertito la logica per zmin

#define Z_MIN_ENDSTOP_LOGIC true // set to true to invert the logic of the endstop.

E' acceso (luce rossa accesa) e quando lo avvicino ad una superficie si accende anche il led blu
solo che con G28 non mi funziona, la luce blu ripeto si accende ma non fa l'home, il piatto continua a salire!!



Cosa sbaglio??

Edited 1 time(s). Last edit at 09/05/2015 10:25AM by mdcompositi.
Re: PiBot Optical Reflection Endstop thumbs up
September 05, 2015 10:52AM
Quando fai M119 ti da triggered quando è accesa la luce blu (quindi rileva qualcosa)?
Cosa ti da M119 esattamente?


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: PiBot Optical Reflection Endstop thumbs up
September 05, 2015 10:59AM
con M119 mi da z_min:TRIGGERED

La logica dell'endstop è settata così
#define Z_MIN_ENDSTOP_LOGIC true
avvicinando il sensore ad una superficie si accende la luce blu (quindi vuol dire che funziona?)
facendo G28 va a home su x ed y però poi il piatto non sale per fare il probe su Z!

Edited 1 time(s). Last edit at 09/05/2015 11:00AM by mdcompositi.
Re: PiBot Optical Reflection Endstop thumbs up
September 05, 2015 11:04AM
Mi spieghi meglio... Ti da z:min triggered quando il led blu è acceso e NOT triggered quando è spento??
Hai disattivato la resistenza di pullup??
Bisogna sempre fare la prova con m119 prima di fare altro se i due stati non sono esatti c'è qualcosa che non va, semplice...


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: PiBot Optical Reflection Endstop thumbs up
September 05, 2015 11:10AM
La luce blu è spenta e dando M119 mi da triggered
mi da lo stesso triggered se do M119 con la luce blu accesa(tenendolo avvicinato ad una superficie)
per disattivare la resistenza di pullup devo decommentare questo?
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors

se decommento succede che con G28 la stampante non prende l'home di x e y, gli endstop non funzionano!
ho solo invertito la logica dell'endstop zmin

Edited 1 time(s). Last edit at 09/05/2015 11:15AM by mdcompositi.
Re: PiBot Optical Reflection Endstop thumbs up
September 05, 2015 11:20AM
Allora la linea #define endstoppullup serve per attivare tutti i pullup, quindi va disattivata.
Poi dopo trovi la possibilità di attivare o disattivare i singoli pullup, quindi li attivi per x e y e lasci disattivato quello per Z...


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: PiBot Optical Reflection Endstop thumbs up
September 05, 2015 11:28AM
ok, fatto!
ho disattivato la resistenza di z
M119 mi da triggered per tutti e tre gli assi sia con led blu acceso che spento
ma G28 non fa la probe di z
Re: PiBot Optical Reflection Endstop thumbs up
September 05, 2015 11:30AM
Mi fai vedere il tuo configuration.h come è settato??

Con M119 ti da not triggered quando è spento e triggered quando è acceso il led blu???
Se no è inutile che fai G28

Edited 1 time(s). Last edit at 09/05/2015 11:31AM 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: PiBot Optical Reflection Endstop thumbs up
September 05, 2015 11:31AM
ok

Edited 2 time(s). Last edit at 09/06/2015 04:44AM by mdcompositi.
Re: PiBot Optical Reflection Endstop thumbs up
September 05, 2015 11:33AM
Usa il comando code oppure allegalo cosi no!!! Cmq ho sbagliato mi serve il configuration_cartesian.h


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: PiBot Optical Reflection Endstop thumbs up
September 05, 2015 11:35AM
ho una corexy
quindi ti invio core.h

// Define this to set a custom name for your generic Mendel,
// Displayed in the LCD "Ready" message
#define CUSTOM_MACHINE_NAME "corexy"

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

// 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
   #define ENDSTOPPULLUP_ZPROBE
  // #define ENDSTOPPULLUP_EMIN
#endif

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_LOGIC true     // set to true to invert the logic of the endstop.
#define E_MIN_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define Z_PROBE_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.

// ENDSTOP SETTINGS:
// Sets direction of endstop when homing; 1=MAX, -1=MIN
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
#define E_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.


// 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 extruder

// 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 extruder
#define DISABLE_INACTIVE_EXTRUDER false //disable only inactive extruder and keep active extruder enabled

// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
#define INVERT_E0_DIR false
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false
#define INVERT_E3_DIR false

// Travel limits after homing (units are in mm)
#define X_MAX_POS 270
#define X_MIN_POS 0
#define Y_MAX_POS 240
#define Y_MIN_POS 0
#define Z_MAX_POS 180
#define Z_MIN_POS 0
#define E_MIN_POS 0

//=====================================================================================
//============================= Bed Manual or Auto Leveling ===========================
//=====================================================================================

// set the rectangle in which to probe in manual or automatic
#define LEFT_PROBE_BED_POSITION 20
#define RIGHT_PROBE_BED_POSITION 220
#define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 220

#define XY_TRAVEL_SPEED 10000     // X and Y axis travel speed between probes, in mm/min

//If you have enabled the Auto Bed Levelling and are using the same Z Probe for Z Homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!!
//#define Z_SAFE_HOMING
#ifdef Z_SAFE_HOMING
  #define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2)    // X point for Z homing when homing all axis (G28) or homing Z
  #define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2)    // Y point for Z homing when homing all axis (G28) or homing Z
#endif

#define ENABLE_AUTO_BED_LEVELING    // Delete the comment to enable (ABL)
#define Z_PROBE_REPEATABILITY_TEST  // Delete the comment to enable

#ifdef ENABLE_AUTO_BED_LEVELING

  // There are 2 different ways to specify probing locations
  //
  // - "grid" mode
  //   Probe several points in a rectangular grid.
  //   You specify the rectangle and the density of sample points.
  //   This mode is preferred because there are more measurements.
  //
  // - "3-point" mode
  //   Probe 3 arbitrary points on the bed (that aren't colinear)
  //   You specify the XY coordinates of all 3 points.

  // Enable this to sample the bed in a grid (least squares solution)
  // Note: this feature generates 10KB extra code size
  #define AUTO_BED_LEVELING_GRID

  #ifdef AUTO_BED_LEVELING_GRID

    #define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this

    // Set the number of grid points per dimension
    // You probably don't need more than 3 (squared=9)
#define AUTO_BED_LEVELING_GRID_POINTS 2

  #else  // not AUTO_BED_LEVELING_GRID

    // Arbitrary points to probe. A simple cross-product
    // is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 35
#define ABL_PROBE_PT_1_Y 250
#define ABL_PROBE_PT_2_X 35
#define ABL_PROBE_PT_2_Y 35
#define ABL_PROBE_PT_3_X 250
#define ABL_PROBE_PT_3_Y 35

  #endif // AUTO_BED_LEVELING_GRID

  // Offsets to the probe relative to the extruder tip (Hotend - Probe)
  // X and Y offsets MUST be INTEGERS
#define X_PROBE_OFFSET_FROM_EXTRUDER 0     // Probe on: -left +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER 0     // Probe on: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -4.8

// -below (always!)

#define Z_RAISE_BEFORE_HOMING 10      // (in mm) Raise Z before homing (G28) for Probe Clearance.
                                              // Be sure you have this distance over your Z_MAX_POS in case

#define Z_RAISE_BEFORE_PROBING 10      // much the extruder will be raised before travelling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 10      // much the extruder will be raised when travelling from between next probing points
  #define Z_RAISE_AFTER_PROBING        5      //How much the extruder will be raised after the last probing point.

  //#define Z_PROBE_SLED                // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell
  //#define SLED_DOCKING_OFFSET 5       // the extra distance the X axis must travel to pick up the sled. 0 should be fine but you can push it further if you'd like.

  //If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
  //The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.
  //You MUST HAVE the SERVO ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.

  #define PROBE_SERVO_DEACTIVATION_DELAY 300

  // Support for a dedicated Z PROBE endstop separate from the Z MIN endstop.
  // If you would like to use both a Z PROBE and a Z MIN endstop together or just a Z PROBE with a custom pin, uncomment #define Z_PROBE_ENDSTOP and read the instructions below.
  // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
  // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
  // To use a separte Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
  // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
  // WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework.

  //#define Z_PROBE_ENDSTOP
  
#endif // ENABLE_AUTO_BED_LEVELING


// The position of the homing switches
//#define MANUAL_HOME_POSITIONS  // If defined, MANUAL_*_HOME_POS below will be used
//#define BED_CENTER_AT_0_0  // If defined, the center of the bed is at (X=0, Y=0)

//Manual homing switch locations:
#ifdef MANUAL_HOME_POSITIONS
  #define MANUAL_X_HOME_POS 0
  #define MANUAL_Y_HOME_POS 0
  #define MANUAL_Z_HOME_POS 0
#endif

// MOVEMENT SETTINGS
#define HOMING_FEEDRATE {40*60,40*60,2*60,0}      // set the homing speeds (mm/min)

// default settings
#define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,400,185,625,625,625}      // X, Y, Z, E0, E1, E2, E3 default steps per unit
#define DEFAULT_MAX_FEEDRATE {300,300,10,100,100,100,100}      // X, Y, Z, E0, E1, E2, E3 (mm/sec)
#define DEFAULT_RETRACTION_MAX_FEEDRATE {110,110,110,110}      // E0, E1, E2, E3 (mm/sec)
#define DEFAULT_MAX_ACCELERATION {9000,9000,50,1000,1000,1000,1000}      // X, Y, Z, E0, E1, E2, E3 maximum start speed for accelerated moves.

#define DEFAULT_ACCELERATION 1000      // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION 2000      // E max acceleration in mm/s^2 for retracts
#define DEFAULT_TRAVEL_ACCELERATION 1000      // X, Y, Z acceleration in mm/s^2 for travel (non printing) moves

// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
// For the other hotends it is their distance from the extruder 0 hotend.
//#define HOTEND_OFFSET_X {0.0, 5.00, 0.0, 0.0} // (in mm) for each extruder, offset of the hotend on the X axis
//#define HOTEND_OFFSET_Y {0.0, 5.00, 0.0, 0.0} // (in mm) for each extruder, offset of the hotend on the Y axis

// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)
#define DEFAULT_XYJERK 20      // (mm/sec)
#define DEFAULT_ZJERK 0.4      // (mm/sec)
#define DEFAULT_EJERK 5      // (mm/sec)

//===========================================================================
//=============================Additional Features===========================
//===========================================================================

// Custom M code points
//#define CUSTOM_M_CODES
#ifdef CUSTOM_M_CODES
  #define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
  #define Z_PROBE_OFFSET_RANGE_MIN -20
  #define Z_PROBE_OFFSET_RANGE_MAX 20
#endif
// Define this to set a custom name for your generic Mendel,
// Displayed in the LCD "Ready" message
#define CUSTOM_MACHINE_NAME "corexy"

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

// 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
   #define ENDSTOPPULLUP_ZPROBE
  // #define ENDSTOPPULLUP_EMIN
#endif

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_LOGIC true     // set to true to invert the logic of the endstop.
#define E_MIN_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define Z_PROBE_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.

// ENDSTOP SETTINGS:
// Sets direction of endstop when homing; 1=MAX, -1=MIN
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
#define E_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.


// 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 extruder

// 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 extruder
#define DISABLE_INACTIVE_EXTRUDER false //disable only inactive extruder and keep active extruder enabled

// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
#define INVERT_E0_DIR false
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false
#define INVERT_E3_DIR false

// Travel limits after homing (units are in mm)
#define X_MAX_POS 270
#define X_MIN_POS 0
#define Y_MAX_POS 240
#define Y_MIN_POS 0
#define Z_MAX_POS 180
#define Z_MIN_POS 0
#define E_MIN_POS 0

//=====================================================================================
//============================= Bed Manual or Auto Leveling ===========================
//=====================================================================================

// set the rectangle in which to probe in manual or automatic
#define LEFT_PROBE_BED_POSITION 20
#define RIGHT_PROBE_BED_POSITION 220
#define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 220

#define XY_TRAVEL_SPEED 10000     // X and Y axis travel speed between probes, in mm/min

//If you have enabled the Auto Bed Levelling and are using the same Z Probe for Z Homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!!
//#define Z_SAFE_HOMING
#ifdef Z_SAFE_HOMING
  #define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2)    // X point for Z homing when homing all axis (G28) or homing Z
  #define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2)    // Y point for Z homing when homing all axis (G28) or homing Z
#endif

#define ENABLE_AUTO_BED_LEVELING    // Delete the comment to enable (ABL)
#define Z_PROBE_REPEATABILITY_TEST  // Delete the comment to enable

#ifdef ENABLE_AUTO_BED_LEVELING

  // There are 2 different ways to specify probing locations
  //
  // - "grid" mode
  //   Probe several points in a rectangular grid.
  //   You specify the rectangle and the density of sample points.
  //   This mode is preferred because there are more measurements.
  //
  // - "3-point" mode
  //   Probe 3 arbitrary points on the bed (that aren't colinear)
  //   You specify the XY coordinates of all 3 points.

  // Enable this to sample the bed in a grid (least squares solution)
  // Note: this feature generates 10KB extra code size
  #define AUTO_BED_LEVELING_GRID

  #ifdef AUTO_BED_LEVELING_GRID

    #define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this

    // Set the number of grid points per dimension
    // You probably don't need more than 3 (squared=9)
#define AUTO_BED_LEVELING_GRID_POINTS 2

  #else  // not AUTO_BED_LEVELING_GRID

    // Arbitrary points to probe. A simple cross-product
    // is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 35
#define ABL_PROBE_PT_1_Y 250
#define ABL_PROBE_PT_2_X 35
#define ABL_PROBE_PT_2_Y 35
#define ABL_PROBE_PT_3_X 250
#define ABL_PROBE_PT_3_Y 35

  #endif // AUTO_BED_LEVELING_GRID

  // Offsets to the probe relative to the extruder tip (Hotend - Probe)
  // X and Y offsets MUST be INTEGERS
#define X_PROBE_OFFSET_FROM_EXTRUDER 0     // Probe on: -left +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER 0     // Probe on: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -4.8

// -below (always!)

#define Z_RAISE_BEFORE_HOMING 10      // (in mm) Raise Z before homing (G28) for Probe Clearance.
                                              // Be sure you have this distance over your Z_MAX_POS in case

#define Z_RAISE_BEFORE_PROBING 10      // much the extruder will be raised before travelling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 10      // much the extruder will be raised when travelling from between next probing points
  #define Z_RAISE_AFTER_PROBING        5      //How much the extruder will be raised after the last probing point.

  //#define Z_PROBE_SLED                // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell
  //#define SLED_DOCKING_OFFSET 5       // the extra distance the X axis must travel to pick up the sled. 0 should be fine but you can push it further if you'd like.

  //If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
  //The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.
  //You MUST HAVE the SERVO ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.

  #define PROBE_SERVO_DEACTIVATION_DELAY 300

  // Support for a dedicated Z PROBE endstop separate from the Z MIN endstop.
  // If you would like to use both a Z PROBE and a Z MIN endstop together or just a Z PROBE with a custom pin, uncomment #define Z_PROBE_ENDSTOP and read the instructions below.
  // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
  // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
  // To use a separte Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
  // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
  // WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework.

  //#define Z_PROBE_ENDSTOP
  
#endif // ENABLE_AUTO_BED_LEVELING


// The position of the homing switches
//#define MANUAL_HOME_POSITIONS  // If defined, MANUAL_*_HOME_POS below will be used
//#define BED_CENTER_AT_0_0  // If defined, the center of the bed is at (X=0, Y=0)

//Manual homing switch locations:
#ifdef MANUAL_HOME_POSITIONS
  #define MANUAL_X_HOME_POS 0
  #define MANUAL_Y_HOME_POS 0
  #define MANUAL_Z_HOME_POS 0
#endif

// MOVEMENT SETTINGS
#define HOMING_FEEDRATE {40*60,40*60,2*60,0}      // set the homing speeds (mm/min)

// default settings
#define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,400,185,625,625,625}      // X, Y, Z, E0, E1, E2, E3 default steps per unit
#define DEFAULT_MAX_FEEDRATE {300,300,10,100,100,100,100}      // X, Y, Z, E0, E1, E2, E3 (mm/sec)
#define DEFAULT_RETRACTION_MAX_FEEDRATE {110,110,110,110}      // E0, E1, E2, E3 (mm/sec)
#define DEFAULT_MAX_ACCELERATION {9000,9000,50,1000,1000,1000,1000}      // X, Y, Z, E0, E1, E2, E3 maximum start speed for accelerated moves.

#define DEFAULT_ACCELERATION 1000      // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION 2000      // E max acceleration in mm/s^2 for retracts
#define DEFAULT_TRAVEL_ACCELERATION 1000      // X, Y, Z acceleration in mm/s^2 for travel (non printing) moves

// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
// For the other hotends it is their distance from the extruder 0 hotend.
//#define HOTEND_OFFSET_X {0.0, 5.00, 0.0, 0.0} // (in mm) for each extruder, offset of the hotend on the X axis
//#define HOTEND_OFFSET_Y {0.0, 5.00, 0.0, 0.0} // (in mm) for each extruder, offset of the hotend on the Y axis

// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)
#define DEFAULT_XYJERK 20      // (mm/sec)
#define DEFAULT_ZJERK 0.4      // (mm/sec)
#define DEFAULT_EJERK 5      // (mm/sec)

//===========================================================================
//=============================Additional Features===========================
//===========================================================================

// Custom M code points
//#define CUSTOM_M_CODES
#ifdef CUSTOM_M_CODES
  #define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
  #define Z_PROBE_OFFSET_RANGE_MIN -20
  #define Z_PROBE_OFFSET_RANGE_MAX 20
#endif
// Define this to set a custom name for your generic Mendel,
// Displayed in the LCD "Ready" message
#define CUSTOM_MACHINE_NAME "corexy"

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

// 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
   #define ENDSTOPPULLUP_ZPROBE
  // #define ENDSTOPPULLUP_EMIN
#endif

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_LOGIC true     // set to true to invert the logic of the endstop.
#define E_MIN_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define Z_PROBE_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.

// ENDSTOP SETTINGS:
// Sets direction of endstop when homing; 1=MAX, -1=MIN
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
#define E_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.


// 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 extruder

// 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 extruder
#define DISABLE_INACTIVE_EXTRUDER false //disable only inactive extruder and keep active extruder enabled

// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
#define INVERT_E0_DIR false
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false
#define INVERT_E3_DIR false

// Travel limits after homing (units are in mm)
#define X_MAX_POS 270
#define X_MIN_POS 0
#define Y_MAX_POS 240
#define Y_MIN_POS 0
#define Z_MAX_POS 180
#define Z_MIN_POS 0
#define E_MIN_POS 0

//=====================================================================================
//============================= Bed Manual or Auto Leveling ===========================
//=====================================================================================

// set the rectangle in which to probe in manual or automatic
#define LEFT_PROBE_BED_POSITION 20
#define RIGHT_PROBE_BED_POSITION 220
#define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 220

#define XY_TRAVEL_SPEED 10000     // X and Y axis travel speed between probes, in mm/min

//If you have enabled the Auto Bed Levelling and are using the same Z Probe for Z Homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!!
//#define Z_SAFE_HOMING
#ifdef Z_SAFE_HOMING
  #define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2)    // X point for Z homing when homing all axis (G28) or homing Z
  #define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2)    // Y point for Z homing when homing all axis (G28) or homing Z
#endif

#define ENABLE_AUTO_BED_LEVELING    // Delete the comment to enable (ABL)
#define Z_PROBE_REPEATABILITY_TEST  // Delete the comment to enable

#ifdef ENABLE_AUTO_BED_LEVELING

  // There are 2 different ways to specify probing locations
  //
  // - "grid" mode
  //   Probe several points in a rectangular grid.
  //   You specify the rectangle and the density of sample points.
  //   This mode is preferred because there are more measurements.
  //
  // - "3-point" mode
  //   Probe 3 arbitrary points on the bed (that aren't colinear)
  //   You specify the XY coordinates of all 3 points.

  // Enable this to sample the bed in a grid (least squares solution)
  // Note: this feature generates 10KB extra code size
  #define AUTO_BED_LEVELING_GRID

  #ifdef AUTO_BED_LEVELING_GRID

    #define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this

    // Set the number of grid points per dimension
    // You probably don't need more than 3 (squared=9)
#define AUTO_BED_LEVELING_GRID_POINTS 2

  #else  // not AUTO_BED_LEVELING_GRID

    // Arbitrary points to probe. A simple cross-product
    // is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 35
#define ABL_PROBE_PT_1_Y 250
#define ABL_PROBE_PT_2_X 35
#define ABL_PROBE_PT_2_Y 35
#define ABL_PROBE_PT_3_X 250
#define ABL_PROBE_PT_3_Y 35

  #endif // AUTO_BED_LEVELING_GRID

  // Offsets to the probe relative to the extruder tip (Hotend - Probe)
  // X and Y offsets MUST be INTEGERS
#define X_PROBE_OFFSET_FROM_EXTRUDER 0     // Probe on: -left +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER 0     // Probe on: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -4.8

// -below (always!)

#define Z_RAISE_BEFORE_HOMING 10      // (in mm) Raise Z before homing (G28) for Probe Clearance.
                                              // Be sure you have this distance over your Z_MAX_POS in case

#define Z_RAISE_BEFORE_PROBING 10      // much the extruder will be raised before travelling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 10      // much the extruder will be raised when travelling from between next probing points
  #define Z_RAISE_AFTER_PROBING        5      //How much the extruder will be raised after the last probing point.

  //#define Z_PROBE_SLED                // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell
  //#define SLED_DOCKING_OFFSET 5       // the extra distance the X axis must travel to pick up the sled. 0 should be fine but you can push it further if you'd like.

  //If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
  //The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.
  //You MUST HAVE the SERVO ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.

  #define PROBE_SERVO_DEACTIVATION_DELAY 300

  // Support for a dedicated Z PROBE endstop separate from the Z MIN endstop.
  // If you would like to use both a Z PROBE and a Z MIN endstop together or just a Z PROBE with a custom pin, uncomment #define Z_PROBE_ENDSTOP and read the instructions below.
  // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
  // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
  // To use a separte Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
  // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
  // WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework.

  //#define Z_PROBE_ENDSTOP
  
#endif // ENABLE_AUTO_BED_LEVELING


// The position of the homing switches
//#define MANUAL_HOME_POSITIONS  // If defined, MANUAL_*_HOME_POS below will be used
//#define BED_CENTER_AT_0_0  // If defined, the center of the bed is at (X=0, Y=0)

//Manual homing switch locations:
#ifdef MANUAL_HOME_POSITIONS
  #define MANUAL_X_HOME_POS 0
  #define MANUAL_Y_HOME_POS 0
  #define MANUAL_Z_HOME_POS 0
#endif

// MOVEMENT SETTINGS
#define HOMING_FEEDRATE {40*60,40*60,2*60,0}      // set the homing speeds (mm/min)

// default settings
#define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,400,185,625,625,625}      // X, Y, Z, E0, E1, E2, E3 default steps per unit
#define DEFAULT_MAX_FEEDRATE {300,300,10,100,100,100,100}      // X, Y, Z, E0, E1, E2, E3 (mm/sec)
#define DEFAULT_RETRACTION_MAX_FEEDRATE {110,110,110,110}      // E0, E1, E2, E3 (mm/sec)
#define DEFAULT_MAX_ACCELERATION {9000,9000,50,1000,1000,1000,1000}      // X, Y, Z, E0, E1, E2, E3 maximum start speed for accelerated moves.

#define DEFAULT_ACCELERATION 1000      // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION 2000      // E max acceleration in mm/s^2 for retracts
#define DEFAULT_TRAVEL_ACCELERATION 1000      // X, Y, Z acceleration in mm/s^2 for travel (non printing) moves

// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
// For the other hotends it is their distance from the extruder 0 hotend.
//#define HOTEND_OFFSET_X {0.0, 5.00, 0.0, 0.0} // (in mm) for each extruder, offset of the hotend on the X axis
//#define HOTEND_OFFSET_Y {0.0, 5.00, 0.0, 0.0} // (in mm) for each extruder, offset of the hotend on the Y axis

// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)
#define DEFAULT_XYJERK 20      // (mm/sec)
#define DEFAULT_ZJERK 0.4      // (mm/sec)
#define DEFAULT_EJERK 5      // (mm/sec)

//===========================================================================
//=============================Additional Features===========================
//===========================================================================

// Custom M code points
//#define CUSTOM_M_CODES
#ifdef CUSTOM_M_CODES
  #define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
  #define Z_PROBE_OFFSET_RANGE_MIN -20
  #define Z_PROBE_OFFSET_RANGE_MAX 20
#endif
// Define this to set a custom name for your generic Mendel,
// Displayed in the LCD "Ready" message
#define CUSTOM_MACHINE_NAME "corexy"

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

// 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
   #define ENDSTOPPULLUP_ZPROBE
  // #define ENDSTOPPULLUP_EMIN
#endif

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_LOGIC true     // set to true to invert the logic of the endstop.
#define E_MIN_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.
#define Z_PROBE_ENDSTOP_LOGIC false      // set to true to invert the logic of the endstop.

// ENDSTOP SETTINGS:
// Sets direction of endstop when homing; 1=MAX, -1=MIN
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
#define E_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.


// 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 extruder

// 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 extruder
#define DISABLE_INACTIVE_EXTRUDER false //disable only inactive extruder and keep active extruder enabled

// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
#define INVERT_E0_DIR false
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false
#define INVERT_E3_DIR false

// Travel limits after homing (units are in mm)
#define X_MAX_POS 270
#define X_MIN_POS 0
#define Y_MAX_POS 240
#define Y_MIN_POS 0
#define Z_MAX_POS 180
#define Z_MIN_POS 0
#define E_MIN_POS 0

//=====================================================================================
//============================= Bed Manual or Auto Leveling ===========================
//=====================================================================================

// set the rectangle in which to probe in manual or automatic
#define LEFT_PROBE_BED_POSITION 20
#define RIGHT_PROBE_BED_POSITION 220
#define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 220

#define XY_TRAVEL_SPEED 10000     // X and Y axis travel speed between probes, in mm/min

//If you have enabled the Auto Bed Levelling and are using the same Z Probe for Z Homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!!
//#define Z_SAFE_HOMING
#ifdef Z_SAFE_HOMING
  #define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2)    // X point for Z homing when homing all axis (G28) or homing Z
  #define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2)    // Y point for Z homing when homing all axis (G28) or homing Z
#endif

#define ENABLE_AUTO_BED_LEVELING    // Delete the comment to enable (ABL)
#define Z_PROBE_REPEATABILITY_TEST  // Delete the comment to enable

#ifdef ENABLE_AUTO_BED_LEVELING

  // There are 2 different ways to specify probing locations
  //
  // - "grid" mode
  //   Probe several points in a rectangular grid.
  //   You specify the rectangle and the density of sample points.
  //   This mode is preferred because there are more measurements.
  //
  // - "3-point" mode
  //   Probe 3 arbitrary points on the bed (that aren't colinear)
  //   You specify the XY coordinates of all 3 points.

  // Enable this to sample the bed in a grid (least squares solution)
  // Note: this feature generates 10KB extra code size
  #define AUTO_BED_LEVELING_GRID

  #ifdef AUTO_BED_LEVELING_GRID

    #define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this

    // Set the number of grid points per dimension
    // You probably don't need more than 3 (squared=9)
#define AUTO_BED_LEVELING_GRID_POINTS 2

  #else  // not AUTO_BED_LEVELING_GRID

    // Arbitrary points to probe. A simple cross-product
    // is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 35
#define ABL_PROBE_PT_1_Y 250
#define ABL_PROBE_PT_2_X 35
#define ABL_PROBE_PT_2_Y 35
#define ABL_PROBE_PT_3_X 250
#define ABL_PROBE_PT_3_Y 35

  #endif // AUTO_BED_LEVELING_GRID

  // Offsets to the probe relative to the extruder tip (Hotend - Probe)
  // X and Y offsets MUST be INTEGERS
#define X_PROBE_OFFSET_FROM_EXTRUDER 0     // Probe on: -left +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER 0     // Probe on: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -4.8

// -below (always!)

#define Z_RAISE_BEFORE_HOMING 10      // (in mm) Raise Z before homing (G28) for Probe Clearance.
                                              // Be sure you have this distance over your Z_MAX_POS in case

#define Z_RAISE_BEFORE_PROBING 10      // much the extruder will be raised before travelling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 10      // much the extruder will be raised when travelling from between next probing points
  #define Z_RAISE_AFTER_PROBING        5      //How much the extruder will be raised after the last probing point.

  //#define Z_PROBE_SLED                // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell
  //#define SLED_DOCKING_OFFSET 5       // the extra distance the X axis must travel to pick up the sled. 0 should be fine but you can push it further if you'd like.

  //If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
  //The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.
  //You MUST HAVE the SERVO ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.

  #define PROBE_SERVO_DEACTIVATION_DELAY 300

  // Support for a dedicated Z PROBE endstop separate from the Z MIN endstop.
  // If you would like to use both a Z PROBE and a Z MIN endstop together or just a Z PROBE with a custom pin, uncomment #define Z_PROBE_ENDSTOP and read the instructions below.
  // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
  // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
  // To use a separte Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
  // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
  // WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework.

  //#define Z_PROBE_ENDSTOP
  
#endif // ENABLE_AUTO_BED_LEVELING


// The position of the homing switches
//#define MANUAL_HOME_POSITIONS  // If defined, MANUAL_*_HOME_POS below will be used
//#define BED_CENTER_AT_0_0  // If defined, the center of the bed is at (X=0, Y=0)

//Manual homing switch locations:
#ifdef MANUAL_HOME_POSITIONS
  #define MANUAL_X_HOME_POS 0
  #define MANUAL_Y_HOME_POS 0
  #define MANUAL_Z_HOME_POS 0
#endif

// MOVEMENT SETTINGS
#define HOMING_FEEDRATE {40*60,40*60,2*60,0}      // set the homing speeds (mm/min)

// default settings
#define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,400,185,625,625,625}      // X, Y, Z, E0, E1, E2, E3 default steps per unit
#define DEFAULT_MAX_FEEDRATE {300,300,10,100,100,100,100}      // X, Y, Z, E0, E1, E2, E3 (mm/sec)
#define DEFAULT_RETRACTION_MAX_FEEDRATE {110,110,110,110}      // E0, E1, E2, E3 (mm/sec)
#define DEFAULT_MAX_ACCELERATION {9000,9000,50,1000,1000,1000,1000}      // X, Y, Z, E0, E1, E2, E3 maximum start speed for accelerated moves.

#define DEFAULT_ACCELERATION 1000      // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION 2000      // E max acceleration in mm/s^2 for retracts
#define DEFAULT_TRAVEL_ACCELERATION 1000      // X, Y, Z acceleration in mm/s^2 for travel (non printing) moves

// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
// For the other hotends it is their distance from the extruder 0 hotend.
//#define HOTEND_OFFSET_X {0.0, 5.00, 0.0, 0.0} // (in mm) for each extruder, offset of the hotend on the X axis
//#define HOTEND_OFFSET_Y {0.0, 5.00, 0.0, 0.0} // (in mm) for each extruder, offset of the hotend on the Y axis

// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)
#define DEFAULT_XYJERK 20      // (mm/sec)
#define DEFAULT_ZJERK 0.4      // (mm/sec)
#define DEFAULT_EJERK 5      // (mm/sec)

//===========================================================================
//=============================Additional Features===========================
//===========================================================================

// Custom M code points
//#define CUSTOM_M_CODES
#ifdef CUSTOM_M_CODES
  #define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
  #define Z_PROBE_OFFSET_RANGE_MIN -20
  #define Z_PROBE_OFFSET_RANGE_MAX 20
#endif

Edited 7 time(s). Last edit at 09/07/2015 10:37AM by mdcompositi.
Sorry, only registered users may post in this forum.

Click here to login