Il y a maintenant un an, j'ai reçu ma première imprimante 3D, la DiscoEasy200 de Dagoma.

discoEasy200_kit-2275

Durant cette première année, j'ai petit à petit modifié mon imprimante, et découvert plein d'astuces pour améliorer ou simplifier les impressions.

Cette page contiendra les différents mods / découvertes qui m'ont demandé du temps et de la recherche.

Note: J'ai reçu la version en kit. Je n'expliquerai pas ici le montage, car il existe déjà beaucoup de tutos sur internet.

Mise à jour janvier/mars 2018
Pour améliorer l'impression, j'ai encore effectué des modifications.
A noter que les sources sur GitLab prennent en compte ces modifications, attention donc à corriger les éléments qui ne sont pas en adéquation avec le matériel installé sur votre imprimante.

Firmware

Le plus furstrant avec cette imprimante, est le manque de mise à jour du firmware.
À la base, l'imprimante m'a été livrée avec la version 1.1.0-RC6.

Carte MKS Base

En creusant un peu, j'ai compris que la carte electronique est une "MKS Base v1.5", où le connecteur du second extrudeur a été détourné pour le second ventilateur de la tête d'impression.
Cette carte est malheureusement "closed source", mais elle similaire à un Arduino Mega 2560 et une carte RAMPS.

mks-base-v1.4
mks-base-v1.4-pinout

Spécificités connexions

Dagoma a pris des libertés pour les connecteurs de la carte

  • Second ventilateur : connecteur pour le second "hotend" détourné
  • Second moteur axe Z : Les deux moteurs sur l'axe des Z sont pilotés par la même broche. Impossible donc de les piloter séparément.
  • Connecteurs butés :
    • X+ : Endstop X
    • X- : Endstop Y
    • Y+ : Palpeur
    • Y- : Non utilisé
    • Z+ : Non utilisé
    • Z- : Non utilisé

J'ai du mal à comprendre pourquoi Dagoma n'a pas respecté la nomenclature de chaque connecteur...

Mise à jour janvier 2018 : j'ai remappé les connecteurs pour respecter le mapping carte MKBase. Le code source de la v1.1.8 diffusé sur GitHub tient compte de ce nouveau mapping.

Nouveau mapping à réaliser sur l'imprimante :

  • X+ : N/A
  • X- : Endstop X Min
  • Y+ : Endstop Y Max
  • Y- : N/A
  • Z+ : N/A
  • Z- : Palpeur Z Min

IMG_20180114_103116

Actualisation du code source

Le firmware de Dagoma (sources disponibles sur leur site) est le firmware open source Marlin, patché pour fonctionner avec la DiscoEasy200 et la Neva.

Mais depuis la 1.1.0-RC6, de nombreuses releases ont vu le jour, avec plusieurs centaines de bugs corrigés et améliorations. Comme Dagoma n'actualise pas son firmware, j'ai decidé de le faire moi même :
https://github.com/IoT-Experiments/Marlin-DiscoEasy200

La branche la plus récente est discoeasy-1.1.8-screen-bed, adaptée à mes modifications (ajout d'un écran et d'un plateau chauffant, avec remappage des connexions).
J'ai également publié la branche discoeasy-mod-1.1.8 avec supression du palpeur, ajout de deux endstops en Z et pilotage des moteurs Z indépendamment.

Note : Je n'aime pas le fait que le fichier "pins.h" soit modifié, j'ai pas réussi à changer ça rapidement, mais au moins ça fonctionne :)

Je vous invite à faire la même chose, en customisant le firmware selon vos besoins. Vous pouvez repartir de ma version pour avoir la compatibilité avec la DiscoEasy et modifier le fichier "Configuration.h" selon votre matériel.

Note : le firmware n'est pas compatible avec la Neva. J'ai supprimé les spécificités de Dagoma qui complexifient la maintenance du code (ex: logo au démarrage).

Tête d'impression V3

En mai 2017, Dagoma a publié une nouvelle tête d'impression, améliorant la précision des impression.

Personnellement, je l'ai imprimé en ABS Orange, pour respecter le code couleur de base de l'imprimante, et pour être serein lors de la montée en température de la buse.
Si vous n'avez pas la possibilité d'imprimer de l'ABS, utilisez un PLA résistant aux hautes températures.

IMG_20180114_101547

Slicer: Simplify 3D

Après avoir joué avec Cura, j'ai découvert le slicer "Simplify 3D" via les nombreuses vidéos sur internet.
Je vous le conseille vivement : même s'il n'est pas gratuit, il propose une personnalisation avancée des paramètres, et une optilisation d'impression plus évoluée que Cura.

simplify-3d

GCode

J'ai modifié le code de démarrage pour nettoyer la buse avant le début de l'impression.

Démarrage

G28 X
M109 S[extruder0_temperature]
G28 X
G28 Y
G28 Z
G29 ; probe Z
M107 ; fan off
G1 Z3
G1 X100 Y-3 F3000
G1 Z0.24
G1 Y-3 F500
G1 X100 E9 F500
G1 X60 E12.5 F500
G92 E0 ; reset extruder

Arret

G28 X ; home X axis
G1 Y195 ; position for easy part removal
M104 S0 ; turn off extruder
M140 S0 ; turn off bed
M107 ; stop fan
M84 ; disable motors

Alimentation

J'ai changé l'alimentation en vue de l'ajout d'un lit chauffant. J'ai acheté une alimentation 12V 30A (360W).
DC12V-30A-Switch-Power-Supply-Adapter-Transformer

L'alimentation est reliée au 220V via un connecteur muni d'un interrupteur. Je peux ainsi couper l'alimentation générale sans la débrancher. Cet interrupteur est également muni d'un fusible, pouvant m'éviter de gros dégats.

L'alimentation est connectée directement sur l'imprimante en 12V, et l'interrupteur sur l'imprimante est inutilisé.

Lit chauffant

J'ai eu beaucoup de frustrations lors de mes premières impressions, à cause d'un wrapping fréquent. Si la mise à jour du firmware officiel par une version plus récente (custom Marlin) a amélioré la chose, cela ne suffit pas pour les grandes pièces.

J'ai douc souhaité ajouter un lit chauffant, même pour imprimer avec du PLA.

Grâce à ma nouvelle alimentation, j'ai assez de puissance pour alimenter l'imprimante et le lit.
Pour autant, l'imprimante ne va pas fournir le courant directement au lit, mais controllera un mosfet qui alimentera le lit.

Matériel utilisé :

  • Lit MK3 + sonde température + cable, acheté sur Aliexpress
  • PCB avec Mosfet dédié à l'alimentation du lit
  • Une plaque de MDF
  • Des vis avec ressort pour simplifier la mise en place et le réglage du plateau
  • Une feuille d'isolant thermique

MK3-heatbed
Mosfet
3D-printer-leveling-M3-screw

Malheureusement, les trous de fixations ne correspondent pas à ceux de la discoeasy. Pour le monter, j'ai fabriqué un support en MDF, qui vient se visser sur la fixation du lit d'origine de la Discoeasy, et qui dispose de 4 trous pour le MK3.

J'ai choisi le MDF car c'est pas cher, léger, et ça se travaille facilement.

Support monté :
IMG_20170325_141656

Avec le lit sur le support :
IMG_20170325_175348

Pour éviter la perte d'énergie par le dessous du lit, et riquer la surchauffe de la carte MKS, j'ai ajouté une plaque d'un isolant thermique sous le lit.

Après branchement, il faudra encore modifier le firmware pour activer le lit (vous pouvez jeter un oeil à mon github si vous avez le même matériel). Si vous avez un écran, sa température sera également affichée sur l'écran après activation.

Je vous conseille également de tester votre lit et de récupérer les PID et de modifier votre firmware.

L'inconvéniant dans ce montage est la perte de quelques millimètres sur l'axe des Z, ainsi que les coins qui ne peuvent plus être utilisés (contact avec la tête d'impression ou le capteur inductif).

Ecran

L'écran Dagoma est relativement cher, pour un simple produit chinois revendu sous la marque Dagoma (avec le boitier). Vous pouvez le trouver à moins de 10€ sur Aliexpress.
3D-printer-smart-controller-RAMPS-1-4-LCD-12864-control-panel-blue-screen

Note : Dans mon cas, j'ai du couper les détrompeurs des nappes pour les inverser sur la carte MKS pour que cela fonctionne.

Les fichiers du boitier sont disponibles sur le site de Dagoma, mais vous en trouverez d'autres sur Thingiverse ou... vous pouvez designer la votre :)

Ajout de l'Anycubic Ultrabase

Utiliser un lit "Anycubic Ultrabase" en verre permet d'avoir une surface plane et accrochant correctement sans scotch bleu.
Comme cette base est très épaisse (4mm), même le capteur inductif de 8mm ne suffit pas (testé avec le LJ18a3-8-Z/BX).
Un capteur capacitif ne me convient pas : la détection change en fonction de l'humidité et de la chaleur.

J'ai donc supprimé le palpeur et rajouté deux endstops pour l'axe Z (un pour chaque moteur - cf. plus bas).
Le réglage doit être minutieux, car il n'y a plus de détection de plan de lit.
Une fois quelques déboires (ultrabase mal collée, mauvaise calibration) et quelques rayures sur la base, j'ai trouvé la bonne calibration et mes pièces accrochent quasiment systématiquement.

Points négatifs :

  • Le lit doit être tout le temps chauffé, même pour le PLA
  • Plus de palpeur, donc calibration un peu difficile au début quand on a pas l'habitude

Découpler les moteurs en Z

Découpler les deux moteurs en Z pour les caler proprement au démarrage (en utilisant le connecteur E1 pour le second moteur), et en modifiant le firmware (Z_DUAL_STEPPER_DRIVERS).
Pour cela, j'ai acheté deux cables sur Aliexpress, pour les connecter à mes moteurs.
Attention, les cables réceptionnés ne respectent pas le pinout des connecteurs utilisés sur la Dagoma, et j'ai donc changé l'ordre des couleurs pour correspondre aux moteurs utilisés sur l'axe de X/Y. Après cette modification, tout était OK.

wire-ramps

J'ai également ajouté un endstop pour chaque moteur, car les arrêts redémarrages peuvent désynchroniser les deux moteurs.

Supprimer le palpeur / Ajouter des endstops

Supprimer le palpeur et ajouter deux endstops en Z pour calibrer manuellement le lit me permettrait d'éviter les écarts à chaque bed leveling automatique (utiliser les connecteurs Z+ et Z-).
Nécessite également de revoir le firmware (Z_DUAL_ENDSTOPS).

J'ai acheté des capteurs "endstop" tout prêt sur AliExpress pour quelques centimes (pourquoi s'embêter vu le prix).
mechanical-endstop

Pour positionner les endstops, j'ai créé une petite pièce qui se serre autour des axes Z (barre lisse). Elle est accessible sur Autodesk360.

Après plusieurs essais et ajustement avec du PLA, j'ai finalement utilisé du PETG, un peu plus flexible et qui resistera mieux à la pression mécanique des vis.

IMG_20180204_234558

Octoprint

Octoprint est un logiciel à installer sur un Raspberry Pi, directement connecté sur le port USB de l'imprimante 3D. Il permet de piloter l'imprimante à distance, en passant par une interface Web. Fini donc, les swap de carte SD !

octoprint-temperature-tab

N'ayant pas de Raspberry sous la main, j'ai utilisé un Orange PI Zero.
orange_pi_zero_arm_development_board_h2_quad-core_zp3061570611002_3_

Je vous conseille le tutoriel de Deloarts.

J'ai intégré l'Orange PI Zero dans un boitier blanc (officiel), et je l'alimente avec un bulk converter entre le 12V de l'alimentation de l'imprimante 3D et le port USB de l'Orange PI.

J'imprime actuellement sur...

l'Anycubic UltraBase avec lit chauffant

J'ai essayé :

  • Buildtak (lit froid) : j'ai pas été convaincu; lit bien calibré, j'avais toujours du wrapping.
  • Scotch Kapton (lit chaud) : je crois qu'on est obligé de rajouter un élément pour que l'impression adhère. Je n'ai pas suffisament essayé mais le kapton est relativement cher...
  • Scotch bleu : j'ai commencé avec ça, et ça fonctionne parfaitement, aussi bien sur un lit chaud qu'un lit froid. Le scotch est abordable, simple à retirer et à poser. Le seul soucis : la marque que laisse les bandes sur les pièces imprimées.
  • Verre : Nécessite un élément collant (laque, colle en stick ?), un lit chauffant, et une sonde permettant de détecter le verre ou le lit en aluminium sous le verre.
  • Anycubic Ultrabase : C'est une plaque en verre de 4mm d'épaisseur environ, recouverte d'une sorte de peinture qui a la particularité de coller au plastique une fois chaud, et de perdre l'adhésion une fois froid.

Youtubers

Je vous conseille de regarder les vidéos de :

Résultat

Fin 2017

IMG_20180114_100451
IMG_20180114_100356

Début 2018

On peut voir l'ajout des endstop en Z, l'ajout de l'Ultrabase (déjà abimée par une erreur de réglage...), et l'ajout du boitier blanc contenant l'Orange PI avec OctoPrint.

IMG_20180405_081430