FredR Posté(e) Mai 13, 2018 Posté(e) Mai 13, 2018 (modifié) Bonjour, Ça y est, je me suis lancé ! Mais dans quelle galère je me suis embarqué ! A L’origine, je cherchais une solution pour mettre plusieurs têtes sur mon imprimante. Problème, la carte Creality V2.1 ne supporte qu’un seul extrudeur. Par ailleurs, en parcourant le net j’ai vu qu’il était possible moyennant des drivers TMC, de rendre l’imprimante très silencieuse… Allez ma décision est prise ! Acquisition d’une carte Rumba + avec 6 drivers TMC2208 inclus à 55€ : Voilà la carte en question : Rumba + TMC2208 Voilà la carte en question : Remarque : J’ai trouvé au moins trois versions de cette carte : la Rumba, la Rumba+ et la Rumba + V1.0 !!! La dernière est à préférer car la plus complète (je me suis fait avoir), elle est reconnaissable car elle a le connecteur auxiliaire pour connecter les écrans MKS 32 bits (comme la creality 2.1 d’ailleurs) Tout d'abord les branchements Il n’y a pas de lecteur SD sur la Rumba ça va peut-être en refroidir plus d’un (perso, je ne m’en servais pas) Comme je n’étais pas du tout sûr de mon coup, contrainte imposée : cela doit être réversible, donc les harnais notamment doivent être préservés. Et là, les problèmes commencent : connecteurs JST sur CR10, borniers et Dupont sur Rumba, grrrr Allez, fil, fer à souder, plaque de prototypage et quelques heures après… Adaptateur bornier-JST pour 6 drivers et 7 moteurs (2 pour Z) A ce stade, deux vérifications cruciales à l’aide d’un multimètre :-1- chaque pin est bien en contact avec l’extrémité de son fil (résistance nulle) -2- chaque pin n’est pas en contact avec ses voisins (résistance infinie) A noter que les moteurs en Z sont montés en parallèle mais qu’il existe un montage en série qui serait mieux adapté : montage série A noter aussi qu’il va falloir renoncer au boîtier d’origine qui ne pourra plus héberger l’ensemble. Du coup, il faudra prévoir un support pour la bobine de fil. Aïe aïe aïe, dans quoi je me suis embarqué là ! On se reprend et on procède par étape! D’abord faire fonctionner l’imprimante avec ses nouveaux drivers car si c’est décevant, on ne va pas investir du temps à tout faire bien et propre. Connexions JST à Dupont pour les end stops : Les ends stops sont connectés sur le X-, Y- et Z- Ne vous fiez pas aux couleurs sur la photo, la polarité n’a aucune importance Il y a trois pins par end stop seuls deux nous intéressent : le ‘-‘ et le ‘S’ Le détecteur de filament est branché sur le X+ (les 3 fils) mais pas activé pour le moment dans Marlin donc je ne peux pas dire si ça fonctionne À côté il y a les capteurs de température de la tête (T0) et du lit (THB) sans polarité: On branche donc les steppers à présent : A gauche le X, puis le Y puis les 2 Z (peu importe l’ordre) puis l’extrudeur. Pas besoin de croiser les fils. Puis les borniers d’alimentation : A gauche, le chauffage de la buse, polarité pas importante Les deux derniers borniers verts de droite sont pour les ventilateurs pilotés : celui pour les drivers et le Fang avec au choix ; bornier ou Dupont… mais pas de JST donc pas de détrompage. ATTENTION la polarité doit être respectée sous peine de cramer vos ventilateurs (j’ai testé) Remarquez les 2 jumpers, ils n'étaient pas fournis avec la carte et sans eux les ventilateurs ne fonctionneront pas. on peut s'en sortir avec un connecteur Dupont câblé en court circuit Les connecteurs bleus : les 2 premier sont le + et le - de l’alim 12V de la carte, les deuxièmes l’alim pour pouvoir fournir le 12V au lit chauffant donc à connecter aux COM et V+ de l'alimentation, et les deux derniers à connecter au mosfet du lit chauffant ou au SSR si lit alimenté en 220V. Ces derniers ne fonctionnent pas si on n’alimente pas les seconds. Les ventilateurs du boîtier et de la tête qui tournent en permanence : Il faut leur trouver un 12 V quelque part. Les connecteurs JST rentrent mais là encore faites bien attention à la polarité si vous ne voulez pas voir vos ventilateurs fumer (fumer tue, je le rappelle). Paix à son ame... L’écran à présent : Facile EXP1 sur EXP1 et EXP2 sur EXP2 si ce n’est pas dans un sens, c’est dans l’autre… Et bien NON ! On a tout faux, Il faut brancher EXP1 sur EXP2 et EXP2 sur EXP1 ! Intuitif n’est-ce pas ? Et là je vous fais gagner des heures car aucun marquage sur aucun des connecteurs. Au début ça ne marchait pas et j’ai d’abord soupçonné une configuration sous Marlin jusqu’à ce que je trouve une remarque ici :RUMBA , une ligne et la solution : ils étaient inversés! Comme ça, ça fonctionne! Allez, on branche tout sans oublier l’USB vers Octopi et on lance une impression… ...ouais bon j’ai oublié un détail, maintenant il faut recompiler Marlin avec la bonne configuration… *soupir* Allez courage! Configuration Marlin 1.1.8 pour Rumba + TMC2208 sur CR10s Là aussi ça n’a pas été immédiat. Pour établir une configuration qui fonctionne pour moi, je me suis inspiré de tout ce qui existait : la conf pour la carte rumba, la conf pour le TMC2208, la conf donnée par Creality pour la CR10s, la conf que j’avais déjà préparé pour la CR10s, Le tout avec un usage abusif de Winmerge. Cet outil fut très pratique ici. Je ne détaillerais pas ici la méthode pour compiler Marlin, le web regorge de tutos. Sachez simplement qu’une fois installé Arduino, il suffit de télécharger le code source de Marlin actuellement en 1.1.8 ici: Marlin Une fois décompressé, on se met dans le répertoire et on double clic sur le fichier Marlin.ino. Il suffit ensuite de modifier les fichiers suivants. Pour ceux qui ne connaissent pas le langage de programmation C ou C++, commenter une ligne, c’est-à-dire la désactiver se fait en ajoutant deux barres obliques : // tout ce qui est après sur la ligne est ignoré par le compilateur. Inversement, enlever les deux barres obliques réactive les lignes. Les lignes existent déjà quasiment toutes, il suffit de les modifier. Seules les lignes modifiées sont données ici J’ai ajouté le numéro de la ligne à chaque fois pour mieux les retrouver, donc ne pas les ajouter dans les sources, exemple : 77 : #define… --> la ligne numéro 77 commence par #define… Ce qui est après la flèche --> ne fait pas partie du code Il est possible qu'il y ait un décalage de quelques numéros dans les lignes. Fichier Configuration.h 77: #define STRING_CONFIG_H_AUTHOR "Author" --> mettez votre patte ici 114: #define BAUDRATE 115200 --> 115200 c’est la meilleur valeur, 250000 ne fonctionne pas tout le temps 122: #define MOTHERBOARD BOARD_RUMBA --> Rumba quoi, au lieu de BOARD_RAMPS_14_EFB 127: #define CUSTOM_MACHINE_NAME "3D Printer" --> trouvez lui un petit nom 140: #define DEFAULT_NOMINAL_FILAMENT_DIA 1.75 --> ça à l’air bête mais par défaut il est sur 3.0 mm 294: #define TEMP_SENSOR_BED 1 --> choix du capteur de température, 1 ça fonctionne bien 357: // Stock CR-10 Hotend fan 100% 358: #define DEFAULT_Kp 18.48 359: #define DEFAULT_Ki 1.46 360: #define DEFAULT_Kd 58.67 --> Ces valeurs se déterminent, le fameux PID, quand on étalonne l’imprimante voir ici: réglages PID 402: #define DEFAULT_bedKp 10.00 403: #define DEFAULT_bedKi .023 404: #define DEFAULT_bedKd 305.4 -->Idem pour le lit chauffant 536: #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 100.26 } --> les valeurs par défaut semblent excessives, la dernières valeur sera à déterminer en étalonnant votre extrudeur: régler son extrudeur 561: #define DEFAULT_ACCELERATION 500 562: #define DEFAULT_RETRACT_ACCELERATION 500 // E acceleration for retracts 563: #define DEFAULT_TRAVEL_ACCELERATION 1000 // X, Y, Z acceleration for travel (non printing) moves --> valeurs pour CR10s 573: #define DEFAULT_XJERK 5.0 574: #define DEFAULT_YJERK 5.0 575: #define DEFAULT_ZJERK 0.4 -->config d'origine CR10s, le jerk, c'est le seuil de changement de vitesse en dessous duquel l’accélération est instantanée (donc brutale) 627: #define PROBE_MANUALLY --> permet de faire du bed levelling manuellement 756: #define INVERT_Y_DIR false 757: #define INVERT_Z_DIR true --> valeurs qui fonctionnent pour CR10s 787: #define X_BED_SIZE 300 788: #define Y_BED_SIZE 300 796: #define Z_MAX_POS 400 --> taille de l’imprimante avec miroir Ikea, les valeurs de la CR10s étaient 310, 310 et 410 831: //#define FILAMENT_RUNOUT_SENSOR --> enlever les // pour activer 833: #define FIL_RUNOUT_INVERTING true --> pour le détecteur de la CR10s 877: #define AUTO_BED_LEVELING_LINEAR --> pour le bed levelling 917: #define GRID_MAX_POINTS_X 2 --> pour le nombre de points du bed levelling 2x2 = 4 mesures 921: #define LEFT_PROBE_BED_POSITION 30 922: #define RIGHT_PROBE_BED_POSITION 270 923: #define FRONT_PROBE_BED_POSITION 30 924: #define BACK_PROBE_BED_POSITION 270 --> pour un lit de 300x300 1001: #define LCD_BED_LEVELING --> pour bed levelling via ecran lcd 1120: #define EEPROM_SETTINGS // Enable for M500 and M501 commands 1130: //#define HOST_KEEPALIVE_FEATURE --> ça marche sans, donc commenté 1132: //#define BUSY_WHILE_HEATING --> ça marche sans, donc commenté 1326: #define ULTRA_LCD // Character based --> pour l’affichage LCD 1361: #define ENCODER_PULSES_PER_STEP 1 --> pour la sensibilité du bouton de l’écran LCD 1367: #define ENCODER_STEPS_PER_MENU_ITEM 5 --> pour la sensibilité du bouton de l’écran LCD 1539: #define LCD_FOR_MELZI -->Ecran LCD de la CR10s Fichier Configuration_adv.h 576: #define LCD_SET_PROGRESS_MANUALLY 733: //#define ARC_SUPPORT --> Supprimer cette possibilité inutile fait gagner de la mémoire (env 3k) 879: #define ADVANCED_PAUSE_FEATURE -->pour le détecteur de filament quand il sera activé 999: #define HAVE_TMC2208 --> active le TMC 1016: #define X_IS_TMC2208 1017: //#define X2_IS_TMC2208 1018: #define Y_IS_TMC2208 1019: //#define Y2_IS_TMC2208 1020: #define Z_IS_TMC2208 1021: //#define Z2_IS_TMC2208 1022: #define E0_IS_TMC2208 1023: #define E1_IS_TMC2208 1024: #define E2_IS_TMC2208 -->drivers TMC activés pour les 6 steppers X, Y, Z, E0, E1, E2 Et pour finir, Fichier pin_RUMBA.h Lignes à ajouter pour que ça compile, je ne comprends pas trop à quoi ça sert, une histoire de communication UART avec les drivers, si quelqu'un a compris... : 87: #if ENABLED(HAVE_TMC2208) 88: /** 89: * TMC2208 stepper drivers 90: * 91: * Hardware serial communication ports. 92: * If undefined software serial is used according to the pins below 93: */ 110: #define X_SERIAL_TX_PIN 59 111: #define X_SERIAL_RX_PIN 63 112: #define X2_SERIAL_TX_PIN -1 113: #define X2_SERIAL_RX_PIN -1 114: 115: #define Y_SERIAL_TX_PIN 64 116: #define Y_SERIAL_RX_PIN 40 117: #define Y2_SERIAL_TX_PIN -1 118: #define Y2_SERIAL_RX_PIN -1 119: 120: #define Z_SERIAL_TX_PIN 44 121: #define Z_SERIAL_RX_PIN 42 122: #define Z2_SERIAL_TX_PIN -1 123: #define Z2_SERIAL_RX_PIN -1 124: 125: #define E0_SERIAL_TX_PIN 66 126: #define E0_SERIAL_RX_PIN 65 127: #define E1_SERIAL_TX_PIN -1 128: #define E1_SERIAL_RX_PIN -1 129: #define E2_SERIAL_TX_PIN -1 130: #define E2_SERIAL_RX_PIN -1 131: #define E3_SERIAL_TX_PIN -1 132: #define E3_SERIAL_RX_PIN -1 133: #define E4_SERIAL_TX_PIN -1 134: #define E4_SERIAL_RX_PIN -1 135: #endif Voilà! on oublie pas de sauvegarder les fichiers puis... Compilation et installation : Dans l’outils Arduino, Installer la librairie U8Glib :https://bintray.com/olikraus/u8glib/Arduino , télécharger le zip puis dans Arduino aller dans /croquis/inclure une bibiliothèque/ajouter la bibliothèque .zip/ puis sélectionnez le fichier téléchargé Installer la librairie TMC2208 : aller dans /croquis/inclure une bibliothèque/gérer les bibliothèques/ puis chercher et installez la lib TMC2208stepper Aller dans Outils/Type de carte et choisir Mega 2560 Pour générer le fichier binaire il faut aller dans le menu croquis et faire « exporter les binaires compilés » Cela va générer le binaire dans le même répertoire que les sources. En fait ça génère même deux fichiers : « Marlin.ino.mega.hex » et « Marlin.ino.with_bootloader.mega.hex » NE PAS UTILISER CE DERNIER, ça écraserait le bootloader et il faudrait une manip compliquée pour le récupérer Donc, pour télécharger le binaire sur la carte Rumba maintenant, deux possibilités, via Arduino par le port USB ou bien passer par Octopi. Il y a un cavalier à changer pour passer de l'un à l'autre: Par USB, il faut configurer le port de votre PC pour qu'il communique avec la carte et donc installer un driver particulier, je ne m’étendrais pas là dessus, ça n'est pas très compliqué mais tout est expliqué sur le net. Pour le téléchargement par Octopi, il y a un plugin à installer: Firmware Updater (original non?) une fois chargé et correctement configuré, Octopi doit être connecté à la carte Rumba, il n'y aura plus qu'a télécharger le fichier "Marlin.ino.mega.hex" Pfiou ! on arrive à la fin de la première étape, on va bientôt savoir si ça vaut le coup… Allumage…Et... Enorme ! Je n'ai pas mesuré les décibel mais on est bien en dessous des drivers d'origine Au début je pensais que ça ne marchait pas avant de voir la tête bouger, les steppers ne font vraiment plus aucun bruit, c’est bluffant. Étape validée mais maintenant il faut mettre tout ça au propre. Prochaines étapes : régler les drivers TMC2208, le fameux VRef car sans réglage, les impressions... bref c'est pas beau à voir faire un boîtier pour la Rumba car ceux sur thingiverse ne me conviennent pas faire un boîtier d’alimentation 220V refaire proprement les harnais ...Pfff c'est sans fin! Il y a encore du boulot Modifié (le) Mai 13, 2018 par FredR 1
pascal_lb Posté(e) Mai 14, 2018 Posté(e) Mai 14, 2018 beau boulot ! Il y a 20 heures, FredR a dit : ...Pfff c'est sans fin! et oui quand on commence.... maintenant t'es foutu 1
FredR Posté(e) Mai 14, 2018 Auteur Posté(e) Mai 14, 2018 On aurait pu me prévenir! ça existe une detox? ya un traitement? Je suis foutu c'est ça? Bon faut que j'y retourne...
gregg Posté(e) Mai 15, 2018 Posté(e) Mai 15, 2018 Ben dis donc...y a de la modif la.chapeau bas. Mais ca laisse plus beaucoup de temps a l impression en elle meme du coup ...
FredR Posté(e) Mai 15, 2018 Auteur Posté(e) Mai 15, 2018 Je dois admettre que pour l'instant j'imprime avec l'imprimante qui a les tripes à l'air et il faut vite que je finisse le boîtier alim car j'ai le 220V qui s'exhibe sans aucune pudeur, je me suis déjà pris une bourre d'ailleurs ... Ensuite il faudra refaire le boîtier pour la carte Rumba que j'aimerais solidariser au châssis de l'imprimante avec une ventilation efficace... mais silencieuse pour les drivers des moteurs. Ce sera surement l'objet d'un autre post. Le but ultime sera de faire fonctionner 2 ou 3 buses dessus mais là on est loin
Deteklover Posté(e) Janvier 17, 2019 Posté(e) Janvier 17, 2019 Bonjour, Je voudrais savoir si tu connais comment passer les TMC2208 en mode uart sur la rumba, autrement dit, sur quelle broche de la rumba, brancher le connecteur venant des drivers ? Merci
ellogo67 Posté(e) Novembre 21, 2020 Posté(e) Novembre 21, 2020 Le 17/01/2019 at 14:50, Deteklover a dit : Bonjour, Je voudrais savoir si tu connais comment passer les TMC2208 en mode uart sur la rumba, autrement dit, sur quelle broche de la rumba, brancher le connecteur venant des drivers ? Merci Bonjour Deteklover Mettant lancer moi aussi à utiliser la Rumba+ V1.0, je cherche désespérément à utiliser mes TMC2208 en UART. As-tu eu la solution ? C'est fou comme ma Rumba+ V1.0 a été délaissée par le constructeur et pas du tout suivi par les utilisateurs. Je recherche aussi le configuration.h et le configuration_adv.h. je suis un néophyte sur la question et je désespère. Au secours, Obi Wan Kénobi. Merci d'avance.
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