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

    G32 on dual-Z axis cartesian problem

    Scheduled Pinned Locked Moved Solved
    General Discussion
    3
    4
    160
    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.
    • Velviaundefined
      Velvia
      last edited by

      When I run G32, it correctly measures the set points, but the leadscrews will adjust in the opposite direction, making the gantry skewed and uneven to the bed.

      M122

      M122
      === Diagnostics ===
      RepRapFirmware for Duet 3 Mini 5+ version 3.4.5 (2022-11-30 19:41:16) running on Duet 3 Mini5plus WiFi (standalone mode)
      Board ID: P5DZW-GQ6KL-K65J0-409NU-KKW1Z-H1QDZ
      Used output buffers: 1 of 40 (13 max)
      === RTOS ===
      Static ram: 103652
      Dynamic ram: 110352 of which 0 recycled
      Never used RAM 27708, free system stack 206 words
      Tasks: NETWORK(ready,11.5%,253) HEAT(notifyWait,0.0%,358) Move(notifyWait,0.0%,363) CanReceiv(notifyWait,0.0%,942) CanSender(notifyWait,0.0%,336) CanClock(delaying,0.0%,341) TMC(notifyWait,0.7%,115) MAIN(running,85.3%,425) IDLE(ready,1.6%,30) AIN(delaying,0.9%,272), total 100.0%
      Owned mutexes:
      === Platform ===
      Last reset 00:00:13 ago, cause: software
      Last software reset at 2023-03-01 13:03, reason: User, GCodes spinning, available RAM 27556, slot 0
      Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
      Error status: 0x00
      Aux0 errors 0,0,0
      MCU revision 3, ADC conversions started 13666, completed 13666, timed out 0, errs 0
      Step timer max interval 1396
      MCU temperature: min 32.5, current 33.3, max 33.6
      Supply voltage: min 24.0, current 24.0, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes
      Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
      Events: 0 queued, 0 completed
      Driver 0: standstill, SG min 140, read errors 0, write errors 1, ifcnt 109, reads 683, writes 9, timeouts 0, DMA errors 0, CC errors 0
      Driver 1: standstill, SG min 138, read errors 0, write errors 1, ifcnt 147, reads 683, writes 9, timeouts 0, DMA errors 0, CC errors 0
      Driver 2: standstill, SG min 74, read errors 0, write errors 1, ifcnt 110, reads 682, writes 9, timeouts 0, DMA errors 0, CC errors 0
      Driver 3: standstill, SG min 56, read errors 0, write errors 1, ifcnt 110, reads 682, writes 9, timeouts 0, DMA errors 0, CC errors 0
      Driver 4: standstill, SG min 0, read errors 0, write errors 1, ifcnt 74, reads 683, writes 9, timeouts 0, DMA errors 0, CC errors 0
      Driver 5: not present
      Driver 6: not present
      Date/time: 2023-03-01 13:03:17
      Cache data hit count 25423027
      Slowest loop: 3.73ms; fastest: 0.13ms
      === Storage ===
      Free file entries: 10
      SD card 0 detected, interface speed: 22.5MBytes/sec
      SD card longest read time 2.0ms, write time 0.0ms, max retries 0
      === Move ===
      DMs created 83, segments created 0, maxWait 0ms, bed compensation in use: none, comp offset 0.000
      === MainDDARing ===
      Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
      === AuxDDARing ===
      Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
      === Heat ===
      Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
      Heater 1 is on, I-accum = 0.0
      === GCodes ===
      Segments left: 0
      Movement lock held by null
      HTTP is idle in state(s) 0
      Telnet is idle in state(s) 0
      File is idle in state(s) 0
      USB is idle in state(s) 0
      Aux is idle in state(s) 0
      Trigger is idle in state(s) 0
      Queue is idle in state(s) 0
      LCD is idle in state(s) 0
      SBC is idle in state(s) 0
      Daemon is idle in state(s) 0
      Aux2 is idle in state(s) 0
      Autopause is idle in state(s) 0
      Code queue is empty
      === CAN ===
      Messages queued 119, received 0, lost 0, boc 0
      Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 18 (min 18), ts 67/0/0
      Tx timeouts 0,0,66,0,0,51 last cancelled message type 30 dest 127
      === Network ===
      Slowest loop: 15.35ms; fastest: 0.00ms
      Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
      HTTP sessions: 1 of 8
      = WiFi =
      Network state is active
      WiFi module is connected to access point 
      Failed messages: pending 0, notready 0, noresp 0
      WiFi firmware version 1.26
      WiFi MAC address e8:68:e7:e5:50:1f
      WiFi Vcc 3.35, reset reason Power up
      WiFi flash size 2097152, free heap 24096
      WiFi IP address 10.0.0.34
      WiFi signal strength -74dBm, mode 802.11n, reconnections 0, sleep mode modem
      Clock register 00002002
      Socket states: 0 0 0 0 0 0 0 0
      

      config.g

      ; Configuration file for Duet 3 Mini 5+ (firmware version 3.3)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v3.3.15 on Tue Feb 28 2023 22:26:05 GMT+0100 (Central European Standard Time)
      
      ; General preferences
      M575 P1 S1 B57600                            ; enable support for PanelDue
      G90                                          ; send absolute coordinates...
      M83                                          ; ...but relative extruder moves
      M550 P"Duet Bear"                            ; set printer name
      M669 K0
      
      ; Network
      M552 S1                                      ; enable network
      M586 P0 S1                                   ; enable HTTP
      M586 P1 S0                                   ; disable FTP
      M586 P2 S0                                   ; disable Telnet
      
      ; Drives
      M569 P0.0 S1 D3 V10                                ; X physical drive 0.0 goes forwards
      M569 P0.1 S1 D3 V10                                ; Y physical drive 0.1 goes forwards
      M569 P0.2 S0 D3 V10                                ; Z physical drive 0.2 goes forwards
      M569 P0.3 S0 D3 V10                                ; Z physical drive 0.3 goes forwards
      M569 P0.4 S1 D2                                    ; E physical drive 0.4 goes backswards  
      M584 X0.0 Y0.1 Z0.2:0.3 E0.4                       ;  set drive mapping
      M350 X32 Y32 Z16 E16 I1                      ; configure microstepping with interpolation
      M92 X320.00 Y320.00 Z400.00 E932.00          ; set steps per mm
      M566 X900.00 Y900.00 Z60.00 E300.00          ; set maximum instantaneous speed changes (mm/min)
      M203 X6000.00 Y6000.00 Z600.00 E3600.00      ; set maximum speeds (mm/min)
      M201 X2000.00 Y2000.00 Z100.00 E250.00       ; set accelerations (mm/s^2)
      M906 X1000 Y1000 Z800 E800 I30               ; set motor currents (mA) and motor idle factor in per cent
      M84 S60                                      ; Set idle timeout
      M671 X-30:223 Y0:0 S1                        ; define dual driven z-axis 
      
      ; Axis Limits
      M208 X0 Y0 Z0 S1                             ; set axis minima
      M208 X228 Y208 Z198 S0                       ; set axis maxima
      
      ; Endstops
      M574 X2 S3                                   ; configure sensorless endstop for high end on X
      M574 Y2 S3                                   ; configure sensorless endstop for high end on Y
      M574 Z1 S2                                   ; configure Z-probe endstop for low end on Z
      
      ; Sensorless homing sensitivity
      ;M915 X S30 H140 R0					                ; sensitivity of X and Y sensorless homing, R2 = pause print
      M915 Y S10 H200 R0				                    ; sensitivity (S) of X and Y sensorless homing, R2 = pause print
      
      ; Z-Probe
      M558 P5 C"io3.in" H2 F2000 T12000 A3 S0.03      ; set Z probe type to unmodulated and the dive height + speeds
      G31 P500 X25 Y-24 Z0.83                             ; set Z probe trigger value, offset and trigger height
      M557 X30:225 Y15:225 S60                            ; define mesh grid
      
      ; Heaters
      M308 S0 P"temp0" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin temp0
      M950 H0 C"out0" Q13 T0                       ; create bed heater output on out0 and map it to sensor 0, PWM 25
      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 B3950 ; configure sensor 1 as thermistor on pin temp1
      M950 H1 C"out1" T1                           ; create nozzle heater output on out1 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
      
      ; Fans
      M950 F0 C"out5" Q500                         ; create fan 0 on pin out5 and set its frequency
      M106 P0 S1 H1 T50                            ; set fan 0 value. Thermostatic control is turned on
      
      ; Tools
      M563 P0 S"Biqu H2" D0 H1 F0                  ; 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
      
      ; Custom settings are not defined
      
      ; Miscellaneous
      M501                                         ; load saved parameters from non-volatile memory
      T0                                           ; select first tool
      

      bed.g

      ; bed.g
      ; called to perform automatic bed compensation via G32
      ;
      ; generated by RepRapFirmware Configuration Tool v3.3.15 on Tue Feb 28 2023 22:26:05 GMT+0100 (Central European Standard Time)
      M561 ; clear any bed transform
      M558 H3 F2000 T12000               ; dive height
      G28
      G30 P0 X223 Y79 Z-99999
      G30 P1 X30 Y79 Z-99999 S2
      

      Homegrown, grass fed and organically built 350mm delta

      droftartsundefined 1 Reply Last reply Reply Quote 0
      • jumpedwithbothfeetundefined
        jumpedwithbothfeet
        last edited by jumpedwithbothfeet

        I believe I’ve encountered this problem before, try swapping the probe points in bed.g 😊
        G30 P0 X30 Y79 Z-99999
        G30 P1 X223 Y79 Z-99999 S2

        6HC Voron Trident based, 6XD CNC, Mini 5 polar printer

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

          @Velvia Most likely it is this (especially the bold part):

          You must use the M671 command to define the X and Y coordinates of the leadscrews. The M671 command must come after the M584 command and must specify the same number of X and Y coordinates as the number of motors assigned to the Z axis in the M584 command; and these coordinates must be in the same order as the driver numbers of the associated motors in the M584 command. The M671 command must also come after any M667 or M669 command.

          M584 X0.0 Y0.1 Z0.2:0.3 E0.4
          M671 X-30:223 Y0:0 S1
          

          I expect the Z motor connected to driver 0.2 is on the right of the bed (at X223), and the Z motor connected to the driver 0.3 is on the left of the bed (at X-30). But your M671 configures them the other way around. You can either:

          • swap the motors connectors over (turn off the Duet first)
          • or edit config.g to M584 X0.0 Y0.1 Z0.3:0.2 E0.4 (Z motor order swapped)
          • or edit config.g to M671 X223:-30 Y0:0 S1 (Z leadscrew definition swapped)

          Ian

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

          Velviaundefined 1 Reply Last reply Reply Quote 2
          • Velviaundefined
            Velvia @droftarts
            last edited by

            @droftarts This fixed it, thank you!
            edited config.g to M671 X223:-30 Y0:0 S1

            Homegrown, grass fed and organically built 350mm delta

            1 Reply Last reply Reply Quote 0
            • Phaedruxundefined Phaedrux marked this topic as a question
            • Phaedruxundefined Phaedrux has marked this topic as solved
            • First post
              Last post
            Unless otherwise noted, all forum content is licensed under CC-BY-SA