Préparation de la carte contrôleur (Melzi)

Ici, ça se corse un peu.

Pour commencer, il faut vérifier que les petits potentiomètres sont bien réglés. Le plus simple pour cela est d’alimenter la carte avec le port USB (positionner le cavalier si nécessaire) et de mesurer la tension entre le rond (sur la photo) et les 2 broches, on doit être proche de 0.5V sur les 2. Ce qui donnera 1.2A pour les moteurs. L’opération est répétée sur les 4 potentiomètres.

OLYMPUS DIGITAL CAMERA

C’est ici que ça se corse, après avoir terminé le montage et commencé les tests, je me suis aperçu que mes sondes de température avaient entre 20°C et 35°C d’erreur.

Le problème venait en fait des résistances de tirage sur la carte Melzi au niveau des 2 connecteurs pour les thermistances de la buse chauffante et du lit chauffant. En fait, les schémas officiels de la Melzi contiennent une erreur, ils indiquent d’utiliser des résistances de tirage de 10KOhms, au lieu de 4.7KOhms. Les schémas n’ont malheureusement jamais été corrigés et certains fabricants de carte Melzi ne font pas la correction, et on se retrouve donc avec un certain nombre de carte Melzi équipées de mauvaises résistances. Ce qui a été mon cas évidemment. Sur la photo suivante, les résistances incriminées sont entourées de rouge (la référence 1002 signifie 10KOhms).

OLYMPUS DIGITAL CAMERA

Plusieurs solutions sont envisageables pour contourner le problème :

  • Dessouder les résistances et les remplacer par de nouvelles. C’est normalement faisable sans station à air chaud, elles sont assez grosses.
  • Calculer une nouvelle table de référence à intégrer dans le firmware. Pas forcément évident, de plus la précision ne sera pas top à cause de l’utilisation d’une résistance de 10K.
  • Souder une résistance de 10K (idéalement 9.1K) en parallèle sur les 2 résistances de tirage.

J’ai opté pour la 3ème solution, c’est moche, mais ça marche, et pas besoin de matériel supplémentaire. J’ai cherché dans mon tas de résistances 10K celles qui avaient la résistance la plus faible, j’en ai trouvé 2 à 9.4K, et c’est parfait.

La photo suivante illustre l’immonde bidouillage 🙂

OLYMPUS DIGITAL CAMERA

Pour terminer la préparation de la carte, nous allons la recharger après avoir fait quelques modifications dans le firmware. Les modifications se font dans le fichier « Configuration.h » du projet Arduino Marlin. Je précise que j’utilise la version modifiée par Nophead. Le chargement se fait via l’IDE Arduino.

OLYMPUS DIGITAL CAMERA

Première modification pour indiquer au firmware quelles thermistances j’utilise (Epcos B57560G104F 100K pour les 2) :

#define TEMP_SENSOR_0 8
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 8

Dernière modification, plus bas dans fichier :

#define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,200*16/1.25,E_STEPS_PER_MM}

Il faut remplacer le « 1 » par « 1.25 ». Cette valeur correspond au pas des tiges filetées. La version Sturdy utilisant des tiges M8 (au lieu des M6 des autres versions), le pas n’est pas le même.

On peut fixer la carte sur le châssis. Au passage, la liste de matériel de la Sturdy pour la carte Melzi n’est pas la bonne, j’ai utilisé des vis à bois pour la fixer. De plus, les cales plastiques sont adaptées à des vis M3, je les ai donc un peu élargies.

OLYMPUS DIGITAL CAMERA

 

 

Carte contrôleur (Melzi)

Toutes mes commandes sont enfin arrivées. En fait, il ne me manque que les planches de MDF, alors que c’est à peu près la seule chose que je n’ai pas commandée en Angleterre ou en Chine 😉

La carte contrôleur permet de piloter l’imprimante. Elle est connectée aux moteurs, plateau chauffant, au chauffage de la buse, aux thermistances, aux interrupteurs de fin de course etc. C’est elle qui est responsable de l’impression.

Bref j’ai reçu la carte électronique de contrôle aujourd’hui, une Melzi. J’ai pas mal hésité entre la config la plus répandue, à savoir un Arduino Mega + shield RAMPS 1.4 et la Melzi.

OLYMPUS DIGITAL CAMERA

J’ai opté pour la Melzi essentiellement pour 2 raisons : la première, c’est que c’est la carte que Nophead propose par défaut dans son kit, donc pas besoin de modifier le gabarit de perçage. La seconde, c’est que la Melzi utilise des borniers à vis pour tous les câbles, ça me semble beaucoup plus fiable que les connecteurs habituels qui n’ont pas de réel blocage mécanique.

La Melzi est vraiment un « tout en un », les pilotes des moteurs sont pré-soudés (A4988), les connecteurs sont bien disposés etc. Mais il faut savoir que la solution basée sur un shield RAMPS étant plus répandue représente souvent le standard. Il sera plus facile de la faire évoluer (piloter plusieurs buses, ajouter un écran de contrôle etc.). Des évolutions sont aussi possibles sur la Melzi, mais au prix d’efforts/recherches plus importants.

Cette commande faisait partie des quelques une passées sur Aliexpress, donc j’ai voulu la tester rapidement (et sommairement), c’est à dire charger le Firmware Marlin modifié par Nophead pour m’assurer que cette première phase se passait bien.

Avant toute chose, s’assurer que le cavalier de l’auto-reset est bien inséré (à droite sur l’image ci-dessous), et que le cavalier indiquant le mode d’alimentation de la carte est bien sur USB (pas besoin de s’embêter davantage, il s’agit seulement de charger le firmware) (à gauche sur la photo ci-dessous).

OLYMPUS DIGITAL CAMERA

 

Ensuite, récupérer la version modifiée par Nophead du Firmware Marlin, dispo sur son Github. Le répertoire Melzi est à copier dans le dossier « hardware » du répertoire d’installation de l’IDE Arduino. On ouvre après le fichier principal du projet (Marlin.ino).

Il ne reste plus qu’à connecter la carte Melzi en USB, attendre que le driver s’installe et charger le firmware (s’assurer que le type de carte « Melzi W/ ATmega1284p 16mhz » et le bon port sont bien sélectionnés dans le menu « Outils »).

Le chargement s’est bien passé, ouf 🙂

melzi_firmware_loaded

arduino_melzi

Carté payée 37€ sur Aliexpress (les 4 drivers A4988 sont intégrés).