Logo carnetderootxzz@carnetderoot.net"La simplification est la sophistication suprême" - Léonard De Vinci
samedi 04 juin 2016

:: Prusa i3xl - Notes techniques ::

Alimentation

Besoins estimés

  • 12V @ 5A pour les 5 moteurs
  • 12V @ 2A pour la buse chauffante de l'extrudeur (+20W)
  • 12V @ 12A pour un lit chauffant 140W (300x200)
  • 5V @ 2A pour l'électronique embarquée (Arduino, RAMPS, Raspberry Pi)
  • 5V @ 1-2A pour le "base load" de l'alimentation

Cela donne un total d'environ 20A en 12V (240W) et 5A en 5v (25W). Sachant qu'une alimentation ne fournit au mieux que 80% de sa puissance max indiquée et qu'il est préférable de l'utiliser à 50-60% de sa puissance max, on cible une alimentation de 500-600W et de préférence certifiée 80+.

Préparation de l'alimentation

Le modèle est une alimentation Antec Neo ECO 520C 80PLUS. La puissance fournie en sortie sur les différentes tensions est résumée ci-dessous :

+5V +3.3V +12V -12V +5VSB
Intensité max 24A 24A 40A 0.8A 2.5A

Caractéristiques

  • Certification 80+ Bronze
  • ATX 2.3

Connecteurs

  • 1 x +12V (Alimentation P8 - Scindable en 2 x P4)
  • 6 x Alimentation Serial ATA
  • 1 x ATX 20 + 4 Broches
  • 1 x Disquette (Molex 4 Broches Femelle)
  • 6 x Molex (4 broches) Femelle
  • 1 x PCI Express 6 + 2 Broches
  • 1 x PCI Express 6 broches

Diagramme des connecteurs

Diagramme des connecteurs

Câbles

20AWG gaine PVC semi-rigide (RS)

  • 331862 Fil câblage équip. UL1007 noir, 20 AWG
  • 331878 Fil câblage équip. UL1007 rouge, 20 AWG

22AWG / 0,35 mm2 gaine PVC semi-rigide (RS)

  • 1680786 FIL DE CABLAGE UL1061
  • 1680821 FIL DE CABLAGE UL1061
  • 1680764 FIL DE CABLAGE UL1061
  • 1680809 FIL DE CABLAGE UL1061
  • 1680758 FIL DE CABLAGE UL1061

Fils trés souples gaine silicone (Intermodel)

  • fs20awgr fil silicone 20 awg / 0.5mm² pour les courants faibles
  • fs16awgr fil silicone 16 awg / 1.32mm² pour le lit 140W

Moteurs NEMA17

Extrudeur

1 moteur pas à pas Casun 42SHD0404-22 :

  • Angle du pas : 1.8° (200 pas / tour)
  • Couple : 520 mN.m
  • Tension : 3.4 V
  • Intensité : 1.7 A

Axes X, Y et Z

4 moteurs pas à pas Casun 42SHD001-24 :

  • Angle du pas : 1.8° (200 pas / tour)
  • Couple : 260 mN.m
  • Tension : 12 V
  • Intensité : 0.4 A

Stepper drivers (x4)

Le réglage du courant fourni au moteur se fait à l'aide du petit potentiomètre présent sur le stick. Commencer au plus bas (tourner dans sens horaire inverse) et augmenter doucement (par 1/8ème de tour) la tension de référence jusqu'à obtenir le résultat désiré.

Note : la mesure de la tension qui nous sert de référence se fait entre la terre et le potentiomètre lui-même.

La puissance demandée aux moteurs variant en fonction des vitesses maximales paramétrées, j'ai arbitrairement choisi les vitesses maximales suivantes :

  • Axes X et Y : 7500 mm/min <=> 125 mm/s
  • Axe Z : 300 mm/min <=> 5 mm/s

Dans mon cas, après suppression/diminution des bruits et autres vibrations, j'arrive aux réglages suivants :

  • Axe X : 0.419 V
  • Axe Y : 0.573 V
  • Axe Z : 0.669 V
  • Extrudeur : 0.435 V

Schéma de cablage

Schéma de câblage

Parties mécaniques

  • Poulies GT2-20
    • Nombre de dents : 20
    • Longueur de pas : 2 mm
  • Courroies GT2
    • Longueur de pas : 2 mm

vendredi 06 mai 2016

:: Calibration et gestion du firmware - Marlin LCD ::

Préparation de l'environnement de développement Arduino

Installation

Sur Linux Mint, l'IDE Arduino étant présent dans les repositories officiels, on l'installe en une seule commande :

$ sudo apt-get install arduino 

Permissions utilisateurs

Ajouter les utilisateurs de l'imprimante au groupe "dialout" pour autoriser l'accès aux ports séries.

$ sudo usermod -aG dialout utilisateur

Pour s'ajouter soi-même :

$ sudo usermod -aG dialout $(whoami)

Vérifier à l'aide de la commande "groups" :

$ groups
[...] dialout [...]

Connexion à la carte Arduino

  • Connecter la carte Arduino à l'aide du câble usb.
  • Lancer Arduino IDE et sélectionner le type de carte et le port série, pour ma part :
    • Outils > Type de carte > Arduino Mega 2560 ou Mega ADK
    • Outils > Port série > /dev/ttyACM0

Calibration des moteurs

Informations à collecter

  • Nombre de pas moteur : 200
  • Angle de pas : 1,8 °
  • Résolution ou pas du driver : 1/16ème (A4988) ou 1/32ème (DRV8825)
  • Type de tige filetée et son pas de vis : M5 / 0.8
  • Type de courroie et son pas : GT2 / 2 mm
  • Nombre de dents de l'engrenage de la courroie : 20
  • Nombre de dents du grand engrenage de l’extrudeur : 43
  • Nombre de dents du petit engrenage de l’extrudeur : 10
  • Ratio de l’extrudeur : 1
  • Diamètre de l’axe de la vis entraînant le fil : 6.5

Ces informations sont nécessaires pour calculer le nombre de pas pour chaque moteur (axes X, Y, Z + extrudeur) et définir la valeur DEFAULT_AXIS_STEPS_PER_UNIT du fichier Configuration.h :

#define DEFAULT_AXIS_STEPS_PER_UNIT {X, Y, Z, E}

Calcul des valeurs de pas

Extrudeur

Formule du calcul de pas pour l'extrudeur :

\[ E = \frac{{PasMoteur} * {PasControleur} * \frac{DentsGrandEngrenage}{DentsPetitEngrenage}}{{DiamètreAxe} * {\pi}} \]

  • Extrudeur Wade

    \[ E = \frac{{200} * {32} * \frac{43}{10}}{{6.5} * {\pi}} = 1347,67508735 \]

  • Extrudeur Titan

    \[ E = \frac{{200} * {32} * {3}}{{6.7} * {\pi}} = 912,171614139 \]

Axes X et Y

Formule du calcul de pas pour les axes X et Y :

\[ X | Y = \frac{PasMoteur}{PasCourroie * DentsEngrenage * Résolution} \]

Axe Z

Formule du calcul de pas pour l'axe Z :

\[ Z = \frac{PasMoteur}{PasDeVis * Résolution} \]

Dans mon cas, j'obtiens les valeurs suivantes :

  • Extrudeur Wade

    define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,4000,1347.67}

  • Extrudeur Titan

    define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,4000,912.17}

Outil indispensable

Le calculateur de pas RepRap : RepRap Calculator

Optimisation des paramètres PID

Les paramètres Proportionnelle Intégrale et Dérivation concernent les éléments chauffants de l'imprimante (buses de chauffe et lit).
Afin d'éviter tout problème de dépassement de température et d'optimiser la consommation électrique, il est important d'affiner au maximum ces paramètres.
Pour cela, une commande existe qui fait tout le travail pour nous :-)

Buse de chauffe extrudeur

Le code suivant chauffe la buse n°1 (E0) jusqu'à 200°C durant 8 cycles, puis remonte les valeurs PID calculées :

M303 E0 S200 C8

Après quelques minutes, le résultat donne :

[...]
 bias: 102 d: 102 min: 194.70 max: 205.94
 Ku: 23.12 Tu: 61.87
 Clasic PID
 Kp: 13.87
 Ki: 0.45
 Kd: 107.29
PID Autotune finished! Put the Kp, Ki and Kd constants into Configuration.h

Lit chauffant :

Le code suivant chauffe le lit (E-1) jusqu'à 50°C durant 8 cycles, puis affiche les valeurs PID calculées.

M303 E-1 S50 C8

Après plusieurs minutes, on obtient :

[...]
 bias: 126 d: 126 min: 49.92 max: 50.70
 Ku: 410.70 Tu: 87.54
 Clasic PID
 Kp: 246.42
 Ki: 5.63
 Kd: 2696.34
PID Autotune finished! Put the Kp, Ki and Kd constants into Configuration.h

Modification du firmware

Configuration.h

Valeurs modifiées :

  • Version et auteur

    #define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__
    #define STRING_CONFIG_H_AUTHOR "Xzz"
  • Connexion à l'imprimante

    #define SERIAL_PORT 0
    #define BAUDRATE 250000
  • Type de carte (RAMPS 1.4 avec sorties extrudeur, ventilateur et lit)

    #define MOTHERBOARD 33
  • Thermistances

    #define TEMP_SENSOR_0 5
    #define TEMP_SENSOR_BED 7
  • Buse de chauffe de l'extrudeur

    // Prusa i3 - Hotend 12V 40W
    #define  DEFAULT_Kp 13.87
    #define  DEFAULT_Ki 0.45
    #define  DEFAULT_Kd 107.29
  • Lit chauffant

    // Mk8 300x200 12V
    #define  DEFAULT_bedKp 246.42
    #define  DEFAULT_bedKi 5.63
    #define  DEFAULT_bedKd 2696.34 
  • Bornes d'arrêt (endstop)

    const bool X_MIN_ENDSTOP_INVERTING = false;
    const bool Y_MIN_ENDSTOP_INVERTING = false;
    const bool Z_MIN_ENDSTOP_INVERTING = false;
    #define DISABLE_MAX_ENDSTOPS
    [...]
    #define INVERT_X_DIR false
    #define INVERT_Y_DIR false
    #define INVERT_Z_DIR false
    #define X_HOME_DIR -1
    #define Y_HOME_DIR -1
    #define Z_HOME_DIR -1
  • Dimensions du lit

    #define X_MAX_POS 200
    #define X_MIN_POS 0
    #define Y_MAX_POS 260
    #define Y_MIN_POS 0
    #define Z_MAX_POS 180
    #define Z_MIN_POS 0
  • Mouvements

    #define HOMING_FEEDRATE {50*60, 50*60, 3*60, 0} 
    #define DEFAULT_AXIS_STEPS_PER_UNIT   {80,80,4000,1347.67}
    #define DEFAULT_MAX_FEEDRATE          {100, 100, 3, 25}

    Note : les valeurs d'accélération par défaut sont extraordinairement élevées pour ma Prusa i3. Afin d'éviter les sauts de pas (que j'ai surtout constaté sur l'axe Y), je les ai diminuées drastiquement.

    #define DEFAULT_MAX_ACCELERATION      {220,220,10,200}
    #define DEFAULT_ACCELERATION          180
    #define DEFAULT_RETRACT_ACCELERATION  180
  • Constantes de préchauffage

    #define PLA_PREHEAT_HOTEND_TEMP 190
    #define PLA_PREHEAT_HPB_TEMP 45
    #define PLA_PREHEAT_FAN_SPEED 255   // Insert Value between 0 and 255
    
    
    #define ABS_PREHEAT_HOTEND_TEMP 240
    #define ABS_PREHEAT_HPB_TEMP 100
    #define ABS_PREHEAT_FAN_SPEED 255   // Insert Value between 0 and 255

Références


vendredi 25 septembre 2015

:: RepRap Prusa i3 bed auto-level ::

Firmware Marlin

Téléchargement dernière version

$ git clone https://github.com/MarlinFirmware/Marlin.git

Configuration du firmware

Fichier Configuration.h

  • Inversion du signal de fin de course pour l'axe Z

    const bool Z_MIN_ENDSTOP_INVERTING = true;
  • Activation de l'option AUTO_BED_LEVELING

    #define ENABLE_AUTO_BED_LEVELING
    #define LEFT_PROBE_BED_POSITION 0
    #define RIGHT_PROBE_BED_POSITION 120
    #define BACK_PROBE_BED_POSITION 150
    #define FRONT_PROBE_BED_POSITION 50
    #define AUTO_BED_LEVELING_GRID_POINTS 3
  • La tête de l'extrudeur étant directement utilisée pour sonder le niveau du lit, la compensation pour les axes X et Y est nulle. La compensation pour l'axe Z sera mesurée directement, on la définit à 0 dans un premier temps.

    #define X_PROBE_OFFSET_FROM_EXTRUDER 0
    #define Y_PROBE_OFFSET_FROM_EXTRUDER 0
    #define Z_PROBE_OFFSET_FROM_EXTRUDER 0
  • Compiler et téléverser le nouveau firmware sur le RAMPS

  • Exécuter le code ci-dessous pour préparer la mesure de la compensation de l'axe Z :

    G28 X          ; home X
    G28 Y          ; home Y
    G28 Z          ; home Z
    G1 Z10         ; fix Z to avoid glass-break
    G29            ; auto bed level
    G1 Z10         ; fix Z to avoid glass-break
    G1 X100 Y150   ; position extruder in center of the bed (300x200)
  • Mesurer la compensation pour l'axe Z
    Placer une feuille de papier sur le lit et descendre l'extrudeur petit à petit jusqu'à ce que le papier soit pincé entre l'extrudeur et le lit, le papier doit encore pouvoir bouger tout en étant légèrement "accroché". A ce moment, lire la mesure Z sur l'écran LCD, la valeur lue correspond à la compensation pour l'axe Z.
    Mettre à jour la variable Z_PROBE_OFFSET_FROM_EXTRUDER avec la valeur trouvée et compiler/téléverser de nouveau le firmware sur le RAMPS.

  • Custom G-code (slic3r)

    G28 X           ; home all axes
    G28 Y
    G28 Z
    G29             ; z-probe
    G1 Z3
    G1 X0 Y0 F3000  ; fix feedrate for next moves
    G1 Z0
  • Example "Ptr G-code -> Prefix" in KISSlicer

    M104 S<TEMP>
    G28 X
    G28 Y
    G28 Z
    G29; Detailed Z-Probe
    G1 Z3
    G1 X100 Y200 F3000
    G1 Z0
    M109 S<TEMP>

jeudi 16 juillet 2015

:: OpenSCAD ::

Commandes de dessin

Formes 3D simples

  • cube() pour un parallélépipède,
  • cylinder() pour un cylindre ou un cône, tronqué ou non,
  • sphere() pour une sphère,
  • polyhedron() pour un polyèdre.

Toutes ces commandes comportent, dans les parenthèses qui suivent leur nom, un ou plusieurs paramètres. Ils sont particuliers à chaque commande et indiquent généralement des dimensions ou des distances, toujours en millimètres, parfois des instructions de rendu.

Formes 2D

  • square() pour un carré ou rectangle,
  • circle() pour un cercle,
  • polygon() pour un polygone.

Elles n’ont pas d’épaisseur, celle-ci leur est donnée par les commandes de transformation linear\_extrude() et rotate\_extrude().

Commandes de transformation

Les formes 3D et 2D peuvent être combinées et manipulées pour former des objets complexes, par des commandes de transformation dont voici les principales :

  • difference() pour extraire une forme d’une autre,
  • union() pour unir plusieurs éléments,
  • translate() pour déplacer un élément,
  • rotate() pour pivoter un élément,
  • intersection() pour ne conserver que la partie commune de deux formes se chevauchant,
  • resize() pour modifier la taille d’un élément,
  • color() pour colorer l’affichage d’un élément,
  • hull() pour réaliser une fusion de formes,
  • minkowski() pour créer un enveloppement d’une forme par une autre,
  • import() pour utiliser un fichier STL ou DXF,
  • linear_extrude() et rotate_extrude() pour donner une élévation à une forme 2D.

Références


samedi 15 novembre 2014
mercredi 12 novembre 2014

:: Commandes G-Code ::

Références

Commentaires

Dans un fichier de commandes G-Code, tout texte précédé d'un point-virgule ; n'est pas pris en compte et est considéré comme un commentaire, jusqu'au retour à la ligne suivant.

G28 X0 Y0  ; ceci est un commentaire
; ceci est un autre commentaire
M84

Types de commandes G-Code

Lettre Description
Gnnn Commande G-Code standard
Mnnn Commande RepRap
Tnnn Sélection d'un extrudeur
Snnn Paramètre de commande (ex: tension moteur)
Pnnn Paramètre de commande (ex: durée en ms)
Xnnn Coordonnée X
Ynnn Coordonnée Y
Znnn Coordonnée Z
Innn Paramètre de commande
Jnnn Paramètre de commande
Fnnn Vitesse de déplacement en mm par minute
Rnnn Paramètre de commande
Qnnn Paramètre de commande
Ennn Longueur d'extrusion en mm
Nnnn Numéro de ligne
*nnn Checksum

Commandes G-Code

Commandes Gnnn

Commandes Gnnn mises en cache (G0, G1, G2, G3, G4, G28, G29,...)

Ces commandes sont mises en mémoire tampon en attente d'exécution. A chaque nouvelle commande la mémoire tampon libre est vérifiée et si l'espace est suffisant la commande est acceptée sinon elle est mise en attente jusqu'à libération de l'espace nécessaire.
Ce mode de fonctionnement permet l'exécution des commandes les unes après les autres de manière linéaire et évite ainsi toute interruption de l'impression.

Commandes Gnnn non mises en cache (G20, G21, G90, G91, G92,...)

Ces commandes ne sont pas mises en mémoire tampon. Lorsqu'elles sont exécutées, elles sont stockées, mais ne sont envoyées à l'imprimante que lorsque la commande précédente a été supprimée du cache. En conséquence, l'imprimante se met en pause entre chacunes d'entre elles.
A noter que ces courtes pauses entre les commandes n'affectent pas les performances de la machine.

Liste de commandes Gnnn

Commande Description Exemple
G0 Mouvement rapide G0 X15 : déplacement rapide en X=15.
G0 X15.2 Y14.7 Z0.85 : déplacement rapide aux coordonnées (X15.2,Y14.7,Z0.85)
G1 Mouvement linéaire G1 X50.7 Y31.2 E20.7 : déplacement dans le plan XY jusqu'aux coordonnées (X50.7,Y31.2) et extrusion de 20.7mm de filament
G1 F1500 : fixation de la vitesse à 1500mm/minute pour les futurs déplacements
G2 Mouvement circulaire dans le sens des aiguilles d'une montre G2 X51.6 Y17.6 I5 J10 E18.7 : déplacement en arc de cercle dans le sens des aiguilles d'une montre vers les coordonnées (X51.6,Y17.6), autour du point (X5,Y10) et extrusion de 18.7mm de filament
G3 Mouvement circulaire dans le sens inverse des aiguilles d'une montre G3 X51.6 Y17.6 I5 J10 E18.7 : déplacement en arc de cercle dans le sens inverse des aiguilles d'une montre vers les coordonnées (X51.6,Y17.6), autour du point (X5,Y10) et extrusion de 18.7mm de filament
G4 Temporisation G4 P60 : temporisation de 60 secondes -- à vérifier --
G20 Définit les unités en pouces
G21 Définit les unités en millimètres
G28 Mouvement vers les coordonnées origines ("homing"), se déplace en 0 puis recule de 1mm
G29 Calibration de la distance entre l'extrudeur et le lit ("bed probing")
G90 Positionnement absolu
G91 Positionnement relatif
G92 Définit la position G92 X15 E85 : définit la position courante aux valeurs spécifiées (X15,Y0,Z0,E85)
G92 : mise à zéro de tous les axes

Commandes Mnnn

Commande Description Exemple
M106 Démarre le ventilateur de l'extrudeur M106 S127 : démarre le ventilateur à 50% de la vitesse maximum
M107 Arrêt du ventilateur de l'extrudeur
M119 Affiche l'état des détecteurs de fin de course

Gestion des paramètres de PID

Commande Description Exemple
M301 Définit les paramètres PID de la tête chauffante
M302 Autorise l'extrusion à froid (ATTENTION !)
M303 Lance l'optimisation des paramètres PID (autotune) M303 E0 S200 C8 : Chauffe la buse n°1 jusqu'à 200°C sur 8 cycles et retourne les valeurs PID
M303 E-1 S60 C8 : Chauffe le lit jusqu'à 60°C sur 8 cycles et retourne les valeurs PID

Commandes de configuration de l'EEPROM

Commande Description
M500 Enregistre les paramètres dans l'EEPROM
M501 Lit les paramètres à partir de l'EEPROM
M502 Revient à la configuration d'usine
M503 Affiche les paramètres actuels de l'imprimante

mercredi 13 août 2014

:: Installation et utilisation de Pronterface et Skeinforge ::

Références

Installation des pré-requis

Python

Télécharger et installer Python 2.x.

Pour Linuxmint/Ubuntu, les paquets étant disponibles dans les sources officielles, on recherche la dernière version disponible :

$ sudo aptitude search python | grep -E '\s+python2\..\s+'
p   python2.7                       - Langage interactif de haut niveau orienté

Puis on l'installe :

$ sudo aptitude install python2.7

Note : tkinter est habituellement installé par défaut avec Python, mais vérifier quand même que les librairies sont bien présentes.

$ sudo aptitude search python | grep tk | grep ^i
[...]
i A python-tk                       - Tkinter - Écrire des applications Tk avec
[...]

Pypy (facultatif)

Pypy est un interpréteur alternatif à la distribution standard de Python. Il se veut plus rapide et reste compatible avec le code existant.

Télécharger et installer Pypy, ainsi que le module Tkinter.

$ sudo aptitude install pypy pypy-tk

Installation de Pronterface et Skeinforge

Pour installer dans ~/RepRap/, exécuter les commandes suivantes :

$ mkdir ~/RepRap
$ cd ~/RepRap
$ git clone https://github.com/kliment/Printrun.git
$ wget -P /tmp http://fabmetheus.crsndoo.com/files/50_reprap_python_beanshell.zip
$ unzip -d ~/RepRap/Printrun/skeinforge /tmp/50_reprap_python_beanshell.zip
$ ln -s ~/RepRap/Printrun/skeinforge/* ~/RepRap/Printrun/
$ rm -rf /tmp/50_reprap_python_beanshell.zip

Connexion à l'imprimante

Lancer Pronterface :

$ cd ~/RepRap/Printrun
$ ./pronterface.py

Sur Linux Mint 14 j'ai rencontré un problème de connexion avec l'imprimante (pb de baudrate), résolu par l'application du patch suivant :

$ cd /usr/lib/python2.7/dist-packages/serial/
$ sudo wget http://sourceforge.net/p/pyserial/patches/_discuss/thread/ed3fb0de/f4fd/attachment/pyserial.patch
$ sudo patch -b serialposix.py pyserial.patch

:: Installation de la suite logicielle Printrun/Pronterface et Slic3r ::

Références

Installation de Python

Python

Télécharger et installer Python 2.x.

Pour Linuxmint/Ubuntu, les paquets étant disponibles dans les sources officielles, on recherche la dernière version disponible :

$ sudo aptitude search python | grep -E '\s+python2\..\s+'
p   python2.7                       - Langage interactif de haut niveau orienté

Puis on l'installe :

$ sudo aptitude install python2.7

Note : tkinter est habituellement installé par défaut avec Python, mais vérifier quand même que les librairies sont bien présentes.

$ sudo aptitude search python | grep tk | grep ^i
[...]
i A python-tk                       - Tkinter - Écrire des applications Tk avec
[...]

Pypy (facultatif)

Pypy est un interpréteur alternatif à la distribution standard de Python. Il se veut plus rapide et reste compatible avec le code existant.

Télécharger et installer Pypy, ainsi que le module Tkinter.

$ sudo aptitude install pypy pypy-tk

Installation de Printrun/Pronterface et connexion à l'imprimante

Installation

Pour Ubuntu/Debian, donc pour Linuxmint aussi, il n'y a pas encore de paquet disponible dans les sources officielles, on va donc cloner le repository git et ainsi profiter de la dernière version.

Avant tout, on installe les dépendances :

$ sudo apt-get install python-serial python-wxgtk2.8 python-pyglet python-tornado python-setuptools python-libxml2 python-gobject avahi-daemon libavahi-compat-libdnssd1 python-dbus python-psutil git

Puis on clone les sources :

$ git clone https://github.com/kliment/Printrun.git

Permissions utilisateurs

Sous Linux Mint, l'utilisateur doit appartenir au groupe dialout pour accéder au périphérique.

$ sudo adduser utilisateur dialout

Connexion à l'imprimante

Lancer Pronterface :

$ cd Printrun
$ ./pronterface.py

Sur Linux Mint 17, j'ai rencontré un problème de connexion avec l'imprimante :

[...]
Connexion en cours...
stty: /dev/ttyACM0: Permission non accordée
[ERROR] Impossible de se connecter à /dev/ttyACM0 à la vitesse 250000:
Erreur série: could not open port /dev/ttyACM0: [Errno 13] Permission non accordée: '/dev/ttyACM0'
[...]

Cette erreur est dûe à un problème de baudrate. Pour résoudre ce problème il est nécessaire d'appliquer le patch suivant :

$ cd /usr/lib/python2.7/dist-packages/serial/
$ sudo wget http://sourceforge.net/p/pyserial/patches/_discuss/thread/ed3fb0de/f4fd/attachment/pyserial.patch
$ sudo patch -b serialposix.py pyserial.patch

Suite à l'application du patch, la connexion fonctionne déjà mieux :

Connexion en cours...
Imprimante connectée.

Installation de Slic3r

Installation et configuration de Slic3r

Deux méthodes sont possibles ici en fonction de la version de Slic3r que l'on désire installer. Soit on utilise les paquets fournis sur le site, soit on compile soi-même à partir des sources.

Méthode 1 : Paquets pré-compilés

  • Télécharger Slic3r
  • Extraire le contenu de l'archive et lancer le fichier bin/Slic3r

Méthode 2 : Sources

  • Installation des dépendances

    $ sudo apt-get install git build-essential libgtk2.0-dev libwxgtk2.8-dev libwx-perl libmodule-build-perl libnet-dbus-perl libexpat1-dev cpanminus
  • Pour la vue 3D (facultatif), il faut aussi installer ces paquets :

    $ sudo apt-get install libxmu-dev freeglut3-dev libwxgtk-media2.8-dev
  • Récupération des sources

    $ git clone https://github.com/alexrj/Slic3r.git
  • Installation

    $ cd Slic3r
    $ sudo perl Build.PL
    $ sudo perl Build.PL --gui

Note : Cette dernière commande est facultative si on n'a pas besoin de l'interface graphique.

Configuration de Slic3r

  • Lancer Slic3r
  • Configurer l'impression, le filament et l'imprimante dans les différents onglets
    • Conseil : enregistrer les paramètres de chaque onglet dans un fichier de configuration spécifique.
  • Exporter la configuration vers le fichier INI de votre choix (menu File / Export Config)

Intégration de Slic3r à Pronterface

  • Lancer Pronterface et ouvrir le menu Paramètres / Options
  • Dans l'onglet Commandes externes, remplacer les champs suivants par la commande indiquée :
    • Commande de slicing : /chemin/vers/bin/slic3r $s --load /chemin/vers/config.ini --output $o
    • Commande pour les paramètres du slicer : /chemin/vers/bin/slic3r --load /chemin/vers/config.ini --ignore-nonexistent-config
  • Dans l'onglet Interface utilisateur, cocher les cases :
    • Activer l'intégration de Slic3r
    • Mettre à jour les profils par défaut de Slic3r

Slic3r est maintenant correctement configuré et intégré à Pronterface.