Détection de fin de filament sur imprimante Creality CR10 – Babash

par francois · 24 mai 2018

Je possède depuis plusieurs mois une imprimante 3D Creality CR10. Seulement, quand vous arrivez à la fin de la bobine, vous n’êtes pas sûr d’avoir assez de fil pour votre impression. Du coup, vous devez en sortir une nouvelle. Mais que faire de ce reste de fil ? Je vous propose dans cet article une astuce pas chère pour détecter la fin de la bobine.

Principe de fonctionnement

L’idée est de mettre un interrupteur qui sera fermé tant qu’il y a du fil. Dès que le fil sera fini, l’interrupteur se lèvera et mettra en pause votre impression. Nous allons donc ajouter cet interrupteur sur le guide filament.

Par contre, vous devez utiliser Octoprint pour vos impressions.

Outils nécessaires

Montage

  • Clipser l’interrupteur dans la pièce imprimée,
  • Mettre le cache,
  • Vous pouvez, si vous le souhaitez, mettre un bout de tube pour faire passer le filament facilement entre l’interrupteur et l’extrudeur de l’imprimante,
  • Poser la pièce sur votre extrudeur,
  • Brancher le câble fourni avec l’interrupteur,
  • Le rallonger avec les câbles Dupont, pour aller jusqu’au raspberry pi,
  • Brancher ensuite les fils sur le GPIO du raspberry pi de cette manière :

Configuration de Octoprint

  • Installer le plugin : Filament Sensor Reloaded
  • Configuration :
    • Pin : 7
    • Debounce Time: 400 ms
    • Switch Type : Normally Closed
    • Board Pin mode : Board Mode
    • Out of filament Gcode : –vide-
    • Pause print when out of filament : Coché

Toujours dans les paramètres de Octoprint, dans la partie « GCODE Scripts » :

  • After print job is paused :

{% if pause_position.x is not none %} ; relative XYZE G91 M83 ; retract filament, move Z slightly upwards G1 E-10 F6750 G1 Z+5 ; absolute XYZE M82 G90 ; move to a safe rest position, adjust as necessary G1 X0 Y0 M18 S21600 {% endif %}

Lire plus :   Ayé c'est lancé!
{% if pause_position.x is not none %} ; retract filament, move Z slightly upwards ; move to a safe rest position, adjust as necessary
  • Before print job is resumed :

{% if pause_position.x is not none %} ; relative extruder M83 ; prime nozzle G1 E-5 F4500 G1 E5 F4500 G1 E10 F4500 ; absolute E M82 ; absolute XYZ G90 ; reset E G92 E{{ pause_position.e }} ; move back to pause position XYZ G1 X{{ pause_position.x }} Y{{ pause_position.y }} Z{{ pause_position.z }} F4500 ; reset to feed rate before pause if available {% if pause_position.f is not none %}G1 F{{ pause_position.f }}{% endif %} {% endif %}

{% if pause_position.x is not none %} G92 E{{ pause_position.e }} ; move back to pause position XYZ G1 X{{ pause_position.x }} Y{{ pause_position.y }} Z{{ pause_position.z }} F4500 ; reset to feed rate before pause if available {% if pause_position.f is not none %}G1 F{{ pause_position.f }}{% endif %}

Conclusion

Lorsque le filament est passé, la lumière verte de l’interrupteur est allumé.

Testez l’impression en lançant  un « faux print » : pièce à imprimer à 20° par exemple pour que cela parte vite et retirez le filament.
Après un temps de latence, l’imprimante doit se mettre en pause. Ce n’est pas rapide pour s’arrêter mais ça se met en pause quand même 🙂

Vous pouvez donc à présent la possibilité d’imprimer jusqu’à la fin de la bobine sans vous soucier de veiller grain l’impression. Économie de temps et d’argent 🙂

Étiquettes : cr10crealitydétection fin de filamentfilament sensor reloadedoctoprintthingiverse

A lire également