BigTreeTech SKR2
J'ai une petite Prusa depuis des années maintenant. Mais comme je viens de le dire, c'est une petite ... Je me suis donc mis en tête de concevoir moi même ma future imprimante 3D. Après avoir regarder les différentes cartes électronique existantes, mon choix s'est porté sur la BigTreeTech SKR2. D'une part à cause de ses spécifications techniques et d'autre part car la documentation est détaillée.
Caractéristiques techniques
Ma prusa est piloté par une simple carte Arduino, je voulais donc quelque chose de plus puissant. Beaucoup plus puissant !
- Processeur ARM Cortex-M4 cadencé à 168MHz
- Supporte le 12 et le 24V
- Fonctionne avec le firmware Marlin (ça ne me dépaysera pas trop)
- Possède un connecteur wifi (ça sera pour plus tard)
- Supporte de nombreux type de pilotes de moteur pas à pas
- Possibilité de gérer deux extrudeurs
- Peut accueillir un BL-Touch
Voilà pour les spécification technique, ça va tartiner !
Documentation
On trouve la documentation sur github ou ici, sur laquelle on voit qu'il est important de faire attention à la puce se trouvant sur la carte. On verra ça plus loin. On trouve également un lien qui nous envoie vers le site 3dwork.io, avec toutes les informations qu'il faut ! Spécification technique, environnement pour la compilation, branchements etc ... C'est sur cette page que je vais me baser pour configurer Marlin et l'adapter à ma future imprimante 3D.
Cross compilation
La cross compilation est le fait de compiler du code pour une machin ayant une architecture différente de celle avec laquelle on compile. Ce n'est pas une tache facile, dans la documentation ils propose d'utiliser VS-Code avec le plugin platformio. Cependant c'est lourd ! Très lourd juste pour faire une petite compilation. J'ai donc cherché un outil facile à utiliser, fonctionnant sur GNU/Linux et de préférence en ligne de commande. J'ai fini par trouvé une image Docker marlin-build. Qui a le bon goût de pouvoir être utilisé sur n'importe système d'exploitation et d'avoir des variables d'environnements.
docker-compose.yml
Dans ce fichier il faut paramétrer d'une part les variables d'environnement et d'autre part les volumes En ce qui concerne les variables d'environnement voici ce que j'y ai mis :
environment: - BOARD=BIGTREE_SKR_2_F429 - USE_TAG=2.0.9.3 # Use a specific release tag
La variable BOARD doit correspondre à ce qui est expliqué sur le github, la variable TAG correspond à la version de Marlin qui sera téléchargée.
Configuration.h
Dans ce fichier on va modifier des paramètres afin que le firmware qui sera généré corresponde à notre future imprimante 3D.
// Choose the name from boards.h that matches your setup #ifndef MOTHERBOARD #define MOTHERBOARD BOARD_BTT_SKR_V2_0_REV_B #endif ... #define SERIAL_PORT -1 ... #define BAUDRATE 250000 ... #define EXTRUDERS 2 ... #define DEFAULT_NOMINAL_FILAMENT_DIA 1.75 ... /!\ ne pas oublier de configurer les sondes de températures #define TEMP_SENSOR_0 1 ... #define COREXY ... #define X_DRIVER_TYPE DRV8825 #define Y_DRIVER_TYPE DRV8825 #define Z_DRIVER_TYPE DRV8825 #define E0_DRIVER_TYPE DRV8825 #define E1_DRIVER_TYPE DRV8825 ... #define S_CURVE_ACCELERATION ... #define BLTOUCH ... #define X_BED_SIZE 400 #define Y_BED_SIZE 330 ... #define RESTORE_LEVELING_AFTER_G28 ... #define AUTO_BED_LEVELING_BILINEAR ... #define Z_SAFE_HOMING ... #define EEPROM_SETTINGS ... #define SDSUPPORT ...
Configuration_adv.h
Comme le laisse supposer le nom du fichier, il contient les paramètres avancés de la machine, le fichier par défaut était tout à fait correcte, je n'ai changé que ceci :
#define SDCARD_CONNECTION ONBOARD
Compilation
Maintenant que tous les paramètres ont été définis correctement il est temps de lancer la compilation. Pour ce faire il suffit simplement de lancer la commande :
docker-compose run build