Aller au contenu

GO Print

Jonathan06

Membres
  • Compteur de contenus

    1 055
  • Inscrit(e) le

  • Dernière visite

  • Jours remportés

    14

5 abonnés

Citation

  • Imprimeur passionné

Information

  • Genre
    Masculin
  • Lieu
    Nice
  • Imprimantes
    Wanhao D12-Dual
    Ultimaker 2+

Visiteurs récents du profil

2 835 visualisations du profil

Récompenses de Jonathan06

Experienced

Experienced (11/14)

  • One Year In
  • Reacting Well Rare
  • Dedicated
  • Very Popular Rare
  • First Post

Badges récents

513

Réputation sur la communauté

1

Sujets solutionnés !

Favoris

  1. Boitier rangement filament
    Stockage des bobines

    j'ai trouvé cette astuce plutôt pratique afin de pas remballé à chaque fois les bobines , toujours à l'abri , même en utilisation

    3bfb3ea227478fa3e8f0f775468250b3_preview

    http://www.thingiverse.com/thing:1332650

     

    je vais me faire la même instalation


  2. Anodisation
    Tutoriel anodisation aluminium pour les printer's

    Bonjour à tous,

    Suite au post

    Je vous propose un tutoriel qui va tenir compte du fait que si vous êtes ici, vous avez certainement soit une imprimante 3D, soit une CNC, ce qui va grandement faciliter les choses.

    Déjà, comme je pense que chacun devrait préciser s'il est dans la tranche des amateurs ou des pro, je vous précise que ma boite vend des produits pour anodiser. Les modérateurs me signaleront s'ils acceptent que je donne les liens des produits que je cite ou pas. Au pire, je vous donnerai les mots-clefs de recherche en français et anglais, vous tomberez sur les 3 ou 4 boites qui peuvent vous approvisionner, dont la mienne.

    Autre point d'importance, on ne fera pas de cours de chimie théorique. Vous n'avez pas besoin de savoir comment votre voiture marche pour démarrer et faire des milliers de Km? En anodisation, c'est pareil ! 

    En outre, chaque fois que c'est faisable, je vous dirai comment faire en DIY. 

    Je vais faire un post par étape pour traiter chaque poste :

    - Lavage, Décapage, Désoxydation, Anodisation, Coloration, Colmatage.

    Surtout ne croyez pas que j'ai inventé quoi que ce soit... C'est comme cela que l'on anodise en OAS (Oxydation Anodique Sulfurique) dans l'industrie depuis bientôt 1 siècle. Je ne fais que vous indiquer comment faire ce procédé avec des moyens limités et des produits autorisés pour les particuliers. En revanche, si vous suivez ce procédé, vous ferez des anodisations de qualité professionnelle, voir mieux car les industriels ont des contraintes que vous n'aurez pas.

    Dernier point, attendez que le tuto soit fini pour vous lancer, ça va prendre plusieurs jours et vous aurez ainsi une vue d'ensemble...

    A bientôt 😉


  3. Marlin pour CR10 paramétrage
    CR10-V2, carte originelle (2.5.2), Marlin 2.0.9.3 (stable)

    Marlin 2.0.x guide pour CR10-V2, carte mère originelle (v2.5.2)

    ATTENTION: Post très long (mais j'espère complet 😉 ), TLDR : en fin de post. les fichiers utilisés pour compiler 😄
     

    Modifications réalisées à partir d’un Marlin originel 2.0.9.3 pour une Creality CR10-V2 avec sa carte mère d’origine (Atmega2560, v2.5.2).

    Utilisation de ce guide avec un autre version de Marlin à vos risques et périls. En modifiant quelques directives (environnement de compilation, carte mère utilisée, pilotes moteurs, …), il est possible d'adapter ce «firmware» pour qu'il fonctionne avec une autre carte que la Creality v2.5.2 😉

    Modifications effectuées après lecture approfondie de la «Bible du Marlin»

    Chapitres

    1. Débuter

    2. Fichiers modifiés

    3. PID autotune

    4. BLTOUCH

    5. Mesurer NOZZLE_TO_PROBE_OFFSET

    6. Unified Bed Leveling (UBL)

    7. Mesh Bed Leveling (ABL du «pauvre» mais tout de même bien pratique)

    8. Effectuer le nivelage du lit

    9. Détection de fin de filament et remplacement du filament

    10. Linear Advance

    11. Junction Deviation

    12. Test «Tout en un» de la rétraction

    13. Compiler le firmware

    14. Flasher le firmware

    15. Mettre à jour / reflasher le firmware

    16. Changelog

    Débuter

    1. Installer VSCode and Git (Installation guide)

    2. Ouvrir le dossier Marlin

      1. comme dans la vidéo d’installation ou

      2. Cloner Marlin via PlatformIO (Cliquer sur l’icone «Alien», puis cliquer sur "Cloner Projet Git», coller l’adresse "https://github.com/MarlinFirmware/Marlin/", presser Entrée, sauvegarder, finalement cliquer ouvrir quand le téléchargement est terminé)

      3. Ou vous pouvez cloner mon dépôt en fin de post

      4. Vous pouvez choisir la version de Marlin en bas à gauche de la fenêtre, par défaut la version la plus récente sera activée

    3. Modifier votre Marlin en vous basant sur ce guide

      1. Vous pouvez utiliser les fichiers de configuration des exemples de votre carte pour une édition plus facile / rapide. La CR10V2 n’étant pas actuellement recensée parmi les modèles de Creality, vous pouvez utiliser ceux d’une CR10S (ou ceux tout à la fin). EDIT: @thinkyhead a inclus les fichiers de configuration dans la dernière version stable de Marlin (2.0.6 attention, c'est prévu pour la branche bugfixes 😉 ).

    Fichiers modifiés

    Modifications des fichiers platformio.ini, configuration.h et configuration_adv.h .

    A - Activer | C - Changer | A&C - Activer et Changer | D - Désactiver
    ( Activer/Désactiver en enlevant / ajoutant les «//» en début de ligne )

    platformio.ini

    • C default_envs = mega2560

    Configuration.h

    • A #define SHOW_CUSTOM_BOOTSCREEN

    • A #define CUSTOM_STATUS_SCREEN_IMAGE

      • Vous devrez copier les fichiers _Bootscreen.h / _Statusscreen.h de Marlin\config\examples\Creality\CR10S\ dans le dossier Marlin\Marlin mais en ce cas, la fenêtre de statut indiquera «CR10S 300» alors qu’on souhaiterai «CR10 V2» (utiliser ceux en fin de post).

      • Les fichiers «examples» du dossier config « peuvent être récupérés à partir de Marlin GitHub.

      • ou vous pouvez utiliser ceux fournis dans le fichier compressé en fin de post (je les ai modifié afin que soit affiché «CR10 V2).

    • C #define SERIAL_PORT 0

    • C #define BAUDRATE 115200 250000

      • ATMega2560 baudrate par défaut

    • C #define MOTHERBOARD BOARD_RAMPS_CREALITY

    • A&C #define CUSTOM_MACHINE_NAME "CR10-V2"

      • ou le nom que vous voulez (ex: MA CR10 à MOI qu'elle me plait vraiment beaucoup 😄 )

    • C #define DEFAULT_NOMINAL_FILAMENT_DIA 1.75

    • C #define TEMP_SENSOR_BED 1

    • C #define HEATER_0__MAXTEMP 255

    • C #define BED_MAXTEMP 120

    • A #define PID_EDIT_MENU

    • A #define PID_AUTOTUNE_MENU

    • C les valeurs de P.I.D. pour la tête :

      • #define DEFAULT_Kp 19.47

      • #define DEFAULT_Ki 1.59

      • #define DEFAULT_Kd 59.40

    • A #define PIDTEMPBED

      • Vous n’êtes pas obligé d’activer PIDTEMPBED, si vous êtes satisfait de votre lit chauffant. Mais en calibrant celui-ci, il montera en températures plus rapidement et maintiendra celles-ci plus finement

      • N’oubliez pas de réaliser un autotune du PID du lit après l’avoir activé dans le firmware sinon la protection contre l’emballement thermique pourrait se déclencher lors de la mise en route. Allez consulter le guide dans la section PID autotune, plus bas dans ce post

    • C les valeurs de P.I.D. pour le lit :

      • #define DEFAULT_Kp 690.34

      •  #define DEFAULT_Ki 111.47

      •  #define DEFAULT_Kd 1068.83

    • C #define EXTRUDE_MAXLENGTH 435

      • Mesurez la longueur à partir de la roue crantée de l’extrudeur jusqu’à la buse comme longueur de tube PTFE

    • C #define Z_MIN_ENDSTOP_INVERTING true false

    • C #define Z_MAX_ENDSTOP_INVERTING true false

    • C #define Z_MIN_PROBE_ENDSTOP_INVERTING true false

      • Le BLTouch v3/3.1 peut fonctionner soit avec true soit false, mais une erreur est signalée à la compilation si réglé à true

    • A&C #define X_DRIVER_TYPE TMC2208_STANDALONE

    • A&C #define Y_DRIVER_TYPE TMC2208_STANDALONE

    • A&C #define Z_DRIVER_TYPE TMC2208_STANDALONE

    • A&C #define E0_DRIVER_TYPE TMC2208_STANDALONE

    • C #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 93 }

      • si vous avez monté en lieu et place de l’extrudeur d’origine un autre modèle, remplacez 93 par le nombre de pas de celui-ci (BMG / Titan 415, BMG sans réducteur (CR10S Pro) 140, …)

      • pour une CR10-V3 avec un Titan comme extrudeur; le pas de l'extrudeur est de 415.

      • ATTENTION: dans le dépôt Github fourni plus bas, mon extrudeur étant un pseudo BMG (celui des CR10S Pro), le pas est de 140, mon extrudeur est un BMG à réduction (3:1), le pas est de 415 (monté en «extrudeur volant»), pensez à le modifier si vous avez l'extrudeur métallique d'origine (pas initial de 93 qu'il est préférable d'affiner en effectuant un réglage de celui-ci).

    • C #define DEFAULT_MAX_FEEDRATE { 750, 750, 15, 75 }

    • C #define DEFAULT_MAX_ACCELERATION { 2000, 2000, 100, 5000 }

    • C #define DEFAULT_ACCELERATION 800

    • C #define DEFAULT_RETRACT_ACCELERATION 1000

    • C #define DEFAULT_TRAVEL_ACCELERATION 800

    • A #define CLASSIC_JERK

    • A&C #define TRAVEL_EXTRA_XYJERK 5.0

    • A #define S_CURVE_ACCELERATION

    • C #define INVERT_X_DIR false

    • C #define INVERT_Y_DIR false

    • C #define INVERT_Z_DIR true

    • C #define INVERT_E0_DIR false

    Si vous avez une CR10-V3 avec son direct-drive, le moteur possédant un réducteur (3:1), le sens de rotation de celui-ci est inversé. la ligne au-dessus devra donc être à «true»

    • C #define X_BED_SIZE 310

    • C #define Y_BED_SIZE 310

    • C #define Z_MAX_POS 400

    • A #define LCD_BED_LEVELING

    • C #define HOMING_FEEDRATE_Z (6*60)  (directive d'anciennes versions de Marlin, maintenant les vitesses de mise à l'origine sont regroupées en une seule directive : #define HOMING_FEEDRATE_MM_M { (50*60), (50*60), (4*60) } )

      • Augmentez si vous trouvez que c’est trop lent mais ne dépassez pas 10*60 pour l'axe Z.

    • A #define EEPROM_SETTINGS

    • A #define NOZZLE_PARK_FEATURE

    • C #define NOZZLE_PARK_POINT { (X_MIN_POS + 5), (Y_MAX_POS - 5), 10 }

    • A #define PRINTCOUNTER

    • D #define LCD_LANGUAGE fr

      • pour passer l’interface de l’écran en français si vous préférez

    • A #define SDSUPPORT

    • A #define INDIVIDUAL_AXIS_HOMING_MENU

    • A #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

    Configuration_adv.h

    • A #define QUICK_HOME

    • A #define BLTOUCH_SET_5V_MODE

    • C #define SLOWDOWN_DIVISOR 2

    • A #define LCD_INFO_MENU

    • A #define STATUS_MESSAGE_SCROLLING

    • A #define SCROLL_LONG_FILENAMES

    • D #define LIN_ADVANCE

      • L’activation du Linear Advance sur les cartes Creality «silencieuses» mènent à l’arrêt de l’extrusion, il ne faut donc pas activer cette option.

    • C #define LIN_ADVANCE_K 0.00

      • Le guide pour calibrer la valeur K se trouve plus bas dans la section Linear Advance.

    • C #define EMERGENCY_PARSER

    • C #define ADVANCED_OK

    • A #define CANCEL_OBJECTS

    PID autotune

    Rien ne vous oblige à activer PIDTEMPBED, si vous êtes satisfait de votre lit chauffant. Mais en calibrant celui-ci, il montera en températures plus rapidement et maintiendra celles-ci plus finement.

    1. Connectez l’imprimante au PC (USB, Octoprint, etc.)

    2. Utilisez n’importe quel logiciel capable d’envoyer des commandes gcode à l’imprimante (Octoprint, Pronterface, Repetier, etc.)

    3. Connectez l’imprimante via le logiciel si la connexion n’est pas automatique (COM ??, 115200 250000)

    4. En envoyant un M301/M304 à l’imprimante vous récupérez les valeurs actuelles du PID de la HOTEND / LIT CHAUFFANT, prenez note de celles-ci

    5. Pour débuter un autotune, il faut envoyer un M303 C<nb cycles> A<index> S<température> U à l’imprimante.

      1. Pour la hotend j’utilise M303 C10 E0 S220 U (Hotend: E0)

        1. Activez la ventilation de refroidissement du filament pour l’autotuning du PID de la hotend

        2. C5 est normalement suffisant, mais C10 n’augmente pas le temps énormément, S<température> devrait être 5-à 10° plus haut que la température le plus souvent utilisée

      2. Pour le lit chauffant j’utilise M303 C8 E-1 S65 U (Lit chauffant: E-1)

        1. C5 est normalement suffisant, mais C8 n’augmente pas le temps énormément, S<température> devrait être la température la plus souvent utilisée. Si après le M303 ... vous obtenez "PID Autotune failed! Temperature too high", envoyez un M304 P0.00 I0.00 D0.00 à l’imprimante, puis refaites l’autotune du PID.

    6. Attendez que les opérations soient terminées (quand c’est fait, le cycle de chauffe s’arrête et la température baisse)

    7. Prenez note des nouvelles valeurs du P. I.D. affichées

    8. Envoyez un M500 pour sauvegarder ces valeurs dans l’EEPROM

    9. Pour vérifier que ces valeurs ont bien été sauvées, envoyez un M301 / M304 pour afficher les valeurs actuelles

    10. Si les valeurs actuelles de PID ne correspondent pas aux nouvelles, alors vous devez les fixer manuellement:

    11. Hotend: Envoi d’un M301 P<valeur> I<valeur> D<valeur> à l’imprimante

    12. Lit chauffant: Envoi d’un M304 P<valeur> I<valeur> D<valeur> à l’imprimante

    13. Envoi d’un M500 pour sauvegarder ces valeurs dans l’EEPROM

    14. Dans Configuration.h mettre à jour les valeurs de PID pour une prochaine mise à jour du firmware (DEFAULT_Kp, ...Ki, ...Kd, DEFAULT_bedKp, ...bedKi, ...bedKd)


     

    BLTOUCH

    Configuration.h

    • A #define Z_STOP_PIN 19 (renommé en Z_MIN_PROBE_PIN )

      • Le BLTouch est «précâblé» sur le Z_MAX_PIN, le endstop originel lui est connecté sur le Z_MIN_ENDSTOP_PIN

    • A #define BLTOUCH

    • C #define NOZZLE_TO_PROBE_OFFSET { 47, 0, 0 }

      • Éditez ces valeurs en fonction de votre matériel et de sa position par rapport à la buse, aide dans la section Mesurer NOZZLE_TO_PROBE_OFFSET

    • C #define MIN_PROBE_EDGE 10 ( renommé en PROBING_MARGIN )

      • Si vous avez des clips pour maintenir la surface d’impression (verre, miroir, …), augmenter à la taille des clips +5

    • C #define XY_PROBE_SPEED 6000 9000 ( renommé en XY_PROBE_FEEDRATE )

      • Avec 6000 le 9000 BLTouch fonctionne de manière plus fiable (9000 mm/min = 150 mm/s)

    • A #define MULTIPLE_PROBING 2

      • permet d’améliorer le résultat en effectuant plusieurs palpages

    • A #define Z_MIN_PROBE_REPEATABILITY_TEST

    • A #define AUTO_BED_LEVELING_BILINEAR

      • ou utiliser AUTO_BED_LEVELING_UBL / MESH_BED_LEVELING, liens vers des guides plus loin dans ce post

    • A #define RESTORE_LEVELING_AFTER_G28

    • A #define Z_SAFE_HOMING

    Configuration_adv.h

    • A #define BABYSTEPPING

    • C #define BABYSTEP_MULTIPLICATOR_Z 4

      • 1 monte l’axe Z de 1 microstep (0.0025), 4 montera l’axe Z de 0.01

    • A #define DOUBLECLICK_FOR_Z_BABYSTEPPING

      • Double-clic avec l’écran de Statut pour éditer le Z Babystepping pendant une impression

    • A #define BABYSTEP_ZPROBE_OFFSET

    • A #define BABYSTEP_ZPROBE_GFX_OVERLAY

    Mesurer les valeurs à saisir pour NOZZLE_TO_PROBE_OFFSET

    1. Mesurer approximativement les écarts / distances entre la pin de la sonde et la buse dans les directions X et Y

      1. La pointe de la sonde devrait être 2.3-4.3mm plus haut que la buse (quand la sonde est rentrée)

    2. Modifier les valeurs NOZZLE_TO_PROBE_OFFSET en fonction de vos mesures

    3. Compiler - flasher - redémarrer ...

    4. Effectuer le Homing (G28)

    5. Prenez note des coordonnées X et Y (réalisable via le menu «Move Axis» de l’écran)

    6. Déplacez l’axe Z vers le bas jusqu’à ce que la buse touche ou pratiquement touche le lit

    7. Marquez le point où la buse touche le lit (assurez-vous que ce marquage ne se déplacera pas sur le lit (utiliser du scotch de marquage par exemple))

    8. Déplacez les axes X et Y via le menu de l’imprimante jusqu’à ce que la pointe de la sonde soit sur la marque

    9. Prenez note des coordonnées X et Y

    10. Soustrayez les coordonnées X/Y originelles des coordonnées X/Y de la position de la pointe du BLTouch pour obtenir le NOZZLE_TO_PROBE_OFFSET. Exemple pour la CR10V2: après le homing, la buse est en (150,150); en déplaçant le pointeur de la buse à l'emplacement marqué sur le plateau, la position affichée à l'écran devrait être (103,150); donc 150-103=47 pour le X et 150-150=0 pour le Y 

    Unified Bed Leveling (UBL)

    Mesh Bed Leveling

    (ABL du «pauvre» mais tout de même bien pratique)

    Configuration.h

    Ce type de nivelage n'est à utiliser que si vous n'avez pas installé d'ABL automatique. Donc, à n'activer que si #define BLTOUCH (ou un autre ABL) ne l'est pas déjà sinon Marlin vous signalera une erreur.

    • A #define PROBE_MANUALLY

    • C #define NOZZLE_TO_PROBE_OFFSET { 0, 0, 0 }

    • A #define MESH_BED_LEVELING

    • A #define RESTORE_LEVELING_AFTER_G28

    • C #define GRID_MAX_POINTS_X 5 (Ou modifiez selon vos préférences)

    • A #define LCD_BED_LEVELING

    En complément (remarque de @Darkneo (merci à toi 😉 )) il faut désactiver certaines directives qui autrement conduisent à une erreur de compilation :

    • D #define Z_MIN_PROBE_REPEATABILITY_TEST

    et

    • D #define BABYSTEP_ZPROBE_OFFSET     (configuration_adv.h)

    Effectuer le nivelage manuel du lit (Mesh Bed Leveling)

    Chauffez votre lit à la température d’impression habituelle (ex : 60°C). Assurez-vous qu'il n'y a pas de plastique sur la buse, ce qui modifierait la distance de la buse par rapport au lit

    1. Sélectionner: Prepare - Bed Leveling - Level Bed

    2. Attendre que le Homing XYZ soit terminé

    3. Lorsque le bouton "Cliquer pour commencer" apparaît, appuyez sur le bouton du contrôleur pour vous rendre au premier point

    4. Utilisez la molette de commande pour régler Z afin qu'un morceau de papier puisse passer sous la buse en frottant

    5. Appuyez sur le bouton du contrôleur pour enregistrer la valeur Z et passer au point suivant

    6. Répétez les étapes 4 et 5 jusqu'à ce que vous ayez terminé.

    7. Sélectionnez : Configuration - Enregistrer les paramètres pour sauvegarder le maillage dans l'EEPROM

    8. Sélectionnez : Mouvement - Hauteur de fondu : Régler sur 10

    9. Sélectionnez : Motion - Stocker les paramètres

    10. Faites un test d'impression et, pendant l'impression, vous pouvez modifier la distance entre la buse et le lit en mouvement via les molettes de réglage du plateau Ne surtout pas toucher aux mollettes sinon le maillage ne sera plus correct 😉 Utiliser plutôt le réglage des babysteps via «double clic» sur le bouton de l'écran

    11. Sélectionnez : Configuration - Stocker les paramètres

    Plus d’infos :

    Détection de fin de filament et changement de filament

    Configuration.h

    • A #define FILAMENT_RUNOUT_SENSOR

    • A&C #define FILAMENT_RUNOUT_DISTANCE_MM 5

    • C #define EXTRUDE_MAXLENGTH 435

      • Longueur de la roue crantée de l’extrudeur à la buse

    • A #define NOZZLE_PARK_FEATURE

    • C #define NOZZLE_PARK_Z_FEEDRATE 3

    Configuration_adv.h

    • C #define ADVANCED_PAUSE_FEATURE

    • C #define PAUSE_PARK_RETRACT_LENGTH 6

      • Modifiez par votre distance de rétraction

    • C #define PAUSE_PARK_RETRACT_FEEDRATE 30

      • Modifiez par votre distance de rétraction

    • C #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 40

    • C #define FILAMENT_CHANGE_UNLOAD_LENGTH 435

      • Longueur de l'engrenage de l'extrudeuse à la buse OU régler sur 0 pour l'extraction manuelle du filament

    • A #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 30

    • A #define FILAMENT_CHANGE_FAST_LOAD_ACCEL 15

    • C #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 435

      • Longueur de l'engrenage de l'extrudeuse à la buse OU régler sur 0 pour l'insertion manuelle du filament

    • A #define ADVANCED_PAUSE_PURGE_LENGTH 20

    • A #define ADVANCED_PAUSE_FANS_PAUSE

    • A #define FILAMENT_UNLOAD_PURGE_RETRACT 4

    • C #define FILAMENT_CHANGE_ALERT_BEEPS 2

      • 3 peut être trop / énervant, si oui, diminuez à votre convenance

    • A #define PARK_HEAD_ON_PAUSE

    • A #define HOME_BEFORE_FILAMENT_CHANGE

    • A #define FILAMENT_LOAD_UNLOAD_GCODES

      • Ajoute le gcode (M701/M702) et Charger/décharger dans le menu de préparation de l'écran LCD.

    • A #define HOST_ACTION_COMMANDS

    • A #define HOST_PROMPT_SUPPORT

    Plus d’infos :

    Voir la partie M600 - Filament Change

    Chris Riley

    Linear Advance

    Junction Deviation

    Test «Tout-en-un» de la rétraction

    Compilation du firmware

    J’utilise VSCode avec l’extension PlatformIO ainsi que Git GUI.

    Le sujet ci-dessous décrit l'installation des logiciels nécessaires à la préparation / compilation d'un firmware Marlin :

    Pour les anglicistes, Chris Riley VSCode installation guide for Marlin 2.0.

    Le fichier du microprogramme issu de la compilation qui sera installé se trouve dans «../Marlin/Marlin/.pio/build/mega2560/firmware.hex»

    Flashage du firmware

    Plusieurs méthodes sont possibles :

    • Octoprint avec le plugin idoine (Firmware Updater),

    • des programmes (Xloader, ProgISP, Avrdudess, Avrdude (ligne de commande pour les purs et durs)…),

    • via le trancheur (Cura, Prusaslicer,…).

    • directement via VSC en cliquant sur l’icone à droite de celle utilisée pour lancer la compilation.

    La condition pour que ça fonctionne étant que l’imprimante soit reliée à un matériel informatique via USB pour la liaison et le transfert et qu'elle soit reconnue (son pilote est correct).

    On utilise le fichier firmware.hex pour flasher.

    Éviter toute coupure de courant durant ce flashage, attendre que le transfert soit terminé (le processus prend quelques minutes). Normalement à l’issue de celui-ci, la carte doit redémarrer.

    Mettre à jour / reflasher un firmware

    Il est inutile de refaire tous les changements à chaque fois que vous voulez mettre à jour une nouvelle version de Marlin, vous devez simplement copier vos fichiers de configuration modifiés dans le nouveau marlin et les comparer dans VSC Source Control (Ctrl+Shift+G), et copier tout ce qui est nouveau ou modifié dans vos fichiers.

    Tous les changements ne seront pas appliqués sur une mise à jour du microprogramme, pour cela vous devrez réinitialiser vos paramètres d'imprimante :

    • en allant dans le menu de l'imprimante - Configuration - Restaurer les valeurs par défaut,

    • ou en envoyant un M502 à l'imprimante suivi d'un M500

    Cela réinitialisera vos paramètres en fonction des valeurs par défaut du microprogramme. Cette réinitialisation est à faire après chaque installation du firmware afin d’éviter toute déconvenue.

    <EDIT>

    Depuis la version stable 2.0.9.3, une nouvelle directive «EEPROM_INIT_NOW» permet de réaliser automatiquement la réinitialisation de l'EEPROM après flashage d'un nouveau firmware :

    Citation
    #if ENABLED(EEPROM_SETTINGS)
      //#define EEPROM_AUTO_INIT  // Init EEPROM automatically on any errors.
      #define EEPROM_INIT_NOW   // Init EEPROM on first boot after a new build.
    #endif

    Quelques explications sur les commandes M500 à M503 :

    Changelog

    20200414 : version initiale

    20200510: corrections, compléments, version «problématique» pour certains

    • désactivation totale du LINEAR_ADVANCE qui ne l'était pas vraiment
    • réactivation du CLASSIC_JERK
    • ajout détecteur fin de filament, directives concernant INVERTING, PULLUP, PIN

    • complément information sur la connexion du BLTouch (Z_MAX_PIN 19)

    • ajout dans la section Flashage, programme AVRDUDESS, possibilité de flasher via VSC si ordinateur relié via USB à la carte (détection automatique du port).

    20200619 : corrections, modifications

    • cosmétique : mise en évidence de certains points

    • précisions diverses

    • la vitesse de connexion à passée de 115200 à 250000,

    • précision sur la désactivation du «linear advance»

    • modification du BLOCK_BUFFER_SIZE, BUFSIZE et TX_BUFFER_SIZE dans le fichier configuration_adv.h (des valeurs trop élevées amènent à un dépassement de la capacité de stockage de la RAM pouvant conduire à un écran «bleu» suite au flashage),

    • mise à jour des fichiers de configurations

    • suppression du fichier binaire (chacun devra compiler son propre firmware)

    20200801:

    • version de Marlin, dernière en date (2.0.6)
    • suppression du fichier compressé du Marlin
    • lien vers mon dépôt Github (pour les plus curieux, j'ai d'autres branches de Marlin pour d'autres imprimantes / cartes mères)
    • suppression du fichier binaire (je préfère que les utilisateurs progressent en effectuant la compilation eux-mêmes)
    • ajout explications M500 / M503

    202020815:

    • corrections mineures (orthographe principalement)
    • complément / rectification concernant les fichiers exemples de configuration fournis par Marlin (la CR10-V2 fait désormais partie des imprimantes à partir de la version stable 2.0.6)

    20200918:

    • corrections mineures (orthographe principalement) passées inaperçues
    • passage de mon extrudeur à un BMG à réduction (3:1) dont le pas est de 415

    20201012:

    • version de Marlin, dernière stable : 2.0.7.1

    20201026:

    • version de Marlin, dernière stable : 2.0.7.2
    • complément sur le Mesh Bed Levelling (ABL du «pauvre»)

    20210111:

    • complément pour ceux possédant une CR10-V3

    20210815:

    • version de Marlin, dernière stable : 2.0.9.1

    20210822:

    • Complément afin d'indiquer les directives de compilation qui ont changé de nom depuis la mise en ligne de ce tutoriel basé à l'origine sur un Marlin 2.0.3 : HOMING_FEEDRATE_Z, Z_STOP_PIN, MIN_PROBE_EDGE, XY_PROBE_SPEED sont dénommées autrement (merci à @Pyroadu signalement 😉 )

    20210927:

    • Ajout d'un lien vers un tutoriel de ce forum sur l'installation de son environnement de travail afin de faire son propre firmware

    20220103:

    • version de Marlin, dernière stable : 2.0.9.3
    • ajout d'une nouvelle directive permettant de réinitialiser l'EEPROM automatiquement lors du premier lancement du firmware après flashage

    Les fichiers ayant servi à la compilation :   à récupérer sur mon dépôt Github .


  4. Octolapse pour android
    Tuto Octolapse pour des appareils Android non supportés par GPhoto2

    Hello,

    Il existe de nombreux tutos Octolapse pour des appareils photos (DSLR, etc) et webcams via l'excellent outil GPhoto2 mais pas grand chose pour les appareils Android non supportés.
    Dans mon cas il s'agit d'un Samsung Galaxy S8.

    La solution proposée dans ce tuto consiste à prendre des photos à l'aide des commandes ADB (Android Debug Bridge) via un script assez similaire à celui de GPhoto2.
     

    Pour rappel, un appareil Android branché en USB peut se mettre dans différents modes (PTP, MTP, charge uniquement, etc). Un spécifique et caché par défaut permet d'envoyer certaines commandes pour différentes actions sur l'appareil (copie de fichiers, execution/arrets/(des)installations de programmes, etc) sans le manipuler directement. C'est le mode "Débogage USB" et c'est grâce à ce mode que l'on va pouvoir prendre les photos.

    Avant toutes choses, l'éxecution de commandes ADB n'est pas sans risques pour votre appareil.  Ni ce forum, ni moi ne peuvent être tenu responsables des éventuels problèmes rencontrés. Pensez à effectuer une sauvegarde de vos données personnelles sur votre appareil Android avant d'aller plus loin ! 

     

    1. Activer le mode "Débogage USB"

    • Ce mode est activable dans le menu "développeur", menu caché par défaut, comme précisé dans ce tutoriel. Plus de détail ICI

     

    2. Installer ADB sur le PI

    sudo apt-get install adb

     

    3. Brancher l'appareil Android sur le PI via le câble USB.

    • Si le mode Débogage USB est activé, une fenêtre d'autorisation doit apparaître :

    image.png.6672b44cf8b4b04e8b4ff82f044b30ad.png

    • Il faut valider et pour éviter d'avoir cette fenêtre à chaque fois, cocher pour mémoriser le choix.
       

    4. Vérifier la commande ADB pour l'ouverture du logiciel de la capture photo

    • taper la ligne suivante :

     

    adb shell am start -a android.media.action.IMAGE_CAPTURE
    • Dans le cas de mon téléphone, l'application native s'ouvre par contre je n'ai pas la possibilité d'enregistrer de photos (une spécificité Samsung ?). Il faut utiliser la commande suivante à la place :
    adb shell "am start -a android.media.action.STILL_IMAGE_CAMERA"
    • Si un logiciel par défaut est défini, il va s'ouvrir automatiquement. Sinon un choix doit être proposé (avec la possibilité de mémoriser le choix).
      Dans le logiciel de prise de photo, il faut également vérifier où sont stoquées les photos prises.
      Par exemple :
      ► Carte SD : /storage/0000-0000/DCIM/Camera
      ► Mémoire interne : /sdcard/DCIM/Camera
      Les photos sont nommées de cette manière : YYYYMMDD_HHMMSS.jpg (YYYY: année, MM : mois, etc) mais ça dépend du logiciel utilisé
      Cette étape est importante car il faudra définir le bon emplacement dans le script.


    5. La création du script

    Le script est composé en trois parties, la première et la dernière sont du copier/coller du script utilisé par GPhoto2 :

    Partie 1  (début) :

    #!/bin/bash
    
    # Put the arguments sent by Octolapse into variables for easy use
    SNAPSHOT_NUMBER=$1 #... an integer value that increments after each successful snapshot
    DELAY_SECONDS=$2 #..... the camera delay in seconds
    DATA_DIRECTORY=$3 #.... the path to the Octolapse data folder
    SNAPSHOT_DIRECTORY=$4 # the path to the current camera's snapshot folder for the current print job.may not exist so be $SNAPSHOT_FILENAME=$5 #. the expected file name of the snapshot after it has been taken
    SNAPSHOT_FULL_PATH=$6 # the full path and filename of the expected snapshot.If this file exists after the script has re$
    
    # Check to see if the snapshot directory exists
    if [ ! -d "${SNAPSHOT_DIRECTORY}" ];
    then
      echo "Creating directory: ${SNAPSHOT_DIRECTORY}"
      mkdir -p "${SNAPSHOT_DIRECTORY}"
      mkdir -p "${SNAPSHOT_DIRECTORY}/fullres"
    fi

    Il faudra juste rajouter le chemin où sont stoquées les photos:

    cam_path='/sdcard/DCIM/Camera'

    Partie 3 (fin):

    if [ ! -f "${SNAPSHOT_FULL_PATH}" ];
    then
      echo "The snapshot was not found in the expected directory: '${SNAPSHOT_FULL_PATH}'." >&2
      exit 1
    fi

     

    La partie 2 consiste à lancer les commandes ADB adéquates pour prendre la photo et la déplacer dans le dossier d'Octolapse.
    En fonction de l'appareil Android et du logiciel de photo utilisé, les commandes et délais d'attentes peuvent varier. Il faudra tester et adapter si besoin.
    Voici les différentes commandes qui peuvent servir :
     

    adb shell "input keyevent KEYCODE_WAKEUP"  #...................... déverrouillage
    adb shell "input keyevent KEYCODE_SLEEP" #........................ verrouillage
    adb shell "input keyevent KEYCODE_HOME" #......................... écran d'accueil
    adb shell "input keyevent KEYCODE_CAMERA" #....................... prise de la photo
    adb shell "input keyevent KEYCODE_FOCUS" #........................ focus manuel avant de prendre une photo
    adb shell "am start -a android.media.action.IMAGE_CAPTURE" #...... ouverture de l'application photo par défaut
    adb shell "am start -a android.media.action.STILL_IMAGE_CAMERA" #. ouverture de l'application photo par défaut
    adb shell "am force-stop com.sec.android.app.camera" #............ fermeture de l'application photo
    adb shell ls #.................................................... la fonction "ls" classique avec tous les paramètres possibles
    adb pull $FullFileName #.......................................... copier de fichier(s)
    adb shell rm $FullFileName #...................................... suppression de fichier(s)



    Par exemple, pour l'application native du Galaxy S8, la prise de photo peut s'enclencher via ce script :

    adb shell "input keyevent KEYCODE_WAKEUP"
    adb shell "am start -a android.media.action.STILL_IMAGE_CAMERA"
    sleep 1
    adb shell "input keyevent KEYCODE_CAMERA"
    sleep 3
    adb shell "am force-stop com.sec.android.app.camera"
    adb shell "input keyevent KEYCODE_SLEEP"

    Il est important de rajouter quelques secondes (sleep) pour laisser le temps à l'appareil de lancer l'application et prendre la photo. Dans cet exemple le "profil" utilisé est le mode "automatique" et ne permet pas un réglage "aux petits oignons". C'est économe puisque le téléphone se verrouille (écran s'éteint) une fois la tâche terminée mais ça prend plus de temps (ce qui nécessitera de rallonger le paramètre Snapshot Timeout dans Octolapse)

    Un autre exemple, via une application rajoutée (DLSR Camera Professional) permettant un mode plus "pro" et rapide (mais moins économe). On part du principe que l'application est déjà ouverte, l'utilisateur a effectué tous les réglages désirés (ISO, Focus, exposition, zoom, etc). La prise de photo se réduit à deux lignes :

    adb shell "input keyevent KEYCODE_CAMERA"
    sleep 3

    Encore une fois, cette partie dépend du matériel (si assez rapide, on peut passer à un "sleep 2" par exemple), du logiciel utilisé et de comment on veut prendre les photos.

     

    Ensuite, pour le déplacement de la photo de l'appareil Android sur le PI, j'ai choisi la méthode suivante :

    last_file=$(adb shell ls -1t $cam_path | head -1)

    Cette instruction permet de retrouver le dernier fichier présent dans le dossier $cam_path, soit théoriquement la dernière photo, si tout fonctionne correctement...

    Le déplacement de la photo s'effectue en 2 temps :

    1. La copie sur le PI (+ renommage):

    cd "${SNAPSHOT_DIRECTORY}" # ............. choix du dossier
    adb pull $cam_path/$last_file # .......... copie de la photo
    mv $last_file "${SNAPSHOT_FILENAME}" # ... renommage du fichier

    2. La suppression sur l'appareil Android :

    adb shell rm $cam_path/$last_file

    Bien que fonctionnel, ce n'est pas parfait car si pour X raisons la photo n'a pas été prise correctement, le script en l'état va prendre le dernier fichier (donc pas la photo attendue) et va la copier et la supprimer sur l'appareil Android. Raison pour laquelle il vaut mieux lancer ce script dans un dossier vide par défaut histoire de ne pas faire de bêtises sur des photos précédentes ^^
    L'idéal serait de s'assurer préalablement que la photo a été correctement prise. Par exemple en faisant ressortir le dernier fichier datant de moins de 10s et s'il n'y en a pas, alors ça veut dire que la photo n'a pas été prise. Je n'ai pas encore trouvé de solution à ce niveau via une commande "adb shell ls..." mais peut-être que quelqu'un aura la bonne idée pour compléter ce tuto et proposer une méthode plus "secure".

    Le script complet dans mon cas est le suivant :

    #!/bin/bash
    
    # Put the arguments sent by Octolapse into variables for easy use
    SNAPSHOT_NUMBER=$1 #... an integer value that increments after each successful snapshot
    DELAY_SECONDS=$2 #..... the camera delay in seconds
    DATA_DIRECTORY=$3 #.... the path to the Octolapse data folder
    SNAPSHOT_DIRECTORY=$4 # the path to the current camera's snapshot folder for the current print job.may not exist so be $SNAPSHOT_FILENAME=$5 #. the expected file name of the snapshot after it has been taken
    SNAPSHOT_FULL_PATH=$6 # the full path and filename of the expected snapshot.If this file exists after the script has re$
    
    cam_path='/sdcard/DCIM/DSLRCamera' 
    
    # Check to see if the snapshot directory exists
    if [ ! -d "${SNAPSHOT_DIRECTORY}" ];
    then
      echo "Creating directory: ${SNAPSHOT_DIRECTORY}"
      mkdir -p "${SNAPSHOT_DIRECTORY}"
      mkdir -p "${SNAPSHOT_DIRECTORY}/fullres"
    fi
    
    adb shell "input keyevent KEYCODE_CAMERA"
    sleep 3
    cd "${SNAPSHOT_DIRECTORY}"
    adb pull $cam_path/$last_file
    mv $last_file "${SNAPSHOT_FILENAME}"
    adb shell rm $cam_path/$last_file
    
    if [ ! -f "${SNAPSHOT_FULL_PATH}" ];
    then
      echo "The snapshot was not found in the expected directory: '${SNAPSHOT_FULL_PATH}'." >&2
      exit 1
    fi

    La création du script peut s'effectuer va la commande suivante (dans le dossier /home/pi ou /scripts/ par exemple):

    nano take_snapshot.sh

    puis faire un copier/coller du script et enregistrer. Ensuite il faudra le rendre executable via la commande:
     

    sudo chmod +x take_snapshot.sh

     

    Enfin, dans le module d'Octolapse, créer un nouveau profile de caméra de type "External camera script", en précisant le script (le chemin complet) et éventuellement ajuster le Timeout :

    image.thumb.png.a4c965d95e35cafbd0a1c5c91b00d200.png

     

    Reste à tester le script via le lien idoine (cf flèche sur l'image ci-dessus) et s'assurer qu'il n'y a pas d'erreurs.

     

    Vos retours sont les bienvenus ☺


×
×
  • Créer...