Stringing problem with BMG direct drive and PLA

  • Hi all,
    I'm getting some pretty bad stringing that I haven't been able to tune out. Pertinent info:

    • Custom BLV cube
    • BMG direct drive with water-cooled v6 hotend
    • 0.4mm hardened steel nozzle
    • Well-tuned overall


    • Using most recent SuperSlicer
    • Overall speed at 80mm/s
    • Tested with both firmware retract and slicer retract
    • Slicer retract tested with and without wipe
    • Retract distance tested between 0.5-10mm
    • Retract speed tested between 500-15000mm/min
    • Temp tested at 180-225c, normal is 215c

    I haven't seen much change at all with varying the above mentioned parameters. I've checked all the related hardware bits, and everything seems to be in good shape. If you can help, that would be great!

    Pictures to be added soon

    P.S. I haven't tried messing with E jerk and accel. Might try that and see.

  • Moderator

    Post your config.g perhaps your extruder speed is severely limited?

  • Ok. Here is my config.g:

    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Thu Jul 23 2020 19:42:11 GMT-0600 (Mountain Daylight Time)
    ; General preferences
    G90                                                    ; send absolute coordinates...
    M83                                                    ; ...but relative extruder moves
    M550 P"Ultibot"                                        ; set printer name
    M669 K1                                                ; select CoreXY mode
    ; Network
    M552 P192.168.0.10 S1                                  ; enable network and set IP address
    M553 P255.255.255.0                                    ; set netmask
    M554 P192.168.0.10                                     ; set gateway
    M586 P0 S1                                             ; enable HTTP
    M586 P1 S0                                             ; disable FTP
    M586 P2 S0                                             ; disable Telnet
    ; Drives
    M569 P0 S1                                             ; physical drive 0 goes forwards
    M569 P1 S1                                             ; physical drive 1 goes forwards
    M569 P2 S0                                             ; physical drive 2 goes backwards
    M569 P3 S0                                             ; physical drive 3 goes backwards
    M569 P4 S0                                             ; physical drive 4 goes backwards
    M584 X0 Y1 Z2:4 E3                                     ; set drive mapping
    M350 X16 Y16 Z16 E16:16 I1                             ; configure microstepping with interpolation
    M671 X0:350 Y0:0 S3 				                   ; leadscrews at left (connected to Z) and right (connected to E1) of X axis
    M92 X88.89 Y88.89 Z800.00 E428.43:420.00               ; set steps per mm
    ; Movement settings
    M566 X800 Y800 Z300.00 E1000.00                        ; set maximum instantaneous speed changes (mm/min)
    M203 X48000.00 Y48000.00 Z3000.00 E72000.00            ; set maximum speeds (mm/min)
    M201 X6000.00 Y6000.00 Z400.00 E10000.00               ; set accelerations (mm/s^2)
    M906 X1600 Y1600 Z800 E800 I30                        ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                                ; Set idle timeout
    ; Axis Limits
    M208 X-23 Y-20 Z-1 S1                                  ; set axis minima
    M208 X330 Y340 Z430 S0                                 ; set axis maxima
    ; Endstops
    M574 X1 S1 P"xstop"                                    ; configure active-high endstop for low end on X via pin xstop
    M574 Y2 S1 P"ystop"                                    ; configure active-high endstop for high end on Y via pin ystop
    M574 Z2 S1 P"zstop+e1stop"                             ; configure active-high endstops for high end on Z via pins zstop and e1stop
    ; Z-Probe
    M558 P1 C"!" R0.2 A4 H3 F1000 T12000          ; set Z probe type to analog peizo and the dive height + speeds
    G31 P550 X0 Y0 Z-0.14                                  ; set Z probe trigger value, offset and trigger height
    M557 X10:300 Y10:300 S20                               ; define mesh grid
    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4092         ; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"bedheat" T0                                  ; create bed heater output on bedheat 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"e0temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin e0temp
    M950 H1 C"e0heat" T1                                   ; create nozzle heater output on e0heat and map it to sensor 1
    M307 H1 B0 S1.00                                       ; disable bang-bang mode for heater  and set PWM limit
    ; Fans
    M950 F0 C"fan2" Q100                                   ; create fan 0 on pin fan0 and set its frequency
    M106 P0 C"Layer Fan" S0 H-1                            ; set fan 0 name and value. Thermostatic control is turned off
    M950 F1 C"fan1" Q100                                   ; create fan 1 on pin fan1 and set its frequency
    M106 P1 C"Tool Cooling Fan" S255 H1 T45                ; set fan 1 name and value. Thermostatic control is turned on
    ;M950 F2 C"fan2" Q25000                                 ; create fan 2 on pin fan2 and set its frequency
    ;M106 P2 C"LEDs" S0 H-1 B0 L0                           ; set fan 2 name and value. Thermostatic control is turned off
    ; Tools
    M563 P0 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
    M207 S1.5 F8000					 	                   ; set default firmware retract settings
    M912 P0 S-5.2							               ; adjust MCU temp sensor
    ; Miscellaneous
    M501                                                   ; load saved parameters from non-volatile memory
    T0                                                     ; select first tool

  • It really doesn't seem like this is retraction related, as the stringing is worse at 0mm, but only gets slightly better from all values up to 10mm.

    Also, I should mention, I have PA tuned and on.

  • are you 100% sure that you have a semitec thermistor?

  • Now that you mention it, no. I bought a trianglelab v6 hotend, and upgraded the nozzle and heatbreak to genuine e3d parts. They say it is a semitec thermistor, but who knows.

    I did try varying the temps from 180c to 225c, and the stringing is worse at lower temps... Now that I'm typing this, it occurred to me that I could still be too low. I'll try switching it to the generic thermistor settings.

  • According to my cheap multimeter thermocouple, the temperature difference is about 30c, if it is to be trusted.

  • Well I tried a print at 240c, so if the temperature really was off, it would fix it. Unfortunately, no luck. Still the same as 215c.

  • and you tried different filament brands?

  • On my BLV printer with a Bondtech BMG and E3D V6 direct drive with their catrtidge thermistor I print my pla at 220, retraction is 1.4mm @ 35mm/s speed, 200mm/s travel speeds and print speeds anywhere from 70-90mm/s. I get pretty much no stringing using prusaslicer with those settings. I have printed Esun, Sunlu and hatchbox PLA filaments. Of course many other types of filaments but for PLA, that is what I use.

    I also use pressure advance set at .06.

  • I'm starting to think it might be related to cooling. Watching closely, it doesn't necessarily start to generate a string at a retraction, but only when the nozzle leaves the part during a travel move.

    This was printed at 215c, and towards the top I turned retraction to 0 to see what would happen.

    A different print:

    Also, here's a picture of my extruder carriage:

    And no, I don't have any other brands of filament to try other than Hatchbox black PLA right now.

  • This is a 12v milwaukee drill stand i printed yesterday with Hatchbox blue pla with the settings I mentioned above.


    And this is my custom designed quick swap extruder setup I have on both of my BLV cubes. I know my wiring isn't neat by any means but it works perfectly 🙂



  • Interesting. I use nearly the exact same settings as you do, but the main difference I think is the part cooling. You have a single fan blowing from one side, and I have two fans blowing from both sides at an angle. I think what may be happening is that there is turbulence where the two airstreams converge on my duct, and this causes the heat to build up. I might try redesigning my cooling duct so that the two airstreams are more aligned.

    Also, I really like your quick change toolhead. Very compact.

  • My fan blows on 3 sides actually. I designed the duct based on the original and it has an opening on the back and on both sides. I need to re-design it to flow more air though as the openings are very small. I'll see if I can get a picture.

    EDIT: It was easier to just do a screenshot from fusion360.


Log in to reply