Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login
    1. Home
    2. MacNite
    3. Posts
    • Profile
    • Following 0
    • Followers 1
    • Topics 25
    • Posts 70
    • Best 8
    • Controversial 0
    • Groups 0

    Posts made by MacNite

    • External SD Card or USB Slot in Duet 6 HC

      Hey Guys,

      Is there any way to add an external USB Slot or SD Card Slot for GCODE Transfer to the DUET 6 HC.

      Thanks for your Help,

      Greets
      Max

      posted in Duet Hardware and wiring
      MacNiteundefined
      MacNite
    • RE: Duet 6HC Dispaly Options

      @phaedrux yes. That is a possibility as well. But I think that would be to much effort / hardware just to get an Interface and USB-Connectivity.

      Greets
      Max

      posted in General Discussion
      MacNiteundefined
      MacNite
    • RE: Duet 6HC Dispaly Options

      @t3p3tony cd465679-40f3-419a-bc25-eb907efa1969-image.png

      Refering to the documentation that will not work with the Duet 6HC.

      Greets
      Max

      posted in General Discussion
      MacNiteundefined
      MacNite
    • Duet 6HC Dispaly Options

      Hey guys,

      at the moment I am using a PanelDue 7i on my Voron Trident in combination with a Duet 6 HC. Is there any way to make the SD-Card Slot working or add an USB-Stick for file transfer?

      Thank you for your help!
      Max

      posted in General Discussion
      MacNiteundefined
      MacNite
    • RE: Firmware / Configuration for Prusa MMU / Enraged Rabbit /SMuFF

      @o_lampe yes - thank you for the hint! That's actually what I plant to do: using prusa-slicer / super-slicer for this instead of "firmware-presets".

      I reach out to @pfn and ask for his/her progress.

      posted in Firmware installation
      MacNiteundefined
      MacNite
    • Firmware / Configuration for Prusa MMU / Enraged Rabbit /SMuFF

      Hey guys,

      at the moment I am building a Voron Trident (I think my 4th or 5th Voron printer). When everything is set up I want to install the Enraged Rabbit Mod.

      It's a Filament-Changer / Swapper similar to the Prusa MMU or SMuFF.

      Is there anyone who already integrated a system like that into the firmware? The mechanics / base setup (2 steppers, 1 servo, filament sensor) are quite simple to get working in RRF3 (I plan to use a Duet 6 HC with a Duet 3HC expanison board for this).
      The standard change precdure for filaments is quite easy too using macros and the t#post, t#pre etc. parts of the Firmware.

      In the last days I thought about possiblilitys I don't quite yet have solution for:
      (1) The Enraged Rabbit Mod uses 2 Filament Sensors - 1 at the "filament changer" 1 at the tool head. I think these could be set up as external triggers with some macros and should work - I also could use the extrnal triggers for the filament change.
      (2) Automatic continous printing: If one spool of the filament changer is empty (recognised by filament sensor) swap to the next spool. I think this could be implemented in some way with global variables...but I really do not know how to use them - is there any "good" example? I find the Documentation of GCODE-Meta-Commands is quite lacking in this regard (at least for people with limited programming skils).

      Maybe you could provide some input on this!
      Thanks
      Max

      posted in Firmware installation
      MacNiteundefined
      MacNite
    • RE: Two (2) Bed Heaters on Duet Wifi

      @phaedrux

      Yes , of course. But after further Investigation I think I miss-read that....the M140 H1:H2 only seems to bei a suggested solution, Not an implemented one in the Firmware yet.

      https://forum.duet3d.com/topic/3516/using-multiple-bed-heaters/3

      posted in Tuning and tweaking
      MacNiteundefined
      MacNite
    • Two (2) Bed Heaters on Duet Wifi

      Hey Guys,

      I am building a large Format using a 410850mm Bed. For Heating I use 2 400400mm Silicone Heaters with 600W each.
      Using the two Beds independently works fine:

      M140 H1
      M140 H2
      

      But I want to use both heaters simultaniously with one single command. I found an old thread where it was mentioned that you could use

      M140 H1:H2
      

      To define a Single Bed with 2 heaters.

      This does Not Work. If I Set the Temperature in DWC it does only Heat Bed1/Heater1, Not both

      Any Suggestion in how to fix this.

      Greets
      Max

      posted in Tuning and tweaking heater bed heater config
      MacNiteundefined
      MacNite
    • RGB Led & Neopixel state / status or global virable

      Hey guys,

      a few month back I have posted about creating a macro to toggle LEDs on or off
      old post

      This works fine. Now I want to reuse this code for an RGB LED (neopixel strip with 21 leds) wired to my Duet Mini 5+. I can configure the state of the LED without any problem and set colours I want. But I want a "simple" button on the PanelDue to switch them off and back on.

      I just couldn't find the appropriate part of the object model - or is this just a part that is missing?

      if state.GIVE_ME_LED_BRIGHNESS_LEVEL == 1
         M150 S21 P0
      else
         M150 S21 P255
      

      A workaround for this would be to create a global variable but I think I missunderstood the concept for this. I tried to use:

      global LED_state = true ; LED is on
      

      or

      global LED_state = 1 ; LED is on
      

      Then I modified the "code" above to:

      if LED_state == 1 ; or true if bool
         M150 S21 P0
      else
         M150 S21 P255
      

      But the DWC alway responds that the variable does not exist. Any idea on how to bugfix this? Maybe I am just missing a small puzzle piece again.

      Thanks for your help.
      Max

      posted in Gcode meta commands
      MacNiteundefined
      MacNite
    • RE: Duet 5 Mini+ CoreXY and Sensorless homing

      I do not think your ideas help. I tested them but they did not improve anything...

      but I found the mistake!

      You know....in programming you are often start counting with 0....not with 1. So my x Stepper is not P0.1 but P0.0....

      Oh my gosh...works now.

      posted in Tuning and tweaking
      MacNiteundefined
      MacNite
    • RE: Duet 5 Mini+ CoreXY and Sensorless homing

      @gloomyandy

      Thank you for your input.
      Regarding M98 P"config.g" and the individual stepper settings: DWC / Console does not report an error.
      I removed the "settings" behind the ":" so I only have 1 setting per z-stepper. I.e.

      M350 X16 Y16 Z16 E16 I1  
      

      As you thought this was not the culprit.

      I tried both regarding M569, with only H, with only V, and leaving it away. No change in behaviour.

      M915 reports this:

      16.7.2021, 21:37:02	M915 P0.1
      Driver 0.1: stall threshold -10, steps/sec 200, coolstep 0, action on stall: none
      

      M569 P0.1 reports (after using the V50 values from homex.g)

      16.7.2021, 21:44:53	M569 P0.1
      Drive 1 runs in reverse, active low enable, timing fast, mode stealthChop, ccr 0x00053, toff 3, tblank 0, tpwmthrs 50 (187.5 mm/sec), pwmScaleSum 35, pwmScaleAuto 0, pwmOfsAuto 95, pwmGradAuto 11, pos 424
      

      What happens when I try to home the motors: They just hit the printer frame and don't stall. They move completely fine but "stall detection" or whatever the trigger for sensorless homing is does not work.
      I tried to use

      M915 X Y S-120 F0 H200 R0
      

      but even with these values the print head keeps hitting the frame until the "end" of the travel I defined in homex.g is reached and than reports "insufficient axis homed".

      I looked at https://teamgloomy.github.io/sensorless.html but could not find any "helpfull" information.

      posted in Tuning and tweaking
      MacNiteundefined
      MacNite
    • Duet 5 Mini+ CoreXY and Sensorless homing

      Hey guys,

      I think I need your help once again. A few weeks back I built a CoreXY using an Duet 3 6HC without Endstops for the XY-Stage.

      CoreBot V2 on Instructables

      I was really impressed how realiable that worked compared to the last time I tested this a few years ago. So I choose to use the same for the new version of my CorEssentials CoreXY printer using the Duet 5 Mini+.

      This does not work at all. The stall detection does not work. Not at all. The printer performs the "stealthchop calibration moves" and the first homing pass. But thats it. After that it throws out the error "G28 X homing failed" as well as "G28 X Error: G0/G1: insufficient axes homed".

      I assume I am doing something wrong...here is my config and home x:

      config.g

      ; Configuration file for Duet 3 Mini 5+ (firmware version 3)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v3.2.3 on Wed Jun 02 2021 13:51:01 GMT+0200 (Mitteleuropäische Sommerzeit)
      
      ; General preferences
      G90                                                   ; send absolute coordinates...
      M83                                                   ; ...but relative extruder moves
      M550 P"CorEssentials MK1"                             ; set printer name
      M669 K1                                               ; select CoreXY mode
      
      ; Network
      M552 S1                                               ; enable network
      M586 P0 S1                                            ; enable HTTP
      M586 P1 S0                                            ; disable FTP
      M586 P2 S0                                            ; disable Telnet
      
      ; Drives
      M569 P0.0 S0                                          ; physical drive 0.0 goes backwards
      M569 P0.1 S0                                          ; physical drive 0.1 goes backwards
      M569 P0.2 S1                                          ; physical drive 0.2 goes forwards
      M569 P0.3 S1                                          ; physical drive 0.3 goes forwards
      M569 P0.4 S1                                          ; physical drive 0.4 goes forwards
      M584 X0.0 Y0.1 Z0.2:0.3 E0.4                          ; set drive mapping
      M350 X16 Y16 Z16:16 E16 I1                            ; configure microstepping with interpolation
      M92 X80.00 Y80.00 Z6400/3:6400/3 E703.00              ; set steps per mm
      M566 X1800 Y1800 Z60:60 E120                          ; set maximum instantaneous speed changes (mm/min)
      M203 X60000 Y60000 Z1200:1200 E1200                   ; set maximum speeds (mm/min)
      M201 X10000 Y10000 Z100:100 E1000                     ; set accelerations (mm/s^2)
      M906 X1200 Y1200 Z1000:1000 E700 I30                  ; set motor currents (mA) and motor idle factor in per cent
      M84 S30                                               ; Set idle timeout
      
      ; Axis Limits
      M208 X0 Y0 Z0 S1                                      ; set axis minima
      M208 X310 Y310 Z310 S0                                ; set axis maxima
      M671 X-33.5:377 Y155:155 S2                           ; position of leadscrews, maximum correction S=2mm
      
      ; Endstops
      M574 X1 S3                                             ; configure sensorless endstop on X
      M574 Y2 S3                                             ; configure sensorless endstop on Y
      M574 Z1 S2                                            ; configure z-probe endstop for low end on Z
      
      ; Sensorless Homing Limits
      M915 X Y S-10 F0 H200 R0                                ; S: Stall detection threshold; recommended values -10 to +63 / F: Filter Mode: 0 = unfiltered, every full step
      
      ; Z-Probe
      M558 P5 C"^io3.in" H5 F120 T18000                     ; set Z probe type to switch and the dive height + speeds
      G31 P500 X-24 Y59 Z2                                  ; set Z probe trigger value, offset and trigger height
      M557 X30:270 Y30:270 P5                               ; define mesh grid, P: 5 points in x- and y-direction
      
      ; Heaters & Sensors
      M308 S0 P"temp0" Y"thermistor" T100000 B4092          ; configure sensor 0 as thermistor on pin temp1
      M950 H0 C"out0" T0                                    ; create bed heater output on out1 and map it to sensor 0
      M307 H0 B0 S1.00                                      ; disable bang-bang mode for the bed heater and set PWM limit
      M140 H0                                               ; map heated bed to heater 0
      M143 H0 S120                                          ; set temperature limit for heater 0 to 120C
      M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin temp0
      M950 H1 C"out1" T1                                    ; create nozzle heater output on out0 and map it to sensor 1
      M307 H1 B0 S1.00                                      ; disable bang-bang mode for heater  and set PWM limit
      M143 H1 S280                                          ; set temperature limit for heater 1 to 280C
      M308 S2 P"temp2" Y"thermistor" T100000 B4725 C7.06e-8 C"Chamber" ; configure sensor 2 as thermistor on pin temp2
      
      ; Fans
      M950 F0 C"out3" Q500                                  ; create fan 0 on pin out3 and set its frequency
      M106 P0 C"Coldend" S1 H1 T45                          ; set fan 0 name and value. Thermostatic control is turned on
      M950 F1 C"out4" Q500                                  ; create fan 1 on pin out4 and set its frequency
      M106 P1 C"Part" S0 H-1                                ; set fan 1 name and value. Thermostatic control is turned off
      M950 F2 C"out5" Q500                                  ; create fan 2 on pin out5 and set its frequency
      M106 P2 C"Chamber" S0 H2 T50                          ; set fan 2 name and value. Thermostatic control is turned off
      
      ; Tools
      M563 P0 S"Dragon" D0 H1 F0:1                          ; define tool 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
      
      ; Pressure advance
      ;M572 D0 S0.03                                        ; Direct Drive: S0.025 - Short Bowden (200mm): S0.1
      
      ; Custom settings are not defined
      
      ; Miscellaneous
      M575 P1 S1 B57600                                     ; enable support for PanelDue
      M501                                                  ; load saved parameters from non-volatile memory
      T0                                                    ; select first tool
      
      ; LED
      M150 X1 Q3000000                                      ; set LED type to NeoPixel and set SPI frequency to 3MHz
      
      
      

      homex.g

      ; homex.g
      ; called to home the X axis
      
      M569 P0.1 V50 H50    ; make sure x-drive stays in stealthChop Mode
      M569 P0.2 V50 H50     ; make sure x-drive stays in stealthChop Mode
      
      G91               ; relative positioning
      ;G1 H2 Z5 F1800   ; lift Z relative to current position
      
      ;stealthChop calibration
      G1 H1 X0.5 F1000  ; move ~2 micro steps away from endstop
      G4 P200           ; wait 100ms
      G1 H1 X5 F1000    ; move 5mm away from homing direction
      G4 P200           ; wait 100ms
      M400              ; wait for all moves to finish
      
      M913 X50 Y50      ; set current of x- & y-stepper to 50%
      
      ;Homing move
      
      G1 H1 X-315 F6000 ; move quickly to X axis endstop and stop there (first pass)
      G1 X5 F18000      ; go back a few mm
      G1 H1 X-315 F6000 ; move slowly to X axis endstop once more (second pass)
      ;G1 H2 Z-5 F1800  ; lower Z again
      G90               ; absolute positioning
      
      ; set standard settings
      M913 X100 Y100    ; set current of x-stepper to 100%
      M569 P0.1 V2000   ; stealthChop Mode only for slow moves
      M569 P0.2 V2000   ; stealthChop Mode only for slow moves
      
      

      I already read through multiple threads in the forum to find a solution and tried the following:

      • update to RepRapFirmware for Duet 3 Mini 5+ 3.3 (2021-06-15) ; Including the necessary IAP update to install this firmware
      • included the "stealthchop calibration" in the homing files
      • changing the sensitivity of Stall Detection to S-64
      • made sure the steppers are skipping steps and the belts are not slipping
      • using M913 X50 Y50 before the stealthchop calibration
      • using 30-70% in M913
      • using only X-Stepper in M913 (instead of X & Y)
      • using only X-Stepper in M569 (instead of X & Y)
      • changing M569 V and H values (V=50 equals to 185mm/s, 1 to 2000)
      • using different speeds for homing (3000 mm/min to 18000 mm/min)
      • leaving out "stealthchop calibration"
      • using different feed rates for "stealthchop calibration" (1000mm/min & 6000mm/min)
      • reducing x & y jerk from 1800 to 600 mm/min (M566)
      • reducing acceleration from 10,000 to 1,000 mm/s² (M201)

      I really do not know what I should to anymore...on the Duet 3 6HC it was very easy. Just adjusting the S-Parameter in M915 command. Any Idea why this is not working on the Duet 5 Mini+?

      Thanks for your help,
      Max

      posted in Tuning and tweaking mini+ duet5mini+ sensorless homing stall detection tmc2209 home homex homey
      MacNiteundefined
      MacNite
    • RE: Create restricted area on built plate

      Thank you for your replies!

      @dc42 Thank you for the info.

      @Lbi No, it is not because of the endstop position, it is the other way round. I want to "limit" the movements additionally ot the endstop position without decreasing the built volume significantly.

      @sinned6915 very nice idea! I think this would be a very helpful feature.

      @fcwilt I could move the build surface back, but that would "decrease" my total built volume. ATM I am trying to maximise it.

      @OwenD Very nice Idea! I think that will be the way I'll try it!

      Greets
      Max

      posted in General Discussion
      MacNiteundefined
      MacNite
    • Create restricted area on built plate

      Hey guys,

      at the moment I am building a new machine. Due to the design of the z-axis and the Tool head there are 2 corners (marked red in picture) which the print head is not able to reach because it would cause a crash with the z-axis top mount.

      Is there any way in RRF3 to restrict movements into this area so the printhead won't move there?

      33a5e96e-368a-44f9-9e5e-dcb080d54c03-image.png

      Thanks for your help.
      Max

      posted in General Discussion
      MacNiteundefined
      MacNite
    • RE: M291 and user feedback / interaction

      Thank you!
      Is there any "feedback" from the M291 command I could use in conditional code?

      M291 P"If you're satisfied with the z-calibration results push "OK", if z-calibration shall be repeated push "cancel"" R"Calibration of z-Position" S2
      

      So I can coordinate if thh z_satisfied variable should be set to true or false according to the user-input?

      Greets
      Max

      posted in Gcode meta commands
      MacNiteundefined
      MacNite
    • M291 and user feedback / interaction

      MacNite 12 Mar 2021, 11:59
      Maybe some of you have seen my post of trying to built a calibration routine for the CR3D Idex machines.

      https://forum.duet3d.com/topic/21803/calibration-routine-for-dual-extruder-printers

      This thread did not get much tracktion...probably due to the kind of complex nature of such a routine. So I'll try to break down the problem into smaller chunks.

      The "newest" problem is the user-interaction.
      After completing the z-calibration the user should be asked, if he is satisfied with the results. Otherwise it should be repeated.

      	; start z-calibration routine
      while z_satisfied = false
          M291 P"Put a piece of Paper on the built plate" R"Calibration of z-Position" S2
          T1
          M291 P"Move the Bed up using the buttons until the paper slightly graps on the nozzle" R"Calibration of z-Position- Tool 1" S3 X0 Y0 Z1
          G10 P1 Z{-axes[3].position}		; set z-offset of Tool1 to value from last calibration
          M500 P10                        ; safe Tool1 offset
          G1 Z5
          T2
          M291 P"Move the Bed up using the buttons until the paper slightly graps on the nozzle" R"Calibration of z-Position- Tool 2" S3 X0 Y0 Z1
          G10 P2 Z{-axes[3].position}		; set z-offset of Tool2 to value from last calibration
          M500 P10                        ; safe Tool2 offset
          G1 Z5
          M291 P"Remove Piece of Paper" R"Calibration of z-Position" S2
      
      	; start test print for z-calibration
          ;M98 P"z_test_print.g"				; Print z-calibration lines
      
      	; ask user if he is satisfied
      	M291 P"Are you satisfied with the z-calibration results or should this step be repeated" R"Calibration of z-Position" S2
      	; If M291_input = yes
          ;    z_satisfied = true
          ;else
          ;    z_satisfied = false
      
      

      Is it possible to get a "feedback" and or yes/no-buttons with M291 or is there any other way of "user-interaction"?

      Greets
      Max

      posted in Gcode meta commands
      MacNiteundefined
      MacNite
    • RE: M291 expansion

      up!

      I really want this feature - or a workaround - as well 🙂

      posted in Firmware wishlist
      MacNiteundefined
      MacNite
    • RE: Storing Tool Offsets for Auto Calibartion

      Thank you very much!
      Sometimes I just feel dumb...

      posted in Gcode meta commands
      MacNiteundefined
      MacNite
    • Storing Tool Offsets for Auto Calibartion

      Maybe some of you have seen my post of trying to built a calibration routine for the CR3D Idex machines.

      https://forum.duet3d.com/topic/21803/calibration-routine-for-dual-extruder-printers

      This thread did not get much tracktion...probably due to the kind of complex nature of such a routine. So I'll try to break down the problem into smaller chunks.

      Is there any way to store the tool offsets after doing
      a) z-offset-calibration
      b) x-y-offset-clibration

      M500 does not safe it. I tried something like that (writing to a file on the sd-card).

      T1
      M291 P"Move the Bed up using the buttons until the paper slightly graps on the nozzle" R"Calibration of z-Position- Tool 1" S3 X0 Y0 Z1
      M28 tool1offset_z.g 			; generate file for z-offset Tool1
      G10 P1 Z{-axes[3].position}		; set z-offset of Tool1 to value from last calibration
      M29
      

      There are 2. Problems with this:

      1. the file "appears" in the print-files folder which is not really nice for our customers.
      2. It writes
      G10 P1 Z{-axes[3].position} 
      

      into the file and not (i.e.)

      G10 P1 Z-2.5
      

      Any ideas / solutions / different ways?

      thanks for your help!

      posted in Gcode meta commands
      MacNiteundefined
      MacNite
    • Calibration Routine for Dual Extruder printers

      Hey guys,

      I want to create a calibration routine for the IDEX and LiftingHotend printers I develope together with @CR3D .

      I already asked here, but I think that was the wrong category.
      https://forum.duet3d.com/topic/21737/rrf3-dual-extruder-calibration-tool-and-nozzle-offset/5?_=1614279002208

      For this I want to "built" a routine which shall work like the following diagram:

      alt text

      I have multiple issues at the moment - I added my code below:

      1. Is it possible to make a "loop" that waits for user Interaction? I.e. if the z-height is ok? yes: continue, no: repeat certain part of code.
      2. What is the proper way to store the tool offset? M500 only store coorinate system offsets. I thought of writing to files (The M28 commands starting in line 28). The problem is: the content of the file then is :
      G10 P1 Z{-axes[3].position}
      

      But I want it to be

      G10 P1 Z-2.2
      

      Additionally these files are generated in the /gcode folder. I want them to be hidden or inside the macro folder so the user does not accidentally delete them.
      3. Is there a way to ask / query the firmware if filament is loaded. Primarly I want to ask the firmware, if the filament runout sensor is triggerd. I really don't know how to "properly" use the object model...maybe it is in there and I am just blind...

      ; add tool1offset_z.g and tool2offset_z.g to config.g with M98 P"tool1offset_z.g" M98 P"tool2offset_z.g"
      ; built z-calibration gcode - 20x20 square 
      ; built x-y-calibration gcode
      
      M291 P"This will reset all previous defined tool offsets to the default values. Do you want to continue?" R"Calibration of Tool Offsets" S3
      ;M561                    			; clear any bed transform
      G28
      M104 S215 T1						; active & standby Temperature for Tool 1 200°C
      M104 S215 T2						; active & standby Temperature for Tool 2 200°C
      M140 S65							; set Bed Temperature to 65°C
      G10 P1 X-10 Y0 Z0					; set Tool 1 offsets to default values
      G10 P2 X10 Y0 Z0					; set Tool 1 offsets to default values
      G1 Z5
      
      	; check if Filament is loaded in tool 1
      ;if FILAMENT_LOADED_T1 == TRUE Then
      ;ELSE
      ;T1
      ;M701 S"PLA"
      	; chek if Filament is loaded in tool 2
      ;if FILAMENT_LOADED_T2 == TRUE Then
      ;ELSE
      ;T2
      ;M701 S"PLA"
      
      	; start z-calibration routine
      ;##marker-mc-markface
      M291 P"Put a piece of Paper on the built plate" R"Calibration of z-Position" S2
      T1
      M291 P"Move the Bed up using the buttons until the paper slightly graps on the nozzle" R"Calibration of z-Position- Tool 1" S3 X0 Y0 Z1
      M28 tool1offset_z.g 			; generate file for z-offset Tool1
      G10 P1 Z{-axes[3].position}		; set z-offset of Tool1 to value from last calibration
      M29
      G1 Z5
      T2
      M291 P"Move the Bed up using the buttons until the paper slightly graps on the nozzle" R"Calibration of z-Position- Tool 2" S3 X0 Y0 Z1
      M28 tool2offset_z.g 			; generate file for z-offset Tool1
      G10 P2 Z{-axes[3].position}		; set z-offset of Tool2 to value from last calibration
      M29
      G1 Z5
      M291 P"Remove Piece of Paper" R"Calibration of z-Position" S2
      
      	; start test print for z-calibration
      ;M98 P"z_test_print.g"				; Print z-calibration lines
      
      	; ask user if he is satisfied
      ;If-Statement to ask user if z-offset is fine or z-calibration has to re-run, for rerun re_turn to ##marker-mc-markface
      
      	;start xy offset calibration
      
      
      ; to come....
      

      Thank you for your help. I think together we might be able to built a routin that will every dual extruder printer which uses RRF.

      Stay safe.
      Max

      posted in Gcode meta commands
      MacNiteundefined
      MacNite