I did some bed level test prints on my lulzbot taz 6 using PLA and I’m not sure what to do at this point. The first set has a z off set of -.05 and the 2nd is -.25. For -.05 the middle is perfect but the corner/edge squares are still stringy. On the other hand, -.25 the corner/edge squares are getting closer to being good but you can see the middle is digging in. I didn’t go further for fear of damage.
Lulzbot taz 6
Dual extruder v3 print head
Taz Pro/Workhorse textured flex bed assembly v2
Cura LE 4.13.16
Ill need to tune it for abs, but the output was the same where the middle is getting squished more than the outside squares. I tried cleaning off the nozzle and touch off points so I dont believe it is a probing connection issue. Any recommendations on what I can/should do about the leveling?
I’ll assume you’re still using the bed washers for leveling, so you’re limited to four points. If the four corners are good, but the middle is too close, it’s either the bed bulging up in the middle, or your dual extruder is causing more sag than usual.
With the old glass bed, the sag of the bed more closely matched the sag of the linear rods, but the aluminum bed plate used with the octograb system doesn’t sag as much.
You may have better results with a lighter toolhead, or doing a custom marlin build where you can manually build out a bed leveling matrix to account for the sag.
There’s also more extreme measures like going with the Taz Openrails setup, which has a much more rigid gantry.
Heres the mesh im getting. It doesnt make sense to me for how the print came out though
Send: M420 V1 T1
Recv: Bed Level Correction Matrix:
Recv: +1.000000 +0.000000 -0.000904
Recv: -0.000002 +0.999997 -0.002372
Recv: +0.000904 +0.002372 +0.999997
Recv: echo:Bed Leveling On
Recv: ok P15 B4
Well, with the four-point bed leveling with the washers, if things are good, you’ll get a tilted flat plane, so you’re looking at something around 1mm difference max. The bed leveling will have no problem compensating for this. If your nozzle is clean, the four corners should look good on the test print, but the middle would look squished.
There is no measurement in the middle, so anything but the four corners is just visualizing what the machine thinks the bed looks like.
Problem is, since the measurements are done at the corners, where the toolhead is closest to the support, there’s no compensation for the toolhead slightly bending the linear rods. We’re talking about sagging something like .25mm or so. If your bed and the rods sag nearly the same amount, it’s natural compensation. If the rods sag more than the bed (with your improved bed and heavy AF dual extruder head) you can’t compensate for that with only four-point leveling.
You might be able to compensate for the heavy toolhead by printing on a raft, that will give you a surface to start printing on that’s got the same sag curve built into it.
Yes, and if you’re not comfortable customizing your own marlin build, you can find a dual extruder BLTouch firmware through drunken octopus. Taz 6 - Drunken Octopus
Im fine with doing firmware/board stuff, but ill give that link a look. My only issue is finding a mount for the BL that works with the extruder v3. Do you know where I might find one or could I commission one?
Drunkenoctopus forum might have something, but if you just put the holes to mount it on the right fan shroud, you should be able to reach the whole bed with it.
Right part cooling shroud, load up the STL file and merge it with a BLTouch mount. Do the right part cooling shroud, since the Taz6 can put the nozzle off the left side of the bed for wiping, the BLtouch can reach the left edge of the bed. If mounted on the left side, you may not be able to reach the right edge of the bed. Wires can conveniently get shoved in the loom if you want also.
Not sure how high/low on the shroud it would need to be to get it in the activation window, but I had one mounted on my Taz6 similarly and had no issues with accuracy.
Alignment with the nozzle isn’t too important. You will want to do a build with X axis twist compensation active also, so you can compensate for any physical twisting of the head between the linear rods with such a heavy toolhead.
I went to BL touch and would never go back. I did use the DO firmware without issue. However, do not use 3-point leveling off your, say 10x10 matrix, it does not work. Just load the full matrix and have it adjust. My bed varies 2mm over the surface but, using the mesh evaluation, it is uniform. I use ABS and PetG, PLA works but is more difficult with my 2.85mm end.
Lower the print head until about a papers width from the bed and adjust BLTouch probe distance from bed to about 3mm (Allen Key method). Then record X and Y offset of BLTouch from extruder.
Question here, being that it’s a dual extruder I am assuming I would measure from the middle of the two nozzles?
Im not really sure on the difference so if I could get some advice that would be great.
Get Configuration and Configuration_adv.h
Things to edit:
NOZZLE_TO_PROBE_OFFSET measured earlier (Note I think you can do this later using M851 or LCD and don’t have to change the config file)
Probing grid I want (GRID_MAX_POINTS_X?). I’m not sure what to put here so advice would be great
Edit probing speed. Again not sure if necessary or what’s recommended so advice would be great
Im thinking about adding:
Configuration.h
LCD_BED_LEVELING
Configuration_adv.h
PROBE_OFFSET_WIZARD
Ok now to build and upload with VS CODE Marlin auto build:
Only thing im not sure of here as I simply havent tested it yet is if I need to download the Marlin repo here:
Then drag the config files in. Or can I simply compile from the DO repo?
Then can I click the upload button in VSCODE or do I need to format an SD card?
Lastly, what startup gcode edits do I need to make if any? Id like to have it probe and generate a mesh for every print.
Question here, being that it’s a dual extruder I am assuming I would measure from the middle of the two nozzles?
For dual extrusion, you set the offset from the BLTouch probe to the first extruder.
NOZZLE_TO_PROBE_OFFSET measured earlier (Note I think you can do this later using M851 or LCD and don’t have to change the config file)
Yes, you can tweak with M851, so close enough is good enough here.
Probing grid I want (GRID_MAX_POINTS_X?). I’m not sure what to put here so advice would be great
Are you doing UBL or ABL? If you strip features out you won’t use (like SDCard if using Octoprint, or disable some of the config wizards and just use pure gcode to configure for example) you can do 10x10 grid w/UBL. 5x5 should be fine with ABL though. Probably good enough for UBL too, but it’s generally a one-time probe with a 3-point tilt, so I invest in the 10x10.
Edit probing speed. Again not sure if necessary or what’s recommended so advice would be great
You can test different speeds with accuracy if you want, but speeding it up a bunch is going to save you like 1-2min at best, and for most prints, that’s a rounding error in the overall print time.
PROBE_OFFSET_WIZARD
Not worth the memory space IMO. I think all it does is redundant with the X-axis twist wizard, which actually is useful.
I’m not sure how involved DO firmware goes with changes in other files. Their way of doing the BLTouch may require verifying pins.h for the rambo as well.
I was going to enable AUTO_BED_LEVELING_BILINEAR. So 5x5 is recommended?
X-axis twist wizard
How do I enable this? I see X_AXIS_TWIST_COMPENSATION in Configuration_adv.h is that it? Also do I need to measure anything or will the program do it for me?
Any idea on the difference of Oliveoil_TAZ6BLTouch/Yellowfin_DualExtruderV3 vs Oliveoil_TAZ6BLTouchHallEffect/Yellowfin_DualExtruderV3?
Do I need to make any edits to the start up gcode that CuraLE uses?
Lastly, is the rest of my process correct? Sorry for all the questions, I want to make sure I do it correctly.
CuraLE start gcode:
;This G-Code has been generated specifically for the {machine_name}
I don’t know what difference DO uses between those two. You could use VS code or similar to compare the files to see the difference if it’s not in a FAQ somewhere.
Startup GCODE modifications for BLTouch are in here, but make sure DO isn’t doing anything different that needs changes also.
;This G-Code has been generated specifically for the {machine_name}
;SETTINGS
;Extruder 1
;Nozzle diameter = {machine_nozzle_size_0}mm
;Filament name = {material_brand_0} {material_name_0}
;Filament type = {material_type_0} {material_diameter_0}
;Filament weight = {filament_weight}
;Extruder temp = M109 S{material_print_temperature_0}
;Extruder 2
;Nozzle diameter = {machine_nozzle_size_1}mm
;Filament name = {material_brand_1} {material_name_1}
;Filament type = {material_type_1} {material_diameter_1}
;Filament weight = {filament_weight_1}
;Extruder temp = M109 S{material_print_temperature_1}
;Bed temp = M190 S{material_bed_temperature}
M75 ; start GLCD timer
M107 ; disable fans
M420 S0 ; disable leveling matrix
G90 ; absolute positioning
T0 ; select this extruder first
M82 ; set extruder to absolute mode
G92 E0 ; set extruder position to 0
M140 S{material_bed_temperature_layer_0} ; get bed heating up
M104 R{material_soften_temperature_1} T1 ; soften filament
M109 R{material_soften_temperature_0} T0 ; soften filament
M109 R{material_soften_temperature_1} T1 ; soften filament
G28 X Y Z; home X and Y
G1 Z10 ; raise extruder
M109 R{material_probe_temperature_0} ; heat to probe temp
M204 S100 ; set accel for probing
G29O ; probe sequence if needed (for BLTouch)
M420 S1 ; enable leveling matrix
M425 Z ; use measured Z backlash for compensation
M425 Z F0 ; turn off measured Z backlash compensation. (if activated in the quality settings, this command will automatically be ignored)
M204 S500 ; set accel back to normal
G1 X0 Y0 Z15 F5000 ; get out the way
M400 ; clear buffer
M140 S{material_bed_temperature_layer_0} ; get bed heating up
M104 S{material_print_temperature_layer_0_1} T1 ; set extruder temp
M109 R{material_print_temperature_layer_0_0} T0 ; set extruder temp and wait
M109 R{material_print_temperature_layer_0_1} T1 ; set extruder temp and wait
T1 ; switch to second extruder
G1 E0 F100 ; prime nozzle from previous print
G1 F100 E-{retraction_amount} ;retract second nozzle before print
G92 E-30 ; adjust to 1st nozzle e value
T0 ; switch back to 1st nozzle
M190 R{material_bed_temperature_layer_0} ; get bed temping up during first layer
G1 Z2 E0 F75 ; extrude filament back into nozzle
M117 TAZ Printing… ; LCD status message
;Start G-Code End