Ce site contient essentiellement des notes de travail. Le contenu est en constante évolution, et loin d'être achevé. (+ d'infos)
La plupart des documentations informatiques sont orientées Debian / Ubuntu.

Modélisme/Imprimantes 3D/Firmwares/Marlin/Auto probe

De Ordinoscope.net
Sauter à la navigation Sauter à la recherche

Introduction

Avant de passer à l'auto leveling, il faut avoir un capteur pour détecter la hauteur du plateau.

N'étant pas complètement convaincu par les tests effectués par les youtubers qui m'ont servi de référence, j'ai préféré refaire les tests par moi-même. Et, en effet, j'arrive aux même conclusions qu'eux: quelque soit le capteur, tous ont une précision suffisante pour un HOME ou de l'auto leveling.

Si vous cherchez le meilleur type de capteur pour équiper une machine qui n'en a pas, je vous recommanderai de partir sur un BLtouch Smart V2. Il est petit, fiable, ne nécessite pas d'électronique supplémentaire et fonctionne avec tous les matériaux. Son prix est certes plus élevé, mais largement justifié.

Capteurs

inductif

pro cons
très bon marché (~ 2$)
  • généralement limité à 4mm d'écart avec une surface métallique
  • nécessite une tension d'alimentation élevée (12~24V)
  • ne détecte que l'alu 1

1 par exemple:

  • plateau en verre: FAIL
  • tapis magnétique: FAIL
  • plateau en alu: OK

capacitif

pro cons
  • plus gros qu'un inductif (18mm)
  • détecte plus de matériaux que l'inductif
  • portée plus longe qu'un inductif
  • sa mesure change en fonction de la température et de l'humidité - nécessite de recalibrer l'offset régulièrement
  • nécessite une tension d'alimentation élevée (12~24V)
  • un peu plus cher que qu'un inductif (~ 4$)

touch

pro cons
  • ne varie pas en fonction de l'environnement
  • tous les matériaux sont détectés
  • assez petit
  • alimenté en 5V
  • nécessite une voie de servo
  • beaucoup plus cher que les autres (~ 40$ pour le bltouch genuine)

Le concept a été créé par Antclabs (BLtouch genuine). Depuis, on trouve plusieurs copies, dont principalement:

  • 3Dtouch (chercher sur eBay ou AliExpress - depuis 16$)
  • Trianglelab TLtouch (~ 20$)
  • d'autres variantes ~ 10$

La plupart semblent s'accorder sur le fait que les clones sont de moindre précision. Mes tests préliminaires ont affiché que mon clone 3dtouch fonctionne tout aussi bien que le genuine, et même légèrement mieux. Ceci dit, le clone 3dtouch est instable, se mettant sans cesse en erreur.

Configuration dans Marlin

Capteur

manuel

/**
   The "Manual Probe" provides a means to do "Auto" Bed Leveling without a probe.
   Use G29 repeatedly, adjusting the Z height at each point with movement commands
   or (with LCD_BED_LEVELING) the LCD controller.
*/
//#define PROBE_MANUALLY
//#define MANUAL_PROBE_START_Z 0.2

inductif, capacitif (switch)

/**
   A Fix-Mounted Probe either doesn't deploy or needs manual deployment.
     (e.g., an inductive probe or a nozzle-based probe-switch.)
*/
//#define FIX_MOUNTED_PROBE
// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING true // set to true to invert the logic of the probe.

touch

/**
   A Fix-Mounted Probe either doesn't deploy or needs manual deployment.
     (e.g., an inductive probe or a nozzle-based probe-switch.)
*/
//#define FIX_MOUNTED_PROBE
/**
   The BLTouch probe uses a Hall effect sensor and emulates a servo.
*/
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375   // (ms) Enable and increase if needed
#endif
#define X_MIN_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING false  // set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the probe.
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

Offsets

capteur - extrudeur

/**
     Z Probe to nozzle (X,Y) offset, relative to (0, 0).
     X and Y offsets must be integers.

     In the following example the X and Y offsets are both positive:
     #define X_PROBE_OFFSET_FROM_EXTRUDER 10
     #define Y_PROBE_OFFSET_FROM_EXTRUDER 10

        +-- BACK ---+
        |           |
      L |    (+) P  | R <-- probe (20,20)
      E |           | I
      F | (-) N (+) | G <-- nozzle (10,10)
      T |           | H
        |    (-)    | T
        |           |
        O-- FRONT --+
      (0,0)
*/
//#define X_PROBE_OFFSET_FROM_EXTRUDER 10  // X offset: -left  +right  [of the nozzle]
//#define Y_PROBE_OFFSET_FROM_EXTRUDER 10  // Y offset: -front +behind [the nozzle]
//#define Z_PROBE_OFFSET_FROM_EXTRUDER 0   // Z offset: -below +above  [the nozzle]

plateau - limites de mesure

//#define LEFT_PROBE_BED_POSITION 36
//#define RIGHT_PROBE_BED_POSITION 190
//#define FRONT_PROBE_BED_POSITION 20
//#define BACK_PROBE_BED_POSITION 190

hauteurs pendant les mesures

//#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.
#define Z_CLEARANCE_DEPLOY_PROBE   10 // Z Clearance for Deploy/Stow
#define Z_CLEARANCE_BETWEEN_PROBES  5 // Z Clearance between probe points
#define Z_CLEARANCE_MULTI_PROBE     5 // Z Clearance between multiple probes

Z Offset (M851 [1])

// For M851 give a range for adjusting the Z probe offset
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20

Safe homing (home au milieu du plateau)

// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area.
//
// With this feature enabled:
//
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
// - Prevent Z homing when the Z probe is outside bed area.
//
//#define Z_SAFE_HOMING

#if ENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2)    // X point for Z homing when homing all axes (G28).
#define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2)    // Y point for Z homing when homing all axes (G28).
#endif

Baby step (M290 [2])

N.B. sur le baby stepping:

  • ne respecte pas les limites définies (endstops)
  • nécessite un capteur (PROBE_MANUALLY n'est pas accepté comme tel)

Configuration_adv.h

/**
 * Babystepping enables movement of the axes by tiny increments without changing
 * the current position values. This feature is used primarily to adjust the Z
 * axis in the first layer of a print in real-time.
 *
 * Warning: Does not respect endstops!
 */
//#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
  #define BABYSTEP_MULTIPLICATOR 1   // Babysteps are very small. Increase for faster motion.
  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
  //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
  #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
                                        // Note: Extra time may be added to mitigate controller latency.
  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
#endif

Accuracy test (M48 [3])

// Enable the M48 repeatability test to test probe accuracy
//#define Z_MIN_PROBE_REPEATABILITY_TEST

Références