Aller au contenu

GO Print

Paléo-impression3D :)


ka3ros

Messages recommandés

Bonjour à tous,

-d9Jt81P3kWbI5NZGf5JdTFA3WoTcG8EWu6eFERSXUkrilpWuPvZU9AVxIrNBFzrm8E_PgzwVSuvwzIzKGGSQhzdqxH5SSB2MC7qXUf1em1f5H8kVhCTYFJQrS2h71SbRphLGq26g-HOUuQqrJvWU0fIGu_iULQg0BlhcN3R0bRc40I7g2MK2nNdeMJbsjoRyuWiv5Rmx-sA_nBaqvRq2s-qW9KDvb5JWbLD3yK5Io_TNCKqrAOUEtTEdHCiPSCUuHV5Y8TN1aus7yHnk9gxWZnZWs6Jeynt2dEznAlwf91TsBaOZEIif73RGPuStaU_qaaThzhBJeW6iacuzl_DwGPf-G76dGC9ZZKweTHRmO-UgfOLiCdDpXOELKGd1JzWZgbeB59tEOQefr9xRClujWMajfQBJcUzegFsQQExmeHw2NR5urtWFujz2BRlBLjY0u8CnYhw_427tAItdtOCgcYsj6itgqf33MKBxir0YC2BWe5vDEu8BKz92HB13n-7StCRltlSe3qfJvYfsGdEMOkvzZaX-STvNccOW0iOAOofbjfeq8YNNiCfiaTpJXCGf2R-CHChC5fIy2dRa7aeqCV1EnfjYiF2tRtA0fPC1vkhR2aXrnO3P9dz7_KpB26Itt4kgQl4WXecEnJh9ZI4enhPms999HwQm8-jlSsY3oFiUmkqS87C7bpbPoF_MA=w402-h714-no?authuser=0

Un ami prof de techno m'a demandé si il était possible de ressusciter une Freescuplt double tête achetée chez Pearl aux alentours de l'an de grâce 2014.

Je m'attendais au début principalement à un soucis de réglage et de paramétrage de trancheur. Grosse erreur de ma part.

C'est un clone/rebrand de Malyan M180 Dual Head qui est un clone chinois de Replicator R1D.

Le seul format X3G reconnu par les firmwares makerbot (en tout cas de l'époque) a pas mal compliqué la chose.

Le X3G est un quasi équivalent du gcode mais:

- c'est binaire

- les commandes ne sont pas des demandes de déplacement en mm mais les commandes de demande de nombre de step selon l'axe.

Makerbot le justifie par les performances mais le manque de communauté et de compatibilité en font en fait un sacré handicap.

J'ai galéré qq jours mais j'ai enfin trouvé des réglages qui fonctionnent avec un Cura récent (4.6.1).

C'est certes une vénérable arrière grand-mère mais la rigidité de son chassis est exemplaire et n'ayant jamais pu jouer jusqu'à maintenant avec de la double extrusion, je la trouve finalement plutôt cool.

J'ai trouvé pas mal d'à peu près niveau doc sur le net et merci les constructeurs pour l'abandon du support.

Il ya un plugin pour Cura X3GWriter qui transforme le gcode en X3G, mais quand la machine n'est pas reconnue, le plugin génère à la volée un fichier de configuration avec des valeurs choisies au pif.

La reprise en main de la machine s'est donc faite via les étapes suivantes:

Les caratéristiques de la bête:

(merci le firmware pourri de freesculpt, même après avoir fait un home, impossible de faire afficher au LCD la position courante -_- )

La carte serait une megatronics mais je n'ai rien trouvé sur l'écran (si ce n'est que marlin2 connait un écran MALYAN_LCD (qui lui est tactile).

La vis du Z me fait pas mal envie avec son pitch de fou:

4FF6F9TE_FKS6VDQ5SSR2a9f3vw8SLbN7sMExWDGhamQ1O6rqCo3z_iew8mHohLQCE5HoqqR-zShDNUfo9iWdkLGudQllodOzaE_drLqNNG5Hs_mwjqiBGP7X24XCUyjNCLJyPEcwO_mrwKxzMDvz62nHZIfERx25JlkwxhCkp7yUboPD0LEVGBw-21N0aoWrDWN0UZFksXbVFGe3r3nr0KlpwjUVTFRgy5PK7sBZXFiJfpffN2mZRRnY2xbnYlx_8i_NFTlXopTR0sa8GdNONfwR4e4dTk2ksdAWFyKuAHTENhYmEI8Wu26L5dfuM0-6mrx_3G5uVS5tSgltsyT74QSHYI7A6JSn4tgKj7Hp0WX2rPHiiPxmmYqTsvqw7d10Guj8GJYqMRGKXdXLCvtOQhEk6ydTF7HEX6L3fqOx-89T3a4kmxtAycvFQ_C5c0ydIs5J2XxNUX2wUwHM2jP7PTPHkMtWMR7H2rpGL1zt6rVZZTpVTPFKiz7I4GhELwwOdbQzdnoXA3sS5M7va5Ar66XEPOVAOc8A_1C_nreZKmhUYWqVdOQIXYJCWWryFi4NeXoPJmcAXg9v3Q-ec3tpIi-m3v5u9HBgG6GI5H-GmCVAS7VjVS1Ym6ME8YtcuaDoBnFk5z-NZiqqNnOhoBnoZvJaZRyAf99_-uSXCm-5lL1oitzbJEE0GMdghFPBw=w1270-h714-no?authuser=0

La géométrie X:230mm, Y:145mm et Z:160mm.

Les nozzles ont des diamètres différents: 0.35 pour le 1er et 0.40 pour le 2eme, plateau en verre qui adhere bien (le firmware contient un print de test qui monte le plateau à 80, j'ai pris cette valeur comme référence pour mes premières couches.

 => Les endstops sont des Max pour les X et Y et le Min pour le Z

- calibration de la double tête: 

  => j'ai mesuré un espace de 34mm entre les nozzles

Comme déjà indiqué, le X3G envoie des valeurs en steps par axe pour les déplacements, voici les caractéristiques de la machine:

X: 92.5 steps/mm - Y: 92.5 steps/mm, Z: 1600steps/mm et pour les extrudeurs 100steps/mm chacun

 

Déclaration de la machine dans Cura:

image.png.7068fa8c48a7ab8ade4459a4987556ae.png

(Impossible de changer les X/YMin/Max)

Voici le GCode de démarrage (une fois les extrudeurs et plateau chauds):

; -- start of START GCODE –
M73 P0 (enable build progress)
G90 (set positioning to absolute)
(**** begin homing ****)
G162 X Y F2000 (home XY axes maximum)
G92 X230 Y145 (definit la position actuelle comme X230Y145)
G161 Z F900 (home Z axis minimum)
G92 Z0 (definit la position actuelle comme Z0)
G1 Z5 (descend de 5mm)
G161 Z F300 (home Z axis minimum)
(**** end homing ****)
G1 X0 Y0 Z10 F1000 (déplacement à X0Y0Z10 )
G130 X0 Y0 A0 B0 (reset des valeurs VRef des moteurs)
G130 X127 Y127 A127 B127 (Set Stepper motor Vref to defaults)
; -- end of START GCODE –

(La documentation trouvée sur le net indique le chargement des offsets de la config par défaut:

;M132 X Y Z A B (Recall stored home offsets for XYZAB axis)

==> Ca fout le bordel (les impressions démarrent quasi au XYMax), je l'ai supprimé.

La logique de makerbot est d'extraire la conf de la machine, ouais, ok, mais alors inscrire des offsets cryptiques inaccessibles, c'est  vraiment une idée à la con)

 

Et le GCode de fin d'impression:

; -- start of END GCODE –
G90 (absolute positionning)
G162 X Y F2000 (home XY axes maximum)
G92 Z0 (define current Z to 0)
G1 Z10 F900 (descend de 10mm)
M18 (disable steppers)
M109 S0 T0 
M104 S0 T0
M73 P100 (end  build progress)
; -- end of END GCODE –

La configuration de l'extrudeur 1:

image.png.ac95e5f7f6a4ca7215978447f299c607.png

L'extrudeur 2:

image.png.196532c68a97430d6f7f5ea77487168b.png

Vous noterez que l'offset entre les nozzles est le double de celui mesuré. Je ne l'explique pas, mais ça marche ainsi. J'aurais bien voulu une théorie.

La conversion de GCode vers X3G:

Cura dispose du plugin X3GWriter (à installer via l marketplace) qui lui-même appelle le binaire gpx (https://github.com/markwal/GPX)

J'ai modifié le script python X3GWriter.py (installé dans ~/.local/share/cura/4.6/plugins/X3GWriter/X3GWriter/ (je n'ai pas le chemin pour les windowsiens, désolé) pour qu'au lieu de générer une conf temporaire en cas de non reconnaissance de la machine, il appelle un fichier de configuration modifiable par l'utilisateur:

Remplacer la ligne (attention le python est strict sur les indentations, un bloc conditionnel doit avoir les mêmes caractères d'indentation pour chaque ligne : ici 4 espaces par indentation)

"                command = self.gpx_command(machine, temp_cfg_name, temp_gcode.name, temp_x3g.name)"

par les deux lignes suivantes (attention au sens du / sous windows contrairement à ce dont vous avez l'habitude):

"                default_gpx_config = 'D:/Chemin/Vers/Configuration.ini'"

"                command = self.gpx_command(machine, default_gpx_config, temp_gcode.name, temp_x3g.name)"

Le fichier de configuration pour la machine (le contenu du fichier ini dont vous devez indiquer le chemin dans le script python):

; http://github.com/makerbot/ReplicatorG/tree/master/machines
;************ MACHINE ************
[machine]
; specifies the nominal filament diameter (either 1.75 or 3.0)
nominal_filament_diameter=1.75
; spesifies the number of extruders on this machine
extruder_count=2
; sets the timeout for homing in seconds
timeout=20
;************ X AXIS ************
[x]
; sets the maximum feedrate for this axis in mm/minute
max_feedrate=4800
; sets the home feedrate for this axis in mm/minute
home_feedrate=500
; sets the number of steps per mm of movement for this axis
steps_per_mm=92.5
; sets the homing direction for this axis
endstop=0

;************ Y AXIS ************
[y]
; sets the maximum feedrate for this axis in mm/minute
max_feedrate=4800
; sets the home feedrate for this axis in mm/minute
home_feedrate=500
; sets the number of steps per mm of movement for this axis
steps_per_mm=92.5
; sets the homing direction for this axis
endstop=0

;************ Z AXIS ************
[z]
; sets the maximum feedrate for this axis in mm/minute
; 5mm/s
max_feedrate=300
; sets the home feedrate for this axis in mm/minute
home_feedrate=300
; sets the number of steps per mm of movement for this axis
steps_per_mm=1600
; sets the homing direction for this axis
endstop=1

;************ RIGHT EXTUDER (A AXIS) ************

[a]
; sets the maximum feedrate for this axis in mm/minute
max_feedrate=1600
; sets the number of steps per mm of extrusion
; Steps/mm is calculated by dividing the 'drive gear steps per revolution' 
; (in this case, equal to motor_steps) by the 'drive gear circumference'
; (drive gear diameter = 10.14) So we get: 1600/(PI * 0.14) = 50.235....
steps_per_mm=100
; sets the number of steps per revolution
motor_steps=1600
; signals if this tool has a heated build platform
has_heated_build_platform=1

;************ LEFT EXTUDER (B AXIS) ************
[b]
; sets the maximum feedrate for this axis in mm/minute
max_feedrate=1600
; sets the number of steps per mm of extrusion
steps_per_mm=100
; sets the number of steps per revolution
motor_steps=1600
; signals if this tool has a heated build platform
has_heated_build_platform=1

 

Vous pourrez ensuite effectuer le tranchage puis l'enregistrer au format x3g (dispo dans les formats de la boite de dialogue)

Le fichier cura.log indique comment s'est déroulé la conversion et vous verrez que tout n'est pas géré notament les commandes de gestion de l'accélération (oh si peu!!!)

Je suis encore en train de creuser ce point mais maintenant elle imprime (je ne vous montre pas de benchy, c'est vraiment pas encore au point niveau températures et refroidissement mais ceci qui a son charme:

image.png.2a7ada0dfacd248abd45853de3058852.png

Sur ce print, l'offset des nozzles n'a pas encore été corrigé et la pièce est justement en train d'être extrudée)

Je reposterai quelques infos d'ici qu'elle retourne en salle de classe émerveiller quelques élèves.

Si parmi les lecteurs de ce forum, certains ont abandonné cette bête, voici peut-être par ce post un moyen de la faire revenir à la vie.

(après j'avoue, arracher l'électronique et la remplacer par du matos moderne, c'est plutôt une bonne idée)

 

@+

Modifié (le) par ka3ros
légères corrections
  • J'aime 2
Lien vers le commentaire
Partager sur d’autres sites

  • 5 months later...

Bonjour @ka3ros ,

Merci pour ton partage. J'ai moi-même une freesculpt EX2 achetée à cette époque que je n'ai pas beaucoup utilisée par manque de temps et que j'aimerai exploiter maintenant. J'utilisais jusqu'à présent ReplicatorG à défaut d'autres possibilité sur Windows 10, mais ton post m'encourage à utiliser Cura.

J'ai suivi tes instructions, mais ce n'est pas encore réussi à sortir une impression. Je dois regarder si j'ai fais une erreur dans les manipulations.

Si tu as apporter d'autres améliorations depuis août, n'hésite pas à me les partager 😉

@+

Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...

Salut,

J'ai rendu la machine a son propriétaire.

Qu'est ce que tu arrives à faire?

Le positionnement se fait déjà correctement au départs? Home aux max X et Y?

Au démarrage, le nozzle se place bien sur le bed ?

J'avais souvent des bourrages d'extrudeurs ou un décollage de la pièce 😕

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...