Feature Request: Store Bed Matrix
Open, LowPublic


In the past, we have had requests from customers to be able to store the bed leveling matrix, to prevent cleaning and wiping before each print.

If we could implement a process that would allow customers to run through the probing routine by option (Whether multiple times for an average, or when things get out of alignment), and store the settings it could save a lot of time.

karrad created this task.Dec 12 2017, 11:14 AM
karrad renamed this task from Store Bed Matrix to Feature Request: Store Bed Matrix.Feb 15 2018, 12:58 PM
karrad lowered the priority of this task from Normal to Low.
alexei changed the edit policy from "Custom Policy" to "Marlin (Project)".May 18 2018, 11:40 AM
alexei added a subscriber: marcio.Jun 19 2018, 8:41 AM
marcio closed this task as Resolved.Aug 9 2018, 8:13 AM

This feature already exists in Marlin 1.1.9, possibly in earlier versions as well.

karrad reopened this task as Open.Aug 9 2018, 1:11 PM

@marcio Is this activated? What do we need to do to implement on our machines with G29?

marcio added a comment.Aug 9 2018, 1:14 PM

Yes. It is active. If you do a G29, followed by a M500, then that bed leveling matrix will be present the next time you power up.

marcio added a comment.Aug 9 2018, 1:16 PM

However, my guess is that your Z-offset would be wrong if you actually tried to print. I think you need something a bit more accurate than a Z-max endstop to actually take advantage of not having to have G29

marcio added a comment.Aug 9 2018, 1:18 PM

It might be possible to substitue the G29 with a single Z probe: http://marlinfw.org/docs/gcode/G030.html

marcio added a comment.Aug 9 2018, 1:39 PM

Actually, it looks like the correct thing to do would be to use G38.3, followed by G92 to reset the Z height.

So, if the washers was 1.5 mm thick and the probe point was at (-4, 163), then the following sequence of commands should allow you to probe the Z height without doing a full G29:

G0        X-4 X163 Z5 ; Move above washer
G38.3  Z-4                   ; Find surface of washer
G92 Z1.5                      ; Set Z height of top of washer
karrad added a comment.Aug 9 2018, 2:11 PM

@marcio Would there be a way to pull the set marlin offset using gcode commands? We have a lot of customers tweak their offset and store to eeprom

marcio added a comment.Aug 9 2018, 2:21 PM

For that we would probably need to add our own GCODE command, or add an argument to G38.3

karrad claimed this task.Tue, Nov 20, 2:33 PM
karrad moved this task from Backlog to Next Release (3.2) on the Cura LulzBot Edition board.
zachah added a subscriber: zachah.EditedWed, Dec 5, 9:17 PM

I was able to get UBL mesh bed saving working on the Taz 6 a few months back. I've been using it for a while on my Taz 5 at home and thought it would be cool on the Taz 6 so I compiled a firmware with that enabled for the Taz 6 too.

I've attached Taz 6 Aerostruder firmware with UBL enabled. Here is the start g-code that I used. The parts that are commented out are parts that weren't needed from the stock g-code and lines with the comments in caps are the new/changed lines.

;This G-Code has been generated specifically for the LulzBot TAZ 6 with Aerosturder
M75 ; start GLCD timer
G26 ; clear potential 'probe fail' condition
G21 ; set units to Millimetres
M107 ; disable fans
M420 S0 ; disable leveling matrix
G90 ; absolute positioning
M82 ; set extruder to absolute mode
G92 E0 ; set extruder position to 0
M140 S{material_bed_temperature} ; start bed heating up
G28 XY ; home X and Y
G1 X-19 Y258 F1000 ; move to safe homing position
M104 S{material_soften_temperature} ; SET SOFTEN TEMP
G28 Z ; home Z
G1 E-15 F100 ; retract filament
M104 S{material_wipe_temperature} ; SET WIPING TEMP
G1 X-15 Y100 F3000 ; move above wiper pad
G1 Z1 ; push nozzle into wiper
G1 X-17 Y95 F1000 ; slow wipe
G1 X-17 Y90 F1000 ; slow wipe
G1 X-17 Y85 F1000 ; slow wipe
G1 X-15 Y90 F1000 ; slow wipe
G1 X-17 Y80 F1000 ; slow wipe
G1 X-15 Y95 F1000 ; slow wipe
G1 X-17 Y75 F2000 ; fast wipe
G1 X-15 Y65 F2000 ; fast wipe
G1 X-17 Y70 F2000 ; fast wipe
G1 X-15 Y60 F2000 ; fast wipe
G1 X-17 Y55 F2000 ; fast wipe
G1 X-15 Y50 F2000 ; fast wipe
G1 X-17 Y40 F2000 ; fast wipe
G1 X-15 Y45 F2000 ; fast wipe
G1 X-17 Y35 F2000 ; fast wipe
G1 X-15 Y40 F2000 ; fast wipe
G1 X-17 Y70 F2000 ; fast wipe
G1 X-15 Y30 Z2 F2000 ; fast wipe
G1 X-17 Y35 F2000 ; fast wipe
G1 X-15 Y25 F2000 ; fast wipe
G1 X-17 Y30 F2000 ; fast wipe
G1 X-15 Y25 Z1.5 F1000 ; slow wipe
G1 X-17 Y23 F1000 ; slow wipe
G1 Z10 ; raise extruder
M104 R{material_probe_temperature} ; SET PROBE TEMP
;G1 X-9 Y-9 ; move above first probe point
M204 S100 ; set probing acceleration
;G29 ; start auto-leveling sequence
M420 S1 ; enable leveling matrix
M420 L0 ;LOAD MESH 1
G28 Z ; HOME Z
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 ; restore standard acceleration
;G1 X0 Y0 Z15 F5000 ; move up off last probe point
G4 S1 ; pause M400 ; wait for moves to finish
M117 Heating... ; progress indicator message on LCD
M109 R{material_print_temperature} ; wait for extruder to reach printing temp
M190 S{material_bed_temperature_layer_0} ; wait for bed to reach printing temp
G1 Z2 E0 F75 ; prime tiny bit of filament into the nozzle
G92 Z7.3 ;SET Z TO 7.3
M117 TAZ 6 Printing... ; progress indicator message on LCD

To enable UBL first you'll need to initialize/reset the eeprom.

Then go into prepare and enable UBL.

After that make sure your nozzle is clean and run prepare>UBL>build cold mesh.

Once you've done that you can save the mesh in slot 0 and try out printing without auto-leveling every time{F2265678}

Orias added a subscriber: Orias.Thu, Dec 6, 8:34 AM