systemic Posté(e) Février 24, 2018 Posté(e) Février 24, 2018 Hello J'ai créé un firmware pour la mega v2 (pas d'ABL, dual Z et carte trigorilla 8bits) qui est un mélange du travail de Murdock avec son écran TFT32 MKS et du travail d'un certain Derhopp de thingiverse. Cette version permet de passer en 1.1.8 en gardant l'écran de base de l'imprimante. Les sources sont disponibles sur github ici : https://github.com/systemik/Marlin Pour l'installer, c'est comme d'habitude, avec arduino pour la compilation et ensuite on pousse le tout sur l'imprimante. Moi je fais le fichier .hex et je l'envoi avec Octoprint (via le plugin firmware). Les valeurs dans le fichier de conf pour le tuning ou les pas de l'extrudeur sont normalement bonnes pour commencer. Si besoin, un petit M502 et M500 pour mettre l'EEPROM a jour. Pour revenir en arrière, il suffit de remettre le fichier original de Anycubic (sur leur site web). Différence par rapport au firmware officiel anycubic: Pas de music Pas de reprise après coupure de courant Reste des tests a faire pour voir si tout est ok Nouveauté autre que marlin : DerHopp a fait un menu special dans la partie SD. Si vous aller dans le menu print, vous pouvez sélectionner “Special Menu” en haut et appuyer sur le bouton rond/fleche pour entrer dans le menu. Depuis la, vous avez deja quelques entrées de configuré (read eeprom, save eeprom, auto bed …). Ça compense le manque de customisation du lcd. Et c’est facile d’en rajouter au besoin comme allumage des leds par exemple. Au besoin, voila les deux manipulations à faire (même si vous utilisée un autre imprimante ou autre marlin c'est pareil) : PID Tuning: On part à froid et on fait un : M303 E0 S200 C8 On note les valeurs trouvé à la fin du genre : Recv: PID Autotune finished! Put the last Kp, Ki and Kd constants from below into Configuration.h Recv: #define DEFAULT_Kp 14.23 Recv: #define DEFAULT_Ki 1.03 Recv: #define DEFAULT_Kd 49.32 et on fait un : M301 P14.23 I1.03 D49.32 et on sauve avec un M500 Extrudeur Steps: On note la valeur actuelle des pas à la commande M503 et on regarde la valeur trouvé pour le M92 derrière le paramètre E (92.6 par defaut sur la i3) Pour régler son extrudeur, on fait une marque sur le filament depuis l'extrudeur sur 15 cm par exemple. On remet le compteur d'extrusion à zero avec un G92 E0 Ensuite on chauffe la hotend et on lance la commande suivante pour faire avancer de 10 cm le filament : G1 E10 F 92 Ensuite on mesure combien de centimètre il reste entre la marque et l'extrudeur et on calcul la nouvelle valeur de pas : Ex : 9.1 cm sont pris au lieu de 10 donc la valeur sera 92.6*100/91 = 102 (ancienne valeur * 100 / nombre de cm pris). On envoie la nouvelle valeur dans l'imprimante : M92 E102 On sauve les valeurs : M500 Merci pour le retour si y'en a qui veulent tester. J'ai déja pas mal printé avec et j'ai pas eu de soucis (autre que le ventilo de refroidissement un peu trop puissant). Au besoin je peux mettre le .hex dans le topic pour ceux qui veulent pas s'embéter à compiler. Sinon, du coté des autre développeurs, un d'eux fait des modification de l'ecran anycubic. Video de démo de ce qu'il n'a pas encore partager avec le grand public : https://www.youtube.com/watch?v=zVJC_jGTYwQ Systemic 1
thsrp Posté(e) Février 24, 2018 Posté(e) Février 24, 2018 Ah ben ça bouge un peu ici ... car plus grand chose ne se passe sur le forum Anycubic.... Tu n'expliques pas en revanche la partie écran.... ou est le nouveau firmware de l'écran avec son menu : "special menu" et comment l'installes tu? je suppose avec le lecteur microsd incorporé sur le board de l'écran...?? de plus, comment customises tu de nouveaux boutons avec de nouvelles fonctions...?
systemic Posté(e) Février 25, 2018 Auteur Posté(e) Février 25, 2018 Désolé, c'est vrai que j'en ai pas dis beaucoup sur le menu. Donc : Aucune modification du firmware de l'écran et aucun bouton nouveau visible. Tout se passe dans un ajout du code du firmware de la trigorilla qui prend en charge l'écran. L'idée de "génie" du dévelopeur c'est d'utiliser l'écran de choix de fichier sur la SD pour s'en servir de menu supplémentaire. Il ajoute au sommet du nom des fichier une entrée qui ressemble à un répertoire et qui s'appelle "special menu". Quand on va dedans on trouve alors une liste d'action possible. Je mets de phots pour mieux expliquer. Si on veux ajouter/modifier ces entrées, il faut éditer le firmware et le renvoyer sur la trigorilla. Tout se passe dans le fichier AnycubicTFT.cpp : dans la partie AnycubicTFTClass::Ls() on ajoute les entrée dans le menu (4 par page) du style <Auto Tune Hotend PID> et ensuite dans la partie AnycubicTFTClass::HandleSpecialMenu() on défini quelle commande(s) va être lancée : M303 C8 S200. En espérant que ce soit plus clair. Systemic
Murdock Posté(e) Février 25, 2018 Posté(e) Février 25, 2018 Hello ! Pas bête en effet d'utiliser un "faux print" pour faire des macro gcode. Par fois on cherche compliqué alors qu'il y a une bidouille simple. Joli boulot pour le firmware. Maintenant plus qu'a prier qu'il n'y aura pas trop de modifs "lourdes" sur marlin. Cela faciliterait les futures Maj.
systemic Posté(e) Février 25, 2018 Auteur Posté(e) Février 25, 2018 Merci surtout à toi et à ce fameux DerHopp (un allemand de ce que j'ai compris). C'est quasiment que du copié collé que j'ai fait :-)
Chaussette Posté(e) Mars 10, 2018 Posté(e) Mars 10, 2018 Seb Laverriere et systemic c'est la même personne?
systemic Posté(e) Avril 12, 2018 Auteur Posté(e) Avril 12, 2018 Pour ceux qui veulent, j'ai faut des petites modifications et une faq sur le GitHub. Testé par pas mal de personnes du forum anglais avec succès. En anglais : Difference compared to anycubic official firmware: No start music No recovery after power failure Thermal runaway active ABL linear active (Touch mi setup) Hotend limitation at 250°. (can be too small for petg and ABS but good limit for V5 hotend) Hotend fan can run at 12V (maybe put 85-90% instead of 100% for the fan otherwise it cool to much) Special menu from Derhopp active. New entry in the menu to put hotend in maintenance position 1
nico21311 Posté(e) Avril 21, 2018 Posté(e) Avril 21, 2018 Bonsoir systemic J'ai une I3 mega V2. Je suis débutant sur la compilation du firmware. Pourrais tu m'aider, 1) J'ai essayer de dowloader le ZIP file sur ta page github. 2) j'ai ouvert le Marlin.ino dans Arduino 1.8.5 3) j'ai sélectionné la carte MEGA2560 et le processeur ATmega2560. 4) j'essaye de compiler avec la touche valider en haut à droite et à 88% j'ai le message suivant : "Global variables use 7210 bytes (88%) of dynamic memory, leaving 982 bytes for local variables. Maximum is 8192 bytes. Low memory available, stability problems may occur." Pourrais tu me dire quelle procédure je ne fais pas correctement ? De plus je vais installer des TMC2208, Est ce que ton firmware est compatible avec c'est driver ? Merci d'avance pour ta réponse
stef_ladefense Posté(e) Avril 21, 2018 Posté(e) Avril 21, 2018 Le 12/04/2018 at 23:15, systemic a dit : Pour ceux qui veulent, j'ai faut des petites modifications et une faq sur le GitHub. Testé par pas mal de personnes du forum anglais avec succès. En anglais : Difference compared to anycubic official firmware: No start music No recovery after power failure Thermal runaway active ABL linear active (Touch mi setup) Hotend limitation at 250°. (can be too small for petg and ABS but good limit for V5 hotend) Hotend fan can run at 12V (maybe put 85-90% instead of 100% for the fan otherwise it cool to much) Special menu from Derhopp active. New entry in the menu to put hotend in maintenance position Salut Systemic, tu as fais quoi comme modif par rapport au code de derhopp ? (https://github.com/derhopp/Marlin-with-Anycubic-i3-Mega-TFT) car effectivement il y a une sacré différence entre les deux compilations le tient : Le croquis utilise 134136 octets (52%) de l'espace de stockage de programmes. Le maximum est de 253952 octets. Les variables globales utilisent 7210 octets (88%) de mémoire dynamique, ce qui laisse 982 octets pour les variables locales. Le maximum est de 8192 octets. La mémoire disponible faible, des problèmes de stabilité pourraient survenir. celui de derhopp : Le croquis utilise 122220 octets (48%) de l'espace de stockage de programmes. Le maximum est de 253952 octets. Les variables globales utilisent 5404 octets (65%) de mémoire dynamique, ce qui laisse 2788 octets pour les variables locales. Le maximum est de 8192 octets. 1
stef_ladefense Posté(e) Avril 21, 2018 Posté(e) Avril 21, 2018 Il y a 2 heures, nico21311 a dit : De plus je vais installer des TMC2208, Est ce que ton firmware est compatible avec ces drivers ? salut, les tmc2208 fonctionnent sans modif du firmware, ou si tu ne veux pas inverser physiquement les câbles des moteurs, tu peux le faire dans le firmware mais les modifs s’arrêtent là. effectivement il y a dans Configuration_adv.h une section tmc2208, mais seulement si tu connectes les tmc2208 à une pin libre pour les configurer via SERIE (softserial). mais ça ne fonctionne pas correctement car softserial ne gère pas correctement une multi connexion sur plusieurs pins, donc pas d’intérêt pour le moment. (par contre les tmc2130 qui se pilotent en SPI, fonctionnent correctement (mais toujours en débug sur marlin 1.x et 2.x). la seule chose qui fonctionne c'est de relier tout les tmc2208 sur la même pin et utiliser la config dans marlin pour programmer le courant sur les drivers de façon logiciel, mais vu le boxon de câblage, de prog, de déclaration, juste pour ne pas avoir à régler vref à la main ... ça vaut pas le coup ! donc tu remplaces simplement les pilotes existant par les tmc2208, tu règles correctement le vref et tu inverses les câbles moteurs (ou tu fait l'inversion soft dans marlin). pour info, Vref pour tmc2208 sur la méga c'est 1.06V. 1
nico21311 Posté(e) Avril 22, 2018 Posté(e) Avril 22, 2018 (modifié) Merci pour tes réponses. Pour ce qui est de la compilation du firmware, si j'ai bien compris compris, le firmware est bien compilé, mais au vue de sa taille, il y a des risque d'instabilité ? Pour finir sur les tmc2208, j ai vue 2 vidéo ou les personne réglaient le vref entre 0.85v et 0.89v sur la même machine, est ce trop bas? Merci d'avance pour votre réponse Modifié (le) Avril 22, 2018 par nico21311
systemic Posté(e) Avril 22, 2018 Auteur Posté(e) Avril 22, 2018 Hello Alors la difference pour la compilation vient surement du fait de l'activation de l'ABL et de ce que je suis en train de rajouter dedans : La possibilité de récupérer un print après une coupure de courant. Comme le firmware original mais avec le dernier code en date du marlin officiel dans la nouvelle banche . (basé sur la CR-10S) et mixé avec la détection de perte de courant avec le code de anycubic. J'ai réutilisé pas mal de commit de la branch debug du marlin officiel donc ça jour aussi sur la compilation car ils ajoutent des tonnes de features et checks dans les derniers temps. Il n'y aura aucun problème d'instabilité et beaucoup de gens utilise ce firmware maintenant sur le forum Anglais. J'ai eu aucun retour d'instabilité. Pour les TMC, J'ai des 2208 et j'ai mis un vref a 1.06 en suivant les excellentes explications de stef_ladefense sur d'autres posts (avec les vrais calculs basés sur les données constructeur). Voila les différences par rapport a la version original : Une FAQ est dispo sur le github :-) Je répond au questions :-) Thermal runaway active. ABL linear active (Touch mi setup). Hotend limitation at 260°. (can be too small for petg and ABS but good limit for V5 hotend). Hotend fan can run at 12V (do not put them at 100%. 85 is enough). Special menu from Derhopp active. -> New entry in the menu to put hotend in maintenance position. + New entry to preheat at 200/60 Et la nouveauté qui va donc être bonne à tester dans les prochains jours : La reprise après coupure de courant. En gros voila ce que j'ai fait : L'activation se fait avec un G6 an début de print (à la place du G5 qui est une fonction qui était canibalisée par anycubic). Au moins la, c'est des Gcode spéciaux. Ensuite, plusieurs cas: si on imprime depuis la SD ou depuis Octoprint en SD, alors on peut reprendre le print directement en utilisant la commande G8 (ou via le menu special aussi). Si on imprime avec une autre méthode comme par exemple octoprint ou depuis un slicer, alors on ne peux pas reprendre le print directement mais on peut avoir la dernière position et les autres infos (X,Y,Z,Temperatures,FANS,Gcode en queue ...) grâce à la commande G7. Exemple :Activation avec G6 : Recv : G6 POWER LOSS RECOVERY ACTIVATEDDetection de coupure de courant et sauvegarde des infos sur la SD (et pas sur l'eeprom comme le faisait anycubic) Recv: POWER LOSS RECOVERY LAUNCHEDRecv: Saving job_recovery_infoRecv: valid_head:1 valid_foot:1Recv: current_position: -5.00: 0.00: 5.00: 0.00Recv: feedrate: 3.33Recv: target_temperature: 22Recv: fanSpeeds: 0Recv: leveling: 0 fade: 0Recv: target_temperature_bed: 22Recv: cmd_queue_index_r: 1Recv: commands_in_queue: 4Recv: > M27Recv: > G1 X150 F200Recv: > G1 Y150 F200Recv: > G1 X-150 F200Recv: sd_filename: /TESTING.GCORecv: sdpos: 367Recv: print_job_elapsed: 14000Recv: Writing to file: binReprise du print avec un G8:Recv: G8 POWER LOSS RECOVERY FROM SDRecv: Init job recovery info. Size: 568Recv: echo:enqueueing "M420 S0"Recv: echo:enqueueing "M190 S22"Recv: echo:enqueueing "M109 S22"Recv: valid_head:1 valid_foot:1Recv: current_position: -5.00: 0.00: 5.00: 0.00Recv: feedrate: 3.33Recv: target_temperature: 22Recv: fanSpeeds: 0Recv: leveling: 0 fade: 0Recv: target_temperature_bed: 22Recv: cmd_queue_index_r: 1Recv: commands_in_queue: 0Recv: > M420 S0 Z0Recv: > G92.0 Z0Recv: > G1 Z2Recv: > G28 X YRecv: > M420 S0 ZRecv: > G92.0 Z7.000 E0.000Recv: > M117 Continuing...Recv: > G1 X150 F200Recv: > G1 Y150 F200Recv: > G1 X-150 F200Recv: > M27Recv: sd_filename: /TESTING.GCORecv: sdpos: 367Recv: print_job_elapsed: 14000Recv: echo:Now fresh file: /TESTING.GCORecv: File opened: TESTING.GCO Size: 944Send: M27Recv: File selectedRecv: okRecv: echo:enqueueing "G28 X Y"Recv: echo:Bed Leveling OffRecv: echo:Fade Height OffRecv: TFT Serial Debug: Bed is heating... J08Recv: TFT Serial Debug: Bed heating is done... J09Recv: TFT Serial Debug: Nozzle is heating... J06Recv: TFT Serial Debug: Nozzle heating is done... J07... 1
stef_ladefense Posté(e) Avril 22, 2018 Posté(e) Avril 22, 2018 (modifié) @systemic j'ai regardé vite fait, il faudrait coller tout les messages qui sont transmis à l'écran en progmem, ça permettra de gagner de la place en vive et surtout ne pas corrompre la pile. sinon superbe boulot Modifié (le) Avril 22, 2018 par stef_ladefense
systemic Posté(e) Avril 22, 2018 Auteur Posté(e) Avril 22, 2018 J'ai regarder pour faire du F() aussi mais j'ai pas encore pris le temps de faire le tour pour voir ou je peux l'appliquer. Sinon j'ai déjà désactivé deux trois fonctions qui servent pas et aussi les directives de debug. A voir dans les prochaines versions :-)
stef_ladefense Posté(e) Avril 22, 2018 Posté(e) Avril 22, 2018 (modifié) a creuser en tout cas F(), car à 52% de place en prog, il y a de quoi en coller dedans. je rebrancherais bien l'écran anycubic rien que pour tester mais je pars pour une quinzaine, alors au retour Modifié (le) Avril 22, 2018 par stef_ladefense
systemic Posté(e) Avril 23, 2018 Auteur Posté(e) Avril 23, 2018 Pour ne pas mixer les genres, j'ai fait une nouvelle branche github pour le power resume et le dev et je laisse la branche "stable" en défaut. Donc plus de problème de mémoire pour ceux qui prennent la version github directement.
systemic Posté(e) Mai 8, 2018 Auteur Posté(e) Mai 8, 2018 Un peu de teasing: demain je donnerai une version 1.1.8 avec le M600 qui marche depuis l'écran tft, ou en usb ou déjà intégré dans le gcode. Un peu plus tard je partagerai la dernière bugfix (quasi 1.1.9) avec M600 (encore mieux que le 1.1.8) et power resume. Ya quelques bugs intermittents sur la branche marlin officiel qui empêchent de donner ça à tout le monde (layer shift mystérieux chez certains).
thsrp Posté(e) Mai 9, 2018 Posté(e) Mai 9, 2018 Alors là comment as tu pu implanter le M600 sur la I3 ??? parles en @Murdock il n'a jamais réussi ... M600 Intégré dans le gcode la Mega l'ignore royalement... avec le M25 elle bug et plante.... (idem M0) j'ai tout essayé... Tu as Cura ou S3D ? si tu as S3d quel script insères tu pour pour faire réagir la Mega ??
systemic Posté(e) Mai 9, 2018 Auteur Posté(e) Mai 9, 2018 Alors voila la chose que je viens de poster sur le forum anglais facebook. Je traduis pas tout mais l'idée doit être assez simple. ça marche bien chez moi et j'attends des retours des personnes qui vont tester. Il a fallut pas mal d'essai pour faire fonctionner les différents cas mais c'est prometteur. Il faut commencer simple avec un cube par exemple et faire une pause et une reprise manuelle via l'écran ou l'usb par exemple. Les sources sont disponibles pour ceux qui veulent voir comment j'ai galéré, raccourci certains controles, et qui veulent mettre les valeurs à leur sauce. J'ai tester beaucoup de choses mais je ne garanti pas encore un résultat pour toutes les combinaisons de pause et gcode. (e.g. problème de M108 dans le emergency parser de marlin) M600 implementation (1.1.8) - Aka V7-M600 Current parameters : Load/unload is configured to 500 (approximate length of the Bowden tube). Filament prime is configure to 50. This will create a bunch of filament on the back left corner before restarting print. Please TEST with simple print (e.g. cube) to check it is working as expecting and as you expect. You can find source code in the specific branch located here : https://github.com/systemik/Marlin/tree/1.1.x-m600-tft (with the documentation below) This version is working mine on my printer but we need some testing of this group to consider this as a working feature. Print started from SD with on demand TFT M600: When the print is on, you can press the "pause" button on the screen and then the gcode buffer will finish few moves, the hotend will park, filament will unload, printer will bip. You can then put new filament and press "continue" button. Filament is then loaded (hotend heating will restart first if required as it stop after a defined idle time) and when ok, the head will continue the print. You can remove filament oozing on the file before hotend start printing again. This can be repeated as many time as you want. "Pause failed" message can appears on screen but this is cosmetic only and cannot be changed. Print started from usb on demand M600 from TFT screen: When the print is on, you can press the "M600 pause" entry in the special menu and then the gcode buffer will finish few moves, the hotend will park, filament will unload, printer will bip. You can then put new filament and press "M600 resume" entry in the special menu. Filament is then loaded (hotend heating will restart first if required as it stop after a defined idle time) and when ok, the head will continue the print. You can remove filament oozing on the file before hotend start printing again. This can be repeated as many time as you want. Print started from usb on demand M600 from usb serial command (need more test to make sure M108 is taken in account every time): When the print is on, you can send M600 and then the gcode buffer will finish few moves, the hotend will park, filament will unload, printer will bip. You can then put new filament and send M108 command to resume. (Alternatively, you can press "M600 resume" entry in the special menu) Filament is then loaded (hotend heating will restart first if required as it stop after a defined idle time) and when ok, the head will continue the print. You can remove filament oozing on the file before hotend start printing again. This can be repeated as many time as you want. Print started from usb M600 in the gcode: When the print is on, when M600 is seen, the hotend will park, filament will unload, printer will bip. You can then put new filament and press "M600 resume" entry in the special menu. Filament is then loaded (hotend heating will restart first if required as it stop after a defined idle time) and when ok, the head will continue the print. You can remove filament oozing on the file before hotend start printing again. This can be repeated as many time as you want. Print started from SD M600 in the gcode: This is not possible for the time being. Download link : https://www.dropbox.com/…/Marlin.i3.mega-1.1.8-systemic-V7-… Source code : https://github.com/systemik/Marlin/tree/1.1.x-m600-tft Have fun and give feedback of successes and issues.
thsrp Posté(e) Mai 9, 2018 Posté(e) Mai 9, 2018 En français cela aurait été mieux... mais je vois que si on a un (ou plusieurs) M600 dans le gcode et sur la carte SD cela ne fonctionne pas... Et c'est bien là le problème .... que personne n'a résolu jusqu'à maintenant... A moins que tu ne trouves la solution... sinon des que j'ai un peu de temps je vais passer à la solution de @Murdock avec le double écran , écran tactile pour les impressions courantes ... et recours au 2è écran pour les choses plus compliquées M600 , baby step... etc... Enfin tient nous au courant... merci
systemic Posté(e) Mai 9, 2018 Auteur Posté(e) Mai 9, 2018 Désolé pour l'anglais mais je participe pas mal sur les forums internationaux et du coup c'est l'anglais qui sort en premier. Pour la dernière combinaison, (M600 dans le gcode and SD) je voulais faire un bout de code qui regarde un des end stop. Du coup, quand tu mets ton filament, tu click sur le end stop a la main et ça repart. Si tu mets un endstop just pour ça ça doit être assez facile (je veux utiliser le test de filament pour ça) car si tu utilise un des endstop X, Y ou Z, l'imprimante peut potentiellement se mettre en erreur. Je vais réfléchir a la question et faire un test pour voir si ça le fait.
systemic Posté(e) Mai 9, 2018 Auteur Posté(e) Mai 9, 2018 Je viens de changer 2 lignes de code pour utiliser le filament sensor comme redémarrage après un M600 dans le gcode. Je testerai ce soir pour voir si ça marche.
systemic Posté(e) Mai 10, 2018 Auteur Posté(e) Mai 10, 2018 VICTOIRE. Bon c'est plus que 2 lignes ... peut être 10 Mais fallait surtout une nuit de sommeil et avoir une idée différente ... DONC: le sensor de filament OU l'utilisation du menu pendant un print USB OU l'envoi via command serial OU l'inclusion de la commande dans le GCODE en SD... Tout marche chez moi En ce qui concerne le print via SD, on peut faire autant de pause qu'on veut. J'étais parti sur un truc compliqué mais j'ai changé pour un truc HYPER simple. Quand l'imprimante est en pause, on va dans le menu "Speed", on presse OK et ça repart Je mets le code sur github de ce pas dans ma branche M600.
systemic Posté(e) Mai 10, 2018 Auteur Posté(e) Mai 10, 2018 Pour ceux qui veulent le hex déjà compilé c'est ici : https://www.dropbox.com/s/ei0u92cawpczaev/Marlin.i3.mega-1.1.8-systemic-V8-M600.hex?dl=0
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