Aller au contenu

Acheter Bambu Lab A1

Alfawise U20, Aides Modification et Rajout d'un Module laser, mode mixte impressions - decoupes et gravures


Aller à la solution Résolu par pommeverte,

Messages recommandés

Bonjour,

j'ai fait le test M43 en réponse j'ai PIN: PB3  M42 P19 .

Le M42  sur ce pin donne un Protected Pin et met l'imprimante en sécurité , que le jumper soit mis ou pas au niveau de PB3 de la carte mère.

 

Edit : maintenant si je fais M42 I1 P19 S255 T1  j'ai du 24v à la sortie / M42 I1 P19 S0 T1  pour arrêter.   I1 permet d'ignorer la protection.

Modifié (le) par 3d92Printer
  • +1 1
Lien vers le commentaire
Partager sur d’autres sites

Bonjour , après pas mal de test ça ne marche toujours pas .

Tout d'abords j'ai du rajouter un MicroProbe avec le module laser car sur Lightburn même en désactivant l'axe Z , un home le faisait bouger quand même.

Le premier branchement que j'ai fait  : alimentation VCC et GND sur la HE , PWM sur la broche PB5 du fan 2 de la SKR 3.

Révélation

laser2.png.61de37fb64db6771f65acc46d38cffa7.png

Sur LightBurn j'ai rajouté un g-code de démarrage M42 I1 P19 S255 T1  et G-code de fin : M42 I1 P19 S0 T1.

Le laser se met en marche quand je lance la gravure , mais au  maximum tout le temps et ne s’arrête pas du tout , même si j’arrête la gravure.

J'en conclu que je n'ai pas de modulation du signal. aucune commande G-Code ne réagit à ce niveau ni M106/107 , M3/M4, quelque soit le réglage du Lightburn.

Au Niveau de Marlin :

Dans le fichier pins de la carte mère :

Révélation
#if HAS_CUTTER
  #ifndef SPINDLE_LASER_PWM_PIN
    #define SPINDLE_LASER_PWM_PIN           PB5
  #endif
  #ifndef SPINDLE_LASER_ENA_PIN
    #define SPINDLE_LASER_ENA_PIN           PB6
  #endif
#else
  #ifndef FAN1_PIN
    #define FAN1_PIN                        PB6   // Fan1
  #endif
  #ifndef FAN2_PIN
    #define FAN2_PIN                        PB5   // Fan2
  #endif
#endif // SPINDLE_FEATURE || LASER_FEATURE

Fichier  Configuration_adv.h

Révélation
/**
 * Spindle & Laser control
 *
 * Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
 * to set spindle speed, spindle direction, and laser power.
 *
 * SuperPid is a router/spindle speed controller used in the CNC milling community.
 * Marlin can be used to turn the spindle on and off. It can also be used to set
 * the spindle speed from 5,000 to 30,000 RPM.
 *
 * You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
 * hardware PWM pin for the speed control and a pin for the rotation direction.
 *
 * See https://marlinfw.org/docs/configuration/2.0.9/laser_spindle.html for more config details.
 */
//#define SPINDLE_FEATURE
#define LASER_FEATURE // 
#if ANY(SPINDLE_FEATURE, LASER_FEATURE)
  #define SPINDLE_LASER_ACTIVE_STATE    LOW    // Set to "HIGH" if SPINDLE_LASER_ENA_PIN is active HIGH

  #define SPINDLE_LASER_USE_PWM                // Enable if your controller supports setting the speed/power
  #if ENABLED(SPINDLE_LASER_USE_PWM)
    #define SPINDLE_LASER_PWM_INVERT    false  // Set to "true" if the speed/power goes up when you want it to go slower
    #define SPINDLE_LASER_FREQUENCY     2500   // (Hz) Spindle/laser frequency (only on supported HALs: AVR, ESP32, and LPC) // 
                                               // ESP32: If SPINDLE_LASER_PWM_PIN is onboard then <=78125Hz. For I2S expander
                                               //  the frequency determines the PWM resolution. 2500Hz = 0-100, 977Hz = 0-255, ...
                                               //  (250000 / SPINDLE_LASER_FREQUENCY) = max value.
  #endif

  //#define AIR_EVACUATION                     // Cutter Vacuum / Laser Blower motor control with G-codes M10-M11
  #if ENABLED(AIR_EVACUATION)
    #define AIR_EVACUATION_ACTIVE       LOW    // Set to "HIGH" if the on/off function is active HIGH
    //#define AIR_EVACUATION_PIN        42     // Override the default Cutter Vacuum or Laser Blower pin
  #endif

  //#define AIR_ASSIST                         // Air Assist control with G-codes M8-M9
  #if ENABLED(AIR_ASSIST)
    #define AIR_ASSIST_ACTIVE           LOW    // Active state on air assist pin
    //#define AIR_ASSIST_PIN            44     // Override the default Air Assist pin
  #endif

  //#define SPINDLE_SERVO                      // A servo converting an angle to spindle power
  #ifdef SPINDLE_SERVO
    #define SPINDLE_SERVO_NR   0               // Index of servo used for spindle control
    #define SPINDLE_SERVO_MIN 10               // Minimum angle for servo spindle
  #endif

  /**
   * Speed / Power can be set ('M3 S') and displayed in terms of:
   *  - PWM255  (S0 - S255)
   *  - PERCENT (S0 - S100)
   *  - RPM     (S0 - S50000)  Best for use with a spindle
   *  - SERVO   (S0 - S180)
   */
  #define CUTTER_POWER_UNIT PWM255

  /**
   * Relative Cutter Power
   * Normally, 'M3 O<power>' sets
   * OCR power is relative to the range SPEED_POWER_MIN...SPEED_POWER_MAX.
   * so input powers of 0...255 correspond to SPEED_POWER_MIN...SPEED_POWER_MAX
   * instead of normal range (0 to SPEED_POWER_MAX).
   * Best used with (e.g.) SuperPID router controller: S0 = 5,000 RPM and S255 = 30,000 RPM
   */
  //#define CUTTER_POWER_RELATIVE              // Set speed proportional to [SPEED_POWER_MIN...SPEED_POWER_MAX]

  #if ENABLED(SPINDLE_FEATURE)
    //#define SPINDLE_CHANGE_DIR               // Enable if your spindle controller can change spindle direction
    #define SPINDLE_CHANGE_DIR_STOP            // Enable if the spindle should stop before changing spin direction
    #define SPINDLE_INVERT_DIR          false  // Set to "true" if the spin direction is reversed

    #define SPINDLE_LASER_POWERUP_DELAY   5000 // (ms) Delay to allow the spindle/laser to come up to speed/power
    #define SPINDLE_LASER_POWERDOWN_DELAY 5000 // (ms) Delay to allow the spindle to stop

    /**
     * M3/M4 Power Equation
     *
     * Each tool uses different value ranges for speed / power control.
     * These parameters are used to convert between tool power units and PWM.
     *
     * Speed/Power = (PWMDC / 255 * 100 - SPEED_POWER_INTERCEPT) / SPEED_POWER_SLOPE
     * PWMDC = (spdpwr - SPEED_POWER_MIN) / (SPEED_POWER_MAX - SPEED_POWER_MIN) / SPEED_POWER_SLOPE
     */
    #if ENABLED(SPINDLE_LASER_USE_PWM)
      #define SPEED_POWER_INTERCEPT       0    // (%) 0-100 i.e., Minimum power percentage
      #define SPEED_POWER_MIN          5000    // (RPM)
      #define SPEED_POWER_MAX         30000    // (RPM) SuperPID router controller 0 - 30,000 RPM
      #define SPEED_POWER_STARTUP     25000    // (RPM) M3/M4 speed/power default (with no arguments)
    #endif

  #else

    #if ENABLED(SPINDLE_LASER_USE_PWM)
      #define SPEED_POWER_INTERCEPT       0    // (%) 0-100 i.e., Minimum power percentage
      #define SPEED_POWER_MIN             0    // (%) 0-100
      #define SPEED_POWER_MAX           100    // (%) 0-100
      #define SPEED_POWER_STARTUP        80    // (%) M3/M4 speed/power default (with no arguments)
    #endif

    // Define the minimum and maximum test pulse time values for a laser test fire function
    #define LASER_TEST_PULSE_MIN           1   // (ms) Used with Laser Control Menu
    #define LASER_TEST_PULSE_MAX         999   // (ms) Caution: Menu may not show more than 3 characters

    #define SPINDLE_LASER_POWERUP_DELAY   50   // (ms) Delay to allow the spindle/laser to come up to speed/power
    #define SPINDLE_LASER_POWERDOWN_DELAY 50   // (ms) Delay to allow the spindle to stop

   /**
    * Laser Safety Timeout
    *
    * The laser should be turned off when there is no movement for a period of time.
    * Consider material flammability, cut rate, and G-code order when setting this
    * value. Too low and it could turn off during a very slow move; too high and
    * the material could ignite.
    */
    #define LASER_SAFETY_TIMEOUT_MS     1000   // (ms)

    /**
     * Any M3 or G1/2/3/5 command with the 'I' parameter enables continuous inline power mode.
     *
     * e.g., 'M3 I' enables continuous inline power which is processed by the planner.
     * Power is stored in move blocks and applied when blocks are processed by the Stepper ISR.
     *
     * 'M4 I' sets dynamic mode which uses the current feedrate to calculate a laser power OCR value.
     *
     * Any move in dynamic mode will use the current feedrate to calculate the laser power.
     * Feed rates are set by the F parameter of a move command e.g. G1 X0 Y10 F6000
     * Laser power would be calculated by bit shifting off 8 LSB's. In binary this is div 256.
     * The calculation gives us ocr values from 0 to 255, values over F65535 will be set as 255 .
     * More refined power control such as compensation for accel/decel will be addressed in future releases.
     *
     * M5 I clears inline mode and set power to 0, M5 sets the power output to 0 but leaves inline mode on.
     */

    /**
     * Enable M3 commands for laser mode inline power planner syncing.
     * This feature enables any M3 S-value to be injected into the block buffers while in
     * CUTTER_MODE_CONTINUOUS. The option allows M3 laser power to be committed without waiting
     * for a planner synchronization
     */
    #define LASER_POWER_SYNC // 

    /**
     * Scale the laser's power in proportion to the movement rate.
     *
     * - Sets the entry power proportional to the entry speed over the nominal speed.
     * - Ramps the power up every N steps to approximate the speed trapezoid.
     * - Due to the limited power resolution this is only approximate.
     */
    //#define LASER_POWER_TRAP

    //
    // Laser I2C Ammeter (High precision INA226 low/high side module)
    //
    //#define I2C_AMMETER
    #if ENABLED(I2C_AMMETER)
      #define I2C_AMMETER_IMAX            0.1    // (Amps) Calibration value for the expected current range
      #define I2C_AMMETER_SHUNT_RESISTOR  0.1    // (Ohms) Calibration shunt resistor value
    #endif

    //
    // Laser Coolant Flow Meter
    //
    //#define LASER_COOLANT_FLOW_METER
    #if ENABLED(LASER_COOLANT_FLOW_METER)
      #define FLOWMETER_PIN         20  // Requires an external interrupt-enabled pin (e.g., RAMPS 2,3,18,19,20,21)
      #define FLOWMETER_PPL       5880  // (pulses/liter) Flow meter pulses-per-liter on the input pin
      #define FLOWMETER_INTERVAL  1000  // (ms) Flow rate calculation interval in milliseconds
      #define FLOWMETER_SAFETY          // Prevent running the laser without the minimum flow rate set below
      #if ENABLED(FLOWMETER_SAFETY)
        #define FLOWMETER_MIN_LITERS_PER_MINUTE 1.5 // (liters/min) Minimum flow required when enabled
      #endif
    #endif

  #endif
#endif // SPINDLE_FEATURE || LASER_FEATURE

/**
 * Synchronous Laser Control with M106/M107
 *
 * Marlin normally applies M106/M107 fan speeds at a time "soon after" processing
 * a planner block. This is too inaccurate for a PWM/TTL laser attached to the fan
 * header (as with some add-on laser kits). Enable this option to set fan/laser
 * speeds with much more exact timing for improved print fidelity.
 *
 * NOTE: This option sacrifices some cooling fan speed options.
 */
#define LASER_SYNCHRONOUS_M106_M107 // 

 

j'ai en suite essayé avec la carte livrée avec le graveur

Révélation

laser3.thumb.png.76a84e7ea9b515a5a73aa5dea98386b1.png

j'ai mis une alimentation 24v Externe (directement de l'alimentation de l'imprimante)  et le Signal de PWM PB5 de la carte mère sur le Pwm (6) de la carte Driver. Sur la carte j'ai bien la led Verte du signal TTL/PWM (10) qui s'allume !

La aussi aucune modulation, c'est au maximum dès que je mets en marche l'imprimante.

D'après ce que j'ai compris c'est qu'il faut qu'il y ait une relation entre le PWM et GND du laser, il me semble qu'il y en a qui ont fait un pont entre les deux avec une résistance, j'ai une résistance 1K mais avant je préfère demander un avis avant d'essayer, question de ne pas cramer le matériel.

Il faut savoir que mes fans sont en 12V , la broche PWM du fan c'est bien le GND et l'autre Broche le 12 V ?  car j'ai pensé relier la deuxième broche sur le GDN de l'adaptateur mais j'hesite car je pense que c'est du 12V.

Question modulation le laser supporte de 5 à 12v

Révélation

CaractritiquesLaser.thumb.png.4dd8cfb90c5a2522fe476ae22668642d.png

Il me reste à essayer la broche PE6 neopixel mais je ne pense pas que ça réglera le problème.

Je pense qu'une broche PWM seule ne fait pas l'affaire.

 

Modifié (le) par 3d92Printer
Lien vers le commentaire
Partager sur d’autres sites

  • Solution

Salut,

Il y a 2 heures, 3d92Printer a dit :

Tout d'abord j'ai du rajouter un MicroProbe avec le module laser car sur Lightburn même en désactivant l'axe Z , un home le faisait bouger quand même

Si tu fais un G28, c'est normal. Avec cette suite de Gcode, ça devrait fonctionner:
G28 XY
G92 Z0

Il y a 2 heures, 3d92Printer a dit :

D'après ce que j'ai compris c'est qu'il faut qu'il y ait une relation entre le PWM et GND  du laser  5V ou 12V externe de la carte-mère, il me semble qu'il y en a qui ont fait un pond entre les deux avec une résistance, j'ai une résistance 1K

c'est bien ça. La sortie PB5 est à drain ouvert. Cela signifie qu'il faut ajouter une résistance entre cette broche et le +5V ou le +12V pour avoir un signal PWM respectivement en 5V ou 12V externe (Vfan/VOT). Le +5V est accessible par exemple sur les connecteurs de fin de course, ou ExDET, ou PWRDET

Il y a 2 heures, 3d92Printer a dit :

j'ai en suite essayé avec la carte livrée avec le graveur

c'est le plus simple, en effet, puisque tu peux dans ce cas utiliser l'alimentation 24V de l'imprimante. Par contre, tu utilises quel port? input A,B,C ou D?

Il y a 2 heures, 3d92Printer a dit :

Il faut savoir que mes fans sont en 12V , la broche PWM du fan c'est bien le GND et l'autre Broche le 12 V ?

ça dépend à quelle position tu as placé le cavalier Vfan. Si il est à gauche, c'est du 24V, si il est à droite, tu as la tension externe présente sur le connecteur VOT. Si tu n'as rien à cet emplacement alors Vfan = 0, la tête à toto 😵‍💫

Citation

Vfan.jpg.67b478ae672218eaf9fc454c8ee8981a.jpg

 

Il y a 2 heures, 3d92Printer a dit :

Je pense qu'une broche PWM seule ne fait pas l'affaire

Baaaah, tu dis ça parce que t'es en colère 🤪. Avec son alimentation, le module n'a besoin de rien d'autre, normalement.  😉

Modifié (le) par pommeverte
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Merci pour tes réponses ,  le MicroProbe étant maintenant en place et fonctionnel , je pourrais ainsi faire l'ajustement de la focale en bougeant l'axe Z , ce n'est pas plus mal.

il y a 29 minutes, pommeverte a dit :

c'est le plus simple, en effet, puisque tu peux dans ce cas utiliser l'alimentation 24V de l'imprimante. Par contre, tu utilises quel port? input A,B,C ou D?

Dans ma logique le laser doit être alimenté tout le temps et juste le faisceau éteint et après il est modulé par les fonctions G-code

Je pense que je vais en effet garder cette carte  il n'y aura que le câble 3 pins à brancher sur le laser quand je mettrai l'outil en place, ce n'est pas très gênant, pour l'instant j'utilise l'entée D , juste pin PWM qui arrive du PB5 et l'alimentation 7. je ne sais pas s'il faut ou pas brancher le GND juste a coté !

Autrement la solution HE est bonne aussi à condition de rajouter les lignes  M42 I1 P19 S255 T1  au  g-Code start  et  M42 I1 P19 S0 T1 G-code end ; qui feront office de On/Off.

il y a 34 minutes, pommeverte a dit :

c'est bien ça. La sortie PB5 est à drain ouvert. Cela signifie qu'il faut ajouter une résistance entre cette broche et le +5V ou le +12V pour avoir un signal PWM respectivement en 5V ou 12V externe (Vfan/VOT). Le +5V est accessible par exemple sur les connecteurs de fin de course, ou ExDET, ou PWRDET

Les ExDET sont pris par le capteur de fin de filament (que  le 5 V du E0DET qui reste disponible)   et  PWRDET  par BTT UPS 24V V1.0 reprise d'impression en cas de coupure de courant. je peux utiliser le 5v (fin de course) ou tout simplement le 12v du fan2, ou c'est mieux que ça soit du 5V ?

Une résistance 1K (c'est suffisant ?)  entre le câble PB5 et celui du 5v fin de course ou 12v du fan2  sur la carte mère et un seul fil va vers la pin PWM du laser ou de la carte Driver ?

il y a 49 minutes, pommeverte a dit :

ça dépend à quelle position tu as placé le cavalier Vfan. Si il est à gauche, c'est du 24V, si il est à droite, tu as la tension externe présente sur le connecteur VOT. Si tu n'as rien à cet emplacement alors Vfan = 0, la tête à toto 😵‍💫

J'ai la Carte MODE SKR 3-DC sur le V-fan je suis sur VOT et j'ai réglé la carte sur 12v.

il y a 55 minutes, pommeverte a dit :

Baaaah, tu dis ça parce que t'es en colère 🤪. Avec son alimentation, le module n'a besoin de rien d'autre, normalement.  😉

😁 , il lui manquait du 5 ou 12v et la résistance ....

Lien vers le commentaire
Partager sur d’autres sites

Il y a 2 heures, 3d92Printer a dit :

ou tout simplement le 12v du fan2

oui, c'est le plus simple pour le câblage. Du coup:

Il y a 2 heures, 3d92Printer a dit :

Une résistance 1K (c'est suffisant ?)  entre le câble PB5 et celui du 5v fin de course ou 12v du fan2  sur la carte mère et un seul fil va vers la pin PWM du laser ou de la carte Driver ?

exactement. 1Kohms, c'est parfait.

Il y a 2 heures, 3d92Printer a dit :

pour l'instant j'utilise l'entée D , juste pin PWM qui arrive du PB5 et l'alimentation 7

normalement, ça devrait fonctionner.

Il y a 2 heures, 3d92Printer a dit :

je ne sais pas s'il faut ou pas brancher le GND juste a coté !

théoriquement, ce n'est pas nécessaire puisque tu as toutes les masses au même potentiel. Cela dit, il suffit de tester la continuité entre cette broche de masse et le - du connecteur 7 (patte latérale du connecteur jack), machine éteinte évidemment. Si tu as la continuité, alors ce n'est pas utile d'ajouter une masse.

Modifié (le) par pommeverte
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Bonjour, @pommeverte, Merci infiniment pour ton aide précieuse et de grande qualité technique, sans toi je n'y serais surement pas arrivé. 

Tout semble marcher parfaitement , j'ai dû juste modifier cette ligne de configuration marlin , le PWM à 255 stop le laser.

 #define SPINDLE_LASER_PWM_INVERT    true  // Par défaut sur false 

Je n'arrive pas encore à utiliser le mode Inline de LightBurn,  question de configuration surement , configuré sur  M03/ M05 ça marche comme prévu.

Je n'arrive pas à mettre une petite vidéo , mais voilà la photo d'un premier essai :

IMG_3467_resize.thumb.jpg.07503830098bdd89789585efd0acb967.jpg

Maintenant il ne reste qu'à apprendre à graver / découper ... 🙂

Modifié (le) par 3d92Printer
  • J'aime 1
  • Wow 1
Lien vers le commentaire
Partager sur d’autres sites

il y a 54 minutes, pommeverte a dit :

je ne comprends pas, normalement, tu as juste à ajouter un M3 i après la prise d'origine

Oui j'ai lu sur le forum LightBurn que je devais rajouter au G-Code de démarrage M03 I et activer sur le logiciel la fonction Emit S value with every G1 Commande . pas encore essayé.

Je rajouterai quelques photos dès que je commencerai à avoir de bons résultats.

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
  • Sur cette page :   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
  • YouTube / Les Imprimantes 3D .fr

×
×
  • Créer...