Configuration d'Octoprint


1 . Le matériel :

  • Une imprimante 3D (ouais ça sert à rien d’aller plus loin si on en a pas)
  • Un raspberry pi 3 (Sur amazon par exemple même si je le trouve un peu cher ici).
  • Un module relais double 5V (ici).
  • Une alimentation ATX (pour info j’ai celle ci)
  • Des rallonges pour alimentation pour conserver la garantie de l’alim (ici)
  • Une carte SD, moi j’ai pris une 64GB bien regarder la vitesse de transfert (ici).
  • Un port usb femelle récupéré sur un vieux PC ( ca ressemble à ca)
  • Une camera pour le pi (ici)

2. Le montage :

Sur les alimentations ATX, si on connecte le fil vert avec le fil noir, l’alimentation se met en marche. Il y a aussi le fil violet qui est un +5V continu (indépendant de la marche ou l’arrêt par le fil vert de l’alimentation).
Je place donc un relais qui va contacter ma masse avec le fil vert pour alimenter l’imprimante 3D.
Voilà le schéma sur Fritzing :
raspi_bb
L’avantage du double relais est qu’il peut du coup commander autre chose (par exemple moi il contrôle l’éclairage de la cam).

3. La configuration :

Je ne vais pas reprendre l’installation d’Octoprint ici, vous la trouverez sur le site d’Octoprint.
Une fois octoprint installé, on va aller le configurer (soit si on a un écran branché dessus, moi je fais avec ma télé en HDMI, soit par ssh)
On commence par installer WiringPi :

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git-core
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build

On fait un petit test en lançant

gpio readall

et on observe quelque chose comme ça :

+-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
 |   2 |   8 |   SDA.1 |   IN | 1 |  3 || 4  |   |      | 5V      |     |     |
 |   3 |   9 |   SCL.1 |   IN | 1 |  5 || 6  |   |      | 0v      |     |     |
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT5 | TxD     | 15  | 14  |
 |     |     |      0v |      |   |  9 || 10 | 1 | ALT5 | RxD     | 16  | 15  |
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | OUT  | GPIO. 1 | 1   | 18  |
 |  27 |   2 | GPIO. 2 |  OUT | 1 | 13 || 14 |   |      | 0v      |     |     |
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |
 |   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
 |   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |
 |   6 |  22 | GPIO.22 |   IN | 1 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |
 |  13 |  23 | GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v      |     |     |
 |  19 |  24 | GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |
 |  26 |  25 | GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | GPIO.28 | 28  | 20  |
 |     |     |      0v |      |   | 39 || 40 | 0 | IN   | GPIO.29 | 29  | 21  |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+

On voit ici que mon GPIO1 et mon GPIO2 sont configurés en OUT (ce qui m’intéresse pour contrôler mon relais !), on va aller les configurer :

sudo nano /etc/rc.local

Et on ajoute juste avant « exit 0 » la ligne :

/usr/local/bin/gpio write 1 0
/usr/local/bin/gpio mode 1 out
/usr/local/bin/gpio write 2 1
/usr/local/bin/gpio mode 2 out

Les lignes 1 et 3 définissent l’état de mes pins au démarrage du Raspi.
Ctrl+X et on valide par Y pour enregistrer la configuration.
Maintenant on va aller ajouter ça à l’interface d’octoprint :

sudo nano ~/.octoprint/config.yaml

Dans la partie « action » on va aller rajouter :

  - action: Printer on
    command: gpio write 1 0
    name: Printer On
  - action: Printer off
    command: gpio write 1 1
    name: Printer Off
  - action: Eclairage on
    command: gpio write 2 0
    name: Eclairage On
  - action: Eclairage off
    command: gpio write 2 1
    name: Eclairage Off

Soit :

system:
  actions:
  - action: shutdown
    async: true
    command: sudo shutdown -h now
    confirm: You are about to shutdown the system.
    ignore: true
    name: Shutdown
  - action: reboot
    async: true
    command: sudo shutdown -r now
    confirm: You are about to reboot the system
    ignore: true
    name: Reboot
  - action: restart
    async: true
    command: sudo service octoprint restart
    confirm: You are about to restart OctoPrint
    ignore: true
    name: Restart OctoPrint
  - action: Printer on
    command: gpio write 1 0
    name: Printer On
  - action: Printer off
    command: gpio write 1 1
    name: Printer Off
  - action: Eclairage on
    command: gpio write 2 0
    name: Eclairage On
  - action: Eclairage off
    command: gpio write 2 1
    name: Eclairage Off

Et du coup on a ces deux entrées dans le menu :
Capture

4. La cam :

Pour la cam, je vous renvoie à l’aide d’Octoprint que vous trouverez ici (pas envie de faire un copier coller du bouzin).

5. Détecteur de filament :

J’ai branché un switch en pull-up sur le gpio 17 (c’est du BCM sur la carte c’est donc le pin 11).
Je me suis fait un petit boitier passe fil pour mettre mon switch et ensuite je suis allé configurer Octoprint :
Voici mes configurations :
Etape 1 : Dans les paramètres, Serial Connection, dans Advanced Options j’ai coché la case « Log position on pause » c’est ce qui va me permettre de sauvegarder la position de la tête au moment de la mise en pause.
Etape 2 : Dans Gcode Scripts, deux choses à ajouter :

{% if pause_position.x is not none %}
; relative XYZE
G91
M83
; retract filament, move Z slightly upwards
G1 Z+5 E-5 F4500
; absolute XYZE
M82
G90
; move to a safe rest position, adjust as necessary
G1 X0 Y0
{% endif %}
{% if pause_position.x is not none %}
; relative extruder
M83
; prime nozzle
G1 E-5 F4500
G1 E5 F4500
G1 E5 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 %}

Ca me permet de bouger ma tête d’impression et de la remettre à sa place sans aucune manipulation.
Etape 3 : Installer le plugin Filament Sensor (1.0.1) (pas le reloaded hein, celui là, l’autre j’ai pas testé). 
Etape 4 : Modifier config.yaml ajouter en debut de fichier s’il n’y a pas déjà de sous groupe plugin :

plugins:
  filament:
    bounce: 400
    pin: 17

et une fois le fichier sauvé, relancer OctoPrint avec

sudo service OctoPrint restart

Il ne reste plus qu’a lancer une impression sans filament dans l’extruder pour vérifier que tout fonctionne !

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Résoudre : *
33 ⁄ 11 =