4th axis and G1 moves



  • I've had a movement demo script for my delta for a while now. Since I've changed my machine to have a 4th axis, carrying the extruder, the script broke. The problem lies with the G1 move, DWC console reports that the target position is not reachable. I suspect the issue is that no U parameter is specified to move to. I however would find it weird if I would have to specify U, since it is not trivial to calculate by hand.

    G28						; Home
    G1 X-100 Y0 Z600 F750				; Move to starting position
    M300 S3000 P1000				; Play a 1s beep
    G4 P1000					; Wait a second
    G2 X-100 Y0 Z5 I100 J0 F750			; Helical move down
    M300 S3000 P1000				; Play a 1s beep
    G4 P500						; Wait 500ms
    G3 X-100 Y0 Z600 I100 J0 F750			; Helical move up

  • administrators

    First, are you running firmware 2.04RC1? It fixes a coupe of bugs in 2.03 that affected delta printers.

    You do not have to give a U coordinate if you have set up U as a 4th tower as described on the wiki. However, if you have chosen an unsuitable combination of the 4th "rod" length (aka effective Bowden tube length) and the XY coordinates of the 4th tower (aka extruder outlet), then this may of course restrict the movement. To give a trivial example, suppose the 4th tower XY coordinates are X0 Y0 and the length is 100mm; then anything at a radius from the centre greater than 100mm would be unreachable.

    What coordinates and rod length did you specify for the 4th tower? Please post your config.g file.



  • I should note that moving with the buttons on the DWC dashboard work just fine. So I would say there is no issue with 'reachability'.
    Here's my config.g

    ; Configuration file for Deltex
    
    ; ===================== GENERAL SETTINGS =====================
    M111 S0                             							; Debug off
    M550 PDeltex										; Machine name and Netbios name
    M555 P2                                   						; Repetier Output
    M575 P1 B57600 S1                          						; PanelDue Comm Setup
    M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xEA 							; MAC Address
    M552 S1											; Enable WiFi
    M586 P1 S0										; Disable FTP
    M586 P2 S0										; Disable Telnet
    
    ; ===================== MOVEMENT SETTINGS ====================
    G21                                 							; Set Units to Millimeters
    G90                            								; Set to Absolute Positioning
    M83                                	 						; Set extruder to relative mode
    
    M584 X0 Y1 Z2 U4 E3									; Assign drives to each motor
    M569 P0 S0										; Drive 0 (X) goes backwards
    M569 P1 S0										; Drive 1 (Y) goes backwards
    M569 P2 S0										; Drive 2 (Z) goes backwards
    M569 P3 S0										; Drive 3 (E) goes backwards
    M569 P4 S1										; Drive 4 (4th) goes backwards
    M574 X2 Y2 Z2 U2 S1									; Endstop configuration (all endstops at high end, active high)
    M665 L500.000:500.000:500.000:224.000 R239.410 H604.996 B130.0 X-0.050 Y0.762 Z0.000	; Diagonal rod length, delta radius, printable radius and homed height
    M669 K3 X0 Y0										; Location of the 4th axis tower
    M666 X1.697 Y2.831 Z-4.528 A0.00 B0.00							; Endstop adjustments
    M350 X16 Y16 Z16 E16 U16 I1    								; Set 16x microstepping with interpolation
    M92 X200 Y200 Z200 U80 E414								; Set steps/mm
    M906 X2100 Y2100 Z2100 U600 E700 I45							; Set motor currents (mA) and increase idle current to 45%
    M201 X2000 Y2000 Z2000 U2000 E5000							; Accelerations (mm/s^2)
    M203 X10000 Y10000 Z10000 U10000 E20000							; Maximum speeds (mm/min)
    M566 X400 Y400 Z400 U400 E2000 P1							; Maximum instant speed changes (mm/min)
    
    ; ================ HEATING AND COOLING SETTINGS ==============
    ; Thermistors
    ;M305 P0 B4725 C7.060000e-8								; Bed temperature sensor parameters
    M305 P0 B3950										; Bed temperature sensor parameters
    M305 P1 B4725 C7.060000e-8								; Hotend temperature sensor parameters 
    M570 S180										; Configure heater fault detection, allow it 180 seconds
    M307 H0 A633.5 C317.1 D3.7 S1.00 V24.2 B0 F10						; Set bed heating process parameters and use PID at 10Hz
    M307 H1 A520.7 C251.5 D5.2 S1.00 V24.2 B0						; Set hotend heating process parameters and use PID
    
    M143 H0 S200										; Set maximum bed temperature to 200
    
    ; Fans
    M106 P0 H-1 										; disable thermostatic mode for fan 0 (part cooling)
    M106 P1 S255 T45 H1									; enable thermostatic mode for fan 1 (hotend)
    ;M106 P2 T35:65 H100:101:102								; enable thermostatic mode for fan 2 (system)
    
    ; ====================== TOOL SETTINGS =======================
    M563 P0 D0 H1 S"Hotend"              							; Define hotend
    G10 P0 S0 R0                        							; Set tool 0 operating and standby temperatures
    M207 S0	R0 F3000 T1200 Z0								; Set default retraction settings
    
    ; =================== CALIBRATION SETTINGS ===================
    M558 P5 A5 S0.03 X0 Y0 Z0 H2 F250 T10000						; Z probe is a switch, tap max 5 times with 0.03 mm tolerance, move 2mm above the bed at 250 mm/min and travel at 10000 mm/min
    G31 X0 Y0 Z-0.23 P10  		        						; Set the zprobe height and threshold (more negative values translate into a higher nozzle)
    M557 R120 S15										; Define probing mesh grid
    
    
    M912 P0 S-12.35										; Set temperature offset for MCU
    T0											; Select hot end
    M501											; Load settings from config-override.g
    

    And config-override.g

    ; config-override.g file generated in response to M500 at 2019-07-24 19:54
    ; This is a system-generated file - do not edit
    ; Delta parameters
    M665 L500.000:500.000:500.000:224.000 R239.107 H610.217 B130.0 X-0.079 Y0.315 Z0.000
    M666 X1.913 Y3.081 Z-4.994 A0.12 B-0.23
    ; Heater model parameters
    M307 H0 A546.0 C223.9 D4.4 S1.00 V24.2 B0
    M307 H1 A520.7 C251.5 D5.2 S1.00 V24.2 B0
    M307 H2 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    M307 H3 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    M307 H4 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    M307 H5 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    M307 H6 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    M307 H7 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    G10 L2 P1 X0.00 Y0.00 Z0.00 U0.00
    G10 L2 P2 X0.00 Y0.00 Z0.00 U0.00
    G10 L2 P3 X0.00 Y0.00 Z0.00 U0.00
    G10 L2 P4 X0.00 Y0.00 Z0.00 U0.00
    G10 L2 P5 X0.00 Y0.00 Z0.00 U0.00
    G10 L2 P6 X0.00 Y0.00 Z0.00 U0.00
    G10 L2 P7 X0.00 Y0.00 Z0.00 U0.00
    G10 L2 P8 X0.00 Y0.00 Z0.00 U0.00
    G10 L2 P9 X0.00 Y0.00 Z0.00 U0.00

  • administrators

    Those look OK to me. Can you experiment with sending various G1 commands, to see what does/doesn't work? Does it depend on the Z coordinate, or only on X and Y?



  • @dc42 Below are the moves I tried and in the process I've figured out what the problem was. RRF is behaving as it should: X-100 is well within the limits and so is Z600, but not X-100 Z600 at the same time.
    0_1564263718474_9e005b72-3ae8-4678-8320-1a2710d59cfa-image.png


Log in to reply