Vertical lines
-
I'm having an extrusion problem, or it may be that the XY speed is varying, but it's periodic. A bit over 60 Hz. I've gone through an incredible amount of trouble shooting and nothing fixes it. I'm now leaning away from mechanical causes. I've rebuilt the hot end with entirely new parts, except for the heat sink (E3D V6). I even replaced extruder and stepper. Changing belt tensions (Railcore) doesn't change the artifact. I'm out of ideas. Maybe there's a setting I haven't tried? PA set to 0.15. Acceleration 1625, Jerk 5. Slowing the print down to 45 mm/sec makes the vertical lines very nicely defined compared to faster. Microscope pictures confirm it's extrusion per mm that's the issue, not a wandering nozzle.
Any suggestions are appreciated. I've exhausted Google and the Railcore forum, and my own ideas on what to try. Replaced extruder, stepper, extruder adapter, PTFE tube, heat block, heater, thermistor, nozzle, both fans, part fan shroud. Implemented pressure advance. Tuned acceleration and jerk. Printed various speeds, various angles. Nothing much changes no matter what. Out of ideas.
2nd image is from the top, looking down on 5-outline wall. White straight lines I drew show the dark areas are less extruded. Scale: outline width 0.44mm; peak to peak of anomaly about 1mm.

-
@donstauffer
Some people think, it's the way RRF implemented 'stealthchop' for the drivers. But AFAIK, that bug is not officially confirmed.
One user reported, moving over to 'Klipper' solved that issue. (YMMV)Can you share your hardware-details and what FW you are using?
-
@donstauffer what Duet board (which will tell us what stepper drivers you’re using) and firmware version? Send M122 and post response.
Edit: also post config.g so we can see the settings you are using for pressure advance. Have you tried using DDA? And what slicer are you using, and settings? Perhaps post sample Gcode.
@o_lampe the stepper driver default timing is the same as Klipper. The difference is that Klipper has accelerometer-based input shaper tuning, which is coming to RRF soon.
Ian
-
@droftarts said in Vertical lines:
the stepper driver default timing is the same as Klipper. The difference is that Klipper has accelerometer-based input shaper tuning, which is coming to RRF soon.
That sounds reasonable, but leaves the question why I (we?) had better print quality 5 years ago. My best prints were made by RADDS on CoreXY with the latest RRF1.x.x (before RTOS came)
-
Hardware is a Railcore 300ZLT with LDO steppers, a Bondtech BMG extruder, and E3D V6 hot end. Duet 2 Wifi2 with RepRapFirmware for Duet 2 WiFi/Ethernet 3.2.2 (2021-02-11).
config.g:
; Communication and general
M111 S0 ; Debug off
M550 P"Exocomp" ; Machine name and Netbios name (can be anything you like)
M551 "eVOLVE" ; Machine password (used for FTP)
;*** If you have more than one Duet on your network, they must all have different MAC addresses, so change the last digits
M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xEE ; MAC Address
;*** Wifi Networking
M552 S1 ; Enable WiFi
M555 P2 ; Set output to look like Marlin
M575 P1 B57600 S1 ; Comms parameters for PanelDueM586 P1 S1 ; Enable FTP
G21 ; Work in millimetres
G90 ; Send absolute coordinates...
M83 ; ...but relative extruder moves; Axis and motor configuration
M667 S1 ; CoreXY modeM584 X0 Y1 Z5:6:7 E3:4:8:9 ; Map Z to drivers 5, 6, 7. Define unused drivers 3,4,8 and 9 as extruders
M569 P0 S1 ; Drive 0 goes backwards (change to S0 to reverse it) X stepper
M569 P1 S0 ; Drive 1 goes forwards Y Stepper
M569 P2 S1 ; Drive 2 goes forwards Unused
M569 P3 S1 ; Drive 3 goes baclwards Extruder
M569 P4 S1 ; Drive 4 goes forwards Extruder (unused)
M569 P5 S0 ; Drive 5 goes backwards Front Left Z
M569 P6 S0 ; Drive 6 goes backwards Rear Left Z
M569 P7 S0 ; Drive 7 goes backwards Right Z;Leadscrew locations
M671 X-8.9:-8.9:343.1 Y20.5:274.5:147.5 S7.5 ;Front left, Rear Left, Right S7.5 is the max correction - measure your own offsets, to the bolt for the yoke of each leadscrewM350 X16 Y16 Z16 E16 I1 ; set 16x microstepping for axes& extruder, with interpolation
;M574 X1 Y1 Z0 S1 ; set homing switch configuration (x,y at min, z at max) IF YOU NEED TO REVERSE YOUR HOMING SWITCHES CHANGE S1 to S0
M574 X1 S1 P"xstop"
M574 Y1 S1 P"ystop"
M574 Z1 S2M906 X1500 Y1500 Z1500 E1200 I60 ; Set motor currents (mA)
M203 X24000 Y24000 Z900 E3600 ; Maximum speeds (mm/min)
; Pressure Advance
M572 D0 S0.155; Jerk & Acceleration
M566 X300 Y300 Z80 E1200 ; JerkM204 P5000 ; Max Accel
M201 X1625 Y1625 Z20 E180 ; AccelM208 X324 Y303 Z635 ; set axis maxima and high homing switch positions (adjust to suit your machine)
M208 X0 Y0 Z-0.5 S1 ; set axis minima and low homing switch positions (adjust to make X=0 and Y=0 the edges of the bed)M92 X200 Y200 Z3200 E858.5
; Thermistors
M308 S0 P"bedtemp" Y"thermistor" T100000 A"Bed" B4240 R4700 ; bed
M308 S1 P"e0temp" Y"thermistor" T100000 A"Hot End" B4725 C7.060000e-8 R4700 ; E3D hot end stock thermistorM950 H0 C"bedheat" T0 ; bed
M950 H1 C"e0heat" T1 ; hot endM140 H0
M143 H0 S120
M143 H1 S300M570 S360 ; Hot end may be a little slow to heat up so allow it 180 seconds
; Fans
M950 F0 C"fan0" Q500
M950 F1 C"fan1" Q500M106 P0 S0 H-1
M106 P1 S1 H-1M106 P0 S0 ; turn off fans
M106 P1 S0; Heater model parameters
M307 H0 A127.5 C481.4 D8.1 S1.00 V24.2 B0
M307 H1 R1.823 C181.4 D7.18 S1.00 V24.1G10 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; Tool definitions
M563 P0 D0 H1 ; Define tool 0
G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures; Z probe and compensation definition
;*** If you have a switch instead of an IR probe, change P1 to P4 in the following M558 commandM950 S0 C"duex.pwm1"
M558 P9 C"zprobe.in" H3 R1 F30 T6000 A5 S0.03 B1; Probe type
G31 X0 Y28.5 Z2.84 P25 ; Customize your offsets appropriately. LOWER Z = NOZZLE FURTHER FROM BED
M208 S1 Z-0.3 ; set minimum Z
T0 ; select first hot end
; Enable Mesh Compensation
G29 S1M557 X48:276 Y31:259 S38
; Taper compensation over 10mm
M376 H10; Adjust coordinates so usable values are centered between 0-300
G10 P0 X-22.5 Y-6.5 Z0 -
@droftarts
I did try DDA tuned for 60 Hz and for 64 Hz. No change.; G-Code generated by Simplify3D(R) Version 4.1.2
; May 31, 2021 at 4:22:41 PM
; Settings Summary
; processName,Railcore PETG Ringing Test
; applyToModels,ringing_rotation_test
; profileName,Railcore PETG Ringing Test
; profileVersion,2021-05-19 16:30:21
; baseProfile,Chis's Creality
; printMaterial,
; printQuality,
; printExtruders,
; extruderName,Primary Extruder
; extruderToolheadNumber,0
; extruderDiameter,0.4
; extruderAutoWidth,0
; extruderWidth,0.44
; extrusionMultiplier,0.91
; extruderUseRetract,1
; extruderRetractionDistance,0.9
; extruderExtraRestartDistance,0
; extruderRetractionZLift,0.1
; extruderRetractionSpeed,2100
; extruderUseCoasting,0
; extruderCoastingDistance,0.4
; extruderUseWipe,0
; extruderWipeDistance,0.2
; primaryExtruder,0
; layerHeight,0.2
; topSolidLayers,0
; bottomSolidLayers,1
; perimeterOutlines,5
; printPerimetersInsideOut,1
; startPointOption,3
; startPointOriginX,0
; startPointOriginY,0
; sequentialIslands,0
; spiralVaseMode,0
; firstLayerHeightPercentage,100
; firstLayerWidthPercentage,100
; firstLayerUnderspeed,0.35
; useRaft,0
; raftExtruder,0
; raftTopLayers,3
; raftBaseLayers,2
; raftOffset,3
; raftSeparationDistance,0.14
; raftTopInfill,100
; aboveRaftSpeedMultiplier,0.3
; useSkirt,1
; skirtExtruder,0
; skirtLayers,1
; skirtOutlines,6
; skirtOffset,0.29
; usePrimePillar,0
; primePillarExtruder,999
; primePillarWidth,12
; primePillarLocation,7
; primePillarSpeedMultiplier,1
; useOozeShield,0
; oozeShieldExtruder,999
; oozeShieldOffset,2
; oozeShieldOutlines,1
; oozeShieldSidewallShape,1
; oozeShieldSidewallAngle,30
; oozeShieldSpeedMultiplier,1
; infillExtruder,0
; internalInfillPattern,Full Honeycomb
; externalInfillPattern,Rectilinear
; infillPercentage,0
; outlineOverlapPercentage,35
; infillExtrusionWidthPercentage,111
; minInfillLength,0
; infillLayerInterval,1
; internalInfillAngles,0,120,-120
; overlapInternalInfillAngles,0
; externalInfillAngles,0,90,45,-45
; generateSupport,0
; supportExtruder,0
; supportInfillPercentage,15
; supportExtraInflation,3
; supportBaseLayers,2
; denseSupportExtruder,0
; denseSupportLayers,3
; denseSupportInfillPercentage,85
; supportLayerInterval,1
; supportHorizontalPartOffset,0.8
; supportUpperSeparationLayers,1
; supportLowerSeparationLayers,1
; supportType,0
; supportGridSpacing,2
; maxOverhangAngle,55
; supportAngles,45,-45
; temperatureName,Primary Extruder,Heated Bed
; temperatureNumber,0,0
; temperatureSetpointCount,1,1
; temperatureSetpointLayers,1,1
; temperatureSetpointTemperatures,244,73
; temperatureStabilizeAtStartup,1,1
; temperatureHeatedBed,0,1
; fanLayers,2
; fanSpeeds,60
; blipFanToFullPower,0
; adjustSpeedForCooling,1
; minSpeedLayerTime,3
; minCoolingSpeedSlowdown,50
; increaseFanForCooling,0
; minFanLayerTime,45
; maxCoolingFanSpeed,100
; increaseFanForBridging,1
; bridgingFanSpeed,80
; use5D,1
; relativeEdistances,0
; allowEaxisZeroing,1
; independentExtruderAxes,0
; includeM10123,0
; stickySupport,1
; applyToolheadOffsets,0
; gcodeXoffset,0
; gcodeYoffset,0
; gcodeZoffset,0
; overrideMachineDefinition,1
; machineTypeOverride,0
; strokeXoverride,300
; strokeYoverride,300
; strokeZoverride,400
; originOffsetXoverride,0
; originOffsetYoverride,0
; originOffsetZoverride,0
; homeXdirOverride,-1
; homeYdirOverride,-1
; homeZdirOverride,-1
; flipXoverride,1
; flipYoverride,-1
; flipZoverride,1
; toolheadOffsets,0,0|0,0|0,0|0,0|0,0|0,0
; overrideFirmwareConfiguration,1
; firmwareTypeOverride,RepRap (Marlin/Repetier/Sprinter)
; GPXconfigOverride,r2
; baudRateOverride,115200
; overridePrinterModels,0
; printerModelsOverride
; startingGcode,M117 Heating,M140 S[bed0_temperature],G10 P0 R150 S150,M109 S150,M116 H1 ; Wait for heating,,M117 Homing,G28,M117 Reheating,M109 S150,M116 H1 ; Wait for heating,,M117 First Leveling,;G32,M117 Reheating,M109 S150,M116 H1 ; Wait for heating,,M117 2nd Leveling,;G32,M117 Reheating,M109 S150,M116 H1 ; Wait for heating,,M117 3rd Leveling,;G32,M117 Reheating,M109 S150,M116 H1 ; Wait for heating,,M117 Mapping,;G29 ; Probe bed,;G29 S1 ; Load height map,,;M117 Creating Macros,;M98 P"/macros/CreateJobMacros",,M117 Final Heating,G10 P0 R[extruder0_temperature] S[extruder0_temperature],G1 Z120 F3000 ; Raise nozzle to clean while heating,M116,,M117 Purging,,G92 E0 ; Reset extrusion distance,G1 E-1.000 F1500 ; Retract,,G1 Z1.0 F3000 ; Move up to prevent scratching surface,G1 X27.1 Y40 Z1.0 ; Move to location above start-line,G1 X27.1 Y40 Z0.4 F5000.0 ; Move to start-line,,; Draw purge lines,,G1 E5.5 F750 ; Prime nozzle,G1 X27.1 Y200.0 Z0.4 F1000.0 E25 ; Draw 1st line,G1 X27.4 Y200.0 Z0.55 F5000.0 ; Move to side a little,G1 X27.4 Y40 Z0.55 F1500.0 E30 ; Draw 2nd line,,G92 E0 ; Reset extrusion distance
; layerChangeGcode,M117 "Layer [current_layer] Z=[current_Z_position]",,,
; retractionGcode,
; toolChangeGcode,
; endingGcode,; Retract,, G1 E-1 F4800 ; Retract, G92 E0 ; reset extrusion distance again,,M104 S0; turn off extruder,M140 S0 ; turn off bed,,; Raise nozzle 10mm and move to back right corner,,G91 ; Relative positioning,G1 Z10 F4000,G90 ; Absolute positioning,G1 X0 Y295 F9000 ; prepare for part removal,,M84 ; disable motors,M106 S0 ; turn off fan,,; Play Trilogy,,M300 P780 S622.3,G4 P800,M300 P380 S370,G4 P400 ,M300 P380 S493.9,G4 P400 ,M300 P1150 S587.3,G4 P1200 ,M300 P380 S523.3,G4 P400 ,,M300 P1150 S493.9,G4 P1200 ,M300 P380 S370,G4 P400 ,M300 P1150 S440,G4 P1200 ,M300 P390 S392,G4 P400 ,,M300 P380 S659.3,G4 P400 ,M300 P380 S523.3,G4 P400 ,M300 P380 S392,G4 P400 ,M300 P590 S329.6,G4 P600 ,M300 P960 S311.1,G4 P1000 ,M300 P3000 S493.9,G4 P3000 ,
; exportFileFormat,gcode
; celebration,0
; celebrationSong,Star Wars
; postProcessing,gcode:,,; Startup script settings:,,{REPLACE ";G28" "G28"},,;{REPLACE ";G29 ; Probe Bed" "G29 ; Probe Bed"},{REPLACE ";G29 S1 ; Load Height Map" "G29 S1 ; Load Height Map"},,;{REPLACE ";G32 ; Level Bed" "G32 ; Level Bed"},
; defaultSpeed,3600
; outlineUnderspeed,1
; solidInfillUnderspeed,1
; supportUnderspeed,0.6
; rapidXYspeed,9000
; rapidZspeed,1200
; minBridgingArea,10
; bridgingExtraInflation,0
; bridgingExtrusionMultiplier,1.1
; bridgingSpeedMultiplier,0.3
; useFixedBridgingAngle,1
; fixedBridgingAngle,0
; applyBridgingToPerimeters,1
; filamentDiameters,1.75|1.75|1.75|1.75|1.75|1.75
; filamentPricesPerKg,25|46|46|46|46|46
; filamentDensities,1.25|1.25|1.25|1.25|1.25|1.25
; useMinPrintHeight,0
; minPrintHeight,0.22
; useMaxPrintHeight,0
; maxPrintHeight,14.39
; useDiaphragm,0
; diaphragmLayerInterval,20
; robustSlicing,1
; mergeAllIntoSolid,0
; onlyRetractWhenCrossingOutline,0
; retractBetweenLayers,1
; useRetractionMinTravel,1
; retractionMinTravel,1.5
; retractWhileWiping,1
; onlyWipeOutlines,0
; avoidCrossingOutline,0
; maxMovementDetourFactor,25
; toolChangeRetractionDistance,12
; toolChangeExtraRestartDistance,-0.5
; toolChangeRetractionSpeed,600
; externalThinWallType,0
; internalThinWallType,2
; thinWallAllowedOverlapPercentage,25
; singleExtrusionMinLength,1
; singleExtrusionMinPrintingWidthPercentage,50
; singleExtrusionMaxPrintingWidthPercentage,200
; singleExtrusionEndpointExtension,0.2
; horizontalSizeCompensation,0 -
@o_lampe Other Railcore users don't seem to have this problem.
-
@o_lampe I looked up Klipper and it seems like a good system, but I wonder how much time it will take me to install and configure. Needs a Raspberry Pi, which I have experience with, but will take time to order and set up. If it's the solution, all that is necessary, but if I can avoid it in favor of something that takes less time, I need to do that.
-
@o_lampe What is stealthchop? Can it be turned off or disabled, and what might the consequences be? Is there anything I can try?
EDIT: Looking at the documentation for M569, D parameter:
"(firmware 2.0 and later, only applies to TMC2660, TMC22xx, TMC2160, TMC5160 and TMC5161 stepper drivers) Driver mode: 0=constant off time, 1=random off time, 2=spread cycle, 3=stealthChop or stealthChop2 (mode 3 for TMC22xx/TMC2160/TMC516x only). The default is spreadCycle for TMC2660, TMC2160 and TMC516x drivers, and stealthChop2 for TMC22xx. In stealthChop mode the drivers will switch over to spreadCycle automatically at high speeds, see the V parameter."
My config has:
M569 P0 S1 ; Drive 0 goes backwards (change to S0 to reverse it) X stepper
M569 P1 S0 ; Drive 1 goes forwards Y Stepper
M569 P2 S1 ; Drive 2 goes forwards Unused
M569 P3 S1 ; Drive 3 goes baclwards Extruder
M569 P4 S1 ; Drive 4 goes forwards Extruder (unused)
M569 P5 S0 ; Drive 5 goes backwards Front Left Z
M569 P6 S0 ; Drive 6 goes backwards Rear Left Z
M569 P7 S0 ; Drive 7 goes backwards Right ZSince Duet2 WiFi uses the TMC2660 stepper driver, that seems to mean the default mode is something called "spreadCycle". If stealthChop mode is not active, that suggests it's not able to be the cause, right?
-
@donstauffer Thanks for the info. Quick reply on stealthchop: TMC2660 on Duet 2 WiFi/Ethernet does not support stealthchop, it's in spreadcycle the whole time. For a further explanation, see: https://duet3d.dozuki.com/Wiki/Tuning_Stepper_Motor_Drivers
Ian