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

    Magnet Filament Monitor V4 - Calibration Issue

    Scheduled Pinned Locked Moved Solved
    Filament Monitor
    6
    36
    2.2k
    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.
    • dc42undefined
      dc42 administrators @Diamondback
      last edited by dc42

      @Diamondback use the default 3mm unless you get a very large measured sensitivity range, in which case you could use 6mm. As you have the filament monitor a long way from the extruder drive, you are likely to need an even larger range than that.

      When running a print, the measured sensitivity should be displayed after about 10mm of filament should be extruded. The length over which calibration has been done should gradually increase and the measured sensitivity range will widen at first and then settle down.

      If you pause the print, calibration will restart from the beginning when you resume.

      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

      Diamondbackundefined 1 Reply Last reply Reply Quote 1
      • Diamondbackundefined
        Diamondback @T3P3Tony
        last edited by

        @T3P3Tony I can't run 3.4.5 on the board where the sensors are connected atm since it has a memory leak that was only fixed by @dc42 in a custom 3.5b1+ build for me.

        All filament sensors are connected to a Mini 5 in Expansion mode, same board as the extruder motors.

        1 Reply Last reply Reply Quote 0
        • Diamondbackundefined
          Diamondback @dc42
          last edited by

          @dc42 Ok, that's the behavior I expected from the documentation, but unfortunately it's not what I see.
          After it first displays some form of calibration data, it just stops there and won't calibrate any further. The reported values then stay constant for the entire duration of the print.

          If I use the reported values in my M591 call, the sensor appears to "work", as in, it does spawn filament error events when the runout switch triggers etc. However, the calibration distance of just a few mm of course leads to incredibly inaccurate results...

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

            @Diamondback thanks. It may be that there is a bug in the support for filament monitors on main boards used as expansion boards. I will add this to my investigations list.

            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

            Diamondbackundefined 3 Replies Last reply Reply Quote 1
            • Diamondbackundefined
              Diamondback @dc42
              last edited by

              @dc42 Thank you 🙂

              1 Reply Last reply Reply Quote 0
              • Diamondbackundefined
                Diamondback @dc42
                last edited by Diamondback

                @dc42 Some further info, yesterday my filament didn't detach from the empty spool correctly and got caught during a testprint. The active filament monitor did not catch this, it did not generate any filament error at all even after a few minutes of continuing to print.

                Its config:

                M591 D2 P4 C"100.io2.in" S1 L23.2 R70:150 E5
                

                I guess something is indeed not working?
                (The switch part of the monitor works fine btw)

                1 Reply Last reply Reply Quote 0
                • Phaedruxundefined
                  Phaedrux Moderator
                  last edited by

                  Did you send M591 to see what it reported after the fail?

                  Z-Bot CoreXY Build | Thingiverse Profile

                  Diamondbackundefined 1 Reply Last reply Reply Quote 0
                  • Diamondbackundefined
                    Diamondback @Phaedrux
                    last edited by

                    @Phaedrux Nope, unfortunately not, but I guess I can easily replicate this. I'll do that when I find some free time 🙂

                    1 Reply Last reply Reply Quote 0
                    • Diamondbackundefined
                      Diamondback @dc42
                      last edited by

                      @dc42 said in Magnet Filament Monitor V3 - Calibration Issue:

                      @Diamondback thanks. It may be that there is a bug in the support for filament monitors on main boards used as expansion boards. I will add this to my investigations list.

                      Any news on this?

                      Diamondbackundefined 1 Reply Last reply Reply Quote 0
                      • Diamondbackundefined
                        Diamondback @Diamondback
                        last edited by

                        @Diamondback said in Magnet Filament Monitor V3 - Calibration Issue:

                        @dc42 said in Magnet Filament Monitor V3 - Calibration Issue:

                        @Diamondback thanks. It may be that there is a bug in the support for filament monitors on main boards used as expansion boards. I will add this to my investigations list.

                        Any news on this?

                        @dc42 ?

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

                          @Diamondback please can you update your firmware to 3.5beta4 on both boards and check whether the issue still occurs. There have been some fixes in this area.

                          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

                          Diamondbackundefined 1 Reply Last reply Reply Quote 1
                          • Diamondbackundefined
                            Diamondback @dc42
                            last edited by Diamondback

                            @dc42 Updated everything to 3.5b4 and it seems like I can still not get anything out of my sensors other than the presence switch signal.

                            Configuration:

                            ;Filament sensors
                            M591 D0 P4 C"100.io0.in" S1
                            M591 D1 P4 C"100.io1.in" S1
                            M591 D2 P4 C"100.io2.in" S1
                            M591 D3 P4 C"100.io3.in" S1
                            

                            M591 D3 after a print using that extruder:

                            Duet3D rotating magnet filament monitor v4 with switch on pin 100.io3.in, enabled, sensitivity 28.80mm/rev, allow 60% to 160%, check every 3.0mm, version 4, filament present, mag 132 agc 34, no calibration data
                            

                            (the other 3 also don't show any calibration data, but I guess that's expected since they weren't actually used during the print)

                            Previously it was sometimes showing some data, but now it's just constantly "no calibration data".

                            1 Reply Last reply Reply Quote 0
                            • Diamondbackundefined
                              Diamondback
                              last edited by

                              @dc42 anything more I can test or help you with to debug this? I'd really like to get my 4 sensors working beyond the switch signal 😬

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

                                @Diamondback thanks for the reminder. I'll try to reproduce this next week before we freeze 3.5.0 rc1.

                                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 1
                                • patterson6undefined
                                  patterson6 @Diamondback
                                  last edited by patterson6

                                  @Diamondback When you say V4 are you referring about the v3 product on the website that's revision 3.0? The software calls v4 in gcode which is really v3.0 but the fourth revision because of 1.7, 1.7a, 1.7b, then 3.0?

                                  Or is a new filament monitor v4 on the way?

                                  patterson6undefined Diamondbackundefined 2 Replies Last reply Reply Quote 0
                                  • patterson6undefined
                                    patterson6 @patterson6
                                    last edited by

                                    This post is deleted!
                                    1 Reply Last reply Reply Quote 0
                                    • Diamondbackundefined
                                      Diamondback @patterson6
                                      last edited by

                                      @patterson6 It's the newest rev of the monitor with the new rod magnets. So based on this link here, it would be 3.0. The V4 is just what the status report returns 🙂
                                      https://docs.duet3d.com/en/Duet3D_hardware/Accessories/Rotating_Magnet_Filament_Monitor

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

                                        @Diamondback please provide your complete config.g file.

                                        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

                                        Diamondbackundefined 3 Replies Last reply Reply Quote 1
                                        • Diamondbackundefined
                                          Diamondback @dc42
                                          last edited by

                                          @dc42

                                          ;M929 S3                                        ;enable debug logging
                                          ;M575 P1 S1 B57600                              ;Enable PanelDue Port
                                          G90                                             ; send absolute coordinates...
                                          M83                                             ; ...but relative extruder moves
                                          M550 P"V-Core Toolchanger"                      ; set printer name
                                          
                                          ; Enable network
                                          M552 P0.0.0.0 S1
                                          
                                          M669 K1                                         ; select CoreXY mode
                                          
                                          G4 S2 ; wait for expansion boards to start
                                          
                                          ; Drives
                                          ;XY1: back left
                                          ;XY2: back right
                                          M569 P0.2 S0                                      ; stepper XY1
                                          M569 P0.3 S0                                      ; stepper XY2
                                          M569 P0.4 S1                                      ; stepper Coupler
                                          M569 P100.0 S0                                    ; stepper E0
                                          M569 P100.1 S0                                    ; stepper E1
                                          M569 P100.2 S0                                    ; stepper E2
                                          M569 P100.3 S0                                    ; stepper E3
                                          M569 P0.0 S0                                      ; stepper Z1
                                          M569 P0.1 S0                                      ; stepper Z2
                                          M569 P0.5 S0                                      ; stepper Z3
                                          M569 P100.5 S1                                    ; wiper disk
                                          M569 P100.6 S0                                    ; wiper Z height
                                          
                                          M584 X0.3 Y0.2 C0.4                               ; set drive mapping (motion system X Y C)
                                          M584 E100.0:100.1:100.2:100.3                     ; set drive mapping (extruders)
                                          M584 Z0.0:0.1:0.5                                 ; set drive mapping (motion system Z)
                                          M584 W100.6								 		  ; set drive mapping (Wiper Z height
                                          M584 D100.5	R1									  ; set drive mapping (Wiper disk, rotary)
                                          ;Leadscrew order (starting back center, then clockwise):
                                          ;1: back center
                                          ;2: front right
                                          ;3: front left
                                          M671 X-12:216:-203 Y222:-179:-179 S30             ; set Z leadscrew positions
                                          
                                          
                                          ; Axis Limits
                                          if !exists(global.hasRunInit)
                                          	global minY = -266
                                          	global maxY = 115
                                          
                                          M208 X-148:160 Y{global.minY,global.maxY}       ; set axis minima & maxima
                                          M208 C0:250 Z-2:270                             ; set axis minima & maxima
                                          M208 W0:25 D-100000:100000						; set axis minima & maxima, D(isk) limit can't be disabled, so it's big and additionally, the position gets reset each time when using it in the wiper macro
                                          
                                          M92 X80.00 Y80.00                               ; X/Y: 1.8°/step
                                          ;M92 X160.00 Y160.00                            ; X/Y: 0.9°/step
                                          M92 C200.00                                     ; C: E3D coupler
                                          M92 Z800.00                                     ; Z: 0.9 Stepper TR8x4 leadscrews
                                          M92 W800.00 D{400 * 16 / 360}								; W: 0.9 Stepper TR8x8 leadscrew, D: 0.9 Stepper with a disk
                                          M350 X16 Y16 I1                                 ; configure microstepping with interpolation
                                          M350 C16 Z16 I1                                 ; configure microstepping with interpolation
                                          M350 W16 D16 I1
                                          M566 X600 Y600 C2 Z200                           ; set maximum instantaneous speed changes (mm/min)
                                          M566 W50 D200
                                          M203 X30000 Y30000 C10000 Z2000                 ; set maximum speeds (mm/min)
                                          M203 W4000 D20000
                                          M201 X5000 Y5000 Z500                           ; set accelerations (mm/s^2)
                                          M201.1 X5000 Y5000 Z500                         ; set accelerations for special moves (mm/s^2)
                                          M201 C500                                       ; set accelerations (mm/s^2)
                                          M201 W400 D10000
                                          M204 P500 T5000
                                          ;M204 P5000 T5000
                                          
                                          M906 X2000 Y2000                             ; set motor currents (mA) for X/Y
                                          M906 C700                                    ; set motor currents (mA) for coupler
                                          M906 Z1500                                   ; set motor currents (mA) for Z
                                          M906 W1000 D1400							 ; set motor currents (mA) for wiper Z and disk
                                          M906 E500:500:500:500                        ; set motor currents (mA) for 4x LGX
                                          M906 I50                                     ;only a single idle factor allowed for ALL steppers
                                          M84 S30                                      ; Set idle timeout    
                                          
                                          ;=================== Extruder ======================
                                          M92 E408:408:408:408                            ; set steps per mm 
                                          M350 E16:16:16:16 I1                            ; configure microstepping 
                                          M566 E500:500:500:500                           ; set maximum instantaneous speed changes (mm/min) ; used to be at 1200
                                          M203 E15000:15000:15000:15000                   ; set maximum speeds (mm/min) 
                                          M201 E3000:3000:3000:3000                       ; set accelerations (mm/s^2)
                                          M201.1 E3000                                    ; set accelerations for special moves (mm/s^2)
                                          ;====================================================
                                          
                                          ; Endstops
                                          M574 X2 S1 P"0.io0.in"                          ; configure active-high endstop for high end on X via pin xstop
                                          M574 Y1 S1 P"0.io1.in"                          ; configure active-high endstop for high end on Y via pin ystop
                                          M574 Z0                                         ; No Z-Endstop (use as probe instead)
                                          
                                          ; Z-Probe
                                          if !exists(global.hasRunInit)
                                          	global zProbeSpeedFeed = 300
                                          	global zProbeSpeedFeedLevel = 1500
                                          	global zProbeSpeedTravel = 20000
                                          	global zProbeDiveHeightLevel = 30
                                          	global zProbeDiveHeightMesh = 3
                                          	global zProbePin = "0.io2.in"
                                          	global zProbeType = 8
                                          	global zProbeTriggerValue = 200
                                          	global minXMesh = -146 
                                          	global maxXMesh = 150
                                          	global minYMesh = -150
                                          	global maxYMesh = 150
                                          	global meshPointSpacing = 30
                                          
                                          M558 K0 P{global.zProbeType} C{global.zProbePin} H{global.zProbeDiveHeightMesh} F{global.zProbeSpeedFeed} T{global.zProbeSpeedTravel}  ; Z Endstop/probe
                                          M558 K2 P8 C"0.io4.in" H10 F100 T20000  ; tool length switch
                                          
                                          G31 K0 X0 Y0 Z0 P200 
                                          ;G31 K1 X0 Y0 Z0 P200
                                          G31 K2 X0 Y0 Z0 P200 
                                          
                                          ;G31 K0 X0 Y0 Z0 P{global.zProbeTriggerValue}                               ; set Z probe trigger value, offset and trigger height, offsets here are hardcoded in leveling macro as well
                                          
                                          M557 X{global.minXMesh, global.maxXMesh} Y{global.minYMesh, global.maxYMesh} S{global.meshPointSpacing}   ; define mesh grid
                                          M376 H30                                        ; Set bed correction taper
                                          
                                          ; Heaters
                                          M308 S0 P"100.temp0" Y"thermistor" T100000 B3950           ; configure sensor 0 as thermistor 
                                          M950 H0 C"100.out0" T0 Q10                                 ; create bed heater output and map it to sensor 0
                                          M143 H0 S121                                               ; set temperature limit for heater 0 to 121C
                                          M307 H0 R0.648 K0.269:0.000 D2.51 E1.35 S1.00 B0           ; Bed PID Tuning
                                          M140 H0                                                    ; map heated bed to heater 0
                                          
                                          M308 S1 P"0.temp1" Y"thermistor" T100000 B4725 C7.06e-8    ; configure sensor 1 as thermistor
                                          M950 H1 C"0.out1" T1                                       ; create nozzle heater output and map it to sensor 1
                                          M143 H1 S301                                               ; set temperature limit for heater 1 to 301C
                                          
                                          M308 S2 P"0.temp2" Y"thermistor" T100000 B4725 C7.06e-8    ; configure sensor 2 as thermistor
                                          M950 H2 C"0.out2" T2                                       ; create nozzle heater output and map it to sensor 2
                                          M143 H2 S301                                               ; set temperature limit for heater 2 to 301C
                                          
                                          M308 S3 P"100.temp1" Y"thermistor" T100000 B4725 C7.06e-8  ; configure sensor 3 as thermistor
                                          M950 H3 C"100.out1" T3                                     ; create nozzle heater output and map it to sensor 3
                                          M143 H3 S301                                               ; set temperature limit for heater 3 to 301C
                                          
                                          M308 S4 P"100.temp2" Y"thermistor" T100000 B4725 C7.06e-8  ; configure sensor 2 as thermistor
                                          M950 H4 C"100.out2" T4                                     ; create nozzle heater output and map it to sensor 2
                                          M143 H4 S301                                               ; set temperature limit for heater 2 to 301C
                                          
                                          M302 S190 R190                                             ;Cold extrusion settings
                                          
                                          M307 H1 R2.870 K0.424:0.004 D1.67 E1.35 S1.00 B0 V23.7     ; PID Tuning T0
                                          M307 H2 R4.192 K0.576:0.000 D1.72 E1.35 S1.00 B0 V23.7     ; PID Tuning T1
                                          M307 H3 R4.265 K0.638:0.023 D2.27 E1.35 S1.00 B0 V23.6     ; PID Tuning T2
                                          M307 H4 R3.767 K0.441:0.050 D2.28 E1.35 S1.00 B0 V23.5     ; PID Tuning T3
                                          
                                          ; Fans
                                          M950 F0 C"0.out7"                                 ; Hotend Fan Tool 0
                                          M106 P0 S255 L255 H1 T50 C"T0 Hotend"             ; Hotend Fan Tool 0
                                          M950 F1 C"0.out4" Q50                             ; Layer Fan Tool 0
                                          M106 P1 S0 H-1 C"T0"                              ; Layer Fan Tool 0
                                          
                                          M950 F2 C"0.out8"                                 ; Hotend Fan Tool 1
                                          M106 P2 S255 L255 H2 T50 C"T1 Hotend"             ; Hotend Fan Tool 1
                                          M950 F3 C"0.out5" Q50                             ; Layer Fan Tool 1
                                          M106 P3 S0 H-1 C"T1"                              ; Layer Fan Tool 1
                                          
                                          M950 F4 C"100.out5"                               ; Hotend Fan Tool 2
                                          M106 P4 S255 L255 H3 T50 C"T2 Hotend"             ; Hotend Fan Tool 2
                                          M950 F5 C"100.out3" Q50                           ; Layer Fan Tool 2
                                          M106 P5 S0 H-1 C"T2"                              ; Layer Fan Tool 2
                                          
                                          M950 F6 C"100.out6"                               ; Hotend Fan Tool 3
                                          M106 P6 S255 L255 H4 T50 C"T3 Hotend"             ; Hotend Fan Tool 3
                                          M950 F7 C"100.out4" Q50                           ; Layer Fan Tool 3
                                          M106 P7 S0 H-1 C"T3"                              ; Layer Fan Tool 3
                                          
                                          ;Static layer fan
                                          M950 F8 C"0.out0" Q65535                          ; static layer fan
                                          M106 P8 S0 H-1 I1 L0.2 C"RSCS"
                                          
                                          ; Tools
                                          M563 P0 D0 H1 F1                                 ; define tool 0
                                          G10 P0 R0 S0                                     ; set initial tool 0 active and standby temperatures to 0C
                                          
                                          M563 P1 D1 H2 F3                                 ; define tool 1
                                          G10 P1 R0 S0                                     ; set initial tool 1 active and standby temperatures to 0C
                                          
                                          M563 P2 D2 H3 F5                                 ; define tool 2
                                          G10 P2 R0 S0                                     ; set initial tool 2 active and standby temperatures to 0C
                                          
                                          M563 P3 D3 H4 F7                                 ; define tool 3
                                          G10 P3 R0 S0                                     ; set initial tool 3 active and standby temperatures to 0C
                                          
                                          M563 P4 S"Pen"                                   ; define tool 4 (Pen)
                                          
                                          ;Dock present switches
                                          M950 J0 C"0.io7.in"                              ; Tool 0 Dock switch
                                          M950 J1 C"0.io8.in"                              ; Tool 1 Dock switch
                                          M950 J2 C"100.io5.in"                            ; Tool 2 Dock switch
                                          M950 J3 C"100.io6.in"                            ; Tool 3 Dock switch
                                          
                                          ;additional tool related switches
                                          M950 J4 C"0.io3.in"                             ;toolhead tool present switch
                                          
                                          ;Filament sensors
                                          M591 D0 P4 C"100.io0.in" S1
                                          M591 D1 P4 C"100.io1.in" S1
                                          M591 D2 P4 C"100.io2.in" S1
                                          M591 D3 P4 C"100.io3.in" S1
                                          
                                          M950 S0 C"0.out9" Q333                          ;PebbleWiper Servo
                                          M280 P0 S70                                     ;Servo in idle position
                                          M950 P1 C"0.io5.out"                            ;Light switch PWM
                                          
                                          ;Toolhead Dotstar
                                          M950 E0 C"led" T0
                                          
                                          ;Accelerometer
                                          M955 P0 C"spi.cs2+spi.cs3"
                                          
                                          ;Inputshaping
                                          ;M593 P"zvddd" F70 S0.2 
                                          
                                          ; Miscellaneous
                                          M98 P"/macros/ToolheadDisplay/InitToolheadDisplay"
                                          M98 P"/macros/Misc/Lights/On"
                                          M98 P"/sys/config-tools.g"
                                          M98 P"/sys/config-filaments.g"
                                          
                                          if !exists(global.hasRunInit)
                                          	global deactivateToolAfterFilamentChange = false
                                          	global hasRunInit = true
                                          	global daemonActive = true
                                          	global lastMacroResult = null
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • Diamondbackundefined
                                            Diamondback @dc42
                                            last edited by

                                            @dc42
                                            InitToolheadDisplay:

                                            if !exists(global.dispLEDCount)
                                            	global dispLEDCount = 64
                                            	global dispDefaultBrightness = 10
                                            	global lastDisplayContent = ""
                                            	global toolheadDisplayState = ""
                                            	
                                            if !exists(global.RGBWhite) && boards[0].firmwareVersion != "3.4.5"
                                            	
                                            	;Digits
                                            	global displayDigit = vector(10, vector(8, null))
                                            	
                                            	;0
                                            	set global.displayDigit[0][0] = {0,1,1,1,1,1,1,0}
                                            	set global.displayDigit[0][1] = {1,1,1,1,1,1,1,1}
                                            	set global.displayDigit[0][2] = {1,1,1,0,0,1,1,1}
                                            	set global.displayDigit[0][3] = {1,1,1,0,0,1,1,1}
                                            	set global.displayDigit[0][4] = {1,1,1,0,0,1,1,1}
                                            	set global.displayDigit[0][5] = {1,1,1,0,0,1,1,1}
                                            	set global.displayDigit[0][6] = {1,1,1,1,1,1,1,1}
                                            	set global.displayDigit[0][7] = {0,1,1,1,1,1,1,0}
                                            	
                                            	;1
                                            	set global.displayDigit[1][0] = {0,0,1,1,1,0,0,0}
                                            	set global.displayDigit[1][1] = {0,0,1,1,1,1,0,0}
                                            	set global.displayDigit[1][2] = {0,0,1,1,1,1,1,0}
                                            	set global.displayDigit[1][3] = {0,0,1,1,1,0,0,0}
                                            	set global.displayDigit[1][4] = {0,0,1,1,1,0,0,0}
                                            	set global.displayDigit[1][5] = {0,0,1,1,1,0,0,0}
                                            	set global.displayDigit[1][6] = {0,0,1,1,1,0,0,0}
                                            	set global.displayDigit[1][7] = {0,0,1,1,1,0,0,0}
                                            	
                                            	;2
                                            	set global.displayDigit[2][0] = {0,1,1,1,1,1,1,0}
                                            	set global.displayDigit[2][1] = {1,1,1,1,1,1,1,1}
                                            	set global.displayDigit[2][2] = {1,1,1,0,0,1,1,1}
                                            	set global.displayDigit[2][3] = {0,1,1,1,0,0,0,0}
                                            	set global.displayDigit[2][4] = {0,0,0,1,1,1,0,0}
                                            	set global.displayDigit[2][5] = {0,0,0,0,0,1,1,1}
                                            	set global.displayDigit[2][6] = {1,1,1,1,1,1,1,1}
                                            	set global.displayDigit[2][7] = {1,1,1,1,1,1,1,1}
                                            	
                                            	;3
                                            	set global.displayDigit[3][0] = {0,1,1,1,1,1,1,1}
                                            	set global.displayDigit[3][1] = {1,1,1,1,1,1,1,1}
                                            	set global.displayDigit[3][2] = {1,1,1,0,0,0,0,0}
                                            	set global.displayDigit[3][3] = {0,1,1,1,1,1,1,1}
                                            	set global.displayDigit[3][4] = {0,1,1,1,1,1,1,1}
                                            	set global.displayDigit[3][5] = {1,1,1,0,0,0,0,0}
                                            	set global.displayDigit[3][6] = {1,1,1,1,1,1,1,1}
                                            	set global.displayDigit[3][7] = {0,1,1,1,1,1,1,1}
                                            	
                                            
                                            	
                                            	var FLF1 = {{0,0,0,0,0,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,1,0,1,1,0,1,0},{1,1,1,1,1,1,1,1},{0,1,0,1,1,0,1,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0}}
                                            	var FLF2 = {{0,0,0,1,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,1,1,0,0,0},{0,1,0,1,1,0,1,0},{1,1,1,1,1,1,1,1},{0,1,0,1,1,0,1,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0}}
                                            	var FLF3 = {{0,0,0,1,1,0,0,0},{0,0,0,1,0,0,0,0},{0,0,0,0,0,0,0,0},{0,1,0,1,1,0,1,0},{1,1,1,1,1,1,1,1},{0,1,0,1,1,0,1,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0}}
                                            	var FLF4 = {{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,0,0,0,0},{0,1,0,0,0,0,1,0},{1,1,1,1,1,1,1,1},{0,1,0,1,1,0,1,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0}}
                                            	var FLF5 = {{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,1,0,1,0,0,1,0},{1,1,1,0,0,1,1,1},{0,1,0,1,1,0,1,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0}}
                                            	var FLF6 = {{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,1,0,1,1,0,1,0},{1,1,1,1,0,1,1,1},{0,1,0,0,0,0,1,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0}}
                                            	var FLF7 = {{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,1,0,1,1,0,1,0},{1,1,1,1,1,1,1,1},{0,1,0,1,0,0,1,0},{0,0,0,0,0,0,0,0},{0,0,0,1,1,0,0,0}}
                                            	var FLF8 = {{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,1,0,1,1,0,1,0},{1,1,1,1,1,1,1,1},{0,1,0,1,1,0,1,0},{0,0,0,1,0,0,0,0},{0,0,0,0,0,0,0,0}}
                                            	var FLF9 = {{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,1,0,1,1,0,1,0},{1,1,1,1,1,1,1,1},{0,1,0,1,1,0,1,0},{0,0,0,1,1,0,0,0},{0,0,0,1,0,0,0,0}}
                                            	global filamentLoadFrames = {var.FLF1, var.FLF2, var.FLF3, var.FLF4, var.FLF5, var.FLF6, var.FLF7, var.FLF8, var.FLF9}
                                            	global filamentLoadFrameIndex = 0
                                            		
                                            	var HTF1 = {{0,0,0,0,0,0,0,0},{0,0,0,1,1,0,0,0},{0,0,1,1,1,1,0,0},{0,1,1,1,1,1,1,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0}}
                                            	var HTF2 = {{0,0,0,1,1,0,0,0},{0,0,1,1,1,1,0,0},{0,1,1,1,1,1,1,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,0,0,0,0,0}}
                                            	var HTF3 = {{0,0,1,1,1,1,0,0},{0,1,1,1,1,1,1,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0}}
                                            	var HTF4 = {{0,1,1,1,1,1,1,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,1,1,0,0,0}}
                                            	var HTF5 = {{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,1,1,0,0,0},{0,0,1,1,1,1,0,0}}
                                            	var HTF6 = {{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,1,1,0,0,0},{0,0,1,1,1,1,0,0},{0,1,1,1,1,1,1,0}}
                                            	var HTF7 = {{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,1,1,0,0,0},{0,0,1,1,1,1,0,0},{0,1,1,1,1,1,1,0},{0,0,0,1,1,0,0,0}}
                                            	var HTF8 = {{0,0,0,1,1,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,1,1,0,0,0},{0,0,1,1,1,1,0,0},{0,1,1,1,1,1,1,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0}}
                                            	var HTF9 = {{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,1,1,0,0,0},{0,0,1,1,1,1,0,0},{0,1,1,1,1,1,1,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0}}
                                            	global heatingToolFrames = {var.HTF1, var.HTF2, var.HTF3, var.HTF4, var.HTF5, var.HTF6, var.HTF7, var.HTF8, var.HTF9}
                                            	global heatingToolFrameIndex = 0
                                            	
                                            	var HBF1 = {{0,0,0,1,1,0,0,0},{0,0,1,1,1,1,0,0},{0,1,1,1,1,1,1,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{1,1,1,1,1,1,1,1}}
                                            	var HBF2 = {{0,0,1,1,1,1,0,0},{0,1,1,1,1,1,1,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,0,0,0,0,0},{1,1,1,1,1,1,1,1}}
                                            	var HBF3 = {{0,1,1,1,1,1,1,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{1,1,1,1,1,1,1,1}}
                                            	var HBF4 = {{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,1,1,0,0,0},{1,1,1,1,1,1,1,1}}
                                            	var HBF5 = {{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,1,1,0,0,0},{0,0,1,1,1,1,0,0},{1,1,1,1,1,1,1,1}}
                                            	var HBF6 = {{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,1,1,0,0,0},{0,0,1,1,1,1,0,0},{0,1,1,1,1,1,1,0},{1,1,1,1,1,1,1,1}}
                                            	var HBF7 = {{0,0,0,1,1,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,1,1,0,0,0},{0,0,1,1,1,1,0,0},{0,1,1,1,1,1,1,0},{0,0,0,1,1,0,0,0},{1,1,1,1,1,1,1,1}}
                                            	var HBF8 = {{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,1,1,0,0,0},{0,0,1,1,1,1,0,0},{0,1,1,1,1,1,1,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{1,1,1,1,1,1,1,1}}
                                            	var HBF9 = {{0,0,0,0,0,0,0,0},{0,0,0,1,1,0,0,0},{0,0,1,1,1,1,0,0},{0,1,1,1,1,1,1,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{1,1,1,1,1,1,1,1}}
                                            	global heatingBedFrames = {var.HBF1, var.HBF2, var.HBF3, var.HBF4, var.HBF5, var.HBF6, var.HBF7, var.HBF8, var.HBF9}
                                            	global heatingBedFrameIndex = 0
                                            	
                                            	global RGBOff = {0,0,0,0}
                                            	global RGBRed = {255,0,0,25}
                                            	global RGBGreen = {0,255,0,10}
                                            	global RGBBlue = {0,0,255,45}
                                            	global RGBYellow = {255,255,0,30}
                                            	global RGBPink = {255,20,147,10}
                                            	global RGBWhite = {255,255,255,10}	
                                            	global ToolColors = {global.RGBRed, global.RGBGreen, global.RGBYellow, global.RGBBlue}
                                            

                                            Misc/Lights/On:

                                            M42 P1 S230
                                            

                                            config-tools.g:

                                            M98 P"/sys/config-tools-size.g"
                                            M98 P"/sys/config-tools-material.g"
                                            ;Z-Offset: 	
                                            ;If nozzle is too close to bed _reduce_ offset (negative number becomes more negative)
                                            ;If nozzle is too far away, _increase_ offset (negative number becomes less negative)
                                            M98 P"/sys/config-tools-offset.g"
                                            
                                            
                                            
                                            ;Tool offsets
                                            G10 P4 X0 Y46.5 Z-20.000                        ; set tool 4 axis offsets
                                            

                                            config-tools-size.g:

                                            ;nozzle sizes
                                            if !exists(global.toolNozzleSizes)
                                              global toolNozzleSizes = vector(5,0)
                                            set global.toolNozzleSizes[0] = 0.6
                                            set global.toolNozzleSizes[1] = 0.4
                                            set global.toolNozzleSizes[2] = 0.6
                                            set global.toolNozzleSizes[3] = 0.6
                                            set global.toolNozzleSizes[4] = 0.0
                                            

                                            config-tools-material.g:

                                            ;nozzle materials
                                            if !exists(global.toolNozzleMaterials)
                                              global toolNozzleMaterials = vector(5,"")
                                            set global.toolNozzleMaterials[0] = "Brass"
                                            set global.toolNozzleMaterials[1] = "Hardened"
                                            set global.toolNozzleMaterials[2] = "Brass"
                                            set global.toolNozzleMaterials[3] = "Brass HF"
                                            set global.toolNozzleMaterials[4] = ""
                                            

                                            config-tools-offset.g:

                                            ;Z-Offset:
                                            ;If nozzle is too close to bed _reduce_ offset (negative number becomes more negative)
                                            ;If nozzle is too far away, _increase_ offset (negative number becomes less negative)
                                            ;tool offsets
                                            G10 P0 X-8.300 Y39.975 Z-3.620
                                            G10 P1 X-8.756 Y40.144 Z-3.340
                                            G10 P2 X-8.438 Y40.700 Z-3.320
                                            G10 P3 X-8.450 Y40.600 Z-3.460
                                            

                                            config-filaments.g:

                                            var filaments = {"PETG - Generic","PLA - Generic","PLA - PolyTerra","PLA - Silk", "XTCF20", "PCCF - Prusament", "PLA - Wood"}
                                            
                                            if !exists(global.filamentSettings)
                                                global pebbleFeedSpeedDefault = 0
                                                global pebbleFeedSpeed = global.pebbleFeedSpeedDefault	
                                            
                                                global nozzleSizeMap = vector(6, null)
                                                set global.nozzleSizeMap[0] = 0.25
                                                set global.nozzleSizeMap[1] = 0.4
                                                set global.nozzleSizeMap[2] = 0.6
                                                set global.nozzleSizeMap[3] = 0.8
                                                set global.nozzleSizeMap[4] = 1.0
                                                set global.nozzleSizeMap[5] = 1.2
                                            
                                                global filamentSettings = null
                                            
                                            set global.filamentSettings = vector(#var.filaments, vector(2,null))
                                            set global.pebbleFeedSpeedDefault = 300
                                            set global.pebbleFeedSpeed = global.pebbleFeedSpeedDefault	
                                            
                                            while iterations < #var.filaments
                                                set global.filamentSettings[iterations][0] = var.filaments[iterations]
                                                set global.filamentSettings[iterations][1] = vector(#global.nozzleSizeMap, {0.0, 0.5, 2000, 0.2, 150, global.pebbleFeedSpeedDefault}) ; default settings: PA, retraction distance, retraction speed, Z-Hop, min extrusionTemp, pebble feed speed	
                                            
                                            ;                                       PA          R-Dist      R-Speed     Z-Hop       MinTemp     Pebble Speed
                                            ;PETG - Generic
                                            set global.filamentSettings[0][1][0] = {0.175,  	0.5,  	    2100, 	    0.2, 	    200, 	    global.pebbleFeedSpeedDefault} ;0.25
                                            set global.filamentSettings[0][1][1] = {0.1,  		0.5,  	    2100, 	    0.2, 	    200, 	    global.pebbleFeedSpeedDefault} ;0.4
                                            set global.filamentSettings[0][1][2] = {0.05,  		0.7,  	    2500, 	    0.2, 	    200, 	    global.pebbleFeedSpeedDefault} ;0.6
                                            set global.filamentSettings[0][1][3] = {0.03,  		0.5,  	    2100, 	    0.2, 	    200, 	    global.pebbleFeedSpeedDefault} ;0.8
                                            set global.filamentSettings[0][1][5] = {0.015,  	0.5,  	    2100, 	    0.2, 	    200, 	    global.pebbleFeedSpeedDefault} ;1.2
                                            
                                            ;PLA - PolyTerra
                                            set global.filamentSettings[2][1][0] = {0.115,  	0.5,  	    2100, 	    0.0, 	    180, 	    global.pebbleFeedSpeedDefault} ;0.25
                                            set global.filamentSettings[2][1][1] = {0.04,  		0.5,  	    2100, 	    0.0, 	    180, 	    global.pebbleFeedSpeedDefault} ;0.4
                                            set global.filamentSettings[2][1][2] = {0.025,  	0.5,  	    2100, 	    0.0, 	    180, 	    global.pebbleFeedSpeedDefault} ;0.6
                                            set global.filamentSettings[2][1][3] = {0.02,  		0.5,  	    2100, 	    0.0, 	    180, 	    global.pebbleFeedSpeedDefault} ;0.8
                                            
                                            ;PLA - Silk
                                            set global.filamentSettings[3][1][0] = {0.0,  		0.5,  	    2100, 	    0.0, 	    180, 	    global.pebbleFeedSpeedDefault} ;0.25
                                            set global.filamentSettings[3][1][1] = {0.055,  	0.5,  	    2100, 	    0.0, 	    180, 	    global.pebbleFeedSpeedDefault} ;0.4
                                            set global.filamentSettings[3][1][2] = {0.0,  		0.5,  	    2100, 	    0.0, 	    180, 	    global.pebbleFeedSpeedDefault} ;0.6
                                            set global.filamentSettings[3][1][3] = {0.0,  		0.5,  	    2100, 	    0.0, 	    180, 	    global.pebbleFeedSpeedDefault} ;0.8
                                            
                                            ;XTCF20
                                            set global.filamentSettings[4][1][2] = {0.05,  		0.5,  	    2100, 	    0.0, 	    180, 	    global.pebbleFeedSpeedDefault * 0.5} ;0.6
                                            
                                            ;PCCF - Prusament
                                            set global.filamentSettings[5][1][2] = {0.04,  		0.3,  	    3000, 	    0.0, 	    260, 	    global.pebbleFeedSpeedDefault * 0.5} ;0.6
                                            
                                            ;PLA - Wood
                                            set global.filamentSettings[6][1][2] = {0.04,  		0.3,  	    3000, 	    0.2, 	    180, 	    global.pebbleFeedSpeedDefault} ;0.6
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA