Code : Tout sélectionner
totof06
Sujet du message: Re: Auto Leveling Hephestos
MessagePosté: 01/10/2014, 16:54:05
Voila un petit tuto vite fais

:
Coté Hard:
1° : Imprimer le support à cette adresse :
http://www.thingiverse.com/thing:418259
J'ai ajouté un supplément pour une bonne fixation :
https://dl.dropboxusercontent.com/u/187 ... 0Servo.STL
2° : Achat d'un servo 9g et d'un contacteur type switch (facile à trouver sur Ebay par exemple)
Branchement Servo et contacteur
1°) Le servo ce branche sur la voie 1 de la Ramps ( masse vers l'exterieur) et le contacteur en lieu et place du switch d'origine EndStop Z
2°) Mise en place d'un Jumper pour l'alimentation du servo
Pour le contacteur il n'y aura que 2 fils (Masse= Noir et Jaune ou blanc = signal) la masse est sur la voie central du connecteur et le signal sur la voie 3 (branchement signal vers l’extérieur de la carte Ramps)
Voila pour le coté Hard ^^
Coté Soft :
Il va falloir modifier le firmware d'origine pour utiliser l'autoLevel.
1°) Enclencher l'AutoLevel
2°) Paramétrage du nombre de servo et des valeurs de ça course
3°) Enregistrer les valeurs entre le contacteur et la buse
4°) Désactiver la fonction Z Safe homing
1°) :
Direction Arduino et Configuration H
Dans la partie autolevel bed, il faut déclarer le type de palpage choisi : cartésien ou en 3 points, la zone de palpage, les offsets du palpeur. Comme toujours on active en supprimant les // qui mettent en commentaires
#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line) Activation de la fonction
#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 Activation du mode 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 LEFT_PROBE_BED_POSITION 5
#define RIGHT_PROBE_BED_POSITION 150
#define BACK_PROBE_BED_POSITION 190
#define FRONT_PROBE_BED_POSITION 5
Défini les extrémités de la zone à palper. A définir en tenant compte des offsets XY du palpeur. Mon palpeur est aligné avec la buse en Y. Je peux donc palper de 5 à 190 mm soit toute la zone d’impression. Il est décalé à 40 mm en x coté mini, je peux donc palper de 5 à 150mm maxi seulement. Mes courses sont de 195 / 195, et je garde 5 mm de sécurité à chaque extrémité. Il n’est pas gênant de ne pas palper sur tout le bed,car le calcul extrapole l’équation du plan sur la zone totale
// set the number of grid points per dimension
// I wouldn’t see a reason to go above 3 (=9 probing points on the bed)
#define AUTO_BED_LEVELING_GRID_POINTS 3
Défini le nombre de palpages sur chaque axe. si 2: 2×2=4 points. Si 3: 3×3=9 points. Inutile d’aller au delà...
2°)
/*********************************************************************\
* R/C SERVO support
* Sponsored by TrinityLabs, Reworked by codexmas
**********************************************************************/
// Number of servos
//
// If you select a configuration below, this will receive a default value and does not need to be set manually
// set it manually if you have more servos than extruders and wish to manually control some
// leaving it undefined or defining as 0 will disable the servo subsystem
// If unsure, leave commented / disabled
//
#define NUM_SERVOS 1 // Servo index starts with 0 for M280 command
// Servo Endstops
//
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M206 command to correct for switch height offset to actual nozzle height. Store that setting with M500.
//
#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 65,180} // X,Y,Z Axis Extend and Retract angles
Ici il suffira de modifier les valeurs "180,65" par vos valeurs qui correspondent à l'angle de mouvement du servo pour la rétractation et pour l'extension.
Pour faire fonctionner le servo utilisez la commande : M280 P0 S60 par exemple, 60 étant l'angle demandé.
Choisissez votre angle haut et bas en faisant attention au servo ( en haut qu'il ne touche rien ni n'obstrue le ventilateur et bas que le contacteur touche juste le plateau de verre )
Une fois ces valeurs noté, les rentrer dans Configuration H, voila pour le servo !
3°) Relever des valeurs de distance entre le contacteur et la buse
Faire une marque au centre du verre et positionner la buse à 0.1mm (une feuille de papier 80gr) j'utilise Pronterface
Une fois fais, utilisez la commande G92 X0 Y0 Z0
Maintenant la même chose mais avec le contacteur déployée toujours sur la marque et le faire descendre jusque à entendre le clic de contact (utilisez la commande M119 pour voir l’état des contacteurs)
Un fois fais, utilisez la commande M114 vous allez voir une valeur pour X Y Z c'est la distance entre la buse et le contacteur, relevez la bien !
Ecrivez les dans configuration H
// these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
#define X_PROBE_OFFSET_FROM_EXTRUDER 30.0
#define Y_PROBE_OFFSET_FROM_EXTRUDER -2.0
#define Z_PROBE_OFFSET_FROM_EXTRUDER -8.40
Comme vous pouvez le voir les valeurs sont multiplié par -1 c'est normal !
3°)
Désactivation de la fonction Z Safe homing
// #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.
Voila il vous reste à réinjecter le firmware modifié dans l'imprimante et utiliser un nouveau G-code pour le démarrage
Par exemple le miens :
; -- START GCODE --
;Sliced at: {day} {date} {time}
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
;Print time: {print_time}
;Filament used: {filament_amount}m {filament_weight}g
;Filament cost: {filament_cost}
;M190 S{print_bed_temperature} ;Uncomment to add your own bed temperature line
;M109 S{print_temperature} ;Uncomment to add your own temperature line
G21 ;metric values
G90 ;absolute positioning
M107 ;start with the fan off
G28 X0 Y0 ;move X/Y to min endstops
G1 Y100 F4000
M401
G28 Z0 ;move Z to min endstops
G29 ; Palpage
G92 E0 ;zero the extruded length
G1 F200 E5 ;extrude 5mm of feed stock
G92 E0 ;zero the extruded length again
G1 F{travel_speed}
;Put printing message on LCD screen
;M117 Printing...
; -- end of START GCODE --
Attention à ce que la tête soit toujours en hauteur pour éviter de faire taper le contacteur sur le verre
Je dois encore voir pour modifier et améliorer mon G-code de démarrage mais ça fonctionne
