Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Ayuda con sensor capacitativo en Marlin.
#1
Hola! Tengo montada una Delta con Marlin y un sensor capacitativo para el autolevel. Pero no consigo configurar el Marlin para que haga el auto nivelado bien.
siempre se queda 3mm más bajo el extrusor y no se que valor cambiarle ya, ni que estoy haciendo mal.¿ Alguien podría echarme una mano? Gracias de antemano. Aquí dejo un corta pega del Marlin que estoy usando:


Código:
#ifndef MOTHERBOARD
#define MOTHERBOARD 33
#endif

//===========================================================================
//============================== Delta Settings =============================
//===========================================================================
// Activa Cinemática DELTA (cinemática paralela)
#define DELTA
// Make delta curves from many straight lines (linear interpolation).
// This is a trade-off between visible corners (not enough segments)
// and processor overload (too many expensive sqrt calls).
#define DELTA_SEGMENTS_PER_SECOND 200
// Distancia Centro-a-centro de los agujeros en las varillas diagonales.
#define DELTA_DIAGONAL_ROD 191.5 // mm (215)

// 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 Enstop 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 = true; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = true; // 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// DELTA does not invert
#define INVERT_Y_DIR false    // for Mendel set to true, for Orca set to false// DELTA does not invert
#define INVERT_Z_DIR false    // for Mendel set to false, for Orca set to true// DELTA does not invert
#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
// deltas always home to max
#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  // Límites de recorrido despues de posicionarse en origen.
#define X_MAX_POS 62  //80
#define X_MIN_POS -62  //-80
#define Y_MAX_POS 62  //80
#define Y_MIN_POS -62  //-80
#define Z_MAX_POS MANUAL_Z_HOME_POS
#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)


//============================= Bed Auto Leveling ===========================
#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
#define Z_PROBE_REPEATABILITY_TEST  // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#ifdef ENABLE_AUTO_BED_LEVELING
// There are 2 different ways to pick the X and Y locations to probe:
//  - "grid" mode
//    Probe every point in a rectangular grid
//    You must specify the rectangle, and the density of sample points
//    This mode is preferred because there are more measurements.
//    It used to be called ACCURATE_BED_LEVELING but "grid" is more descriptive
//  - "3-point" mode
//    Probe 3 arbitrary points on the bed (that aren't colinear)
//    You must specify the X & Y coordinates of all 3 points
// #define AUTO_BED_LEVELING_GRID
  // with AUTO_BED_LEVELING_GRID, the bed is sampled in a
  // AUTO_BED_LEVELING_GRID_POINTSxAUTO_BED_LEVELING_GRID_POINTS grid
  // and least squares solution is calculated
  // Note: this feature occupies 10'206 byte
  #ifdef AUTO_BED_LEVELING_GRID
    // set the rectangle in which to probe
     //#define DELTA_PROBABLE_RADIUS (DELTA_PRINTABLE_RADIUS-10)
    #define LEFT_PROBE_BED_POSITION 2//#define LEFT_PROBE_BED_POSITION -DELTA_PROBABLE_RADIUS
    #define RIGHT_PROBE_BED_POSITION 60//#define RIGHT_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS
    #define BACK_PROBE_BED_POSITION 2//#define BACK_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS
    #define FRONT_PROBE_BED_POSITION 60//#define FRONT_PROBE_BED_POSITION -DELTA_PROBABLE_RADIUS
    // probe at the points of a lattice grid
   // #define AUTO_BED_LEVELING_GRID_POINTS 2
    //#define AUTO_BED_LEVELING_GRID_X ((RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION) / (AUTO_BED_LEVELING_GRID_POINTS - 1))
//    #define AUTO_BED_LEVELING_GRID_Y ((BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION) / (AUTO_BED_LEVELING_GRID_POINTS - 1))
    // NONLINEAR_BED_LEVELING means: don't try to calculate linear coefficients but instead
    // compensate by interpolating between the nearest four Z probe values for each point.
    // Useful for deltabots where the print surface may appear like a bowl or dome shape.
    // Works best with AUTO_BED_LEVELING_GRID_POINTS 5 or higher.
   // #define NONLINEAR_BED_LEVELING
  #else  // not AUTO_BED_LEVELING_GRID
    // with no grid, just probe 3 arbitrary points.  A simple cross-product
    // is used to esimate the plane of the print bed
      #define ABL_PROBE_PT_1_X 2
      #define ABL_PROBE_PT_1_Y 60
      #define ABL_PROBE_PT_2_X 60
      #define ABL_PROBE_PT_2_Y 2
      #define ABL_PROBE_PT_3_X 60
      #define ABL_PROBE_PT_3_Y 20
  #endif // AUTO_BED_LEVELING_GRID

  // these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
  #define X_PROBE_OFFSET_FROM_EXTRUDER -15.5//-22.919
  #define Y_PROBE_OFFSET_FROM_EXTRUDER -10.5//-6.304
  #define Z_PROBE_OFFSET_FROM_EXTRUDER -13.15//-17.25  // Increase this if the first layer is too thin.
  #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 XY_TRAVEL_SPEED 3000         // X and Y axis travel speed between probes, in mm/min
  #define Z_RAISE_BEFORE_PROBING 10  //How much the extruder will be raised before traveling to the first probing point.
  #define Z_RAISE_BETWEEN_PROBINGS 10  //How much the extruder will be raised when traveling from between next probing points
  //#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 pickup 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

//If you have enabled the Bed Auto Leveling 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   // This feature is meant to avoid Z homing with probe outside the bed area.
                          // When defined, it will:
                          // - Allow Z homing only after X and Y homing AND stepper drivers still enabled
                          // - If stepper drivers timeout, it will need X and Y homing again before Z homing
                          // - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
                          // - Block Z homing only when the probe is outside bed area.
  #ifdef Z_SAFE_HOMING
    #define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2)    // X point for Z homing when homing all axis (G28)
    #define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2)    // Y point for Z homing when homing all axis (G28)
  #endif
#endif // ENABLE_AUTO_BED_LEVELING


#define AUTOLEVEL_GRID 3  // #define AUTOLEVEL_GRID 15//26 Distance between autolevel Z probing points, should be less than print surface radius/3.
//Distancia entre los puntos de sondeo automático de nivel Z, debe ser menor que el radio de la superficie de impresión / 3.
//// MOVEMENT SETTINGS
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
#define HOMING_FEEDRATE {80*60, 80*60, 80*60, 0}  // set the homing speeds (mm/min)
#define Z_PROBE_OFFSET   {5, -10.5, -13.15, 0}//{25.5, 17, -1.5, 0}  // (0, 14, -6.5, 0) X, Y, Z, E distance between hotend nozzle and deployed bed leveling probe.(0,19,-8,0)

// default settings

// 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 EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
// #define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis

//===========================================================================
//=============================Additional Features===========================
//===========================================================================
// EEPROM
// the microcontroller can store settings in the EEPROM, e.g. max velocity...
// M500 - stores paramters in EEPROM
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
// M502 - reverts to the default "factory settings".  You still need to store them in EEPROM afterwards if you want to.
//define this to enable eeprom support
#define EEPROM_SETTINGS
//to disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
// please keep turned on if you can.
#define EEPROM_CHITCHAT


  Ando muy perdido me he leído un montón de tutoriales pero cada vez lo tengo menos claro.
 Si alguien pudiera echarle un vistazo y explicarme que línea y valor debo modificar para poder subir los 3mm que se clava la punta del extrusor, estaría muy agradecido. Guiño Muchas gracias.


Bueno pululando por la red he encontrado varias paginas en las que dicen que las Delta no sirve el autolevel , no salgo de mi asombro ya que las kossel que se están comercializado supuestamente lo llevan. Asi pues sigo hecho un lio en principio me gustaría saber si aguien me sabe decir como puedo hacer el autolevel con 5 puntos ó 3 me da igual pero poniendo yo las coordenadas exactas de dichos puntos. Y como se implementa en el código del Marlin para que cuando hace el autolevel quede grabado en la eprom. Gracias. O quizás sabeis de algún link en donde lo expliquen para torpes porque estoy desesperado del todo , Muchas Gracias de antemano.
Citar


Temas similares...
Tema Autor Respuestas Vistas Último mensaje
  ¿MKS Sbase + Marlin 2.0? 3Dsastre 5 138 Hace 5 horas
Último mensaje: neoxM3
  El marlin no me hace caso spa_sergio 10 1,337 05-11-2018, 01:17 PM
Último mensaje: Simemart
  Eje Z invertido al hacer homing + sensor de autolevel + Marlin 1.1.9 pepebky 7 298 18-10-2018, 08:25 PM
Último mensaje: Simemart
  Marlin 1.1.9 en Anet A8 PatogomaII 9 1,401 18-10-2018, 07:45 PM
Último mensaje: jhony85
  CONSULTA EJE Z PIERDE PASOS. AYUDA PONER MARLIN O ARREGLAR LA PERDIDA DE PASOS Arkaedus 2 208 21-09-2018, 05:30 PM
Último mensaje: Simemart