
willy2406
-
Compteur de contenus
124 -
Inscrit(e) le
-
Dernière visite
Récompenses de willy2406
Favoris
-
Marlin 2.0 et CR10V3
CR10-V2, carte originelle (2.5.2), Marlin 2.0.9.3 (stable)Marlin 2.0.x guide pour CR10-V2, carte mère originelle (v2.5.2)
ATTENTION: Post très long (mais j'espère complet
), TLDR : en fin de post. les fichiers utilisés pour compiler
Modifications réalisées à partir d’un Marlin originel 2.0.9.3 pour une Creality CR10-V2 avec sa carte mère d’origine (Atmega2560, v2.5.2).
Utilisation de ce guide avec un autre version de Marlin à vos risques et périls. En modifiant quelques directives (environnement de compilation, carte mère utilisée, pilotes moteurs, …), il est possible d'adapter ce «firmware» pour qu'il fonctionne avec une autre carte que la Creality v2.5.2
Modifications effectuées après lecture approfondie de la «Bible du Marlin»
Chapitres
-
Débuter
-
Fichiers modifiés
-
PID autotune
-
BLTOUCH
-
Mesurer NOZZLE_TO_PROBE_OFFSET
-
Unified Bed Leveling (UBL)
-
Mesh Bed Leveling (ABL du «pauvre» mais tout de même bien pratique)
-
Effectuer le nivelage du lit
-
Détection de fin de filament et remplacement du filament
-
Linear Advance
-
Junction Deviation
-
Test «Tout en un» de la rétraction
-
Compiler le firmware
-
Flasher le firmware
-
Mettre à jour / reflasher le firmware
-
Changelog
Débuter
-
Installer VSCode and Git (Installation guide)
-
Ouvrir le dossier Marlin
-
comme dans la vidéo d’installation ou
-
Cloner Marlin via PlatformIO (Cliquer sur l’icone «Alien», puis cliquer sur "Cloner Projet Git», coller l’adresse "https://github.com/MarlinFirmware/Marlin/", presser Entrée, sauvegarder, finalement cliquer ouvrir quand le téléchargement est terminé)
-
Ou vous pouvez cloner mon dépôt en fin de post
-
Vous pouvez choisir la version de Marlin en bas à gauche de la fenêtre, par défaut la version la plus récente sera activée
-
-
Modifier votre Marlin en vous basant sur ce guide
-
Vous pouvez utiliser les fichiers de configuration des exemples de votre carte pour une édition plus facile / rapide.
La CR10V2 n’étant pas actuellement recensée parmi les modèles de Creality, vous pouvez utiliser ceux d’une CR10S (ou ceux tout à la fin). EDIT: @thinkyhead a inclus les fichiers de configuration dans la dernière version stable de Marlin (2.0.6 attention, c'est prévu pour la branche bugfixes).
-
Fichiers modifiés
Modifications des fichiers platformio.ini, configuration.h et configuration_adv.h .
A - Activer | C - Changer | A&C - Activer et Changer | D - Désactiver
( Activer/Désactiver en enlevant / ajoutant les «//» en début de ligne )platformio.ini
-
C
default_envs =
mega2560
Configuration.h
-
A
#define SHOW_CUSTOM_BOOTSCREEN
-
A
#define CUSTOM_STATUS_SCREEN_IMAGE
-
Vous devrez copier les fichiers
_Bootscreen.h
/_Statusscreen.h
de Marlin\config\examples\Creality\CR10S\ dans le dossier Marlin\Marlin mais en ce cas, la fenêtre de statut indiquera «CR10S 300» alors qu’on souhaiterai «CR10 V2» (utiliser ceux en fin de post). -
Les fichiers «examples» du dossier config « peuvent être récupérés à partir de Marlin GitHub.
-
ou vous pouvez utiliser ceux fournis dans le fichier compressé en fin de post (je les ai modifié afin que soit affiché «CR10 V2).
-
-
C
#define SERIAL_PORT
0 -
C
#define BAUDRATE
115200250000-
ATMega2560 baudrate par défaut
-
-
C
#define MOTHERBOARD
BOARD_RAMPS_CREALITY -
A&C
#define CUSTOM_MACHINE_NAME
"CR10-V2"-
ou le nom que vous voulez (ex: MA CR10 à MOI qu'elle me plait vraiment beaucoup
)
-
-
C
#define DEFAULT_NOMINAL_FILAMENT_DIA
1.75 -
C
#define TEMP_SENSOR_BED
1 -
C
#define
HEATER_0_
_MAXTEMP
255 -
C
#define BED_MAXTEMP
120 -
A
#define
PID_EDIT_MENU
-
A
#define
PID_AUTOTUNE_MENU
-
C les valeurs de P.I.D. pour la tête :
-
#
define
DEFAULT_Kp 19.47 -
#
define
DEFAULT_Ki 1.59 -
#
define
DEFAULT_Kd 59.40
-
-
A
#define PIDTEMPBED
-
Vous n’êtes pas obligé d’activer
PIDTEMPBED
, si vous êtes satisfait de votre lit chauffant. Mais en calibrant celui-ci, il montera en températures plus rapidement et maintiendra celles-ci plus finement -
N’oubliez pas de réaliser un autotune du PID du lit après l’avoir activé dans le firmware sinon la protection contre l’emballement thermique pourrait se déclencher lors de la mise en route. Allez consulter le guide dans la section PID autotune, plus bas dans ce post
-
-
C les valeurs de P.I.D. pour le lit :
-
#
define
DEFAULT_Kp 690.34 -
#
define
DEFAULT_Ki 111.47 -
#
define
DEFAULT_Kd 1068.83
-
-
C
#define EXTRUDE_MAXLENGTH
435-
Mesurez la longueur à partir de la roue crantée de l’extrudeur jusqu’à la buse comme longueur de tube PTFE
-
-
C
#define Z_M
IN
_ENDSTOP_INVERTING
truefalse -
C
#define Z_M
AX_ENDSTOP_INVERTING
truefalse -
C
#define Z_M
IN_PROBE_ENDSTOP_INVERTING
truefalse-
Le BLTouch v3/3.1 peut fonctionner soit avec true soit false, mais une erreur est signalée à la compilation si réglé à true
-
-
A&C
#define X_DRIVER_TYPE
TMC2208_STANDALONE -
A&C
#define Y_DRIVER_TYPE
TMC2208_STANDALONE -
A&C
#define Z_DRIVER_TYPE
TMC2208_STANDALONE -
A&C
#define E0_DRIVER_TYPE
TMC2208_STANDALONE -
C
#define DEFAULT_AXIS_STEPS_PER_UNIT
{ 80, 80, 400, 93 }-
si vous avez monté en lieu et place de l’extrudeur d’origine un autre modèle, remplacez 93 par le nombre de pas de celui-ci (BMG / Titan 415, BMG sans réducteur (CR10S Pro) 140, …)
-
pour une CR10-V3 avec un Titan comme extrudeur; le pas de l'extrudeur est de 415.
-
ATTENTION: dans le dépôt Github fourni plus bas,
mon extrudeur étant un pseudo BMG (celui des CR10S Pro), le pas est de 140,mon extrudeur est un BMG à réduction (3:1), le pas est de 415 (monté en «extrudeur volant»), pensez à le modifier si vous avez l'extrudeur métallique d'origine (pas initial de 93 qu'il est préférable d'affiner en effectuant un réglage de celui-ci).
-
-
C
#define DEFAULT_MAX_FEEDRATE
{ 750, 750, 15, 75 } -
C
#define DEFAULT_MAX_ACCELERATION
{ 2000, 2000, 100, 5000 }
-
C
#define DEFAULT_ACCELERATION
800 -
C
#define DEFAULT_RETRACT_ACCELERATION
1000 -
C
#define DEFAULT_TRAVEL_ACCELERATION
800 -
A
#define CLASSIC_JERK
-
Utiliser «Classic Jerk» au lieu de Junction Deviation, car JD ne fonctionne pas correctement actuellement et peut parfois engendrer de mauvais résultats particulièrement lors d’impression de courbes (https://github.com/MarlinFirmware/Marlin/issues/17146)
-
-
A&C
#define TRAVEL_EXTRA_XYJERK
5.0 -
A
#define S_CURVE_ACCELERATION
-
C
#define INVERT_X_DIR
false -
C
#define INVERT_Y_DIR
false -
C
#define INVERT_Z_DIR
true -
C
#define INVERT_E0_DIR
false
Si vous avez une CR10-V3 avec son direct-drive, le moteur possédant un réducteur (3:1), le sens de rotation de celui-ci est inversé. la ligne au-dessus devra donc être à «true»
-
C
#define X_BED_SIZE
310 -
C
#define Y_BED_SIZE
310 -
C
#define Z_MAX_POS
400 -
A
#define
LCD_BED_LEVELING
-
C
#define HOMING_FEEDRATE_Z
(6*60) (directive d'anciennes versions de Marlin, maintenant les vitesses de mise à l'origine sont regroupées en une seule directive : #define HOMING_FEEDRATE_MM_M { (50*60), (50*60), (4*60) } )-
Augmentez si vous trouvez que c’est trop lent mais ne dépassez pas 10*60 pour l'axe Z.
-
-
A
#define EEPROM_SETTINGS
-
A
#define NOZZLE_PARK_FEATURE
-
C
#define NOZZLE_PARK_POINT
{ (X_MIN_POS + 5), (Y_MAX_POS - 5), 10 } -
A
#define
PRINTCOUNTER
-
D
#define LCD_LANGUAGE fr
-
pour
passer l’interface
de l’écran
en français si vous préférez
-
-
A
#define SDSUPPORT
-
A
#define INDIVIDUAL_AXIS_HOMING_MENU
-
A
#define
REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
Configuration_adv.h
-
A
#define QUICK_HOME
-
A
#define
BLTOUCH_SET_5V_MODE
-
C
#define SLOWDOWN_DIVISOR
2 -
A
#define
LCD_INFO_MENU
-
A
#define STATUS_MESSAGE_SCROLLING
-
A
#define SCROLL_LONG_FILENAMES
-
D
#define LIN_ADVANCE
-
L’activation du Linear Advance sur les cartes Creality «silencieuses» mènent à l’arrêt de l’extrusion, il ne faut donc pas activer cette option.
-
-
C
#define LIN_ADVANCE_K
0.00-
Le guide pour calibrer la valeur K se trouve plus bas dans la section Linear Advance.
-
-
C
#define
EMERGENCY_PARSER
-
C
#define
ADVANCED_OK
-
A
#define CANCEL_OBJECTS
PID autotune
Rien ne vous oblige à activer
PIDTEMPBED
, si vous êtes satisfait de votre lit chauffant. Mais en calibrant celui-ci, il montera en températures plus rapidement et maintiendra celles-ci plus finement.-
Connectez l’imprimante au PC (USB, Octoprint, etc.)
-
Utilisez n’importe quel logiciel capable d’envoyer des commandes gcode à l’imprimante (Octoprint, Pronterface, Repetier, etc.)
-
Connectez l’imprimante via le logiciel si la connexion n’est pas automatique (COM ??,
115200250000) -
En envoyant un
M301
/M304
à l’imprimante vous récupérez les valeurs actuelles du PID de la HOTEND / LIT CHAUFFANT, prenez note de celles-ci -
Pour débuter un autotune, il faut envoyer un
M303
C
<nb cycles>A
<index>S
<température>U
à l’imprimante.-
Pour la hotend j’utilise
M303 C
10
E0 S2
20
U
(Hotend:E0
)-
Activez la ventilation de refroidissement du filament pour l’autotuning du PID de la hotend
-
C5 est normalement suffisant, mais C10 n’augmente pas le temps énormément, S<température> devrait être 5-à 10° plus haut que la température le plus souvent utilisée
-
-
Pour le lit chauffant j’utilise
M303 C
8
E-1 S6
5
U
(Lit chauffant:E-1
)-
C5 est normalement suffisant, mais C8 n’augmente pas le temps énormément, S<température> devrait être la température la plus souvent utilisée. Si après le
M303
... vous obtenez "PID Autotune failed! Temperature too high", envoyez unM304 P0.00 I0.00 D0.00
à l’imprimante, puis refaites l’autotune du PID.
-
-
-
Attendez que les opérations soient terminées (quand c’est fait, le cycle de chauffe s’arrête et la température baisse)
-
Prenez note des nouvelles valeurs du P. I.D. affichées
-
Envoyez un
M500
pour sauvegarder ces valeurs dans l’EEPROM -
Pour vérifier que ces valeurs ont bien été sauvées, envoyez un
M301
/M304
pour afficher les valeurs actuelles -
Si les valeurs actuelles de PID ne correspondent pas aux nouvelles, alors vous devez les fixer manuellement:
-
Hotend: Envoi d’un
M301
P
<valeur>I
<valeur>D
<valeur> à l’imprimante -
Lit chauffant: Envoi d’un
M304
P
<valeur>I
<valeur>D
<valeur> à l’imprimante -
Envoi d’un
M500
pour sauvegarder ces valeurs dans l’EEPROM -
Dans Configuration.h mettre à jour les valeurs de PID pour une prochaine mise à jour du firmware (
DEFAULT_Kp
, ...Ki
, ...Kd
,DEFAULT_bedKp
, ...bedKi
, ...bedKd
)
-
The 3D Print General PID Autotuning
BLTOUCH
Configuration.h
-
A
#define
Z_STOP_PIN 19 (renommé en Z_MIN_PROBE_PIN )
-
Le BLTouch est «précâblé» sur le Z_MAX_PIN, le endstop originel lui est connecté sur le Z_MIN_
ENDSTOP_
PIN
-
-
A
#define BLTOUCH
-
C
#define NOZZLE_TO_PROBE_OFFSET
{ 47, 0, 0 }-
Éditez ces valeurs en fonction de votre matériel et de sa position par rapport à la buse, aide dans la section Mesurer NOZZLE_TO_PROBE_OFFSET
-
-
C
#define MIN_PROBE_EDGE
10 ( renommé en PROBING_MARGIN )-
Si vous avez des clips pour maintenir la surface d’impression (verre, miroir, …), augmenter à la taille des clips +5
-
-
C
#define XY_PROBE_SPEED
60009000 ( renommé en XY_PROBE_FEEDRATE )-
Avec
6000le 9000 BLTouch fonctionne de manière plus fiable (9000 mm/min = 150 mm/s)
-
-
A
#define
MULTIPLE_PROBING 2
-
permet d’améliorer le résultat en effectuant plusieurs palpages
-
-
A
#define Z_MIN_PROBE_REPEATABILITY_TEST
-
A
#define AUTO_BED_LEVELING_BILINEAR
-
ou utiliser
AUTO_BED_LEVELING_UBL
/MESH_BED_LEVELING
, liens vers des guides plus loin dans ce post
-
-
A
#define RESTORE_LEVELING_AFTER_G28
-
A
#define Z_SAFE_HOMING
Configuration_adv.h
-
A
#define BABYSTEPPING
-
C
#define BABYSTEP_MULTIPLICATOR_Z
4-
1 monte l’axe Z de 1 microstep (0.0025), 4 montera l’axe Z de 0.01
-
-
A
#define DOUBLECLICK_FOR_Z_BABYSTEPPING
-
Double-clic avec l’écran de Statut pour éditer le Z Babystepping pendant une impression
-
-
A
#define BABYSTEP_ZPROBE_OFFSET
-
A
#define BABYSTEP_ZPROBE_GFX_OVERLAY
Mesurer les valeurs à saisir pour NOZZLE_TO_PROBE_OFFSET
-
Mesurer approximativement les écarts / distances entre la pin de la sonde et la buse dans les directions X et Y
-
La pointe de la sonde devrait être 2.3-4.3mm plus haut que la buse (quand la sonde est rentrée)
-
-
Modifier les valeurs
NOZZLE_TO_PROBE_OFFSET
en fonction de vos mesures -
Compiler - flasher - redémarrer ...
-
Effectuer le Homing (G28)
-
Prenez note des coordonnées X et Y (réalisable via le menu «Move Axis» de l’écran)
-
Déplacez l’axe Z vers le bas jusqu’à ce que la buse touche ou pratiquement touche le lit
-
Marquez le point où la buse touche le lit (assurez-vous que ce marquage ne se déplacera pas sur le lit (utiliser du scotch de marquage par exemple))
-
Déplacez les axes X et Y via le menu de l’imprimante jusqu’à ce que la pointe de la sonde soit sur la marque
-
Prenez note des coordonnées X et Y
-
Soustrayez les coordonnées X/Y originelles des coordonnées X/Y de la position de la pointe du BLTouch pour obtenir le
NOZZLE_TO_PROBE_OFFSET.
Exemple pour la CR10V2: après le homing, la buse est en (150,150); en déplaçant le pointeur de la buse à l'emplacement marqué sur le plateau, la position affichée à l'écran devrait être (103,150); donc 150-103=47 pour le X et 150-150=0 pour le Y
Unified Bed Leveling (UBL)
-
Marlin UBL guide
-
Chris Riley UBL video guide
Mesh Bed Leveling
(ABL du «pauvre» mais tout de même bien pratique)
Configuration.h
Ce type de nivelage n'est à utiliser que si vous n'avez pas installé d'ABL automatique. Donc, à n'activer que si #define BLTOUCH (ou un autre ABL) ne l'est pas déjà sinon Marlin vous signalera une erreur.
-
A
#define PROBE_MANUALLY
-
C
#define NOZZLE_TO_PROBE_OFFSET
{ 0, 0, 0 } -
A
#define MESH_BED_LEVELING
-
A
#define RESTORE_LEVELING_AFTER_G28
-
C
#define GRID_MAX_POINTS_X
5 (Ou modifiez selon vos préférences) -
A
#define LCD_BED_LEVELING
En complément (remarque de @Darkneo (merci à toi
)) il faut désactiver certaines directives qui autrement conduisent à une erreur de compilation :
-
D
#define
Z_MIN_PROBE_REPEATABILITY_TEST
et
-
D
#define
BABYSTEP_ZPROBE_OFFSET (configuration_adv.h)
Effectuer le nivelage manuel du lit (Mesh Bed Leveling)
Chauffez votre lit à la température d’impression habituelle (ex : 60°C). Assurez-vous qu'il n'y a pas de plastique sur la buse, ce qui modifierait la distance de la buse par rapport au lit
-
Sélectionner: Prepare - Bed Leveling - Level Bed
-
Attendre que le Homing XYZ soit terminé
-
Lorsque le bouton "Cliquer pour commencer" apparaît, appuyez sur le bouton du contrôleur pour vous rendre au premier point
-
Utilisez la molette de commande pour régler Z afin qu'un morceau de papier puisse passer sous la buse en frottant
-
Appuyez sur le bouton du contrôleur pour enregistrer la valeur Z et passer au point suivant
-
Répétez les étapes 4 et 5 jusqu'à ce que vous ayez terminé.
-
Sélectionnez : Configuration - Enregistrer les paramètres pour sauvegarder le maillage dans l'EEPROM
-
Sélectionnez : Mouvement - Hauteur de fondu : Régler sur 10
-
Sélectionnez : Motion - Stocker les paramètres
-
Faites un test d'impression
et, pendant l'impression, vous pouvez modifier la distance entre la buse et le lit en mouvement via les molettes de réglage du plateauNe surtout pas toucher aux mollettes sinon le maillage ne sera plus correctUtiliser plutôt le réglage des babysteps via «double clic» sur le bouton de l'écran
-
Sélectionnez : Configuration - Stocker les paramètres
Plus d’infos :
-
Marlin Bed Leveling (Manual)
-
Teaching Tech Manual Mesh Bed Levelling
-
Crosslink Ender 3 Mesh Bed Leveling
Détection de fin de filament et changement de filament
Configuration.h
-
A
#define FILAMENT_RUNOUT_SENSOR
-
A&C
#define FILAMENT_RUNOUT_DISTANCE_MM
5
-
C
#define EXTRUDE_MAXLENGTH
435-
Longueur de la roue crantée de l’extrudeur à la buse
-
-
A
#define NOZZLE_PARK_FEATURE
-
C
#define NOZZLE_PARK_Z_FEEDRATE
3
Configuration_adv.h
-
C
#define
ADVANCED_PAUSE_FEATURE
-
C
#define PAUSE_PARK_RETRACT_LENGTH
6-
Modifiez par votre distance de
r
é
traction
-
-
C
#define PAUSE_PARK_RETRACT_FEEDRATE
30-
Modifiez par votre distance de
r
é
traction
-
-
C
#define
FILAMENT_CHANGE_UNLOAD_FEEDRATE 40
-
C
#define FILAMENT_CHANGE_UNLOAD_LENGTH
435-
Longueur de l'engrenage de l'extrudeuse à la buse OU régler sur 0 pour l'extraction manuelle du filament
-
-
A
#define
FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 30
-
A
#define
FILAMENT_CHANGE_FAST_LOAD_ACCEL
15
-
C
#define FILAMENT_CHANGE_FAST_LOAD_LENGTH
435-
Longueur de l'engrenage de l'extrudeuse à la buse OU régler sur 0 pour l'insertion manuelle du filament
-
-
A
#define
ADVANCED_PAUSE_PURGE_LENGTH
20
-
A
#define ADVANCED_PAUSE_
FANS_PAUSE
-
A
#define
FILAMENT_UNLOAD_PURGE_RETRACT
4 -
C
#define FILAMENT_CHANGE_ALERT_BEEPS
2-
3 peut être trop / énervant, si oui, diminuez à votre convenance
-
-
A
#define PARK_HEAD_ON_PAUSE
-
A
#define HOME_BEFORE_FILAMENT_CHANGE
-
A
#define FILAMENT_LOAD_UNLOAD_GCODES
-
Ajoute le
g
code
(
M701/M702
)
et Charger/décharger dans le menu de préparation de l'écran LCD.
-
-
A
#define HOST_ACTION_COMMANDS
-
A
#define HOST_
PROMPT
_
SUPPORT
Plus d’infos :
Voir la partie M600 - Filament Change
Chris Riley
Linear Advance
-
Linear Advance K-factor Calibration
-
Teaching Tech Linear advance video guide
-
Chris Riley Linear advance video guide
Junction Deviation
Test «Tout-en-un» de la rétraction
-
KARL JOHNSON How to Easily Calibrate Retraction in 3D Printers
Compilation du firmware
J’utilise VSCode avec l’extension PlatformIO ainsi que Git GUI.
Le sujet ci-dessous décrit l'installation des logiciels nécessaires à la préparation / compilation d'un firmware Marlin :
Pour les anglicistes, Chris Riley VSCode installation guide for Marlin 2.0.
Le fichier du microprogramme issu de la compilation qui sera installé se trouve dans «../Marlin/Marlin/.pio/build/mega2560/firmware.hex»
Flashage du firmware
Plusieurs méthodes sont possibles :
-
Octoprint avec le plugin idoine (Firmware Updater),
-
des programmes (Xloader, ProgISP, Avrdudess, Avrdude (ligne de commande pour les purs et durs)…),
-
via le trancheur (Cura, Prusaslicer,…).
-
directement via VSC en cliquant sur l’icone à droite de celle utilisée pour lancer la compilation.
La condition pour que ça fonctionne étant que l’imprimante soit reliée à un matériel informatique via USB pour la liaison et le transfert et qu'elle soit reconnue (son pilote est correct).
On utilise le fichier firmware.hex pour flasher.
Éviter toute coupure de courant durant ce flashage, attendre que le transfert soit terminé (le processus prend quelques minutes). Normalement à l’issue de celui-ci, la carte doit redémarrer.
Mettre à jour / reflasher un firmware
Il est inutile de refaire tous les changements à chaque fois que vous voulez mettre à jour une nouvelle version de Marlin, vous devez simplement copier vos fichiers de configuration modifiés dans le nouveau marlin et les comparer dans VSC Source Control (Ctrl+Shift+G), et copier tout ce qui est nouveau ou modifié dans vos fichiers.
Tous les changements ne seront pas appliqués sur une mise à jour du microprogramme, pour cela vous devrez réinitialiser vos paramètres d'imprimante :
-
en allant dans le menu de l'imprimante - Configuration - Restaurer les valeurs par défaut,
-
ou en envoyant un M502 à l'imprimante suivi d'un M500
Cela réinitialisera vos paramètres en fonction des valeurs par défaut du microprogramme. Cette réinitialisation est à faire après chaque installation du firmware afin d’éviter toute déconvenue.
<EDIT>
Depuis la version stable 2.0.9.3, une nouvelle directive «EEPROM_INIT_NOW» permet de réaliser automatiquement la réinitialisation de l'EEPROM après flashage d'un nouveau firmware :
Citation#if ENABLED(EEPROM_SETTINGS)//#define EEPROM_AUTO_INIT // Init EEPROM automatically on any errors.#define EEPROM_INIT_NOW // Init EEPROM on first boot after a new build.#endifQuelques explications sur les commandes M500 à M503 :
Changelog
20200414 : version initiale
20200510: corrections, compléments, version «problématique» pour certains
- désactivation totale du LINEAR_ADVANCE qui ne l'était pas vraiment
- réactivation du CLASSIC_JERK
-
ajout détecteur fin de filament, directives concernant INVERTING, PULLUP, PIN
-
complément information sur la connexion du BLTouch (Z_MAX_PIN 19)
-
ajout dans la section Flashage, programme AVRDUDESS, possibilité de flasher via VSC si ordinateur relié via USB à la carte (détection automatique du port).
20200619 : corrections, modifications
-
cosmétique : mise en évidence de certains points
-
précisions diverses
-
la vitesse de connexion à passée de 115200 à 250000,
-
précision sur la désactivation du «linear advance»
-
modification du BLOCK_BUFFER_SIZE, BUFSIZE et TX_BUFFER_SIZE dans le fichier configuration_adv.h (des valeurs trop élevées amènent à un dépassement de la capacité de stockage de la RAM pouvant conduire à un écran «bleu» suite au flashage),
-
mise à jour des fichiers de configurations
-
suppression du fichier binaire (chacun devra compiler son propre firmware)
20200801:
- version de Marlin, dernière en date (2.0.6)
- suppression du fichier compressé du Marlin
- lien vers mon dépôt Github (pour les plus curieux, j'ai d'autres branches de Marlin pour d'autres imprimantes / cartes mères)
- suppression du fichier binaire (je préfère que les utilisateurs progressent en effectuant la compilation eux-mêmes)
- ajout explications M500 / M503
202020815:
- corrections mineures (orthographe principalement)
- complément / rectification concernant les fichiers exemples de configuration fournis par Marlin (la CR10-V2 fait désormais partie des imprimantes à partir de la version stable 2.0.6)
20200918:
- corrections mineures (orthographe principalement) passées inaperçues
- passage de mon extrudeur à un BMG à réduction (3:1) dont le pas est de 415
20201012:
- version de Marlin, dernière stable : 2.0.7.1
20201026:
- version de Marlin, dernière stable : 2.0.7.2
- complément sur le Mesh Bed Levelling (ABL du «pauvre»)
20210111:
- complément pour ceux possédant une CR10-V3
20210815:
- version de Marlin, dernière stable : 2.0.9.1
20210822:
-
Complément afin d'indiquer les directives de compilation qui ont changé de nom depuis la mise en ligne de ce tutoriel basé à l'origine sur un Marlin 2.0.3 : HOMING_FEEDRATE_Z, Z_STOP_PIN, MIN_PROBE_EDGE, XY_PROBE_SPEED sont dénommées autrement (merci à @Pyroadu signalement
)
20210927:
- Ajout d'un lien vers un tutoriel de ce forum sur l'installation de son environnement de travail afin de faire son propre firmware
20220103:
- version de Marlin, dernière stable : 2.0.9.3
- ajout d'une nouvelle directive permettant de réinitialiser l'EEPROM automatiquement lors du premier lancement du firmware après flashage
Les fichiers ayant servi à la compilation : à récupérer sur mon dépôt Github .
-
-
Colles et PLA
Coller le PLAUn petit récap des membres et de leur astuces pour coller du PLA :
Celles qui ne fonctionnent pas :
- colle néoprène : migreur
- mastic colle en cartouche : migreur
- colle PVC : Trob, migreur
- colle maquette de Sader : migreur
- colle Revell Contacta Professional : ScotchE67
Celles qui fonctionnent :- super glue & Loctite 454 (Cyanoacrylate) : delirium07, Nebraan, J-Max.fr, ScotchE67, J-Max.fr, utile izateur, Dumnac, Rioma, macandnews, frbtlil62, Marc3D
- colle polyuréthane : J-Max.fr, Shinichi
- colle epoxy : utile izateur, TheSchemer, Vincent
- jus d'ABS : Nebraan
- colle 21 (Cyanoacrylate) : nothing_fr
- colle scotch : nicephore
- colle vinylique : gisclace, migreur
- colle SiKaflex : azbloc
- colle chaude : migreur, nono30, ScotchE67, BastienX8
- dichlorométhane : rio31, marcolelectro, Ironblue
- fer à souder : BastienX8
- colle liquide Siléa (Leclerc): ScotchE67
- colle PVC : Yo', macandnews
- stylo 3d : marcolelectro
- colle plastique rigide de Sader : Shadow3S, Keryn
- bâtonnets de PLA + pistolet à colle : Tircown
- colle 3DOGlue : ixi, Hervé-34, Titi78, Ironblue, Stefbull, juanpa, macandnews, Idealnight
- soudage par friction : 4sStylZ
- colle Bison Kit (Action) : Wolfmaniac
Mis à jour le 12/04/2021
-
Steppers Vref
Pièges des réglages Vref A4988 ou DRV8825Bonjour à toutes et tous,
J’entends souvent beaucoup de choses sur le réglage des drivers moteurs, bien souvent on me parle d’un réglage usine hypothétique, ou à l’oreille ou lors des nuits de pleine lune quand le vent souffle à l’ouest !
Je lis souvent « moi j’ai une Vref à 1.6V » et ça ne veut rien dire car il manque des informations capitales !
Le courant généré peut passer du simple au double ou même être hors limite si les modules ne sont pas strictement identiques !Donc NON, le réglage de la tension de référence (Vref) sur un driver de moteur pas à pas ne se fait pas de manière empirique !
Il faut absolument connaitre plusieurs caractéristiques pour régler correctement ces bestioles.- Coté driver, le circuit utilisé A4988 ou DRV8825 a son importance et va surtout de pair avec la valeur des résistances « Rsense » qui sont présentent sur le PCB, elles-y sont souvent sérigraphiées « S1, S2, S1X, S2X, R1, R2…», et peuvent avoir comme valeur 0.05 ohm (Marquage R050), 0.1 ohm (R100) ou 0.2 ohm (R200) donc on sort la loupe pour être sûr.
- Coté moteur, il faut chercher son courant de fonctionnement par phase (Imax) qui a été calculé par le fabriquant en fonction de ses caractéristiques.
Si ce courant n’est pas indiqué par le vendeur du moteur, on cherche chez SON fabriquant avec SA référence dans son datasheet.
Sous-alimenté, il va perdre son couple et risque même de vibrer sans pouvoir garder sa position stable.
Suralimenté, il va faire beaucoup de bruit par résonance et bien entendu surchauffer (le driver également par contre réaction).Après une longue discussion avec un constructeur de moteur de type Nema (GE), il s'avère que le Imax d'un moteur n'est pas son Inominal, il faut donc diviser Imax par racine de 2 pour trouver Inom.
j'ai donc mis à jour le tableau en correspondance.On calcule donc la valeur de Vref à régler avec le petit potentiomètre, la formule est donnée dans le datasheet du constructeur du driver, et est :
on calcule Inom = Imax divisé par racine(2)
Pour un A4988 : Inom = Vref / (8 * Rsense) donc Vref = Inom * 8 * Rsense
Pour un DRV8825 : Inom = Vref / (5 * Rsense) donc Vref = Inom * 5 * RsenseLa valeur maximale de la limitation de courant est donc définie en interne en fonction de la valeur des Rsense et de la tension de la broche Vref.
Exemples de calculs :
Un A4988 avec des Rsense de 0.05 ohm (Marquage R050) et un moteur avec un Imax à 1.8A, Inom = 1.27A : Vref = 1.27 * 8 * 0.05 = 0.51V.
Un DRV8825 avec des Rsense de 0.1 ohm (Marquage R100) et un moteur avec un Imax à 2.1A, Inom = 1.48A : Vref = 1.48 * 5 * 0.1 = 0.74V.
Un A4988 avec des Rsense de 0.2 ohm (Marquage R200) et un moteur avec un Imax à 1.5A, Inom = 1.06A : Vref = 1.06 * 8 * 0.2 = 1.7V.Important :
Le courant maximum par phase pour un A4988 est de 2A et 2.5A pour le DRV8825. Donc si vous êtes dans la limite haute de votre drivers, réduisez un peu Imax.La température du driver peut monter à plus de 150°C si son courant arrive à son maximum admissible et il doit être de toute façon correctement refroidit par un dissipateur et si possible par un flux d’air au-delà de 1A par phase. Il passera en protection thermique et coupera le courant moteur si sa température arrive hors limite.
Voir les datasheets pour les courageux, dont les tableaux « Relative Current and Step Directions » et « Step Sequencing Settings ».
http://www.allegromicro.com/~/media/Files/Datasheets/A4988-Datasheet.pdf
http://www.ti.com/lit/ds/symlink/drv8825.pdfPour les TMC2xxx, il suffit de prendre Inom du tableau et de régler Vref à la même valeur. ex moteur 1.5A, Inom = 1.06A, Vref = 1.06V
attention ceci n'est valable que pour Rsense = 110mΩ
la formule donnée par Trinamic est IRMS = 325mV / (RSENSE + 20mΩ) * 1/√2 * VREF/2.5V
avec des RSENSE = R110 = 110mΩ nous simplifions puisque 325/(110+20) = 2.5 (c'est pour ça que l'on trouve les pilotes avec ces valeurs de RSENSE sur le marché)
IRMS = 2.5 * 1/√2 * VREF/2.5V
2.5 / 2.5 = 1 donc
IRMS = 1/√2 * VREF
je me débarrasse de 1/√2 en multipliant par √2 des deux cotés
√2 * IRMS = √2 * 1/√2 * VREF donc √2 * IRMS = VREF
VREF = √2 * IRMS
et nous savons que IRMS = IMAX / √2
VREF = √2 * IMAX / √2donc VREF = IMAX
comme on prends 70% par sécurité, pour un courant de 1.5A, nous avons 1.5*0.7 = 1.05, réglage de VREF à 1.05V
et ça tombais bien, puisque en prenant 70% de sécurité, c'est comme si on divisais par √2 (0.707...) c'est une astuce d'électronicienc'est comme si en prenant 70% de sécurité, on prenait la valeur RMS de ce courant IMAX
pour simplifier, avec 70% de sécurité, IMAX * 0.707 = IMAX / √2 = IRMS
donc on peut régler VREF à la valeur APPARENTE de IRMS, sous entendu que ça contient déjà les 70% de sécurité.
mais ça ne fonctionne qu'avec des RSENSE à 110mΩ
vous trouverez un XLS pour ces calculs, vous pouvez y changer Rsense si ça valeur n'est pas standard.
ATTENTION les TMC sont hyper sensible à la température, ils doivent impérativement être refroidit sous un courant d'air, avec un dissipateur conséquent.
Bonne lecture.
Stef
le tableau corrigé pour avoir une idée de Vref en fonction des valeurs d'Imax du moteur.
-
Filaments HiSpeed
Filaments hautes vitesses la réponse d'ArianePlastJ'ai contacté Jean Marc d'ArianePlast pour avoir des précisions concernant les filaments hautes vitesses
Voici ma question suivi de sa réponse :
Je voudrai avoir ton avis sur les filaments hautes vitesses, penses tu que c'est une arnaque commercial ou une réalité ?
Pour t'apporter quelques précisions concernant les filaments haute vitesse c'est simplement un grade de PLA plus fluide qui est utilisé. Comme il est plus fluide le moteur va arriver à pousser le fil à une température d'affichage " normale d'utilisation " aux alentours des 200°c.
Pour t'expliquer un peu plus dans les détails plus un pla a des chaines de molécules longues / plus il est résistant mécaniquement / plus il est compliqué a fabriqué / plus il est cher / et plus il faut le chauffer.
Un test simple pour le voir tu prend un fil HI speed et tu descend la température de ta buse a 160°C , tu constatera que tu arrive toujours a le pousser et il s'écoulera.
Un pla Arianeplast ( grade ingeo 4043D) tu n'arriveras pas à le faire fondre a 160°C.
Si tu essayes de fabriquer du pla dans ta cuisine comme on peut le voir dans certaines vidéos sur YouTube tu va arriver à faire un PLA qui va durcir mais à peine tu vas le chauffer qu'il sera à nouveau liquide. ( ça c'est un pla de faible qualité)
Par contre si tu fabrique un PLA dans un laboratoire ou en industrie avec tout le matériel nécessaire tu vas arriver à faire un pla avec des chaines de molécules beaucoup plus longues (ce qui caractérise en général un polymère de qualité et résistant) Et là tu va avoir un plastique qu'il va falloir chauffer plus pour le ramener à nouveau à l'état visqueux (visqueux, mais pas liquide)
Moins le pla est de bonne qualité plus tu peut l'imprimer vite a une température " de base 200°c"
Ce qu'il faut toujours garder en tête c'est le temps de séjour du fil dans la tête d'impression. C'est pour cela que toutes les imprimantes ont des bloc de chauffe et des buses plus longue.
Par exemple j'ai réalisé des pièces avec notre PETg à haute vitesse. température standard noté sur la bobine 245°C
A cette vitesse tu pourras constater qu'a une vitesse de 300mms la dépose ne se fait plus correctement. Le remplissage va devenir merdique car la couche chaude ne va pas se souder à la couche précédente.
Tu pourras aussi observer que ta pièce va devenir plus mat. ( c'est que tu ne fais pas bien fondre ton polymère)
Il suffit juste d'augmenter la température a 265°C pour constater que le remplissage va à nouveau bien se déposer (le temps de monter de quelques couches) et ta pièce va redevenir brillante. (comme elle l'est en temps normal aux vitesses que l'on avait l'habitude d'utiliser sur les générations de machines précédentes)
C'est exactement pareil avec n'importe quel polymère. PLA/ABS/Nylon ect
Tu peux utiliser des fil " normaux " à très haute vitesse, il suffit de ne pas avoir peur de sortir des tranches de températures défini sur la bobine. (Ils auront même tendance à garder une meilleure forme et à mieux garder les côtes de ta pièce en refroidissant)
Les fabricants de fil ont défini des bases de température sur les machines qui étaient commercialisé jusqu'à présent. PLA 200/230°c
Le fait que les machines ont évoluées, fait que les indications de température ne sont pas bonnes pour des vitesses rapides (10x plus rapide qu'avant)
Je pense que les fabricants chinois ont favorisé des grades de PLA plus fluide pour ne pas devoir surdimensionner le moteur de l'extruder à cause de l'inertie pendant les mouvements pour pouvoir imprimer vite. Et pour se faciliter leur travail au niveau des sondes de températures et des cartouches de chauffes
Et les utilisateurs particuliers ne font pas de test de résistance mécanique en laboratoire surtout pour faire de la figurine, donc un PLA plus fluide et moins résistant mécaniquement pour de l'industrie sera perçu comme plus qualitatif pour un particulier parce qu'il est " HI speed".
J'imprime les pièces PLA qu'on produits sur K1 et K1 max a une température de 245°C alors que sur une CR10 je les utilisais a 225°c. (buse 0.4mm)
J'imprime les pièces PETG a 265°c sur k1 et K1max alors que sur CR10 je travaillais a 245°C (buse de 0.4mm)
Plus je mets une buse grosse, plus je diminue la température.
En espérant que cela puisse aider des utilisateurs.
Bien sûr tu peux publier ma réponse