Auto Leveling Hephestos

Les améliorations de vos imprimantes
Archive robot
Imprimeur fou
Messages : 692
Inscription : jeu. oct. 23, 2014 6:42 pm

Code : Tout sélectionner

totof06  
 Sujet du message: Auto Leveling Hephestos
MessagePosté: 18/09/2014, 14:46:29  
Bonjour à tous, voila moi je me régale avec mon imprimante ! :)
Je suis toujours à le recherche de modifications ou amélioration et j'ai trouvé ça : http://www.thingiverse.com/thing:418259
Connaissez vous ? j'ai commencé à regarder mais impossible pour moi de trouvé un Tuto ou la mise en oeuvre dans le firmware Marlin ...
Si vous avez une idée ...? j'aimerai bien tester ;)
Merci à tous
Archive robot
Imprimeur fou
Messages : 692
Inscription : jeu. oct. 23, 2014 6:42 pm

Code : Tout sélectionner

Jacques  
 Sujet du message: Re: Auto Leveling Hephestos
MessagePosté: 18/09/2014, 16:52:10  

Cette implémentation est intéressante et simple à réaliser.
La carte RAMPS est équipée de la prise pour le servo.
La mesure se fait en basculant le servo jusqu'au contact du switch, ce qui permet de connaitre le véritable 0 du verre en plusieurs endroits. Il suffit ensuite d'appliquer des coefficients pour rétablir la planéité du plateau lors de l'impression.
Le firmware comprend cette possibilité qu'il faut valider dans un des fichiers de configuration Arduino.
Par contre, là ou ca se complique, c'est d'en connaitre les détails et en particulier le/les fichier(s) à modifier...
Il semblerait que tout se passe dans le fichier configuration.h

//============================= 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.

Par défaut je brancherais le servo en 1 sur la carte RAMPS et le switch reste celui du Z
C'est simple à tester avec n'importe quel servo et un switch sans rien modifier avant de savoir si tout fonctionne.
Au moment du test du 0, le servo doit tourner jusqu'à l'action du switch, ensuite le servo remonte et la tête se déplace jusqu'au prochain test.

Sinon, le plus simple serait de poser directement la question sur Thingiverse.

je reste attentif à cette évolution et suis prêt à vous aider si vous me fournissez des liens
Nous pourrions réaliser un proto avec son Wiki (pour changer ;) )
Archive robot
Imprimeur fou
Messages : 692
Inscription : jeu. oct. 23, 2014 6:42 pm

Code : Tout sélectionner

totof06  
 Sujet du message: Re: Auto Leveling Hephestos
MessagePosté: 18/09/2014, 20:41:42  
Je vais regarder ça de plus prêt ;) et vous tenir informer
Archive robot
Imprimeur fou
Messages : 692
Inscription : jeu. oct. 23, 2014 6:42 pm

Code : Tout sélectionner

totof06  
 Sujet du message: Re: Auto Leveling Hephestos
MessagePosté: 19/09/2014, 16:33:11  
Voila j'ai avancé un peu, je me suis recréé une pièces pour l'adapter à mon contacteur

Image

Image

Image

Image

J'ai commencé à regarder aussi avec des vidéos sur Youtube, bon c'est en anglais et j'ai du mal à suivre ...apparemment il y a la fonction à enclencher dans le firmware Marlin et le réglage du servo pour la fin de course haut et basse

http://www.youtube.com/playlist?list=PL ... GeFXTffiP9
Autre site :http://www.zem.fr/tag/auto-bed-level/

Bon je connecte le servo sur la ramps mais pour le switch je le connecte aussi sur le Z ? j'ai déjà un contacteur sur le Z ... et j'utilise quoi comme contact +5v et signal ou Masse et signal ?
Merci
Archive robot
Imprimeur fou
Messages : 692
Inscription : jeu. oct. 23, 2014 6:42 pm

Code : Tout sélectionner

totof06  
 Sujet du message: Re: Auto Leveling Hephestos
MessagePosté: 24/09/2014, 14:51:24  
Salut à tous ;) enfin le forum de retour :)
Bon j'avance bien mais je bute sur un problème ... j'ai bien configuré le firmware avec mes fins de courses et le servo, si je fais un G28 X Y Z tout fonctionne.
Par contre si je fais un G29 (donc le palpage) le tête de monte pas comme je le voudrai, je veux une sécurité pour remonter la tête avant le palpage.
La elle descend...et du coup lors du déploiement du servo, il bute bien sur sur le verre.
Ce que j'aimerai c'est qu'une fois le G28 fait la tete remonte de 20 mm par exemple avant de commencer le palpage.
Normalement il y a une fonction pour ca : #define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point.
Mais même en changeant les valeurs rien n'y fais ...monte pas :cry:
Si vous avez une idée je suis preneur ...
Merci par avance
Archive robot
Imprimeur fou
Messages : 692
Inscription : jeu. oct. 23, 2014 6:42 pm

Code : Tout sélectionner

Jacques  
 Sujet du message: Re: Auto Leveling Hephestos
MessagePosté: 24/09/2014, 22:44:29  

A mon avis il manque quelque chose à débloquer dans le firmware car la fonction #define Z_RAISE_BEFORE_PROBING 15 semble être la bonne.
Cependant quelque chose me chagrine, le switch Z d'origine est toujours actif ?
Si c'est le cas, le switch sur le servo est branché où ?

La page zem décrit bien les paramètres qu'il faut changer, il ne dit pas s'il a supprimé le Z d'origine mais il dit s'être branché dessus.

Une petite vidéo serait la bienvenue pour tenter de comprendre ce qu'il manque.
Archive robot
Imprimeur fou
Messages : 692
Inscription : jeu. oct. 23, 2014 6:42 pm

Code : Tout sélectionner

totof06  
 Sujet du message: Re: Auto Leveling Hephestos
MessagePosté: 25/09/2014, 17:50:25  
Alors en faite il faut débrancher le switch Z d'origine et brancher le nouveau à la place, sur le nouveau on va se servir que de 2 fils (négatif au centre et signal à gauche à la place du blanc)
Brancher le servo sur la ramps en voie 1 ( Masse à l’extérieur de la ramps) et mettre un jump juste en dessous pour fournir l'alimentation au servo.
Je vous prépare une petite vidéo sur le palpage.
En gros quand je lance le palpage (G29) la tête descends trop bas et commande le servo trop tard donc quand il descends mon bras avec le switch Z tape le verre.
Normalement cette commande (#define Z_RAISE_BEFORE_PROBING 15) demande de relever la tête de 15mm avant de palper et bien la non .
Archive robot
Imprimeur fou
Messages : 692
Inscription : jeu. oct. 23, 2014 6:42 pm

Code : Tout sélectionner

totof06  
 Sujet du message: Re: Auto Leveling Hephestos
MessagePosté: 25/09/2014, 18:28:35  

Voila les vidéos :

Commande G28 (donc Home position X Y et Z)
http://youtu.be/cMGRFMP88J4

Commande G29 (Auto Level)
http://youtu.be/_tkF-SI2aR8
Archive robot
Imprimeur fou
Messages : 692
Inscription : jeu. oct. 23, 2014 6:42 pm

Code : Tout sélectionner

Jacques  
 Sujet du message: Re: Auto Leveling Hephestos
MessagePosté: 25/09/2014, 21:57:03  

Je comprends mais il y a un problème je pense.
Le 0Z n'est pas le bon, il faut donc mettre un offset quelque part (hauteur entre le switch déployé et la buse) afin qu'il sache ou se trouve le véritable 0 du verre.
Les 15mm ne sont là que pour pouvoir lancer le mouvement de probe avec un dégagement de 15mm par rapport au 0 théorique.
Archive robot
Imprimeur fou
Messages : 692
Inscription : jeu. oct. 23, 2014 6:42 pm

Code : Tout sélectionner

totof06  
 Sujet du message: Re: Auto Leveling Hephestos
MessagePosté: 25/09/2014, 22:33:28  

Je comprends mieux pourquoi il descend effectivement !!
Il va falloir que je trouve ça ;)
Je suis pas un champion d'arduino ...lol mais c'est déjà une bonne indication !
Merci beaucoup
Archive robot
Imprimeur fou
Messages : 692
Inscription : jeu. oct. 23, 2014 6:42 pm

Code : Tout sélectionner

totof06  
 Sujet du message: Re: Auto Leveling Hephestos
MessagePosté: 30/09/2014, 15:46:58  
Je reviens vers vous car j'avance doucement mais surement !
Voila j'ai monté le système qui fonctionne mais j'ai encore un petit problème ...

- Je n'arrive pas à configurer les endstops min et max
- Du coup soit lors du palpage la tête ne monte pas soit elle monte de trop malgré une demande de remonté de 8mm (G1 Z8 F4000 ; Remonte la tete de 8 mm par sécurité)

Je me suis servi de ce site : http://thebreizmaker.wordpress.com/autoleveling-bed/
Et aussi mon firmware si quelqu'un peu jeter un œil ;) : https://dl.dropboxusercontent.com/u/187 ... %C3%A9.rar

Merci à tous

Edit: c'est bon j'ai trouvé :D tout fonctionne super bien :P
Archive robot
Imprimeur fou
Messages : 692
Inscription : jeu. oct. 23, 2014 6:42 pm

Code : Tout sélectionner

Jacques  
 Sujet du message: Re: Auto Leveling Hephestos
MessagePosté: 30/09/2014, 21:47:4 
J'étais justement en train de regarder.
Ce serait bien de partager avec nous toute la procédure depuis le hardware jusqu'aux modifications du firmware.

La technique http://thebreizmaker est séduisante dans la mesure ou il n'y a pas de servo, simple ,efficace et sur tout léger
Archive robot
Imprimeur fou
Messages : 692
Inscription : jeu. oct. 23, 2014 6:42 pm

Code : Tout sélectionner

totof06  
 Sujet du message: Re: Auto Leveling Hephestos
MessagePosté  01/10/2014, 07:36:46  
Oui bien sur je vais vous préparez ça ;)
Pour la modif hard il y a pas grand chose et soft quelques réglages à faire.
J'ai beaucoup bataillé dans le soft pour garder le firm d'origine.. :roll: surtout quand on y connais rien en arduino .... :?
Mais au final c'est très simple.
Archive robot
Imprimeur fou
Messages : 692
Inscription : jeu. oct. 23, 2014 6:42 pm

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:
: 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
: 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

Image

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 !
Image

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 ;)
Archive robot
Imprimeur fou
Messages : 692
Inscription : jeu. oct. 23, 2014 6:42 pm

Code : Tout sélectionner

Jacques  
 Sujet du message: Re: Auto Leveling Hephestos
MessagePosté: 01/10/2014, 18:28:53  

Ca me semble complet, il ne reste plus qu'à l'essayer pour affiner la procédure.

une petite vidéo du fonctionnement s'impose quand même (sans vouloir abuser ;) )
Répondre