4th axis strange isuues



  • Hello everybody.
    i'm attempt to install the 4th axis on my delta, for manage the weight of the two extruder.
    at the moment the two motor that move the 4th axis are connected in parallel and plugged on the 1st driver connector of the duex5.
    they work flawless , but they do what they want (my fault for sure)
    here we are. i have some issue with the configuration. i've followed the tutorial for the 4th axis installation but it dont move toghether with the z axis from the dashboard, and neither with x and y (from the dashboard as well)

    i have no endstop on the 4th tower, i've configured it using the stall guard, and it works. but something strange happen (in addiction)

    when i start the homing, i have two passes, the first one a bit rapidly, then goes down and then another zero
    ok. at the first pass the 4th axis (u5) won't go to zero. it came in the second pass.

    so...some problem during homing, and wont to follow the effector in the movement (i suppose it should do it on the dashboard as well)

    hope you can help me. i'm spending days and maybe i cannot see some huge and basic error.

    here's my configurations

    ; homedelta.g
    ; called to home all towers on a delta printer
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sun Jan 19 2020 19:28:23 GMT+0100 (Ora standard dell’Europa centrale)
    
    M913 X50 Y50 Z50 U50      ; reduce motor current to 50% to prevent damages
    G91                       ; relative positioning
    
    ;*** Slow homing has been configured. Change F300 to F3000 below when your configuration is working
    
    G1 H1 U325 X325 Y325 Z325 F600  ; move all towers to the high end stopping at the endstops (first pass)
    G1 H2 U-8 X-8 Y-8 Z-8 F600      ; go down a few mm
    
    ;*** Slow homing has been configured. Change F300 to F360 below when your configuration is working
    
    G1 H1 X10 Y10 Z10 U10 F200    ; move all towers up once more (second pass)
    G1 Z-5 U-5 F600                   ; move down a few mm so that the nozzle can be centred
    G90                           ; absolute positioning
    
    M400                        ; make sure everything has stopped before we reset the motor currents
    M913 X100 Y100 Z100 U100    ; motor currents back to normal
    
    G1 X0 Y0 F600                 ; move X+Y to the centre
    
    
    ; Configuration file for Duet WiFi (firmware version 2.03)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sun Jan 19 2020 19:28:23 GMT+0100 (Ora standard dell’Europa centrale)
    
    ; Network
    M551 P"bradbrad"                                   ; set password
    M540 PBE:EF:DE:AD:FE:ED                            ; set custom MAC address
    M552 S1                                            ; enable network
    M586 P0 S1                                         ; enable HTTP
    M586 P1 S0                                         ; disable FTP
    M586 P2 S0                                         ; disable Telnet
    
    ; Drives
    M584 X0 Y1 Z2 U5 E3                                       ; set drive mapping
    M665 L268.2:268.2:268.2:600  R116 H290 B115               ; Set delta radius, diagonal rod length, printable radius and homed height (OLD R116 L268.2 B115 H290 )
    M669 X0 Y0						 ;XY offsets of the extruder outputs on additional towers relative to machine centre
    M666 X0 Y0 Z0 E0 U0                                    	 ; put your endstop adjustments here, or let auto calibration find them
    
    M569 P0 S1                                                ; physical drive 0 goes forwards
    M569 P1 S1                                                ; physical drive 1 goes forwards
    M569 P2 S1                                                ; physical drive 2 goes forwards
    M569 P3 S1                                                ; physical drive 3 goes forwards
    M569 P5 S1						  ; physical drive 5 goes forwards
    
    M350 X16 Y16 Z16 I1                                       ; configure microstepping with interpolation (I1 = on, I0=off)
    M350 E16 I1					          ; configure microstepping with interpolation extruders
    M350 U16 I1					          ; configure microstepping with interpolation 4th axis
    M92 X80.00 Y80.00 Z80.00 U400.00 E423.04                  ; set steps per mm
    M566 X600.00 Y600.00 Z600.00 U600.00 E200.00              ; set maximum instantaneous speed changes (mm/min)
    M203 X18000.00 Y18000.00 Z18000.00 U6000.00 E200.00       ; set maximum speeds (mm/min)
    M201 X1000.00 Y1000.00 Z1000.00 U600.00 E200.00           ; set accelerations (mm/s^2)
    M906 X1400 Y1400 Z1400 U1400 E1400 I30                    ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                                   ; Set idle timeout
    
    ; General preferences
    G90                                               	 ; send absolute coordinates...
    M83                                                      ; ...but relative extruder moves
    M550 P"Delta L.A.D."                     	         ; set printer name
    
    
    ; Axis Limits
    M208 Z-0.1 S1                                      ; set minimum Z
    
    ; Endstops
    M574 X2 Y2 Z2 S1                                   ; set active high/low endstops (S1=high  S0=low) 
    M574 U2 S3					   ; set no endstop on 4th axis, enable instead stall detection
    
    ; Z-Probe
    M558 P1 H10 F120 T3600                             ; set Z probe type to switch and the dive height + speeds
    G31 P500 X0 Y0 Z15.5                               ; set Z probe trigger value, offset and trigger height
    M557 R85 S20                                       ; define mesh grid
    
    ; Heaters
    M305 P0 T100000 B3950 R4700                        ; set thermistor + ADC parameters for heater 0
    M143 H0 S150                                       ; set temperature limit for heater 0 to 150C
    M305 P1 X201                                       ; configure PT100 for heater 1
    M143 H1 S500                                       ; set temperature limit for heater 1 to 500C
    
    ; Fans
    M106 P0 S0 I0 F500 H-1                             ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F500 H-1                             ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off
    
    ; Tools
    M563 P0 S"Estrusore" 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
    
    ; extruder
    M572 D0 S0.3					   ; pressure advance Direct Drive: S0.025 and up
    						   ; Short Bowden (200mm): S0.1 and up / Medium Bowden (400mm): S0.3 and up / Long Bowden (600mm): S0.5 and up / Very long bowden (800mm+): S0.7 and up
    
    ; Miscellaneous
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
    T0                                                 ; select first tool
    
    M501
    
    
    ; config-override.g file generated in response to M500 at 2020-02-24 23:15
    ; This is a system-generated file - do not edit
    ; Delta parameters
    M665 L268.2:268.2:268.2:600  R116 H290 B115
    M666 X1.406 Y-1.050 Z-0.357 A0.00 B0.00
    ; Heater model parameters
    M307 H0 A295.0 C615.0 D5.1 S1.00 V24.1 B0
    M307 H1 A615.1 C152.7 D7.4 S1.00 V24.0 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
    G10 L2 P2 X0.00 Y0.00 Z0.00
    G10 L2 P3 X0.00 Y0.00 Z0.00
    G10 L2 P4 X0.00 Y0.00 Z0.00
    G10 L2 P5 X0.00 Y0.00 Z0.00
    G10 L2 P6 X0.00 Y0.00 Z0.00
    G10 L2 P7 X0.00 Y0.00 Z0.00
    G10 L2 P8 X0.00 Y0.00 Z0.00
    G10 L2 P9 X0.00 Y0.00 Z0.00
    
    

    thank's in advance to everybody!


  • administrators

    i think @Nxt-1 had a working delta with a 4th axis of the extruder


  • administrators


  • administrators

    @Eclipssato

    1. Which firmware version are you using?

    2. When using stall detection, I recommend that before the first homing move you do a very short move (but more than 1 full step) in the opposite direction. This ensures that the motor is not stalled to begin with.

    3. I suggest you delete your config-override file and remove M501 from config.g at least until you have a working configuration.



  • @T3P3Tony i saw it, and i've take a look also onto the config files updated to him, but i can't find an difference between mine.
    that's why i'm asking here, unfortunately searching on forum i had no luck for my problems



  • @dc42

    1. my firmware is the version 2.0.4 with the modified .bin files that you'd uploaded with some bug fixed for 4th axis usage (i don't remember in such articles i saw it, it should one of the firsts that discuss about 4th axis

    2. now i try to add in homedelta.g an instruction for move it a few mm down before going up, and i give you an result

    3. i do it as well, soon the response

    for the moments
    thank you to everybody


  • Moderator

    @Eclipssato See https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareDeltaPrinter#Section_Adding_additional_towers_to_carry_flying_extruders

    The main thing I notice from you config.g is:
    M665 L268.2:268.2:268.2:600 R116 H290 B115
    You have set the U axis to 600mm. But this is not the length of the U axis, It is the distance between the Z and U position! From https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareDeltaPrinter#Section_Adding_additional_towers_to_carry_flying_extruders

    Specify the rod lengths to each tower individually in the M665 command. Example:

    M665 L360:360:360:250 R180.3 H470 B150.0

    This specifies that the XYZ towers all have 360mm rods to the effector and there is a 4th tower with a 250mm "rod". This 250mm value is the distance that RRF will maintain between the extruder output and filament entry point on the hot end which is normally at the centre of the effector), so roughly the length of the Bowden tube.

    However, there does seem to be an alternative way to get the 4th axis working. Advice from @dc42 is to make U axis very long in M665 (see https://forum.duet3d.com/post/116585 ). @Quadcells also hides the U axis, only unhiding it for homing (same thread, lower down: https://forum.duet3d.com/post/121071 ).

    Other people seem to set the U axis to the distance between Z and U, as described in the documentation, eg @Nxt-1 in https://forum.duet3d.com/topic/11183/my-delta-forgot-how-to-delta-4th-axis .

    At this point it seems like both methods work, but not a mix of them. And both will rely on homing the U axis correctly, so it knows how to position U relative to Z. It could be that the method described in the documentation only tracks Z, so doesn't move U for X and Y moves. This would be desirable for a camera tracking the Z movement, but not to keep the extruder a set distance from the effector in X, Y and Z. But I don't have a way of testing this.

    If you could try both, and report back which works better for you, that would be great.

    Ian



  • @droftarts i try, cause at the moment the testing suggested from @dc42 seems had no positive changes

    i'll report soon


  • administrators

    Please update your firmware to 2.05.1.



  • @T3P3Tony said in 4th axis strange isuues:

    i think @Nxt-1 had a working delta with a 4th axis of the extruder

    Indeed I have, albeit with an endstop at the top of the 4th axis. Below are my config and home file. I sadly do not have time to really help you with debugging at this moment. Hope this can help you anyway 🙂

    homedelta.g
    config_V6.g

    Homedelta.g

    ; Homing file for Deltex
    M80										; Make sure the main PSU in on
    G4 P500									; Wait for the voltage to stabalise in range
    
    G91										; use relative positioning
    G1 H1 X1000 Y1000 Z1000 U1000 F4000		; move all carriages up 7100mm, stopping at the endstops
    G1 H2 X-3 Y-3 Z-3 U-3					; move all carriages down 3mm
    G1 H1 X6 Y6 Z6 U6 F250					; move carriages slowly up 6mm, stopping at the endstops
    G1 Z-5 F2000							; down a few mm so that we can centre the head
    G90										; back to absolute positioning
    

    Config.g:

    ; Configuration file for Deltex
    
    ; ===================== GENERAL SETTINGS =====================
    M111 S0                             													; Debug off
    M550 PDeltex - V6																		; 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 S1																				; Drive 3 (E) goes forwards
    M569 P4 S0																				; 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 R236.012 H642.615 B200.0 X0.239 Y-0.157 Z0.000	; Diagonal rod length, delta radius, printable radius and homed height
    M669 K3 X0 Y0																			; Location of the 4th axis tower
    M666 X-0.478 Y4.055 Z-3.576 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 X2050 Y2050 Z2050 U900 E750 I60													; Set motor currents (mA) and increase idle current to 60%
    M201 X2000 Y2000 Z2000 U2000 E3000														; Accelerations (mm/s^2)
    M203 X10000 Y10000 Z10000 U10000 E20000													; Maximum speeds (mm/min)
    M566 X400 Y400 Z400 U400 E3600 P0														; Maximum instant speed changes (mm/min)
    M591 D0 P5 C4 R40:120 E3.0 S1															; Duet3D laser sensor for extruder drive 0, connected to endstop input 4 (E1), tolerance 40 to 120%, 3mm comparison length, enabled
    
    ; ================ HEATING AND COOLING SETTINGS ==============
    ; Thermistors
    M305 S"Bed" P0 B3950																	; Bed temperature sensor parameters
    M305 S"Hotend" P1 B4725 C7.060000e-8													; Hotend temperature sensor parameters 
    M305 S"Water" P2 X2 T10000 B3950														; Water temperature sensor parameters
    M570 S180 T15 S4320																		; Configure heater fault detection, allow a fault to persist for 180 seconds (+/- 15°). Cancel the print if the fault is not cleared after 4320 minutes (3 days).
    M307 H0 A408.0 C897.0 D2.1 S1.00 V24.2 B0												; Set bed heating process parameters and use PID at 10Hz
    M307 H1 A571.9 C293.5 D5.4 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 I0 H-1 																			; disable thermostatic mode for fan 0 (part cooling)
    M106 P1 S255 T45 H1																		; enable thermostatic mode for fan 1 (hotend)
    
    ; ====================== TOOL SETTINGS =======================
    M563 P0 D0 H1 S"Hotend"              													; Define hotend tool
    G10 P0 S0 R0                        													; Set tool 0 operating and standby temperatures
    M207 S0	R0 F3000 T1200 Z0																; Set default retraction settings
    
    M563 P1 S"Water" H2																		; Set up an extra tool to display heater temperature
    
    ; =================== CALIBRATION SETTINGS ===================
    M558 P8 F1200 H3 R0.4 T10000 A10 S0.04													; Z Probe type 8, input 0, invert no, dive height 3.0mm, probe speed 1200mm/min, travel speed 10000mm/min, recovery time 0.40 sec, heaters normal, max taps 5, max diff 0.04
    G31 X0 Y0 Z-0.15 P100  		        													; Set the zprobe height and threshold (more negative values translate into a higher nozzle)
    M557 R200 P21																			; 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


  • @Nxt-1 No problem at all. thank'you for your configuration, i'll try to match with mine and find the problem

    @dc42 done to 2.05.1and installed an simple microswitch as limit
    seem better. no problem with zero and it follow the z axes now. (i dont know why the limit switch didnt work on duex, i had to install on duet port, anyway, minor issue)
    now i have to define an quote to mantain with my z axis. i found that i have not enough lenght on the thread and i cant use some more long than that.

    is it possible to said to the printer to take all 4 zero in one position and then move only z axis down 10mm and mantain that distance to the u axes?
    keep experimenting



  • up side.jpg front.jpg from bottom.jpg

    that's my configuration at the moment, if someone is interested



  • some update...the printer seem to be working correctly now! many thanks to all!

    now,
    i have to fix the last problem. i need to mantain the 4th axis 30mm over the current position after the homing, cause i have insufficient lenght as i mentioned before. and i have no possibility to move it up.

    is it possible to do it via firmware?

    at the moment i've made in that way and it seems to work properly.
    any suggestion?

    ; homedelta.g
    ; called to home all towers on a delta printer
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sun Jan 19 2020 19:28:23 GMT+0100 (Ora standard dell’Europa centrale)
    
    
    G91                       ; relative positioning
    
    ;*** Slow homing has been configured. Change F300 to F3000 below when your configuration is working
    
    
    G1 H1  X325 Y325 Z325 U325 F1000        ; move all towers to the high end stopping at the endstops (first pass)
    G1 H2  X-3 Y-3 Z-3 F600                 ; go down a few mm
    
    ;*** Slow homing has been configured. Change F300 to F360 below when your configuration is working
    
    G1 H1 X10 Y10 Z10  F200                 ; move all towers up once more (second pass)
    G1 Z-30  F1000                          ; move down a few mm so that the nozzle can be centred
    G1 H2 U30 F1000				; 4th tower clearance of 30mm
    G90                                     ; absolute positioning
    
    
    G1 X0 Y0 F600                           ; move X+Y to the centre
    

  • administrators

    @Eclipssato said in 4th axis strange isuues:

    i have to fix the last problem. i need to mantain the 4th axis 30mm over the current position after the homing, cause i have insufficient lenght as i mentioned before. and i have no possibility to move it up.
    is it possible to do it via firmware?

    The firmware assumes that when all axes have been homed, the U carriage is at the correct distance from the effector, and it will maintain that distance.

    What I think you are saying is that you have insufficient height on the U axis to maintain sufficient distance. The following might work (I haven't tested it). Home the printer as normal. Suppose you then want to move the U axis to be 15mm higher than it is (but it can't move up any further). Use a G1 Z command to move down at least 15mm. Un-hide the U axis if it is hidden, and read off the U coordinate in DWC. Now send a G92 Uxx command where xx is 15mm lower than that coordinate (to make the firmware think the U carriage is 15mm lower than it really is). Then hide the U axis again. Then make a small movement. You may find that the U carriage rises 15mm to "correct" the U coordinate error that you introduced using the G92 command.

    Of course, if you then try to move within 15mm of the maximum height, the U carriage will crash into the stop.

    So the only real solutions are to increase the range of the U carriage, or move the X, Y and Z endstop switches down by the appropriate amount.


Log in to reply