Installer Klipper sur une Microdelta Rework d'Emotiontech
Cette méthode n'est valable que pour les imprimantes équipées de la carte d'origine Emotiotech.
Pour plus de détails sur cette démarche référez-vous à la documentation Klipper
1. Configuration du Raspberry
En utilisant Pi Imager (A minima un Raspberry Pi 3)
Choisir le modèle de Raspberry
Choisir l'OS
"Other Specific-purpose OS"
3D Printing
Mainsail OS (64 bits)
Modifier les réglages
Compléter l'onglet "Général"
Activer SSH dans l'onglet "Services"
Lancer en activant les modifications
Mettre la carte dans le Raspberry et démarrer
2. Génération du firmware
Se connecter en SSH via un autre pc selon votre id et adresse ip du raspberry
ssh votreid@192.168.XXX.XXX
Saisir mot de passe
Une fois connecté, commande:
cd klipper
make menuconfig
Choisir les options suivantes:
Micro-controller Architecture (LPC176x)
processor model (lpc1768 (10 MHz))
Bootloader offset (16KiB bootloader)
Communication interface (USB)
Quitter et sauvegarder, retour dans la console, commande:
make clean
make
La commande make créé un fichier klipper.bin dans le répertoire /out qu'il faut récupérer
Commande depuis le pc dans une nouvelle console (pas en SSH)
scp votreid@192.168.XXX.XXX:~/klipper/out/klipper.bin c:/votre/chemin/
3. Flashage de l'imprimante
Renommer ce fichier en firmware.bin
copier sur la carte micro SD de l'imprimante
Démarrer l'imprimante
Patienter un peu
Connecter l'imprimante au Raspberry via un câble USB
Dans la console en SSH, récupérer le serial de l'imprimante:
ls /dev/serial/by-id/*
Enregistrer dans un fichier texte l'adresse retournée par la console du type: /dev/serial/by-id/usb-Klipper_lpc1768_1DD0000XXX....
Fermer la console SSH
4. Configuration Mainsail
Depuis un navigateur saisir l'adresse ip du rasberry pi. Vous arrivez normalement sur l'interface Mainsail.
Dans l'onglet "Machine" importer dans le répertoire config les fichiers de ce dépôt:
printer.cfg
macro.cfg
Dans Mainsail
ouvrir le fichier printer.cfg
Remplacer le serial mcu par celui récupéré précédemment
Save and restart
Vous devriez maintenant être connecté avec l'imprimante (tentez un home en gardant le doigt sur le bouton ON/OFF.... au cas ou...)
5. Configuration slicer
Gcode de démarrage:
START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]
Gcode de fin:
END_PRINT
6. Calibration
Dans Mainsail, dans l'onglet "Tableau de bord"
Exécuter les macros: Attention il faut mettre en place le palpeur pour toute ces macros
Z_OFFSET_CALIBRATION
DELTA_CALIBRATION
BED_LEVELING
L'imprimante est prête pour sa première impression!
7. Mesures de raisonnance
cf. https://www.klipper3d.org/fr/Measuring_Resonances.html
macros.cfg printer.cfg Support ADXL345.stl
FICHER: printer.cfg
[include mainsail.cfg]
[include macros.cfg]
#######################################################
## Imprimante MicroDelta Rework ##
#######################################################
[printer]
kinematics: delta
max_velocity: 120
max_accel: 3000
max_z_velocity: 120
max_z_accel: 300
minimum_z_position: -5
delta_radius: 80
print_radius: 75
[mcu]
serial: /dev/XXXXXXXXXXX-f00
#######################################################
## Moteurs ##
#######################################################
[stepper_a]
step_pin: P2.2
dir_pin: P4.28
enable_pin: !P4.29
endstop_pin: ^!P1.22
microsteps: 32
rotation_distance: 80
position_endstop: 210
homing_speed: 50
homing_retract_dist: 5.0
homing_retract_speed: 10
arm_length: 170
[stepper_b]
step_pin: P2.1
dir_pin: P0.22
enable_pin: !P0.21
endstop_pin: ^!P1.23
microsteps: 32
rotation_distance: 80
position_endstop: 210
homing_speed: 50
homing_retract_dist: 5.0
homing_retract_speed: 10
arm_length: 170
[stepper_c]
step_pin: P2.0
dir_pin: P3.26
enable_pin: !P3.25
endstop_pin: ^!P1.24
microsteps: 32
rotation_distance: 80
position_endstop: 210
homing_speed: 50
homing_retract_dist: 5.0
homing_retract_speed: 10
arm_length: 170
#######################################################
## Extrudeur ##
#######################################################
[extruder]
step_pin: P2.3
dir_pin: !P0.4
enable_pin: !P0.5
microsteps: 32
rotation_distance: 36.426
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: P2.6
sensor_type: EPCOS 100K B57560G104F
sensor_pin: P0.24
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
#######################################################
## Plateau ##
#######################################################
[heater_bed]
heater_pin: P2.5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: P0.25
control: pid
pid_Kp: 300
pid_Ki: 14.4
pid_Kd: 300
min_temp: 0
max_temp: 100
#######################################################
## Ventilation ##
#######################################################
[heater_fan hotend_fan]
pin: P2.13
max_power: 1.0
kick_start_time: 0.5
heater: extruder
heater_temp: 50.0
[fan]
pin: P2.11
#######################################################
## Palpeur ##
#######################################################
[probe]
pin: ^!P0.26
x_offset: 0
y_offset: 0
z_offset: 0
speed: 10
lift_speed: 50
samples: 3
samples_result: average
sample_retract_dist: 6
samples_tolerance: 0.02
samples_tolerance_retries: 5
#######################################################
## Calibration ##
#######################################################
[delta_calibrate]
radius: 70
horizontal_move_z: 30
speed: 50
[bed_mesh]
speed: 50
horizontal_move_z: 30
mesh_radius: 70
mesh_origin: 0,0
mesh_pps: 4,4
round_probe_count: 9
algorithm: bicubic
bicubic_tension: 0.1
move_check_distance: 3
#######################################################
## Résonnance ##
#######################################################
#[mcu rpi]
#serial: /tmp/klipper_host_mcu
#[adxl345]
#cs_pin: rpi:None
#[resonance_tester]
#accel_chip: adxl345
#probe_points: 0, 0, 20 # valeur exemple
#######################################################
## Mouvements ##
#######################################################
[gcode_arcs]
resolution = 0.1
#######################################################
## Ecran ## l'écran demeure non fonctionnel
#######################################################
[display]
lcd_type: st7920
cs_pin: P0.1
sclk_pin: P0.15
sid_pin: P0.18
encoder_pins: ^!P1.26, ^!P1.28
click_pin: ^!P0.11
[output_pin beeper]
pin: P0.10
FICHIER: macro.cfg
#############################################################
## Impression début/fin ##
#############################################################
[gcode_macro START_PRINT]
description: G-Code de démarrage
gcode:
{% set BED_TEMP = params.BED_TEMP|default(65)|float %}; variable température plateau
{% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(220)|float %}; variable température tête
G21; Unités en millimètre
G90; Coordonnées absolues
M82; Extrudeur en absolu
M140 S{BED_TEMP}; Chauffe du plateau
M104 S{EXTRUDER_TEMP}; Chauffe de la tête
G28; Home tous les axes
M400
G1 Z150 F2500; mise à l'écart de la tête pour éviter coulure sur plateau
G1 Y70 F2500
M190 S{BED_TEMP}; Attente consignes atteintes
M109 S{EXTRUDER_TEMP}
G1 Z1 F2500
G1 Z0.4
G92 E0; initialiastion extrudeur
G3 X0 Y-70 I0 J-70 Z0.2 E40 F2700; Arc de purge
G92 E0
G1 E-1.5 F1800
[gcode_macro END_PRINT]
description: G-Code de fin
gcode:
M106 S0; coupe des ventillateurs filament
M104 S0; coupe chauffe tête
M140 S0; coupe chauffe plateau
G92 E0; initialisation extrudeur
G91; coordonnées relaticves
G1 E-1 F300; rétracte
G1 Z+5 F6000; relevé
G28; home tous les axes
G90; coordonnées absolues
M84; désactivation moteurs
#############################################################
## Calibration ##
#############################################################
[gcode_macro Z_OFFSET_CALIBRATION]
description: Mesuser le Z-Offset
gcode:
{% if printer.idle_timeout.state == "Printing" %}; Sécurité d'exécution
RESPOND TYPE=error MSG="Mais vous êtes fou ! La machine est en cours d'impression !"
{% else %}
SET_GCODE_OFFSET Z=0
G28
G1 X0 Y0 Z50 F2500
M400; attente fin du dernier mouvement
PROBE_CALIBRATE
{% endif %}
[gcode_macro DELTA_CALIBRATION]
description: Calibration Delta
gcode:
{% if printer.idle_timeout.state == "Printing" %}; Sécurité d'exécution
RESPOND TYPE=error MSG="Mais vous êtes fou ! La machine est en cours d'impression !"
{% else %}
SET_GCODE_OFFSET Z=0; initialisation du Z offset
BED_MESH_CLEAR; suppression précédent maillage
G28
DELTA_CALIBRATE
M400
G1 X0 Y0 Z50 F2500
G28
{% endif %}
[gcode_macro BED_LEVELING]
description: Nivellement du plateau
gcode:
{% if printer.idle_timeout.state == "Printing" %}; Sécurité d'exécution
RESPOND TYPE=error MSG="Mais vous êtes fou ! La machine est en cours d'impression !"
{% else %}
SET_GCODE_OFFSET Z=0; initialisation du Z offset
G28
G90
G1 X0 Y0 Z50 F2500
BED_MESH_CALIBRATE
M400
G1 X0 Y0 Z50 F2500
G28
{% endif %}
L'ensemble des infos est aussi disponible sur mon github: https://github.com/Greg-35170/Emotiontech-Microdelta-Klipper