Ambo73 Posté(e) Janvier 15, 2022 Posté(e) Janvier 15, 2022 Bonjour, Sur toutes les imprimantes 3D on trouve des fonctions dites "utilitaires" qui permettent par exemple de faire le niveau du plateau, ou de faire préchauffer buse et/ou plateau ou encore de mettre en pause une impression. Ces fonctions sont accessibles par l'écran, sensitif ou avec bouton de sélection. Voici ma question: où trouve t-on les sous-programmes qui gèrent ces fonctions? - dans le firmware de la carte mère? - dans le firmware de l'écran? - ailleurs ? Perso, j'ai une Alfawise U30pro. J'ai cherché dans le firmware Marlin mais je n'ai rien trouvé qui ait un rapport avec ces fonctions. En même temps, mes connaissances sur Marlin sont probablement insuffisantes d'où mon échec à les trouver... Est-ce que vous avez une idée, une suggestion?
RFN_31 Posté(e) Janvier 15, 2022 Posté(e) Janvier 15, 2022 Bonsoir, Ta question est compliquée car peu compréhensible: - niveau du plateau : c'est essentiellement mécanique. Si tu parles de l'offset Z, on peut le préparamétrer dans le Firmware de la CM (Marlin : NOZZLE_TO_PROBE_OFFSET). Mais si tu parles du mesh du plateau, ces valeurs sont stockées dans l'EEPROM et donc doivent être mesurées sur la machine par le BL Touch. - le préchauffage est dans le firmware CM : section temperature, preheat constant -mettre en pause : je ne comprends pas car cela ne peut se faire que par intervention ou sur un évènement. Pourrais-tu être plus précis dans ta demande ?
Ambo73 Posté(e) Janvier 15, 2022 Auteur Posté(e) Janvier 15, 2022 (modifié) bonsoir @RFN_31 Oui, j'admets que ma question est mal formulée... Pour le nivellement du plateau, sur la U30pro mais ça existe aussi sur d'autres, il y a une séquence automatique qui se lance quand on appuie sur le bouton LEVELLING. Il faut choisir un des 4 coins du plateau en appuyant sur le bouton correspondant, puis la tête se déplace toute seul vers ce point. Ainsi de suite pour les autres points. Il y a donc bien un programme qui gère ces déplacements. Où se trouve t-il? Pour le préchauffage, idem. Il y a bien une sous-routine qui, quand on appuie sur le bouton PLA ou ABS, lance la mise en chauffe à une température préréglée dans ladite routine. Où se trouve t-elle? Dans le firmware de la CM, je n'ai pas trouvé de lignes de code lançant par exemple le gcode M104 Sxxx ou M140 Sxxx quand on appuie sur les boutons de l'écran... Enfin, pour la mise en pause, je pensais surtout au changement de filament. Quand il n'y a plus de filament, ou si l'on veut changer de filament, on appuie sur un bouton FILAMENT CHANGE/UNLOAD/LOAD et une séquence se met en marche. Où se trouve le programme gérant cette séquence? Voilà, j'espère avoir été plus clair maintenant... Sinon, il faut me le dire à nouveau... Merci de ton aide. Modifié (le) Janvier 15, 2022 par Ambo73
RFN_31 Posté(e) Janvier 16, 2022 Posté(e) Janvier 16, 2022 Tout cela se trouve dans le firmware avant compilation : c'est paramétré dans les fichiers configuration.h et configuration_adv.h
Idealnight Posté(e) Janvier 16, 2022 Posté(e) Janvier 16, 2022 Les fonctions apparaissant dans l'écran sont géré par marlin (ou autre comme klipper) et sont donc a activer/configurer dans celui-ci. Mais il y'a aussi des moyens détournés pour certaines fonctions via des logiciels comme pronterface ou par gcode ou par octoprint.
Kachidoki Posté(e) Janvier 16, 2022 Posté(e) Janvier 16, 2022 Salut, Habituellement et historiquement c'est géré par le firmware "principal", Marlin. L'écran n'étant qu'un périphérique sans intelligence (comme un écran de PC). Mais les écrans modernes embarquent de plus en plus de choses. Les BTT TFT par exemple, ont leur propre firmware et reprennent des fonctions à leur compte, du coup pas mal de choses sont gérées par l'écran dans ce cas. C'est d'ailleurs assez pénible car certains comportements sont différents, comme l'annulation d'une impression en cours.
Ambo73 Posté(e) Janvier 16, 2022 Auteur Posté(e) Janvier 16, 2022 bonjour, merci pour vos interventions et commentaires. @RFN_31 Oui, c'est ce que je pensais mais j'ai fouillé un peu et je n'ai rien trouvé correspondant à ce que cherche... @Idealnight Quand tu dis "Les fonctions apparaissant dans l'écran sont géré par marlin (ou autre comme klipper) et sont donc a activer/configurer dans celui-ci." "Dans celui-ci", tu veux dire dans "Marlin de la CM" ou dans "l'écran" ? @Kachidoki Tu dis "Mais les écrans modernes embarquent de plus en plus de choses". Est-ce que l'écran de la U30pro fait partie de ces écrans "modernes" ?
Savate Posté(e) Janvier 16, 2022 Posté(e) Janvier 16, 2022 il y a 6 minutes, Ambo73 a dit : "Dans celui-ci", tu veux dire dans "Marlin de la CM" ou dans "l'écran" ? Marlin est sur la carte mère et c'est Marlin qu'il faut modifier il y a 8 minutes, Ambo73 a dit : Oui, c'est ce que je pensais mais j'ai fouillé un peu et je n'ai rien trouvé correspondant à ce que cherche... Mais que cherches tu ?
jmarie3D Posté(e) Janvier 16, 2022 Posté(e) Janvier 16, 2022 Il y a 16 heures, Ambo73 a dit : J'ai cherché dans le firmware Marlin mais je n'ai rien trouvé Tu n'as pas cherché longtemps. Pour le leveling, c'est dans src/gcode/bedlevel Pour les températures, c'est dans src/gcode/temp Et ainsi de suite...
Ambo73 Posté(e) Janvier 16, 2022 Auteur Posté(e) Janvier 16, 2022 @jmarie3D Ça ressemble bien à ce que je cherche en effet mais je suis sous Marlin 1.1.9 et quand je l'ouvre avec l'Arduino IDE, je ne trouve pas d'onglet correspondant à ce que tu dis.... Il y a un truc qui m'échappe...
jmarie3D Posté(e) Janvier 16, 2022 Posté(e) Janvier 16, 2022 (modifié) Effectivement dans Marlin 1.1.9, tout est dans le même répertoire, mais on retrouve les fonctions : mesh_bed_leveling.cpp, temperature.cpp... Après, comme le disent d'autres contributeurs, les constructeurs incluent parfois des fonctions à eux et s'ils ne fournissent pas le code source, tu es chocolat. Modifié (le) Janvier 16, 2022 par jmarie3D
Ambo73 Posté(e) Janvier 16, 2022 Auteur Posté(e) Janvier 16, 2022 (modifié) @jmarie3D OK, je vais regarder cela un peu plus en détail. Merci. Pour mon info perso, que signifie dans les noms des onglets les groupes de lettres LGT, .cpp, SCR, .h ? Modifié (le) Janvier 16, 2022 par Ambo73
jmarie3D Posté(e) Janvier 16, 2022 Posté(e) Janvier 16, 2022 .cpp et .h c'est du C++ Si tu ne sais pas ce que c'est, je ne comprends pas ce que tu cherches à faire. LGT et SCR, je ne sais pas. Ils n'existent pas dans les sources de base. Peut-être justement des fichiers ajoutés par le constructeur ? SCR= screen = image ?
Ambo73 Posté(e) Janvier 16, 2022 Auteur Posté(e) Janvier 16, 2022 @jmarie3D Je n'ai pas d'expérience en langage C++. Je connais seulement la programmation Arduino avec laquelle je me débrouille pas mal mais c'est tout. En fait ce que je cherche, outre ma culture perso, est en relation avec un post que j'ai posé récemment dans le forum dédié Alfawise/Longer3D J'aimerais connaître les vitesses/accélérations utilisée dans le sous-programme de "changement de filament"...
Kachidoki Posté(e) Janvier 16, 2022 Posté(e) Janvier 16, 2022 Il y a 4 heures, Ambo73 a dit : Est-ce que l'écran de la U30pro fait partie de ces écrans "modernes" ? Ca m'en a tout l'air, il y a un firmware dans la carte mère, et un autre dans l'écran.
jmarie3D Posté(e) Janvier 16, 2022 Posté(e) Janvier 16, 2022 Il y a 2 heures, Ambo73 a dit : J'aimerais connaître les vitesses/accélérations utilisée dans le sous-programme de "changement de filament"... Pour ça le plus simple est de se raccorder avec Pronterface sur l'imprimante et de taper M503. Extrait de la réponse sur mon imprimante: Citation echo:; Maximum feedrates (units/s): echo: M203 X200.00 Y200.00 Z200.00 E60.00 echo:; Maximum Acceleration (units/s2): echo: M201 X1500.00 Y1500.00 Z1500.00 E3000.00 echo:; Acceleration (units/s2): P<print_accel> R<retract_accel> T<travel_accel> echo: M204 P800.00 R2000.00 T800.00 echo:; Advanced: B<min_segment_time_us> S<min_feedrate> T<min_travel_feedrate> X<max_x_jerk> Y<max_y_jerk> Z<max_z_jerk> E<max_e_jerk> echo: M205 B20000.00 S0.00 T0.00 X5.00 Y5.00 Z5.00 E5.00
Ambo73 Posté(e) Janvier 16, 2022 Auteur Posté(e) Janvier 16, 2022 (modifié) @Kachidoki Pas bonne nouvelle pour ma recherche... Il se pourrait bien alors que les routines "utilitaires" se trouvent dans le FW écran... Encore une question de béotien: comment peut-on "lire" sur PC le contenu des programmes du FW écran? (j'ai téléchargé le répertoire complet sur le github). @jmarie3D oui, je connais le M503. J'y voit effectivement la Vmax de l'extrudeur à 60 mm/s. Je vais essayer de baisser cette vitesse (avec parcimonie) pour voir si j'ai toujours mon pb de Unload. Je ne sais pas si c'est cette vitesse max qui est utilisée dans la routine "changement de filament", je verrai bien... Modifié (le) Janvier 16, 2022 par Ambo73
Idealnight Posté(e) Janvier 16, 2022 Posté(e) Janvier 16, 2022 non l'écran a son firmware mais juste pour fonctionner avec celui de la carte mère qui possède marlin ou autre et donc toutes les fonctions. C'est juste plus "délicat" puisque les 2 doivent fonctionner ensemble car suivant ce que tu choisis comme marlin et fonctions il faut que le firmware de l'écran soit adapté pour afficher cela. Pour la connexion @jmarie3D te l'a noté, le pc raccordé en usb a l'imprimante avec le logiciel pronterface. Vérifier que l'imprimante soit bien reconnue dans les ports com
Ambo73 Posté(e) Janvier 16, 2022 Auteur Posté(e) Janvier 16, 2022 il y a une heure, Idealnight a dit : non l'écran a son firmware mais juste pour fonctionner avec celui de la carte mère qui possède marlin ou autre et donc toutes les fonctions. OK, donc il faut bien que je cherche là. il y a une heure, Idealnight a dit : Pour la connexion @jmarie3D te l'a noté, le pc raccordé en usb a l'imprimante avec le logiciel pronterface. Vérifier que l'imprimante soit bien reconnue dans les ports com Oui, c'est bien Pronterface que j'utilise régulièrement. Merci à tous pour vos interventions. A ce stade, je n'ai pas vraiment trouvé la réponse à ma question mais je vais persévérer en fouillant plus profond dans Marlin.
fran6p Posté(e) Janvier 16, 2022 Posté(e) Janvier 16, 2022 Il y a 5 heures, Ambo73 a dit : J'aimerais connaître les vitesses/accélérations utilisée dans le sous-programme de "changement de filament"... Une partie de ton questionnement se trouve dans les deux fichiers de configuration principaux. Extrait de ce sujet (d'autres fonctions sont abordées) : Citation 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 gcode (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 Marlin Filament Change M600 Filament Runout Sensor Si tu comprends a minima l'anglais, les fichiers de configuration de Marlin sont très documentés. Tu peux également y accéder ici .
Ambo73 Posté(e) Janvier 16, 2022 Auteur Posté(e) Janvier 16, 2022 Il y a 4 heures, fran6p a dit : Une partie de ton questionnement se trouve dans les deux fichiers de configuration principaux. Extrait de ce sujet (d'autres fonctions sont abordées) : Si tu comprends a minima l'anglais, les fichiers de configuration de Marlin sont très documentés. Tu peux également y accéder ici . Je rappelle que je suis sous MARLIN 1.9.0. Les config que tu proposes ne sont pas plutôt pour MARLIN 2.0 ? Je retrouve cependant des lignes comparables. Je vais essayer de mieux comprendre.
fran6p Posté(e) Janvier 17, 2022 Posté(e) Janvier 17, 2022 (modifié) Il y a 11 heures, Ambo73 a dit : Je rappelle que je suis sous MARLIN 1.9.0. Les config que tu proposes ne sont pas plutôt pour MARLIN 2.0 ? Cette version n'existe pas par contre existe l'antédiluvienne 1.1.9.1 Marlin reste Marlin même en passant en version 2 (2.0.9.3 à ce jour) et hormis quelques noms de directives qui ont été modifiés au fil du temps, le code est très semblable. Marlin 1.1.9.1, configuration.h : Citation /** * Filament Runout Sensors * Mechanical or opto endstops are used to check for the presence of filament. * * RAMPS-based boards use SERVO3_PIN for the first runout sensor. * For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc. * By default the firmware assumes HIGH=FILAMENT PRESENT. */ //#define FILAMENT_RUNOUT_SENSOR #if ENABLED(FILAMENT_RUNOUT_SENSOR) #define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each. #define FIL_RUNOUT_INVERTING false // set to true to invert the logic of the sensor. #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins. #define FILAMENT_RUNOUT_SCRIPT "M600" #endif et configuration_adv.h Citation /** * Advanced Pause * Experimental feature for filament change support and for parking the nozzle when paused. * Adds the GCode M600 for initiating filament change. * If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle. * * Requires an LCD display. * Requires NOZZLE_PARK_FEATURE. * This feature is required for the default FILAMENT_RUNOUT_SCRIPT. */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate. #define PAUSE_PARK_RETRACT_LENGTH 2 // (mm) Initial retract. // This short retract is done immediately, before parking the nozzle. #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // (mm/s) Unload filament feedrate. This can be pretty fast. #define FILAMENT_CHANGE_UNLOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (mm) The length of filament for a complete unload. // For Bowden, the full length of the tube and nozzle. // For direct drive, the full length of the nozzle. // Set to 0 for manual unloading. #define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE 6 // (mm/s) Slow move when starting load. #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0 // (mm) Slow length, to allow time to insert material. // 0 to disable start loading and skip to fast load only #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. #define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. // For Bowden, the full length of the tube and nozzle. // For direct drive, the full length of the nozzle. //#define ADVANCED_PAUSE_CONTINUOUS_PURGE // Purge continuously up to the purge length until interrupted. #define ADVANCED_PAUSE_PURGE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. #define ADVANCED_PAUSE_PURGE_LENGTH 50 // (mm) Length to extrude after loading. // Set to 0 for manual extrusion. // Filament can be extruded repeatedly from the Filament Change menu // until extrusion is consistent, and to purge old filament. // Filament Unload does a Retract, Delay, and Purge first: #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. #define FILAMENT_UNLOAD_DELAY 5000 // (ms) Delay for the filament to cool after retract. #define FILAMENT_UNLOAD_PURGE_LENGTH 8 // (mm) An unretract is done, then this length is purged. #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif Tu peux constater qu'il y a peu de différences Modifié (le) Janvier 17, 2022 par fran6p 1
Kachidoki Posté(e) Janvier 17, 2022 Posté(e) Janvier 17, 2022 Il y a 18 heures, Idealnight a dit : non l'écran a son firmware mais juste pour fonctionner avec celui de la carte mère qui possède marlin ou autre et donc toutes les fonctions. Je ne sais pas si c'est pareil pour le firmware de l'U30 pro, mais sur ma machine avec une BTT GTR + BTT TFT35, l'écran peut basculer du mode TFT au mode Marlin (émulation de l'écran LCD). En mode Marlin, la communication se fait en SPI, à l'ancienne via les nappes, la carte SD est lue directement par la carte mère et tout est géré par Marlin. En mode TFT, la communication passe en UART, et l'écran prend des initiatives. Par exemple, la pause ou l'annulation d'une impression ne déplace pas la tête d'impression et ne coupe pas la chauffe. Pour les réglages comme les PID ou le leveling, c'est l'écran qui gère, et envoie les G-Code adaptés à la carte mère. Il est même capable d'ajouter son propre start et stop G-Code aux impressions qu'on lance. Et c'est parfois pénible de ne pas avoir le comportement attendu car on pense que c'est correctement réglé dans Marlin, alors que c'est l'écran qui va prendre la main, et c'est lui qu'il faut régler pour certaines fonctions (comme pour pause / cancel).
Ambo73 Posté(e) Janvier 17, 2022 Auteur Posté(e) Janvier 17, 2022 il y a une heure, fran6p a dit : Cette version n'existe pas par contre existe l'antédiluvienne 1.1.9.1 Bonjour, oui, c'est une mauvaise faute de frappe de ma part... Trop distrait je suis... il y a une heure, fran6p a dit : Marlin reste Marlin même en passant en version 2 (2.0.9.3 à ce jour) et hormis quelques noms de directives qui ont été modifiés au fil du temps, le code est très semblable. Tu peux constater qu'il y a peu de différences Oui, j'ai remarqué cela en effet. Je vais essayer de bien tout comprendre avant de faire quoi que ce soit... Il y a 20 heures, jmarie3D a dit : Pour ça le plus simple est de se raccorder avec Pronterface sur l'imprimante et de taper M503. Je reviens sur le M503. J'aimerais modifier le feedrate max de l'extrudeur. Les valeurs affichées via Octoprint sont: echo:Steps per unit: echo: M92 X80.00 Y80.00 Z400.00 E423.56 echo:Maximum feedrates (units/s): echo: M203 X500.00 Y500.00 Z12.00 E120.00 echo:Maximum Acceleration (units/s2): echo: M201 X9000.00 Y9000.00 Z500.00 E10000.00 J'ai un peu honte de poser la question mais comment modifier la valeur de E120 dans le M203? Je croyais savoir faire mais quand je tape M203, les paramètres ne s'affichent pas.... Pourtant M203 est bien le gcode qui permet le réglage des paramètres des feedrate max non? j'ai seulement Send: M203 Recv: ok
jmarie3D Posté(e) Janvier 17, 2022 Posté(e) Janvier 17, 2022 M203 tout seul ne renvoie pas le résultat, je pensais comme toi mais ça ne fonctionne pas. Il faut refaire M503 pour le lire
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant