Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    RGB & RGBW LED MALFUNCTION 3.5.1

    Scheduled Pinned Locked Moved Solved
    Beta Firmware
    5
    10
    418
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Gianlucaundefined
      Gianluca
      last edited by Phaedrux

      It seems to me, that after the update to 3.5.1. the LEDs controlled by the MB6HC on io.port have stopped working correctly.
      The same LED strips connected to the Dotstar port continue to work properly.
      in tests done with multiple LEDs (see instructions in config.g at the end of the file) the behavior of the various LEDs is very similar.
      After the M150 command e.g.:
      M150 E1 R255 U0 B0 W0 P50 S1 F1
      M150 E1 R0 U0 B0 W255 P50 S2 F0
      The first LED is light green, while the other two are correctly white. If I give the command to turn everything off e.g. M150 E1 R0 U0 B0 W0 P0 S3 F0 the first LED always remains lit green.
      After turning on the printer if I do homing, the LEDs in the extruder automantically light up green. (I have no active macros).
      I would like to avoid downgrading to 3.5.0 because I would have to update the mainboard, toolboard and DWC.
      I would like to receive some suggestions or understand if I'm doing something wrong.

      My config.g

      ; Voron 2.4 355x355mm Duet3 6MBHC - Toolboard 1LC - SBC with RASPBERRY PI-4 4GB and SD 64GB
      ; Firmware 3.5.1
      ; Data di aggiornamento: 02/05/2024
      ;
      ; ---------- GENERAL PREFERENCES ---------
      G90                                                             ; absolute coordinates...
      M83                                                             ; relative extruder moves
      M669 K1                                                         ; Select CoreXY mode
      M564 S1 H1                                                      ; Forbid axis movements when not homed
      M575 P1 S1 B57600                                               ; enable support for Paneldue display 
      M290 R0 S0                                                      ; reset babystepping
      ;
      ; ---------- DRIVES MAPPINGS ----------
      ;
      ;       Rear
      ;	| Z1 | Z2 |  
      ;	-----+-----
      ;	| Z0 | Z3 |  
      ;	-----+-----
      ;	   Front
      ;
      M584 X4 Y5 Z0:1:2:3 E121.0                                      ; set drive mapping
      M569 P0 S1                                                      ; Z0 motor FL goes forwards
      M569 P1 S0                                                      ; Z1 motor RL goes backwards
      M569 P2 S1                                                      ; Z2 motor RR goes forwards
      M569 P3 S0                                                      ; Z3 motor FR goes backwards
      M569 P4 S1                                                      ; A motor goes forwards
      M569 P5 S1                                                      ; B motor goes forwards
      M569 P121.0 S0                                                  ; E1 motor Extruder goes backwards (scheda 1LC porta 121)
      M671 X-67.5:-67.85:422.5:422.5 Y-10:443.8:443.8:-10 S15         ; Define Z belts locations (Z0=Front_Left Z1, Z2, Z3...ecc) S15=mm di correzione massima
      ;
      ; ---------- DRIVES GENERAL PARAMETERS ----------
      M350 X32 Y32 Z32 E16 I1                                         ; configure microstepping with interpolation
      M92 X159.94 Y159.94 Z800 E745                                   ; set steps per mm (417 afterburner, 745 stealthburner)
      M84 S20                                                         ; riduzione potenza motori dopo 20sec
      ;
      ; ---------- DRIVES SPEED PARAMETERS ----------
      M566 X800 Y800 Z100 E1000        	                            ; JERK (mm/min)
      M203 X24000 Y24000 Z6000 E1000 		                            ; MAX SPEED (400mm/min)
      M201 X7000 Y7000 Z500 E3000     	                            ; ACCELERAZIONE (mm/s^2) 
      M906 X2000 Y2000 Z2000 E850 I30                                 ; set motor currents (mA) and motor idle factor 30%
      ; IN ALTERNATIVA USARE IL FILE SOTTO:
      ; M98 P"/sys/print_scripts/setup_printing_med.g"                ; FILE PER STAMPA PRESTAZIONI MEDIE - FINO A 400mm/sec
      ; M98 P"/sys/print_scripts/setup_printing_low.g"                ; FILE PER HOMING - FINO A 250mm/sec
      ; M98 P"/sys/print_scripts/setup_printing_high.g"               ; FILE PER STAMPA PRESTAZIONI ELEVATE - FINO A 500mm/sec
      
      ;
      ; ---------- AXIS LIMITS ----------
      M208 X0 Y0 Z-0.15 S1                                            ; set axis minima (S1) 
      M208 X350 Y350 Z320 S0                                          ; set axis maxima (S0) Portato ad H=320mm per presenza barra LED
      ;
      ; ---------- ENDSTOP SWITCH MECCANICO ---------
      M574 Y2 S1 P"io1.in"                                           ; Configure enstop Y(2) posizione alta dello switch e pin !io1.in invertito
      M574 X2 S1 P"io2.in"                                           ; Configure enstop x(2) posizione alta dello switch e pin !io2.in invertito
      ;
      ; ---------- SENSORE MAGNETICO FILAMENTO ---------
      M591 D0 P3 C"121.io0.in" R10:190 L24.5 E10.0 S1                 ; Rotating magnet sensor for extruder drive 0 is connected to 121.io0.in on Toolboard 1LC,
      ; M591 D0 P0                                                    ; Disabilita controllo sensore magnetico
      ; ---------- Z-PROBE ----------
      M558 P8 C"!121.io1.in" H10 F600 T5000                           ; set Z probe type inductive (P8),  altezza tastatura (H10), velocità tastatura mm/min (F600), velocità di spostamento mm/min (T6000) su scheda espansione 1LC porta 121
      G31 P500 X0 Y24 Z1.45                                           ; set Z OFFSET, ( * PEI * ), PIU' ALTO E' Z PIU' SI AVVICINA AL LETTO
      ; G31 P500 X0 Y24 Z1.65                                         ; set Z OFFSET, ( * TEXTURE * ) PIU' ALTO E' Z PIU' SI AVVICINA AL LETTO 
      M557 X40:315 Y40:315 S55                                        ; define mesh grid (GRIGLIA maglia 6 x 6 con 55mm di spazio) EVITA I MAGNETI
      ;
      ; ----------- HO - HEATERS BED ----------
      M308 S0 P"temp0" Y"thermistor" T100000 B4138 A"LETTO"           ; configure sensor 0 as thermistor on pin temp0
      M950 H0 C"out1" T0                                              ; create bed heater output on out1 and map it to sensor 0
      M307 H0 R0.856 K0.199:0.000 D4.53 E1.35 S1.00 B0                ; DOPO AUTOTARATURA LETTO CON (M303 H0 P1 S100) il 03/12/2023 (R=Velocità di riscaldamento °C/sec)
      M140 H0                                                         ; map heated bed to heater 0
      ;
      ; ----------- H1 - HEATERS NOZZLE ----------
      M308 S1 P"121.temp0" Y"thermistor" T100000 B4138 A"ESTRUSORE"   ; Configure sensor 1 as thermistor on pin temp0/121
      M950 H1 C"121.out0" T1                                          ; Create nozzle heater output on out0 su scheda espansione 1LC porta 121 and map it to sensor 1
      M307 H1 S0.8 B0                                                 ; H1=riscaldatore 1 S0.8=Potenza al 80% B0=BsngBang (consigliato per gli estrusori)
      ; M307 H1 R7.21 K0.492:0.000 D5.65 E1.35 S1.00 B0 V29.3         ; (orig. R5.331) DOPO AUTOTARATURA NOZZLE CON (M303 H1 P1 S240) il 03/12/23 HOTEND RAPIDO. (R=Velocità di riscaldamento °C/sec)
      M143 H1 S275                                                    ; set temperature limit for heater 1 to 275C
      ;
      ; ---------- TOOLS ----------
      M563 P0 S"TOOLS-0" D0.5 H1 F0                                   ; DEFINE TOOL 0 =>  P0=Tool 0,  S"..."=Tool name, D0.5=drive 0.5,  H1=heather 1,  F0=fan 0.
      G10 P0 X0 Y0 Z0                                                 ; set tool 0 axis offsets
      G10 P0 R0 S0                                                    ; set initial tool 0 active and standby temperatures to 0C
      ;
      ;	---------- FAN 0 VENTOLA RAFFR. STAMPA PWM (out4) 24v ----------
      M950 F0 C"121.out2" Q500                                        ; Fan 0 su 121.out2, use PWM, using 121.out2
      M106 P0 C"VENTOLA FILO" S0.0 H-1                                ; set FAN_0 name and value. 
      ;
      ; ---------- FAN 1 VENTOLA HOTEND (out8) 24v ----------
      M950 F1 C"121.out1" Q500                                        ; Fan 0 su 121.out2, use PWM, using 121.out2
      M106 P1 C"HOTEND" H1 L0.35 X0.6 B0.3 T60:250                    ; PARAMETRICA Termostatica ( da L=35% a X=60% con temp. da 60°C a 250°C ) 
      ;
      ; ---------- FAN 2 VENTOLA MCU MB6HC PWM (out5) 24v ---------
      M308 S2 Y"mcu-temp" A"MCU 6HC"                                  ; configure sensor 2 (S2) as thermistor for MCU
      M950 F2 C"!out5+out5.tach"                                      ; Fan 2 su out5, use PWM (needs ! inverted), using out5.tach
      M106 P2 C"VENTOLA MCU" L0.1 X0.8 B0.1 T26:35 H3                 ; set FAN_2 value  T26:32°C  velocità ventola L-10% X-80%
      ;
      ; ---------- FAN 3 VENTOLA PWM RASPBERRY (out4) 12v ---------
      M308 S3 P"temp2" Y"thermistor" T100000 B4138 A"RASPBERRY"       ; Configura il sensore 3 (S3) come riscaldatore sul pin temp2 con nome RASPBERRY
      M950 F3 C"!out4+out4.tach"                                      ; Fan 3 su out6, use PWM (needs ! inverted), using out4.tach
      M106 P3 C"VENTOLA RASPBERRY" L0.1 X1.0 B0.5 T20:48 H4           ; set FAN_3 value  T20:42°C  velocità ventola L-10% X-100% B=blip time
      ; 
      ; ---------- FAN 4 VENTOLA 1LC (out7) 24v ----------
      M308 S4 Y"mcu-temp" P"121.dummy" A"MCU 1LC"                     ; configure sensor 4 (S4) Temp MCU 1LC
      M950 F4 C"out7" Q1000                                           ; create FAN_4 on pin ou7 Toolboard and set its frequency at 1000hz
      M106 P4 C"FAN 1LC MCU" H1 L0.2 X0.7 B0.3 T38:55                 ; H1=Termostatic  L=Min.Spd.  X=Max.Spd.  B=Blips Time  T=Temp Range 30-50°C  
      ; M106 P4 S0.65									   			    ; PER ACCENDERE LA VENTOLA
      ; M106 P4 S0.0									   	            ; PER SPEGNERE LA VENTOLA
      ;
      ; ---------- FAN 5 VENTOLA CHASSIS (out8) 24v ----------
      M950 F5 C"out8" Q1500                                           ; create FAN_5 on pin ou8 VENTOLE LATERALI DX ASPIRANTI
      M106 P5 S0.00 C"CHASSIS_SX" B1								    ; ACCENDE LA VENTOLA AL 30%
      ;
      ; ---------- FAN 6 VENTOLA CHASSIS (out9) 24v ----------
      M950 F6 C"out9" Q1500                                           ; create FAN_6 on pin ou9 VENTOLE LATERALI SX SOFFIANTI
      M106 P6 S0.00 C"CHASSIS_DX" B1									; ACCENDE LA VENTOLA AL 30%
      ;
      ; ---------- TEMPERATURA E0 NEMA 14 SU TOOLBOARD 1LC ----------
      M308 S5 P"121.temp1" Y"thermistor" T100000 B4138 A"NEMA14"      ; Configure sensor 5 (S5) as thermistor on pin temp1/121
      ;
      ; ---------- PORT 1 RELE' ACCENSIONE (io4.out) IO PORT PWM ----------
      M950 P1 C"io4.out" Q500                                         ; allocate GPIO PORT.1 to io4.out at 500Hz	
      ; M42 P1 S0.0                                                   ; Printer OFF set 0% PWM on GPIO port 1
      ; M42 P1 S1.0  	                                                ; Printer ON set 100% PWM on GPIO port 1
      ;	
      ; ---------- ACCELEROMETRO ----------
      M955 P121.0 I05                                                 ; ACCELEROMETRO SU SCHEDA 1LC ( I05 = orientamento scheda 1CL )
      M593 P"ZVDDD" F36                                               ; INPUT SHAPING: Configura i parametri di riduzione risonanza
      ;
      ; ---------- TASTI FISICI SU 1LC ----------
      M950 J5 C"121.button0"                                          ; Crea pin 5 su porta 121.button0 della scheda 1LC
      M581 P5 T2 S1 R0                                                ; P5=pin 5 creato con M950 (J5), T2=Trigger logico a cui associare gli ingressi, S1=funziona da inattivo ad attivo, R0=attivo in ogni momento
      ;                                                               ; Qualsiasi numero di trigger # maggiore di 1 provoca l'esecuzione del file della macro sys/trigger2.g (T2)
      M950 J6 C"121.button1"                                          ; Crea trigger n°6 su porta "121.button0"
      M581 P6 T3 S1 R0                                                ; Crea pin 6 su porta 121.button1 della scheda 1LC
      ;
      ; ---------- NEOLED "0" 4 BARRE LED RGB SUPERIORI (PORTA DEDICATA DOTSTAR SU 6HC) ----------
      M950 E0 C"led" T1 U155 Q3000000                                 ; Crea PIN "led" striscia LED E0 T1=RGB U160=160LED disponibili
      M98 P"0:/macros/5-NEOLED ITALIA.g"                              ; Tutti i led superiori accesi al 10% (41+41+32+41=155 LED RGB)
      ;
      ; ---------- NEOLED "1" RGBW - STEALTHBURNER (PORTA IO8 OUT SU 6HC) ----------
      M950 E1 C"io8.out" Q3000000 T2 U5                               ; Crea PIN "io8.out" striscia LED E1 T1=RGB T2=RGBW
      ;
      ; ---------- NEOLED "2" TEST-1 LED RGB ----------
      M950 E2 C"io7.out" T1 U5 Q3000000                                 ; Crea PIN "led" striscia LED E0 T1=RGB U160=160LED disponibili
      ;
      ; ---------- NEOLED "3" TEST-2 LED RGBW ----------
      M950 E3 C"io5.out" T2 U4 Q3000000                                 ; Crea PIN "led" striscia LED E0 T1=RGB U160=160LED disponibili
      ;
      ; ---------- IMPOSTA L'AUTOSALVATAGGIO IN CASO DI MANCATA ALIMENTAZIONE ----------
      M911 S29.2 R29.4 P"M913 X0 Y0 G91 M83 G1 Z3 E-2 F500"           ; Autosalvataggio stampa per mancanza di corrente, sospende a 29.2v e riparte a 29.4v
      ;
      ; ---------- MISCELLANEUS ----------
      M912 P0 S-1                                                     ; parametro per tarare la temperatura della MCU (-1°C)
      M300 S2500 P3000                                                ; Emette suono a S=2500Hz per P=3 secondi
      T0                                                              ; select first tool ACTIVE
      ;
      

      My homeall.g

      G91                   							            ; relative positioning
      G1 H2 Z5 F2000        							            ; lift Z relative to current position
      G1 H1 X350 Y350 F4000 							            ; move quickly to X or Y endstop and stop there (first pass)
      G1 H1 X350            						    	           ; home X axis
      G1 H1 Y350            							            ; home Y axis
      G1 X-10 Y-10 F4000    							            ; go back a few mm
      G1 H1 X10 F800       							            ; move slowly to X axis endstop once more (second pass)
      G1 H1 Y10 F800       							            ; then move slowly to Y axis endstop once more (second pass)
      G90                   							            ; absolute positioning
      G1 X175 Y175 F4000    							            ; muovi al centro del piatto
      G30                   							            ; home Z by probing the bed
      
      droftartsundefined 1 Reply Last reply Reply Quote 0
      • Phaedruxundefined Phaedrux marked this topic as a question
      • adrianundefined
        adrian
        last edited by adrian

        Are your LEDs GRBW vs RGBW for color order?

        If you try and send green to the light is it red?

        Gianlucaundefined 1 Reply Last reply Reply Quote 0
        • Phaedruxundefined Phaedrux moved this topic from General Discussion
        • Gianlucaundefined
          Gianluca @adrian
          last edited by

          @adrian

          -- Are your LEDs GRBW vs RGBW for color order? ---
          To do an accurate test I installed a 155-element RGB LED strip in the dedicated LED port (working perfectly), a 3-element RGBW LED strip on the io.8 port, a 4-element RGB LED strip on the io.7 port, and a 3-element RGBW LED strip on the io.5 port ( like in my config.g)

          -- If you try and send green to the light is it red? --
          Of the 3 LED strips connected to the io.port of the MB6HC, the first LED on the strip always remains green with any command sent. The first green LED never turns off with any command.
          The 2 RGBW LED strips are buy new for the Voron stealthburner...

          It is possible that the upgrade from Fw. 3.5.0 Rc4 to Fw. 3.5.1 could have caused this malfunction?

          Since the printer is now fully functional, I wouldn't want to experiment with a fw. downgrade, since I'm in SBC mode.

          droftartsundefined 1 Reply Last reply Reply Quote 0
          • droftartsundefined
            droftarts administrators @Gianluca
            last edited by

            @Gianluca I've just tested LEDs on io ports on a 6HC, and see the same as you, ie first LED is stuck green in RRF 3.5.1. I went back and tested on 3.5.0-rc.1 (works correctly), rc.2 (works correctly), and rc.3 (first LED stuck green) too. It seems there was a regression in function between rc.2 and rc.3. I've also tested in 3.5.1 on Duet 3 Mini 5+, and LEDs on io ports work correctly, so this seems to be specific to 6HC (and probably the 6XD, too).

            I have raised an issue on Github, so @dc42 can fix it. https://github.com/Duet3D/RepRapFirmware/issues/996

            Ian

            droftarts created this issue in Duet3D/RepRapFirmware

            closed [Bug]: MB6HC (maybe 6XD too) - LED strips connected to io ports set first LED incorrectly, always green #996

            Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

            1 Reply Last reply Reply Quote 0
            • droftartsundefined
              droftarts administrators @Gianluca
              last edited by

              @Gianluca @dc42 has fixed this bug, and will be included in RRF 3.5.2 when released. See https://github.com/Duet3D/RepRapFirmware/issues/996

              Ian

              droftarts created this issue in Duet3D/RepRapFirmware

              closed [Bug]: MB6HC (maybe 6XD too) - LED strips connected to io ports set first LED incorrectly, always green #996

              Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

              DonStaufferundefined 1 Reply Last reply Reply Quote 0
              • droftartsundefined droftarts has marked this topic as solved
              • DonStaufferundefined
                DonStauffer @droftarts
                last edited by

                @droftarts I'd be interested in whether this affects NeoPixels controlled by a NeoDriver I2C card, because I'm having exactly that problem - the first LED often lights green at startup.

                It seems like this probably wouldn't affect the NeoDriver, but I'd love more information about what caused this and what the fix is, in case either Adafruit or I could do something about the same problem with the NeoDriver.

                I'm also finding it's easy to start getting "I2C Transmission Errors" requiring a power cycle. Adafruit commented that it sounds like a flaky I2C interface (not on their card, of course!); I wonder if all this might be related. I know the timing is critical on NeoPixels. I'm not sure which side of the NeoDriver these 2 problems are on.

                dc42undefined 1 Reply Last reply Reply Quote 0
                • dc42undefined
                  dc42 administrators @DonStauffer
                  last edited by

                  @DonStauffer the issue on the 6HC was that the loop body that generates the Neopixel data straddled a cache line boundary. This meant that on the first iteration of the loop (which handles the green value of the first LED) there was sometimes a delay while the cache line was being populated from flash memory. This delay caused the first (most significant) bit to be extended enough so that if it was 0 it could be interpreted as 1, or for the second bit if it was a 1 to be interpreted as 0.

                  Duet WiFi hardware designer and firmware engineer
                  Please do not ask me for Duet support via PM or email, use the forum
                  http://www.escher3d.com, https://miscsolutions.wordpress.com

                  DonStaufferundefined Gianlucaundefined 2 Replies Last reply Reply Quote 1
                  • DonStaufferundefined
                    DonStauffer @dc42
                    last edited by

                    @dc42 Thanks for the information.

                    1 Reply Last reply Reply Quote 0
                    • Gianlucaundefined
                      Gianluca @dc42
                      last edited by

                      @dc42
                      Thank you!
                      Could the change already be present in the first Beta versions of 3.5.2?

                      dc42undefined 1 Reply Last reply Reply Quote 0
                      • dc42undefined
                        dc42 administrators @Gianluca
                        last edited by

                        @Gianluca we haven't yet issued any 3,5,2 beta versions, however we expect to release 3.5.2-rc.1 within the next few days.

                        Duet WiFi hardware designer and firmware engineer
                        Please do not ask me for Duet support via PM or email, use the forum
                        http://www.escher3d.com, https://miscsolutions.wordpress.com

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post
                        Unless otherwise noted, all forum content is licensed under CC-BY-SA