Aller au contenu

Anycubic Kobra 3 Combo

Neopixel en fonction de l'état avec Klipper


David590

Messages recommandés

Bonjour à tous, 

Je suis en train d'installer le Stealthburner de Voron sur ma cr10

Il est encore en version beta pour le moment mais après quelques tests d'impression le refroidissement semble vraiment bon et je trouve la conception très bien pensée, le tout dans un format très compact avec un look de dingue 😀

Il est prévu 3 leds Neopixel (2 pour l'éclairage de la buse et 1 pour le logo qui indique l'état de la hotend, en chauffe, en impression...)

Je parviens bien à changer la couleur des leds avec les macros mais je ne vois pas comment le faire automatiquement en fonction de ce que fait l'imprimante, ca fait 2 jours que je tourne en rond 😕, quelqu'un aurait une idée ?

 

3.jpg.2833eb62cafc61d04583b6dca5acdc28.jpg1.jpg.1c54d896c6b1b108d66eb9447eb8ce45.jpg2.jpg.7696b79107c070defb750008736d7cc6.jpg

 
[neopixel sb_leds]
pinP1.24
chain_count3
color_order: GRBW
initial_RED0.0
initial_GREEN0.0
initial_BLUE0.0
initial_WHITE0.0
 
# MACROS
#
# The following status macros are available:
#    STATUS_READY
#    STATUS_OFF
#    STATUS_BUSY
#    STATUS_HEATING
#    STATUS_LEVELING
#    STATUS_HOMING
#    STATUS_CLEANING
#    STATUS_MESHING
#    STATUS_CALIBRATING_Z
# With additional macros for direct control:
#    SET_NOZZLE_LEDS_ON
#    SET_LOGO_LEDS_OFF
#    SET_NOZZLE_LEDS_OFF
#
# Contributed by Voron discord users wile.e, Tetsunosuke, and etherwalker
 
[gcode_macro _sb_vars]
# User settings for the StealthBurner status leds. You can change the status colors and led
# configurations for the logo and nozzle here.
variable_colors: {
        'logo': { # Colors for logo states
            'busy': {'r': 0.4, 'g': 0.0, 'b': 0.0, 'w': 0.0},
            'cleaning': {'r': 0.0, 'g': 0.02, 'b': 0.5, 'w': 0.0},
            'calibrating_z': {'r': 0.8, 'g': 0., 'b': 0.35, 'w': 0.0},
            'heating': {'r': 0.3, 'g': 0.18, 'b': 0.0, 'w': 0.0},
            'homing': {'r': 0.0, 'g': 0.6, 'b': 0.2, 'w': 0.0},
            'leveling': {'r': 0.5, 'g': 0.1, 'b': 0.4, 'w': 0.0},
            'meshing': {'r': 0.2, 'g': 1.0, 'b': 0.0, 'w': 0.0},
            'off': {'r': 0.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
            'printing': {'r': 1.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
            'standby': {'r': 0.01, 'g': 0.01, 'b': 0.01, 'w': 0.1},
        },
        'nozzle': { # Colors for nozzle states
            'heating': {'r': 0.8, 'g': 0.35, 'b': 0.0, 'w':0.0},
            'off': {'r': 0.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
            'on': {'r': 0.8, 'g': 0.8, 'b': 0.8, 'w':1.0},
            'standby': {'r': 0.6, 'g': 0.0, 'b': 0.0, 'w':0.0},
        },
        'thermal': {
            'hot': {'r': 1.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
            'cold': {'r': 0.3, 'g': 0.0, 'b': 0.3, 'w': 0.0}
        }
    }
variable_logo_led_name:         "sb_leds" 
# The name of the addressable LED chain that contains the logo LED(s)
variable_logo_idx:              "1
# A comma-separated list of indexes LEDs in the logo
variable_nozzle_led_name:       "sb_leds"
# The name of the addressable LED chain that contains the nozzle LED(s). This will
# typically be the same LED chain as the logo.
variable_nozzle_idx:            "2,3"
# A comma-separated list of indexes of LEDs in the nozzle
 
variable_thermal_config: {
        'extruder': {
            'cool_temp': 40,
            'leds': 'logo',
        },
        'heater_bed': {
            'cool_temp': 40,
            'leds': 'nozzle',
        },
    }
# temperatures at which cooling will be considered complete
 
gcode:
    ; Do nothing
 
[gcode_macro _set_sb_leds]
gcode:
    {% set red = params.RED|default(0)|float %}
    {% set green = params.GREEN|default(0)|float %}
    {% set blue = params.BLUE|default(0)|float %}
    {% set white = params.WHITE|default(0)|float %}
    {% set led = params.LED|string %}
    {% set idx = (params.IDX|string).split(',') %}
    {% set transmit_last = params.TRANSMIT|default(1) %}
    
    {% for led_index in idx %}
        {% set transmit=transmit_last if loop.last else 0 %}
        set_led led={led} red={red} green={green} blue={blue} white={white} index={led_index} transmit={transmit}
    {% endfor %}
 
[gcode_macro _set_sb_leds_by_name]
gcode:
    {% set leds_name = params.LEDS %}
    {% set color_name = params.COLOR %}
    {% set color = printer["gcode_macro _sb_vars"].colors[leds_name][color_name] %}
    {% set led = printer["gcode_macro _sb_vars"][leds_name + "_led_name"] %}
    {% set idx = printer["gcode_macro _sb_vars"][leds_name + "_idx"] %}
    {% set transmit = params.TRANSMIT|default(1) %}
 
    _set_sb_leds led={led} red={color.r} green={color.g} blue={color.b} white={color.w} idx="{idx}transmit={transmit}
 
[gcode_macro _set_logo_leds]
gcode:
    {% set red = params.RED|default(0)|float %}
    {% set green = params.GREEN|default(0)|float %}
    {% set blue = params.BLUE|default(0)|float %}
    {% set white = params.WHITE|default(0)|float %}
    {% set led = printer["gcode_macro _sb_vars"].logo_led_name %}
    {% set idx = printer["gcode_macro _sb_vars"].logo_idx %}
    {% set transmit=params.TRANSMIT|default(1) %}
 
    _set_sb_leds led={led} red={red} green={green} blue={blue} white={white} idx="{idx}transmit={transmit}
 
[gcode_macro _set_nozzle_leds]
gcode:
    {% set red = params.RED|default(0)|float %}
    {% set green = params.GREEN|default(0)|float %}
    {% set blue = params.BLUE|default(0)|float %}
    {% set white = params.WHITE|default(0)|float %}
    {% set led = printer["gcode_macro _sb_vars"].nozzle_led_name %}
    {% set idx = printer["gcode_macro _sb_vars"].nozzle_idx %}
    {% set transmit=params.TRANSMIT|default(1) %}
 
    _set_sb_leds led={led} red={red} green={green} blue={blue} white={white} idx="{idx}transmit={transmit}
 
[gcode_macro set_logo_leds_off]
gcode:
    {% set transmit=params.TRANSMIT|default(1) %}
    _set_logo_leds red=0 blue=0 green=0 white=0 transmit={transmit}
 
[gcode_macro set_nozzle_leds_on]
gcode:
    {% set transmit=params.TRANSMIT|default(1) %}
    _set_sb_leds_by_name leds="nozzle" color="on" transmit={transmit}
 
[gcode_macro set_nozzle_leds_off]
gcode:
    {% set transmit=params.TRANSMIT|default(1) %}
    _set_sb_leds_by_name leds="nozzle" color="off" transmit={transmit}
 
[gcode_macro status_off]
gcode:
    set_logo_leds_off transmit=0
    set_nozzle_leds_off
 
[gcode_macro status_ready]
gcode:
    _set_sb_leds_by_name leds="logo" color="standby" transmit=0
    _set_sb_leds_by_name leds="nozzle" color="standby" transmit=1
 
[gcode_macro status_busy]
gcode:
    _set_sb_leds_by_name leds="logo" color="busy" transmit=0
    set_nozzle_leds_on
 
[gcode_macro status_heating]
gcode:
    _set_sb_leds_by_name leds="logo" color="heating" transmit=0
    _set_sb_leds_by_name leds="nozzle" color="heating" transmit=1
 
[gcode_macro status_leveling]
gcode:
    _set_sb_leds_by_name leds="logo" color="leveling" transmit=0
    set_nozzle_leds_on
 
[gcode_macro status_homing]
gcode:
    _set_sb_leds_by_name leds="logo" color="homing" transmit=0
    set_nozzle_leds_on
 
[gcode_macro status_cleaning]
gcode:
    _set_sb_leds_by_name leds="logo" color="cleaning" transmit=0
    set_nozzle_leds_on
 
[gcode_macro status_meshing]
gcode:
    _set_sb_leds_by_name leds="logo" color="meshing" transmit=0
    set_nozzle_leds_on
 
[gcode_macro status_calibrating_z]
gcode:
    _set_sb_leds_by_name leds="logo" color="calibrating_z" transmit=0
    set_nozzle_leds_on
 
[gcode_macro status_printing]
gcode:
    _set_sb_leds_by_name leds="logo" color="printing" transmit=0
    set_nozzle_leds_on

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

Lien vers le commentaire
Partager sur d’autres sites

Il y a 23 heures, Savate a dit :

J'ai essayé mais c'est juste des effets en plus, très sympa visuellement 😀, le problème c'est que c'est toujours à déclencher avec une macro alors que j'aimerai que ca se fasse automatiquement

Je pense être sur une piste, pour le homing par exemple, en modifiant le gcode d'origine apparemment ca fonctionne, je suis en train de voir si je sais adapter le reste

[gcode_macro G28
rename_existingG28.1
gcode:
    status_homing
    G28.1
    status_off
Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...
il y a 41 minutes, Eloura74 a dit :

salut, as tu trouvé? j'essaie vraiment de le faire mais je n'ai que le panneau de couleurs....

 

Oui il faut insérer les macros des leds où tu le souhaites, par contre je n'utilise pas les macros du stealthburner que je trouvais un peu compliquer à comprendre

Voici un exemple de ce que j'ai utilisé, dans mon cas j'ai 6 leds car 2 stealthburner en idex

[neopixel my_neopixel]
pin: PB0
chain_count: 6
color_order: GRBW
initial_RED: 0.0
initial_GREEN: 0.0
initial_BLUE: 0.0
initial_WHITE: 0.1

[gcode_macro led_Ready]
gcode:
    SET_LED LED=my_neopixel RED=0 GREEN=0 BLUE=0 WHITE=0.1 transmit=1

[gcode_macro led_Homing]
gcode:
    SET_LED LED=my_neopixel RED=0 GREEN=0 BLUE=0 WHITE=0.8 index=1 transmit=0
    SET_LED LED=my_neopixel RED=0 GREEN=0 BLUE=0 WHITE=1 index=2 transmit=0
    SET_LED LED=my_neopixel RED=0 GREEN=0 BLUE=0 WHITE=1 index=3 transmit=0
    SET_LED LED=my_neopixel RED=0 GREEN=0 BLUE=0 WHITE=0.8 index=4 transmit=0
    SET_LED LED=my_neopixel RED=0 GREEN=0 BLUE=0 WHITE=1 index=5 transmit=0
    SET_LED LED=my_neopixel RED=0 GREEN=0 BLUE=0 WHITE=1 index=6 transmit=1

[gcode_macro led_Leveling]
gcode:
    SET_LED LED=my_neopixel RED=0.5 GREEN=0.1 BLUE=0.7 WHITE=0 index=1 transmit=0
    SET_LED LED=my_neopixel RED=0 GREEN=0 BLUE=0 WHITE=1 index=2 transmit=0
    SET_LED LED=my_neopixel RED=0 GREEN=0 BLUE=0 WHITE=1 index=3 transmit=0
    SET_LED LED=my_neopixel RED=0.05 GREEN=0 BLUE=0 WHITE=0 index=4 transmit=0
    SET_LED LED=my_neopixel RED=0 GREEN=0 BLUE=0 WHITE=0.1 index=5 transmit=0
    SET_LED LED=my_neopixel RED=0 GREEN=0 BLUE=0 WHITE=0.1 index=6 transmit=1
    

Il faut indiquer le numéro de la led dans index, index=1 pour la led 1, index=2 pour la led 2 ...

Si tu n'indique pas le "index", c'est toute la chaine de led qui change de couleur

Tu peux choisir la couleur en utilisant une valeur comprise entre 0 et 1

RED=0.5 GREEN=0.1 BLUE=0.7 WHITE=0

Le transmit=1 à la fin sert à actualiser toutes les couleurs en même temps

 

Ensuite il suffit de mettre ces macros où tu veux, par exemple:

[gcode_macro G28] 
rename_existing: G28.0
gcode:
    led_homing
    ACTIVATE_EXTRUDER EXTRUDER=extruder
    SET_DUAL_CARRIAGE CARRIAGE=0
    G90 ;mode position absolue
    G28.0
    led_ready

[gcode_macro G29] 
gcode:
    led_leveling
    BED_MESH_CALIBRATE
    G90; mode position absolu
    G1 X-50 Y250 F7800
    led_ready

Je te joins mes fichiers si tu veux y jeter un œil 🙂 

macros.cfgmacrosled.cfg

Lien vers le commentaire
Partager sur d’autres sites

Par contre quelqu'un saurait-il me dire comment commander plusieurs leds sur une seule ligne pour remplacer ca:

SET_LED LED=my_neopixel RED=0.5 GREEN=0.1 BLUE=0.7 WHITE=0 index=1
SET_LED LED=my_neopixel RED=0.5 GREEN=0.1 BLUE=0.7 WHITE=0 index=2
SET_LED LED=my_neopixel RED=0.5 GREEN=0.1 BLUE=0.7 WHITE=0 index=3
SET_LED LED=my_neopixel RED=0.5 GREEN=0.1 BLUE=0.7 WHITE=0 index=4

par quelque chose comme ca 

SET_LED LED=my_neopixel RED=0.5 GREEN=0.1 BLUE=0.7 WHITE=0 index=1,2,3,4

🙄

Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...

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