Aller au contenu

GO Print

Update CR10s : Rumba+ et TMC2208


FredR

Messages recommandés

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 :IMG_0335.JPG.ebe9953dd1065091f19c789ba3edcbe1.JPG

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…

IMG_0330.thumb.JPG.f75ba1826baece23043f4bbfb4218bc8.JPGIMG_0329.thumb.JPG.416743f3abc0496da92a8637f91816bf.JPG

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 :

IMG_0366.JPG.172076211fc3c63c3fe139e1dae34711.JPG

  • 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é:

Thermistances.thumb.jpg.32f62e57542fc98ce468f2afbcdb8639.jpg

On branche donc les steppers à présent :

329749157_Steppersconnects.thumb.jpg.720c9d249063d5f0cebe1b074d88d2ca.jpg

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 :

903255469_ventilateurscontrlsRumba.jpg.a5773e2f78c0f7cefa00f5fce30534aa.jpg

  • 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

1259584702_Connexionalim.jpg.859024d0bd87f3707b2a093cfe636355.jpg

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).

1330513510_VentilateursRumba.thumb.jpg.94f177dde22c8eef0e74e66fd4f713ee.jpgIMG_0376.JPG.bfa32e0d9945a46355e8f02e1d725c04.JPGPaix à 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!

2066770288_nappesecran.thumb.jpg.f374f818a8e8533f45b40c863de7c878.jpg  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:

1174916542_Jumperusb.jpg.a8d82b6d7d93360fb01aa07edadfb29e.jpg

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) par FredR
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

beau boulot !

Il y a 20 heures, FredR a dit :

...Pfff c'est sans fin!

et oui quand on commence.... maintenant t'es foutu :D 

  • Haha 1
Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

  • 8 months later...
  • 1 year later...
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.

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...