Chris I can't say enough about how much this has changed my printer. I got a new inductive probe and an SKR Mini E3 V2 and have been fighting getting the bed leveled. Even with an automatic 25 point probe before each print I was struggling to find the right height on my not-flat bed. I followed your instructions and the very first print nailed the first layer with no intervention from me. This has truly made a huge difference for me. Thanks for putting this together.
You see chris, this is why the community needs you. You're the only one that I'm aware of that breaks down marlin in a such pleasing way. Easy to follow and covers all the scenarios. Thank you
@@ChrisRiley Hi thanks I resolved the problem LINE 1264 #define MESH_INSET 1 I changed (1) to (46) bacause when I let (1) I only get 55/100 point // Set Mesh bounds as an inset region of the bed I tried 35 and I get 90/100 So to get 100/100 I set line 1264 MESH_INSET TO 46 #define MESH_INSET 46 //46=100// //45=99// //35=90// // Set Mesh bounds as an inset region of the bed But some of points (87/100 - 88/100 and 89-/100 are out of the bed (behind) the prob d not touch the bed
This is one of the most if not the most comprehensive guide for UBL that I've seen. Thanks a ton! They should include this video to the marlin documentation!!!!!!
So I'm replacing my stock 8 bit controller with a 32 bit controller tomorrow...and I was preparing a marlin .bin for it...thank you so much for making sure that I do this project on *another* day. I'll stick with bilinear for now! Thanks! This looks amazing and stupid-easy once it's set up...but I really appreciate your video letting me know how many steps alone it is just to get running. I'm sure I'll be able to do it when I'm ready though and I've bookmarked this and subscribed just for how easy to follow this was!
Ive been fighting this on my second sv01 for months. Found your tutorial, and it is simply amazing how you go step by step, so no guess work needed. THANK YOU!!!!!!!
I just had to comment on how appreciative I am for your effort on educating us about 3d printers. You have got me through some hard times with setting up my printer. Little did I know the deep waters I was entering when I upgraded my ender 3 pro motherboard from a silent creality one to the skr 1.4 turbo. I had no previous experience with visual code or g-codes etc. But watching your tutorials with your easy to understand method of teaching has helped me sooooo much. I still have a long way to go but I'm starting to understand this stuff now and it isn't as daunting as when I began. Thank you.
Back in 2016 or so I was watching the Marlin GitHub issues and PRs daily. As I recall, Roxy was one of the key developers on this feature, and it was great watching the progress. I moved away from having a printer that used “straight” Marlin, so never got a chance to test the working version. Very impressive to see it all come together.
your a genius, fired my printer up after not using for a year or more, and have spent two days of frustration, then found your video again. Thank you sir!
Dude! Very nice tutorial - thank you so much! To me, the most important part was which GCode commands should be set in my slicers to load the mesh and compensate it just with eventual tilt changes. Thanks!
Some of the best 3D printing videos made! Added bi-linear to two of my printers using your how-to on the subject. May try this on my TEVO Tarantula that's due for a tear down. Keep up the great work!!!
Chris, thanks for this very good intro to UBL. I had it once activated but 'Real men don't read instructions' and didn't knew what to do, so back to bilinear ;) Just set it up on my Sapphire Pro (SKR 1.4 Turbo).
Cheers dude, followed your step by step guide and breezed through the config! It took me longer to update to the latest marlin bugfix then it did to implement this :D
I have a sovol SV03 and no other tutorial has helped me better than this one. I'm fairly new to 3d printing so I couldn't figure out why my prints were doing so bad after I left for a while. Thank you very much!
Chris, thank you so much for the video! I've upgraded my printer and had a hard time configuring it. Was able to resolve all my issues with Z calibration.
Chris, couple of more comments. One thing to look out for is if you set Z safe home, you will prime in the middle of the bed when you use G26 G10. So you should first do G28, then G0 X0 Y0 Z2, then do the G26 P10. Also, my print looked like cr*p because I am using a bowden setup and I don't think Marlin does retraction unless you have firmware retraction setup. I changed to firmware retraction and the G26 test print looked much better.
One of the best tutorials I found about this topic, congrats, however there is a small note, pre bed leveling is required or you can face that sensor is not able to capture all points on the bed during process. Regards
I found interesting thing about my anycubic kossel. It has fixed bed, so it twists different with different temperature. So I decided to calibrate ubl for each type of filament. And then you can use filament override options in prusa slicer. Works great. I did delta calibration on cold bed. Then I preheat it for 65 / 75 / 95 Celsius and made a UBL for each one. Difference between 65 and 95 Celsius is really visible.
Superb tutorial as always Chris. I'm still using Bi-linear levelling on the Borg, which is working perfectly. Will probably give this a try at some point too though.
@@ChrisRiley Yes it was! Today I'd flash new firmware and did UBL> Result - almost perfect. Only my Z probe offset was too low) The only difference is to calibrate your delta before performing G29. Otherwise, that will not work.
Quality content, I've read that you should use an uneven number of probing point as it is better for some reason, Quess it doesn't go trough (0;0) otherwhise and marlin doesn't like that or something.
thanks chris, obviously working on this a precursor for this would be to make sure you have got your bed size correct in marlin and on the printer as this might be different from physical bed size. 🙂. currently working on that
Hi Chris, Very clear instructions !! Congratulations and ... thanks! What catch my eye too was the magnets under the front edge of the heat plate. Clear for me, it's not an "industrial" made heat plate. Could you supply some info (heat plate type, magnets type, adhesive type, solution reliability)? Maybe a short video? fusi (Romania)
Thanks! I just grabbed this sheet off my MK3 for this video. It's this sheet here. shop.prusa3d.com/en/mk3mk3s/216-spring-steel-sheet-smooth-pei.html I just used some small magenets I had. These I think. www.amazon.com/DIYMAG-Refrigerator-Magnets-Premium-Brushed/dp/B07B3SDRCP/ref=sr_1_4?keywords=round+8mm+magnets&qid=1579298022&sr=8-4
I love your videos.. its just geeky enough for the tech guys and simple enough for the noobs.. HOWEVER : I would like to see more stuff t the end.. how to fix things when it goes wrong.. like on this video .. if your inset is not right and the props tries to prob off the edge of the bed or if you have a large gap between your BLTouch and the nozzle and it can't reach all the spots.. G29P3 GUESSES don't work well when things like that fail.. and its tough to fix from octoprint.. also some vids on when octoprint goes haywire... cause octoprint modifies geode on the fly and streams it to your printer kinda like clipper . and Canada a bunch more tuning of footprint to do.. (like if your octoprint bed size is different than your Cura settings.. and octoprint clips edges square when you actually have bed space ( full bed problems) or plugins that show you the bed visualizing and it actually mods the code..
Great video, altough - the G29J - I found to mess up the actual saved mesh by "adjusting" to the same number for all spots (visible after print with G29 T). So I use G29 L1 G29 A (just to be sure) - and then my first level takes benefit of that long G29 bed level we do in this process. I run Marlin 2.0.x.bugfix, might be something who differs from 1.1.9
When I did the Z offset like you said around 11:00, I got a Z value of -12.4mm which seemed very large but I tried it anyway and then when I went to print, the printhead slammed into the bed. Why was the Z offset so high? It seems like there are 2 Z probe offsets, one in the firmware and one in the printer menu. When I go into Control-Motion-Probe Z offset it was set to 2.3. Why was it so big when I tried to use the method you described, then why did it slam into the print bed after? When I did G1 Z0 before manually moving it down, it was way high up off the bed so I needed to lower it 12.4mm. I'm very confused now.
Hey Chris, awesome video! It helped me a lot setting up UBL on my SKR v1.3. I am struggling with the mesh editing feature though: when I try to edit points via the LCD menu the carriage doesn't move in the pattern your's does on log (from left front to right and then one row over) but instead some different location often outside my print area... crashing... I homed before editing with G28 and have RESTORE_LEVELING_AFTER_G28 enabled. I also have Z_SAFE_HOMING and ENABLE_MESH_EDIT_GFX_OVERLAY enabled with a BTT Full Graphic Smart Controller Display. Regarding the erratic pattern one more thing: when I issued the G29 P1 command (after G28 of course) it didn't move in a spiral pattern as described on the marlin documentation but in a very random pattern. It completed though without the two rows the probe just couldn't reach. I populated those with G29 P3 and checked with G29 T - like you explained - and everything looked ok... but trying to edit these extrapolated points via LCD did not work (the others also didn't...). Furthermore moving my nozzle via pronterface close to the points in question and issuing a G29 P4 initiated the edit menu on the lcd but doing a G29 T after that showed the brackets in a different row (same column) at least close to where the probe sits and not the nozzle... do you have a clue what might be going on? Thanks in advance.
Thanks! I am not really sure what is going on there. I think somethings have changed. I need to run through it again, maybe it's time for an updated video.
I would suggest not heating the nozzle, or if you do, remember to pull out the filament first. I didn't think of it at the time, and ended up cooking the PLA inside, as G28 P1 takes a looong time (especially if you turn heaters off and on between probes), and ended up with a massive clog. And G26 P10 for me just squirted on site and started the pattern (I have safe Z homing at the bed center). Otherwise, the best UBL guide out there (although I'm still not clear what G29 P2 and G29 P4 are really supposed to do). The Marlin guides still need some improvement to be more clear.
Great video! Many thanks. I wonder why dial indicators are not used more by 3D printing geeks? The Chinese ones are cheap, accurate, and can be temporarily held in place by a magnet. Their use (on a temporary basis) would eliminate the extra electronics for a leveling probe. More importantly this would reduce print head weight. Also they would work with any print bed material.
You know, I have one and I have tried it many times before with mixed results. It would be nice to find a smaller one that could be easily integrated into the build. I might have to look for one and give it another go.
Thanks Very Helpful , On a side note after doing this i could not get my printer to extrude out the rite amount, found out that enabling eprom overrides the steps per mm in Marlin, had to send the steps per mm in the terminal and then save it to eprom, if that makes since, still new at this, thanks KH
Nice concise video Chris. I appreciate you get right to the point. I have a question about marlin 1.1.9 and I believe if anyone knows quickly, you would. Ill get right to it, I swapped out the mainboard in an Anet E12 for a Creality Cr-10s 1.5 Board. Works great after flashed with Marlin 1.1.9 . The machine has dual Z steppers and the usual X,Y and E Steppers. The new board has those sockets as well as a 6th socket for a second extruder stepper. Im using Ramps_14_EFB in marlin, (from the examples/creality/cr_10s folder) The new board supports dual extruders but no matter what settings I adjust In the RAMPS or PINS H or Configuration H I get an error in arduino that the socket is currently in use for the second z stepper and halts. My question, Do you know Is there a Setting or a way to add pins for the sixth socket so marlin can access the extra socket thus allowing me to the use dual extruders? Thanks again Chris.
Hello, so that board has 6 stepper drivers on it? Usually you would hook both Z motors up in parallel to one driver then use E0 and E1 for your extruders. What board do you set Marlin to in your config?
Yes, 6 stepper sockets. I found a limited tutorial on the sellers blog stated to copy the CR-10S config files in Marlins example dir. The board arrived with a boot loader only. No system. But has a big chip do marlin 9 fits great with almost all the features enabled. The marlin configs have RAMPS_14_EFB.H listed as the board and it's worked flawless. I've tried a few different settings boards from examples. I found a pre configured CR-10s sets but it was marlin 1.1.5 and used RAMPS_13_EF which doesnt support a heated Bed . I understand the usual boards for 2 extruders the drivers are ran parallel but hey, the board was $39 on Ebay and has the extra socket so, trying to use em. Attempted to upload a pic of the board. Its listed as a creality v2.1 but got no joy.
@@doncland Ok, then really we just need to know what pins that 6th one uses. We need a pinout diagram or maybe we could pull the information from that older version of Marlin.
Yeah, have been searching for a pinout map for this board with no luck. The older version didnt use the 6th socket either so wasnt much help. Attempted to extrapolate what the logical next set of pins would be but the board has 6 extruder sockets, 3 filament /Bed sensor sockets, 3 thermistor sockets, 3 end stops sockets, 3 case fan sockets and 2 adjustable nozzle fan sockets. My attempts at devining the pattern led to some interesting and unexpected results. None of any use whatsoever. I keep checking the sellers on Amazon and Ebay for driver updates and info. (found the Marlin 1.1.5 on an Amazon sellers page). Im sure over not too much time this board will gain support. It was practically plug and play. Well design too with built in extruder mosfet so no overheating problems either. And at $40-$50 us, I thought it was a bargain full of features. Thanks for you assistance Chris. I let you know If I get anywhere with this. And keep up the Excellent videos. Very informative and direct. Take care and happy printing.
Hi Chris - amazing guide thanks so much. I had a look through the Marlin docs and found the variables P5 and P6... on first glance they appear to do the exact same thing as the Z-offset. Are you able to elaborate on the purpose of these two? Is there an advantage of using these over the z offset or vice versa? Cheers
Thanks Chris, quick question, in the beginning you mentioned to set Endstop_Inverting to "TRUE". If my printer is already working properly with "False", do I still need to change them to "True"?
can you do a video on centering the prints and troubleshooting as to why it may not be centered? I cant seem to get my prints to print exactly in the center of the bed no matter how much i mess with the offsets. I have it safe home at center and still i cannot get it to work right.
@@ChrisRiley I managed to figure it out after about 4 hours. I was adjusting configuration.h file and I had to change the x min position to positive 5 after home as well as set the center of the bed x and y coordinates. I tried other methods that people made videos but they just did not work. One guy said to set manual home position as well as adjusting the x_min_pos to negative value but that made my x go too far and the belt skipped. It seems there are several ways and certain combinations so maybe you can touch on all the methods and combos if you make a video.
@@ChrisRiley Hey Chris, do you know how to make each UBL point double checked with the probe rather than one check per point? mine is moving up and down once per point, but i want it double checked per point to make sure it gets more accurate reading. I cant figure out how to do it. EDIT: never mind, i think i found it. #define MULTIPLE_PROBING 2 #define EXTRA_PROBING 1
@@ChrisRiley Me too! lol Your videos must be good luck because I always seem to figure it out as I'm typing or after I type my question on your videos. Thanks for all your hard work and helpful tutorials man. 🙂
@@ChrisRiley Unfortunately no. Work has been crazy lately. Not been able to do much of anything lately. Looking forward to, hopefully Walter's mrrf videos. Do you think you might have mrrf videos?
I have a ADIMlabs printer that is based on the CR-10S with a capacitive probe... I have the latest UBL Marlin flashed on the Arduino board would but I noticed a lot of code parameters that you implemented in Arduino are different than how I setup my probe... I was curious if this step-by-step video will work with my setup? Sorry if I left out info if you can assist let me know!
Another excellent video! I followed the process (including buying and fitting an inductive sensor) and got all the way to compilation phase to discover the CR-10 controller is ~64kB short of program memory for these features! Dohh. Can you recommend a controller I can fit instead that works well with the latest Marlin release for UBL? I can sort out a separate display/encoder if the stock CR-10 unit is incompatible. Thanks, Alex
Hi Chris, I followed everything to a T, I got to the step where the test was to be performed. The nozzle crashed into my bed and started gouging out a hole in the PEI spring steel sheet.
@@ChrisRiley I used a combination of the adjusted code for the lines pertaining to Marlin 2.0 build including the specifications and instructions provided from this tutorial, however the LJ 18A3-8-Z/BX 8MM inductive sensor would trigger about 9.5 mm above the print bed, heace the z-probe offset being 9.5 mm above. The way I calculated this was doing a G28 to home the nozzle, without using z-min stop and instead relying on the z-probe to provide the endstop, and calculating the value after slowly adjusting the nozzle unitl just touching a feeler gauge approximately the thickness of a piece of paper. I am not sure if it considers the amount of Z-offset the probe would be had the probe was touching the bed before the nozzle would, hence the approximate 1 mm distance from nozzle with zip tie you were referring to earlier. I am very confused and worried my amazon purchase isn't available to exchange but slice cumbrance considering how far it took to get to having functional bed levelling. I can provide my compiled Marlin code if need be to assess any issues. I am using a CR-10S printer also. Thank you for being there to help with diagnosing my issues, hopefully it will be able to be resolved soon, bed levelling is a must for intricate or larger scale prints! thanks LJIvbe 18A3-8-Z/BX 8mm Inductiv
I’ve a UBL set up and installed on my Gantry Pro but when I try to level the bed the nozzle is pushing into my plate and I’m beyond frustrated and no matter what I do (adjusting the Z height etc) I can’t get a print to work using Arduino and Marlin. I’ll attempt using your tutorial and see how I get on. 😢
Amazing tutorial! Thank you, Chris! I am using BL Touch, Blinear and Ramps 1.4 in my reprap 3D printer. It was working well until my nozzle, after some prints, went down to the bed, ignoring my Z probe offset. So, the filament didn’t prime on first layer, resulting a big mess. Do you know what is happening? Once again, thanks for your helpfull tutorials.
Why do you need to bed level before you set the offset? The bed leveling won't change the offset, only how the printer adjusts to the offset during print? If you have the default safe homing settings, won't it home automatically to the middle of the bed, so no need to manually move the head there?
great video! Have you ever seen the G26 test pattern happen well off center (each pattern is 50mm from the left edge and runs off the right edge)? It's happening on 2 of my printers and I'm not sure how to fix it.
Is there a way to use the Octoprint Bed Visualizer plugin to have your printer take the values measured and adjust your Gcode to account for the errors in your bed? I have a warped bed and would like to use the bed visualizer to automatically adjust my Gcode to change the Z height to create a more accurate print that accounts for the errors and makes a near-perfect first layer print....
Hi Chris, I set up UBL with the help of your video and have a question. I had to remove the print bed on my printer and figured I would run a G29 again to see if I changed the mesh. I had to refamiliarize myself with the parameters and found it has a K parameter that is suposed to compare a current mesh with a saved mesh. The Marlin website only shows the syntax as [L]. I can't seem to figure out what that means and they don;t give an example. Do you know how to specify comparing a newly acquired mesh to the mesh in slot 2? Thanks for all your great videos.
@@ChrisRiley Thanks for the reply Chris, I’m pleased to know that my questions are getting better. I saw a bug report on GitHub about G29 K (kompare) but it was abandoned without resolution. It would be great if they would include an example because the problem is probably a syntax error. Keep up the good work!
Hi Chris! Some questions: 1. You say the MESH_INSET should be as big as possible, shouldn't it be as small as possible? I'm having some issues with setting this correctly 2. Can you give some more information about G29 P2 B? I'm trying to create a mesh that includes the whole print bed, including the edges. Of course my probe can't reach part of the edges. P3 doesn't do this correctly, and P2 should help with this, but I'm at loss on how to use this command and set the correct shim. The Marlin notes are not very descriptive. 3. When you edit the mesh and edit the points, do you have to guess the right offset? You started with a paper to measure the height, but while editing you are not using it. When trying it on my printer I also see the Z is not changing when I change the height on the LCD; how can you use this properly then? Thanks in advance :)
1, yes you are correct, you need to have your probe area as big as possible. The other two questions I am not sure about. I am going to do a revisit video on UBL.
@@ChrisRiley Thanks for answering! I figured out how G29 P2 B works now, the UBL Info page you link in your description actually does a fairly good job of explaining how it works. Thanks again for the video, cleared some things up for me! :)
Thanks for this guide. G29 works just fine for me, I am stuck with finding the right Z offset. it seems to change all the time. Why did you heat the nozzle for G29 P1? Why don't you uses M290 babysteps for Z offset?
question: after first G29 T max delta was like 1,6mm, then at 14:33 after next G29 T is was way less, like 0,8mm - have you levelled the bed manually ?
My process steps notes on this vid in case this helps others. start with firmware config.h #define Z_MIN_ENDSTOP_INVERTING false ; moving pin probes like BLTouch are PNP and would be set to false. NPN types are set to true #define Z_MIN_PROBE_INVERTING false ; moving pin probes like BLTouch are PNP and would be set to false. NPN types are set to true #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN ; set to however you wired your probe. if split and you use the existing old z endstop, use this, otherwise comment it out // #define USE_PROBE_FOR_Z_HOMING ; set if using the dedicated probe port #define FIX_MOUNTED_PROBE ; uncomment if you use something like an inductive probe #define BLTOUCH ; uncomment if you use this #define Z_PROBE_OFFESET_FROM_EXTRUDER ; set to 0 or whatever it is. use bilnear to work this out first if you dont know. #define X_PROBE_OFFESET_FROM_EXTRUDER ; enter your values. learn how at 2:45 #define Y_PROBE_OFFESET_FROM_EXTRUDER ; enter your values #define X_BED_SIZE ; define yours. #define Y_BED_SIZE ; define yours #define Y_MIN_POS 0 ; define yours. #define X_MIN_POS 0 ; define yours. (my nozzle cant reach all areas and i dont as of yet know how to set min values. From chatgpt, lol , 'to set X_MIN_POS, you should measure the distance from the minimum position of the X axis on the build surface to the X endstop. And for Y_MIN_POS, you should measure the distance from the minimum position of the Y axis on the build surface to the Y endstop. These measurements will give you the values that you will use for X_MIN_POS and Y_MIN_POS in the Marlin firmware configuration file'. unverified help on setting them from a reddit thread www.reddit.com/r/3Dprinting/comments/akki71/help_with_setup_of_bed_size_min_pos_and_max_pos/) #define AUTO_BED_LEVELING_UBL #define RESTORE_LEVELING_AFTER_G28 #define ENABLE_LEVELING_FADE_HEIGHT #define G26_MESH_VALIDATION // change values if needed #define MESH_INSET 35 // set in case there are clips or things that need to be avoided. Chris set his to 35. You want it as large as possible. #define GRID_MAX_POINTS_X 10 #define MESH_EDIT_GFX_OVERLAY // if you have a full graphics display #define Z_SAFE_HOMING #define EEPROM_SETTINGS config.adv.h MESH_MAX // change these sets if you need. you should not need to. MESH_MIN
compile! after firmware build M502 ; Load default eeprom from firmware. M500 ; save to eeprom M501 ; load a fresh copy in eeprom of those settings Preheat G29 P1 ; creates 100 point UBL probe G29 T ; show mesh in terminal G29 S1 ; save mesh to slot one G29 F 10.0 ; set fade hieght by 10mm G29 A ; activate UBL M500 Now set z offset. The nozzle should barely touch the paper. G28 ; M114 ; see z position Use z offset wizard or the steps below if you do not have it. without wizard G1 X 110 Y110 ; move to middle of bed. change those values to your bed middle. M211 S0 ; turn off endstops M851 z0 ; set z offset to 0. change 0 to your z offset value. for both methods M503 ; view eeprom to verify z offset M500 Mesh validation G28 ; home G26 p10 ; prime 10mm of filament G26 ; test print G29 s1 ; save mesh again M500 adjust mesg in a specific spot g28 g29 t ; terminal map Go the your LCD screen Get paper Preheat On the screen, go to ubl - mesh edit. Find your mesh points to tweak in terminal (view with g29 t) for points too high or low. If the nozzle is too close to the bed, increase the number. Use only small increases. Click to save and it will move to neigbouring points to make a small mesh. Hold button to exit Terminal will say mesh done G29 t ; view terminal mesh G29 s1 ; save mesh m500 What if there are ares of the mesh out of reach of probe? For filling in mesg areas the probe cannot reach G28 G29 p1 ; restart cold probe repeat the below steps until G29 T shows all spots filled G29 P3 ; autofill mesh. makes guesses on the missing points G29 T ; terminal map to view guesses Tilting the mesh with a 3 point level before prints G29 L1; load mesh from slot one G29 J : tilt mesh with 3 point mesh front two corners and back centre using bed size stored in firmware. Load a levelling print stl Gcode start G28; home G29 L1 ; load mesh G29 J ; tilt
is it possible to fill in the mesh for UBL without an encoder wheel? unfortunately all i have is a touch screen LCD, and it does not have an encoder wheel. 🤦♀️ however i can connect to the printer using proterface if that makes a difference.
I have tried to set it up but i get the fallowing #error "MESH_EDIT_GFX_OVERLAY requires AUTO_BED_LEVELING_UBL and a Graphical LCD." I don't have a graphical LCD, i have a REPRAP_DISCOUNT_SMART_CONTROLLER It looks exactly as the one from prusa it's actually in a prusa case, did you set anything else diferently? Cheers for the video, keep them up they have opened a new world for me so far.
Thank you... Build my won 3d printer using ramp 1.6 have been having problems since day one. I can level it .. once I set it to home and I tried to print something it the nozzle always go higher ... It won't touch the bed and I don't no what to do ... I think there is something am missing here ... Hope your video will help on this. Thanks
@@ChrisRiley thank you very much for your support But my ramp 1.4 is empty there is no programming inside it.... I just upload new firmware on it. I notice that if I tell the z axis to move 10mm it will move 80mm I think the problem is from the Merlin firmware it get something to do with motor step ... Maybe the default step is not working fine for me. But when. I reduce the z step .. the z axis now start moving slow...pls help me
@@ogunniyiadebambo2822 I don't know anything about your printer. I would have to have details to tell you what to put in the config. This site might help you figure out. blog.prusa3d.com/calculator_3416/
Great video. Daft question. Do I need to run the three-point level before a print? Or do I simply load the stored mesh and ensure UBL is enabled? Thanks!
Hi Chris, I have a problem with my inductive sensor (5v). My Z_Offset is correct but after the print, I notice a drift of the Z. What is going on? Do you have a solution? Thank you for your videos which are always of great interest ... Continuous, do not change anything ... José
@@ChrisRiley Thank you Chris for your response. I continue to test to find a solution. If you make us a video, it's great .... Thank you and see you soon
Hi Chris, It appears that you are using the nozzle as the probe element for the UBL mesh generation. Is that the case? If not, what probe element is used? Thanks.
@@ChrisRiley , Thanks for confirming the z-probe method used in your video. I see that the Marlin 2.0.1 release lists a new function: “NOZZLE_AS_PROBE.” Will be investigating this. Might you also?
I wouldn't mess with it on a Delta, the delta leveling, G33, works a lot like it already. Not sure how that works with G26 really, it might work the same as UBL where you can tweak each point.
@@ChrisRiley Thank you for responding! Reason I ask is because I've gotten some of the best leveling with UBL on my Anycubic KLP with the SKR 1.4, but I keep getting holes in some places. G33 is required with all deltas to account for differences between the heights of the endstops and the tilt of the bed, but it doesn't actually "level" the bed, per se.
@@ChrisRiley If you'd like to give it a shot, Jay Aristide put together a pretty dope fw with UBL and other goodies, and I adapted it to the SKR 1.4 and BLTouch and have been using G29 P4 R to edit the mesh. It's working pretty brilliantly nowdays - Jay really did a great job. Give it a shot if you want to: www.thingiverse.com/thing:4081644
Hello Chris, for some reason my "z-probe offset" value has no noticeable affect on my z-values. The only noticeable affect is when I offset the "mesh grid" using "G29 P6 C-X.XX". I am using "Marlin 1-1-9 rev1.4". I have success printing near the center of the bed but as I drift to the corners my first layer is unreliable - any advice? Thank you.
Things have changed in UBL, I am going to try and rework it for another video. The only way I know to get around the offset is to set it before you enable UBL.
I salvaged a FLSUN i3 Plus and was able to load it with Marlin 1.1.9 that the seller provided for this particular printer and performed autolevel with the blue box inductive sensor it has. At first I found it needed -1 offset and it printed perfectly. I think I presed the dial in some of the, for me, misterious options like "load" or "save" or "reset" EPROOM and now it prints in mid air! Will hav to start again from the begining as it seems lots easier than this procedure. But lets see if I feel confidnt enough to venture in such a cumbersome process. And I was going to start trying to avoid stringing in prints! Can you make a tutorial for that also? Best regards!
This is the part I have so much trouble with. I don't know why I find it so difficult to comprehend the z offset. I'm saving this video to try this out. Also, I have a mks TFT 32 touch screen. Will this work as far as the grid thing is concerned?
Chris I can't say enough about how much this has changed my printer. I got a new inductive probe and an SKR Mini E3 V2 and have been fighting getting the bed leveled. Even with an automatic 25 point probe before each print I was struggling to find the right height on my not-flat bed. I followed your instructions and the very first print nailed the first layer with no intervention from me. This has truly made a huge difference for me. Thanks for putting this together.
That's awesome to hear, I am glad it helped you.
You see chris, this is why the community needs you. You're the only one that I'm aware of that breaks down marlin in a such pleasing way. Easy to follow and covers all the scenarios.
Thank you
Thank you!
I regularly come back to this video if I need some help troubleshooting and/or re-leveling. Can't say enough how great this walkthrough is.
Thank you
Same! I've been here at least a dozen times :)
Chris, all I can say is "Wow!" Thank you for taking the time to do this video. Wow!
Thank you for watching! Glad it was helpful!
@@ChrisRiley Hi thanks I resolved the problem
LINE 1264 #define MESH_INSET 1 I changed (1) to (46) bacause when I let (1) I only get 55/100 point // Set Mesh bounds as an inset region of the bed
I tried 35 and I get 90/100
So to get 100/100 I set line 1264 MESH_INSET TO 46
#define MESH_INSET 46 //46=100// //45=99// //35=90// // Set Mesh bounds as an inset region of the bed
But some of points (87/100 - 88/100 and 89-/100 are out of the bed (behind) the prob d not touch the bed
This is one of the most if not the most comprehensive guide for UBL that I've seen. Thanks a ton! They should include this video to the marlin documentation!!!!!!
Thank you! I was actually thinking about doing an update video.
So I'm replacing my stock 8 bit controller with a 32 bit controller tomorrow...and I was preparing a marlin .bin for it...thank you so much for making sure that I do this project on *another* day. I'll stick with bilinear for now! Thanks! This looks amazing and stupid-easy once it's set up...but I really appreciate your video letting me know how many steps alone it is just to get running. I'm sure I'll be able to do it when I'm ready though and I've bookmarked this and subscribed just for how easy to follow this was!
Thanks for the sub, good plan on holding off on UBL for now. It has changed a bit, I plan on making an updated video.
Ive been fighting this on my second sv01 for months. Found your tutorial, and it is simply amazing how you go step by step, so no guess work needed. THANK YOU!!!!!!!
Glad it helped!
I just had to comment on how appreciative I am for your effort on educating us about 3d printers. You have got me through some hard times with setting up my printer. Little did I know the deep waters I was entering when I upgraded my ender 3 pro motherboard from a silent creality one to the skr 1.4 turbo. I had no previous experience with visual code or g-codes etc. But watching your tutorials with your easy to understand method of teaching has helped me sooooo much. I still have a long way to go but I'm starting to understand this stuff now and it isn't as daunting as when I began. Thank you.
I'm glad I could help! Thanks for watching
Back in 2016 or so I was watching the Marlin GitHub issues and PRs daily. As I recall, Roxy was one of the key developers on this feature, and it was great watching the progress. I moved away from having a printer that used “straight” Marlin, so never got a chance to test the working version. Very impressive to see it all come together.
Yeah, it's kind of strange we have seen a lot on cartesian UBL. It's been around a while, but it doesn't seem that a lot of people are using it.
Hi Chris, just spent the last 2 hours playing with UBM, didn't know it even existed! thank you for the great content.
Great! Glad it was helpful!
One thing I noticed with the g26 command, after I g28 the print started from the centre of the bed (home location) how do I solve this?
@@uksmudgesmith Not really sure on that one, you can send it to 0 0 manually, g1x0y0
your a genius, fired my printer up after not using for a year or more, and have spent two days of frustration, then found your video again. Thank you sir!
Glad I could help
Chris, as always an excellent tutorial ... I have used your tutorial of bi-linear leveling and never failed. Keep up the great work !
Thank you! Great to hear it worked!
Dude! Very nice tutorial - thank you so much! To me, the most important part was which GCode commands should be set in my slicers to load the mesh and compensate it just with eventual tilt changes. Thanks!
Thanks! I am glad it was helpful.
Some of the best 3D printing videos made! Added bi-linear to two of my printers using your how-to on the subject. May try this on my TEVO Tarantula that's due for a tear down. Keep up the great work!!!
Thanks Matt! The comments are much appreciated.
This is one of the best videos I have seen in a while! Your tutorials are always fantastic:)
Sweet! Thanks Thomas!
FYI the slots for meshes are numbered from 0 to 6. 0 being the first slot. Thanks for posting the video, very nicely done.
Cool, thanks.
This video amazing! I was able to take some parts of it away and finally get UBL working, thank you!!!
Excellent!
I can't figure out why you don't have more subscribers than the typical Toy Boy maker channels...keep up the great "to the point" honest content.
Thanks man! We are getting there.
Chris, thanks for this very good intro to UBL. I had it once activated but 'Real men don't read instructions' and didn't knew what to do, so back to bilinear ;) Just set it up on my Sapphire Pro (SKR 1.4 Turbo).
I hear that! LOL, glad it's working for you.
Cheers dude, followed your step by step guide and breezed through the config! It took me longer to update to the latest marlin bugfix then it did to implement this :D
Nice! Glad it worked for you.
I have a sovol SV03 and no other tutorial has helped me better than this one. I'm fairly new to 3d printing so I couldn't figure out why my prints were doing so bad after I left for a while. Thank you very much!
Great to hear!
Chris, thank you so much for the video! I've upgraded my printer and had a hard time configuring it. Was able to resolve all my issues with Z calibration.
Glad it helped! Thank you!
Always top quality work Chris! Glad to have you making these videos.
Thanks a lot Benjamin!
As always you are the best at explaining and being great at the details. May have to give this a try - Thanks for the video.
Thank you! Good luck on your setup.
You are just amazing. I was struggling with UBL your video solved my problem.
Awesome! Thank you!
Chris, couple of more comments. One thing to look out for is if you set Z safe home, you will prime in the middle of the bed when you use G26 G10. So you should first do G28, then G0 X0 Y0 Z2, then do the G26 P10. Also, my print looked like cr*p because I am using a bowden setup and I don't think Marlin does retraction unless you have firmware retraction setup. I changed to firmware retraction and the G26 test print looked much better.
You can actually set all that with the G26 command in line if you wish marlinfw.org/docs/gcode/G026.html.
One of the best tutorials I found about this topic, congrats, however there is a small note, pre bed leveling is required or you can face that sensor is not able to capture all points on the bed during process. Regards
Thanks David. I did find it has to be pretty level before it will work well.
I found interesting thing about my anycubic kossel. It has fixed bed, so it twists different with different temperature. So I decided to calibrate ubl for each type of filament. And then you can use filament override options in prusa slicer. Works great.
I did delta calibration on cold bed. Then I preheat it for 65 / 75 / 95 Celsius and made a UBL for each one. Difference between 65 and 95 Celsius is really visible.
Great idea, nicely done!
Wow Chris what a video. My ender3 will never be the same again 👍🏻
Thanks! Glad it was helpful!
Gr8 job in keeping us informed, Chris.
Thanks Rodryk!
Wow! Amazing video! I'm so glad i found this :D i've been stuck with issues with UBL until now :D Thanks! Keep up your great work!
Glad it helped!
Superb tutorial as always Chris. I'm still using Bi-linear levelling on the Borg, which is working perfectly. Will probably give this a try at some point too though.
Thanks Spike! Yeah, give it a try for fun. Most of the time you probably don't need it, but it is interesting.
Thank you Sir. This is the one and only usefull tutorial on the internet.
Thank you
Like always Chris, Nice job explaining it all.
Thanks Sergio!
Well done. When I finally have time that is added to my list.
Thanks James! It's not easy, but somewhat interesting.
Looks alright. Nice progression in really dealing things in on a printer. Are you planning on keeping the Rambo on Log?@@ChrisRiley
@@ZebraandDonkey As of now, yes, until I can't get around the lack of pins any longer.
Was just looking this up last night!! Your awesome!!!
Nice! Hope it helps!
Thank you, man! I can't understand how it works until I saw your video. Maybe it can fix my delta.
Nice! Glad it was helpful.
@@ChrisRiley Yes it was! Today I'd flash new firmware and did UBL> Result - almost perfect. Only my Z probe offset was too low) The only difference is to calibrate your delta before performing G29. Otherwise, that will not work.
Quality content, I've read that you should use an uneven number of probing point as it is better for some reason, Quess it doesn't go trough (0;0) otherwhise and marlin doesn't like that or something.
Thanks! Hmmm, interesting, I will have to look that up.
Great Video! I’m gonna use your guide and make the switch from bilinear to unified tomorrow on one of my printers. Looks like fun! Thanks!
Thanks Mike! Give it a shot and let me know how it goes.
awesome video Chris thanks, I have been using a BLTouch and Bi-Linear leveling. This is going to help me move to the next step!
Thanks! So glad it will help you out.
thanks chris, obviously working on this a precursor for this would be to make sure you have got your bed size correct in marlin and on the printer as this might be different from physical bed size. 🙂. currently working on that
Definitely! Thanks and good luck with your projects!
Hi Chris,
Very clear instructions !! Congratulations and ... thanks!
What catch my eye too was the magnets under the front edge of the heat plate. Clear for me, it's not an "industrial" made heat plate. Could you supply some info (heat plate type, magnets type, adhesive type, solution reliability)? Maybe a short video?
fusi (Romania)
Thanks! I just grabbed this sheet off my MK3 for this video. It's this sheet here. shop.prusa3d.com/en/mk3mk3s/216-spring-steel-sheet-smooth-pei.html I just used some small magenets I had. These I think. www.amazon.com/DIYMAG-Refrigerator-Magnets-Premium-Brushed/dp/B07B3SDRCP/ref=sr_1_4?keywords=round+8mm+magnets&qid=1579298022&sr=8-4
I’ve done a lot of stuff with my printer thanks to you man ! Thank you ! :D
Glad to help!
Thanks again Chris, this looks really useful, I'll try this one out on my ender 3 when I can get around to switching out the board, thanks again
You're welcome! Let us know how it goes!
Thank you for showing us how to do this. It is very helpful! Thumbs up!
You're welcome, glad I could help.
I love your videos.. its just geeky enough for the tech guys and simple enough for the noobs..
HOWEVER : I would like to see more stuff t the end.. how to fix things when it goes wrong.. like on this video .. if your inset is not right and the props tries to prob off the edge of the bed or if you have a large gap between your BLTouch and the nozzle and it can't reach all the spots.. G29P3 GUESSES don't work well when things like that fail.. and its tough to fix from octoprint..
also some vids on when octoprint goes haywire... cause octoprint modifies geode on the fly and streams it to your printer kinda like clipper . and Canada a bunch more tuning of footprint to do.. (like if your octoprint bed size is different than your Cura settings.. and octoprint clips edges square when you actually have bed space ( full bed problems) or plugins that show you the bed visualizing and it actually mods the code..
Thanks Paul, sure, I can work on some stuff like that.
Nicely done. One of the better vids I have seen recently. Look forward to seeing you at MRRF 2019. Please look me up!
Thanks! If you see me first please stop me, happy to stop and talk.
Great video, altough - the G29J - I found to mess up the actual saved mesh by "adjusting" to the same number for all spots (visible after print with G29 T). So I use G29 L1 G29 A (just to be sure) - and then my first level takes benefit of that long G29 bed level we do in this process. I run Marlin 2.0.x.bugfix, might be something who differs from 1.1.9
Interesting, thanks for letting me know. I might run through this again when 2.0 comes out with an official release.
@@ChrisRiley Seems it made an average hight valid for all point - at least on my build (recent version) - Not tested if it does this on 1.1.9
Thank you Chris, amazing intro to UBL.
Thank you Alen!
When I did the Z offset like you said around 11:00, I got a Z value of -12.4mm which seemed very large but I tried it anyway and then when I went to print, the printhead slammed into the bed. Why was the Z offset so high? It seems like there are 2 Z probe offsets, one in the firmware and one in the printer menu. When I go into Control-Motion-Probe Z offset it was set to 2.3. Why was it so big when I tried to use the method you described, then why did it slam into the print bed after? When I did G1 Z0 before manually moving it down, it was way high up off the bed so I needed to lower it 12.4mm. I'm very confused now.
Sam you might have something preset in the eeprom. Take a look at M503, make sure there is nothing already set in the M851 command.
Very detailed Chris - Thanks!
Thanks Ron!
Perfect timing on this, Thanks Chris
Awesome! You're welcome!
Hey Chris, awesome video!
It helped me a lot setting up UBL on my SKR v1.3.
I am struggling with the mesh editing feature though: when I try to edit points via the LCD menu the carriage doesn't move in the pattern your's does on log (from left front to right and then one row over) but instead some different location often outside my print area... crashing... I homed before editing with G28 and have RESTORE_LEVELING_AFTER_G28 enabled.
I also have Z_SAFE_HOMING and ENABLE_MESH_EDIT_GFX_OVERLAY enabled with a BTT Full Graphic Smart Controller Display.
Regarding the erratic pattern one more thing: when I issued the G29 P1 command (after G28 of course) it didn't move in a spiral pattern as described on the marlin documentation but in a very random pattern. It completed though without the two rows the probe just couldn't reach. I populated those with G29 P3 and checked with G29 T - like you explained - and everything looked ok... but trying to edit these extrapolated points via LCD did not work (the others also didn't...). Furthermore moving my nozzle via pronterface close to the points in question and issuing a G29 P4 initiated the edit menu on the lcd but doing a G29 T after that showed the brackets in a different row (same column) at least close to where the probe sits and not the nozzle... do you have a clue what might be going on?
Thanks in advance.
Thanks! I am not really sure what is going on there. I think somethings have changed. I need to run through it again, maybe it's time for an updated video.
I would suggest not heating the nozzle, or if you do, remember to pull out the filament first. I didn't think of it at the time, and ended up cooking the PLA inside, as G28 P1 takes a looong time (especially if you turn heaters off and on between probes), and ended up with a massive clog. And G26 P10 for me just squirted on site and started the pattern (I have safe Z homing at the bed center). Otherwise, the best UBL guide out there (although I'm still not clear what G29 P2 and G29 P4 are really supposed to do). The Marlin guides still need some improvement to be more clear.
Great tip! I hope this becomes a more straightforward process at some point.
Great video! Many thanks. I wonder why dial indicators are not used more by 3D printing geeks? The Chinese ones are cheap, accurate, and can be temporarily held in place by a magnet. Their use (on a temporary basis) would eliminate the extra electronics for a leveling probe. More importantly this would reduce print head weight. Also they would work with any print bed material.
You know, I have one and I have tried it many times before with mixed results. It would be nice to find a smaller one that could be easily integrated into the build. I might have to look for one and give it another go.
بجد انت انسان محترم جدا ..... وبجد استفدت منيك كتير
شكرا لك
Thanks Very Helpful , On a side note after doing this i could not get my printer to extrude out the rite amount, found out that enabling eprom overrides the steps per mm in Marlin, had to send the steps per mm in the terminal and then save it to eprom, if that makes since, still new at this, thanks KH
Thanks! I have been caught by that a couple of times, now I always run a M502 then M500 just in case.
thanks Chris for the great detail video and to the point
You bet!
Nice concise video Chris. I appreciate you get right to the point. I have a question about marlin 1.1.9 and I believe if anyone knows quickly, you would. Ill get right to it, I swapped out the mainboard in an Anet E12 for a Creality Cr-10s 1.5 Board. Works great after flashed with Marlin 1.1.9 . The machine has dual Z steppers and the usual X,Y and E Steppers. The new board has those sockets as well as a 6th socket for a second extruder stepper. Im using Ramps_14_EFB in marlin, (from the examples/creality/cr_10s folder) The new board supports dual extruders but no matter what settings I adjust In the RAMPS or PINS H or Configuration H I get an error in arduino that the socket is currently in use for the second z stepper and halts.
My question, Do you know Is there a Setting or a way to add pins for the sixth socket so marlin can access the extra socket thus allowing me to the use dual extruders?
Thanks again Chris.
Hello, so that board has 6 stepper drivers on it? Usually you would hook both Z motors up in parallel to one driver then use E0 and E1 for your extruders. What board do you set Marlin to in your config?
Yes, 6 stepper sockets. I found a limited tutorial on the sellers blog stated to copy the CR-10S config files in Marlins example dir. The board arrived with a boot loader only. No system. But has a big chip do marlin 9 fits great with almost all the features enabled. The marlin configs have RAMPS_14_EFB.H listed as the board and it's worked flawless. I've tried a few different settings boards from examples. I found a pre configured CR-10s sets but it was marlin 1.1.5 and used RAMPS_13_EF which doesnt support a heated Bed . I understand the usual boards for 2 extruders the drivers are ran parallel but hey, the board was $39 on Ebay and has the extra socket so, trying to use em. Attempted to upload a pic of the board. Its listed as a creality v2.1 but got no joy.
@@doncland Ok, then really we just need to know what pins that 6th one uses. We need a pinout diagram or maybe we could pull the information from that older version of Marlin.
Yeah, have been searching for a pinout map for this board with no luck. The older version didnt use the 6th socket either so wasnt much help. Attempted to extrapolate what the logical next set of pins would be but the board has 6 extruder sockets, 3 filament /Bed sensor sockets, 3 thermistor sockets, 3 end stops sockets, 3 case fan sockets and 2 adjustable nozzle fan sockets. My attempts at devining the pattern led to some interesting and unexpected results. None of any use whatsoever. I keep checking the sellers on Amazon and Ebay for driver updates and info. (found the Marlin 1.1.5 on an Amazon sellers page). Im sure over not too much time this board will gain support. It was practically plug and play. Well design too with built in extruder mosfet so no overheating problems either. And at $40-$50 us, I thought it was a bargain full of features. Thanks for you assistance Chris. I let you know If I get anywhere with this. And keep up the Excellent videos. Very informative and direct.
Take care and happy printing.
Hi Chris - amazing guide thanks so much. I had a look through the Marlin docs and found the variables P5 and P6... on first glance they appear to do the exact same thing as the Z-offset. Are you able to elaborate on the purpose of these two? Is there an advantage of using these over the z offset or vice versa? Cheers
I really don't know at this point. They have changed this up since the last video. I intend to do a new video on UBL soon.
@@ChrisRiley Looking forward to it. Thanks for taking the time to reply.
I setup ubl. Worked great. And then realized I wasn't done setting up stuff... So i had to flash agaih... And now I gotta do it all over again! Lol
Doh! It happens to all of us.
Is there a GCode command to change the number of probe points?
Not that I know of.
Thank you Chris, awesome job
You're welcome! Thank you!
Thanks Chris, quick question, in the beginning you mentioned to set Endstop_Inverting to "TRUE". If my printer is already working properly with "False", do I still need to change them to "True"?
No, as long as it works, you're good.
Just found this. Perfect, thanks.
Glad it helped!
can you do a video on centering the prints and troubleshooting as to why it may not be centered? I cant seem to get my prints to print exactly in the center of the bed no matter how much i mess with the offsets. I have it safe home at center and still i cannot get it to work right.
I can probably work that into a video. Are you trying to adjust it in Marlin or in the slicer?
@@ChrisRiley I managed to figure it out after about 4 hours. I was adjusting configuration.h file and I had to change the x min position to positive 5 after home as well as set the center of the bed x and y coordinates. I tried other methods that people made videos but they just did not work. One guy said to set manual home position as well as adjusting the x_min_pos to negative value but that made my x go too far and the belt skipped. It seems there are several ways and certain combinations so maybe you can touch on all the methods and combos if you make a video.
@@ChrisRiley Hey Chris, do you know how to make each UBL point double checked with the probe rather than one check per point? mine is moving up and down once per point, but i want it double checked per point to make sure it gets more accurate reading. I cant figure out how to do it. EDIT: never mind, i think i found it. #define MULTIPLE_PROBING 2
#define EXTRA_PROBING 1
@@wrxsubaru02 Good deal, glad you found it.
@@ChrisRiley Me too! lol Your videos must be good luck because I always seem to figure it out as I'm typing or after I type my question on your videos. Thanks for all your hard work and helpful tutorials man. 🙂
Awesome tutorial.
As usual 😀
Thanks man! You bringing the clone MK3 to MRRF?
@@ChrisRiley Unfortunately no.
Work has been crazy lately.
Not been able to do much of anything lately.
Looking forward to, hopefully Walter's mrrf videos.
Do you think you might have mrrf videos?
@@mapper0638 I am sure we will come up with something. :)
I have a ADIMlabs printer that is based on the CR-10S with a capacitive probe... I have the latest UBL Marlin flashed on the Arduino board would but I noticed a lot of code parameters that you implemented in Arduino are different than how I setup my probe... I was curious if this step-by-step video will work with my setup? Sorry if I left out info if you can assist let me know!
I am not sure, but it should be pretty much the same. Sensors work the same as far as the firmware is concerned.
Another excellent video! I followed the process (including buying and fitting an inductive sensor) and got all the way to compilation phase to discover the CR-10 controller is ~64kB short of program memory for these features!
Dohh.
Can you recommend a controller I can fit instead that works well with the latest Marlin release for UBL?
I can sort out a separate display/encoder if the stock CR-10 unit is incompatible.
Thanks,
Alex
Doh! For the money I think the MKS Gen L is probably the best for something like the CR10.
Hi Chris, I followed everything to a T, I got to the step where the test was to be performed.
The nozzle crashed into my bed and started gouging out a hole in the PEI spring steel sheet.
Is there anything unusual is eeprom? There could be an offset in there causing a problem.
@@ChrisRiley I used a combination of the adjusted code for the lines pertaining to Marlin 2.0 build including the specifications and instructions provided from this tutorial, however the LJ 18A3-8-Z/BX 8MM inductive sensor would trigger about 9.5 mm above the print bed, heace the z-probe offset being 9.5 mm above. The way I calculated this was doing a G28 to home the nozzle, without using z-min stop and instead relying on the z-probe to provide the endstop, and calculating the value after slowly adjusting the nozzle unitl just touching a feeler gauge approximately the thickness of a piece of paper. I am not sure if it considers the amount of Z-offset the probe would be had the probe was touching the bed before the nozzle would, hence the approximate 1 mm distance from nozzle with zip tie you were referring to earlier. I am very confused and worried my amazon purchase isn't available to exchange but slice cumbrance considering how far it took to get to having functional bed levelling. I can provide my compiled Marlin code if need be to assess any issues. I am using a CR-10S printer also. Thank you for being there to help with diagnosing my issues, hopefully it will be able to be resolved soon, bed levelling is a must for intricate or larger scale prints! thanks LJIvbe 18A3-8-Z/BX 8mm Inductiv
Great video - very informative and useful!
Glad it was helpful!
Those auto fill values are wild and crazy from .190 to 1.90 on the next grid space. That bed must be made of gravel. ;)
LOL, pretty much.
I’ve a UBL set up and installed on my Gantry Pro but when I try to level the bed the nozzle is pushing into my plate and I’m beyond frustrated and no matter what I do (adjusting the Z height etc) I can’t get a print to work using Arduino and Marlin.
I’ll attempt using your tutorial and see how I get on. 😢
Give it a try, you might have something stored in your eeprom causing you problems. Run a M502 then M500 to restore it to default.
Amazing tutorial! Thank you, Chris! I am using BL Touch, Blinear and Ramps 1.4 in my reprap 3D printer. It was working well until my nozzle, after some prints, went down to the bed, ignoring my Z probe offset. So, the filament didn’t prime on first layer, resulting a big mess. Do you know what is happening? Once again, thanks for your helpfull tutorials.
Do you know if something over wrote eeprom by chance? Do an M503 and see what M851 says at the bottom. Hopefully it matches what you have in Marlin.
Chris Riley OK! I will check it. Thanks!
This was very helpful! Thank you for making this video!
You are very welcome!
Why do you need to bed level before you set the offset? The bed leveling won't change the offset, only how the printer adjusts to the offset during print?
If you have the default safe homing settings, won't it home automatically to the middle of the bed, so no need to manually move the head there?
Anytime you home you wipe out the leveling. After the G29, leveling is enabled, then it will let you apply the offset.
great video! Have you ever seen the G26 test pattern happen well off center (each pattern is 50mm from the left edge and runs off the right edge)? It's happening on 2 of my printers and I'm not sure how to fix it.
I have seen it do some crazy stuff. Try lowering the data points and see if it changes anything.
Is there a way to use the Octoprint Bed Visualizer plugin to have your printer take the values measured and adjust your Gcode to account for the errors in your bed? I have a warped bed and would like to use the bed visualizer to automatically adjust my Gcode to change the Z height to create a more accurate print that accounts for the errors and makes a near-perfect first layer print....
I know you can use the full graphics display for this, but I am not aware of a plugin to do it. There might be something out there.
Hi Chris, I set up UBL with the help of your video and have a question. I had to remove the print bed on my printer and figured I would run a G29 again to see if I changed the mesh. I had to refamiliarize myself with the parameters and found it has a K parameter that is suposed to compare a current mesh with a saved mesh. The Marlin website only shows the syntax as [L]. I can't seem to figure out what that means and they don;t give an example. Do you know how to specify comparing a newly acquired mesh to the mesh in slot 2?
Thanks for all your great videos.
I'm not sure, somethings have changed and I still need to revisit this.
@@ChrisRiley Thanks for the reply Chris,
I’m pleased to know that my questions are getting better.
I saw a bug report on GitHub about G29 K (kompare) but it was abandoned without resolution. It would be great if they would include an example because the problem is probably a syntax error.
Keep up the good work!
Hi Chris! Some questions:
1. You say the MESH_INSET should be as big as possible, shouldn't it be as small as possible? I'm having some issues with setting this correctly
2. Can you give some more information about G29 P2 B? I'm trying to create a mesh that includes the whole print bed, including the edges. Of course my probe can't reach part of the edges. P3 doesn't do this correctly, and P2 should help with this, but I'm at loss on how to use this command and set the correct shim. The Marlin notes are not very descriptive.
3. When you edit the mesh and edit the points, do you have to guess the right offset? You started with a paper to measure the height, but while editing you are not using it. When trying it on my printer I also see the Z is not changing when I change the height on the LCD; how can you use this properly then?
Thanks in advance :)
1, yes you are correct, you need to have your probe area as big as possible.
The other two questions I am not sure about. I am going to do a revisit video on UBL.
@@ChrisRiley Thanks for answering! I figured out how G29 P2 B works now, the UBL Info page you link in your description actually does a fairly good job of explaining how it works. Thanks again for the video, cleared some things up for me! :)
Thanks for this guide. G29 works just fine for me, I am stuck with finding the right Z offset. it seems to change all the time.
Why did you heat the nozzle for G29 P1?
Why don't you uses M290 babysteps for Z offset?
It's been so long ago now, I can't remember. Not sure how much this has changed over the years.
Thanks. I just went with printing and finetuning afterwards instead of
Doing some calibration process
question: after first G29 T max delta was like 1,6mm, then at 14:33 after next G29 T is was way less, like 0,8mm - have you levelled the bed manually ?
I did level a couple of times to get it corrected. I ended up with around .2 in front and .8 in the back to get the ABL to complete successfully.
My process steps notes on this vid in case this helps others.
start with firmware
config.h
#define Z_MIN_ENDSTOP_INVERTING false ; moving pin probes like BLTouch are PNP and would be set to false. NPN types are set to true
#define Z_MIN_PROBE_INVERTING false ; moving pin probes like BLTouch are PNP and would be set to false. NPN types are set to true
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN ; set to however you wired your probe. if split and you use the existing old z endstop, use this, otherwise comment it out //
#define USE_PROBE_FOR_Z_HOMING ; set if using the dedicated probe port
#define FIX_MOUNTED_PROBE ; uncomment if you use something like an inductive probe
#define BLTOUCH ; uncomment if you use this
#define Z_PROBE_OFFESET_FROM_EXTRUDER ; set to 0 or whatever it is. use bilnear to work this out first if you dont know.
#define X_PROBE_OFFESET_FROM_EXTRUDER ; enter your values. learn how at 2:45
#define Y_PROBE_OFFESET_FROM_EXTRUDER ; enter your values
#define X_BED_SIZE ; define yours.
#define Y_BED_SIZE ; define yours
#define Y_MIN_POS 0 ; define yours.
#define X_MIN_POS 0 ; define yours.
(my nozzle cant reach all areas and i dont as of yet know how to set min values.
From chatgpt, lol , 'to set X_MIN_POS, you should measure the distance from the minimum position of the X axis on the build surface to the X endstop. And for Y_MIN_POS, you should measure the distance from the minimum position of the Y axis on the build surface to the Y endstop. These measurements will give you the values that you will use for X_MIN_POS and Y_MIN_POS in the Marlin firmware configuration file'.
unverified help on setting them from a reddit thread
www.reddit.com/r/3Dprinting/comments/akki71/help_with_setup_of_bed_size_min_pos_and_max_pos/)
#define AUTO_BED_LEVELING_UBL
#define RESTORE_LEVELING_AFTER_G28
#define ENABLE_LEVELING_FADE_HEIGHT
#define G26_MESH_VALIDATION // change values if needed
#define MESH_INSET 35 // set in case there are clips or things that need to be avoided. Chris set his to 35. You want it as large as possible.
#define GRID_MAX_POINTS_X 10
#define MESH_EDIT_GFX_OVERLAY // if you have a full graphics display
#define Z_SAFE_HOMING
#define EEPROM_SETTINGS
config.adv.h
MESH_MAX // change these sets if you need. you should not need to.
MESH_MIN
compile!
after firmware build
M502 ; Load default eeprom from firmware.
M500 ; save to eeprom
M501 ; load a fresh copy in eeprom of those settings
Preheat
G29 P1 ; creates 100 point UBL probe
G29 T ; show mesh in terminal
G29 S1 ; save mesh to slot one
G29 F 10.0 ; set fade hieght by 10mm
G29 A ; activate UBL
M500
Now set z offset. The nozzle should barely touch the paper.
G28 ;
M114 ; see z position
Use z offset wizard or the steps below if you do not have it.
without wizard
G1 X 110 Y110 ; move to middle of bed. change those values to your bed middle.
M211 S0 ; turn off endstops
M851 z0 ; set z offset to 0. change 0 to your z offset value.
for both methods
M503 ; view eeprom to verify z offset
M500
Mesh validation
G28 ; home
G26 p10 ; prime 10mm of filament
G26 ; test print
G29 s1 ; save mesh again
M500
adjust mesg in a specific spot
g28
g29 t ; terminal map
Go the your LCD screen
Get paper
Preheat
On the screen, go to ubl - mesh edit. Find your mesh points to tweak in terminal (view with g29 t) for points too high or low.
If the nozzle is too close to the bed, increase the number. Use only small increases.
Click to save and it will move to neigbouring points to make a small mesh.
Hold button to exit
Terminal will say mesh done
G29 t ; view terminal mesh
G29 s1 ; save mesh
m500
What if there are ares of the mesh out of reach of probe?
For filling in mesg areas the probe cannot reach
G28
G29 p1 ; restart cold probe
repeat the below steps until G29 T shows all spots filled
G29 P3 ; autofill mesh. makes guesses on the missing points
G29 T ; terminal map to view guesses
Tilting the mesh with a 3 point level before prints
G29 L1; load mesh from slot one
G29 J : tilt mesh with 3 point mesh front two corners and back centre using bed size stored in firmware.
Load a levelling print stl
Gcode start
G28; home
G29 L1 ; load mesh
G29 J ; tilt
Thanks!
Unbelievable. Thank you.
This was a great video. Thank you so much.
Glad it was helpful!
is it possible to fill in the mesh for UBL without an encoder wheel?
unfortunately all i have is a touch screen LCD, and it does not have an encoder wheel. 🤦♀️
however i can connect to the printer using proterface if that makes a difference.
I think you can get that done with an M421, check this out. marlinfw.org/docs/gcode/M421.html
I have tried to set it up but i get the fallowing #error "MESH_EDIT_GFX_OVERLAY requires AUTO_BED_LEVELING_UBL and a Graphical LCD."
I don't have a graphical LCD, i have a REPRAP_DISCOUNT_SMART_CONTROLLER
It looks exactly as the one from prusa it's actually in a prusa case, did you set anything else diferently?
Cheers for the video, keep them up they have opened a new world for me so far.
Thanks for watching! Just comment out this line. //#define MESH_EDIT_GFX_OVERLAY
@@ChrisRiley Oah, pff, i don't know how i missed that. Cheers Chris thanks for the help. Sorted now back to finishing the setup :D
Really nice and helpfull tutorial! Thanks!
Thanks for watching!
Thank you... Build my won 3d printer using ramp 1.6 have been having problems since day one.
I can level it .. once I set it to home and I tried to print something it the nozzle always go higher ... It won't touch the bed and I don't no what to do ... I think there is something am missing here ... Hope your video will help on this.
Thanks
When your setting it up make sure you reset eeprom, there might be something in there messing you up. Run M502 then M500.
@@ChrisRiley thank you very much for your support
But my ramp 1.4 is empty there is no programming inside it.... I just upload new firmware on it.
I notice that if I tell the z axis to move 10mm it will move 80mm
I think the problem is from the Merlin firmware it get something to do with motor step ... Maybe the default step is not working fine for me. But when. I reduce the z step .. the z axis now start moving slow...pls help me
@@ogunniyiadebambo2822 I don't know anything about your printer. I would have to have details to tell you what to put in the config. This site might help you figure out. blog.prusa3d.com/calculator_3416/
That helps a lot, thanks Chris for sharing :)
Thank you Michel!
Best explained. Thanks
Thanks for watching!
Great video. Daft question. Do I need to run the three-point level before a print? Or do I simply load the stored mesh and ensure UBL is enabled? Thanks!
Thanks! Now I don't remember, LOL, I don't think you need to run it, it should have it saved if you just load the mesh.
@@ChrisRiley Thanks Chris!
Hi Chris, I have a problem with my inductive sensor (5v). My Z_Offset is correct but after the print, I notice a drift of the Z.
What is going on? Do you have a solution?
Thank you for your videos which are always of great interest ... Continuous, do not change anything ...
José
Thank you! Not sure what is up, I get a lot of questions with strange things about UBL. I think I will redo this video and figure it out.
@@ChrisRiley Thank you Chris for your response. I continue to test to find a solution. If you make us a video, it's great .... Thank you and see you soon
Hi Chris, It appears that you are using the nozzle as the probe element for the UBL mesh generation. Is that the case? If not, what probe element is used? Thanks.
I am using a 5v inductive probe.
@@ChrisRiley , Thanks for confirming the z-probe method used in your video.
I see that the Marlin 2.0.1 release lists a new function: “NOZZLE_AS_PROBE.” Will be investigating this. Might you also?
@@kevinhoskins1897 Yes, I want to give this a try for sure.
Great video brother.
Thanks man!
Question: How does UBL work on a delta printer? Do the blank points need to get filled in? Or leave them alone?
I wouldn't mess with it on a Delta, the delta leveling, G33, works a lot like it already. Not sure how that works with G26 really, it might work the same as UBL where you can tweak each point.
@@ChrisRiley Thank you for responding! Reason I ask is because I've gotten some of the best leveling with UBL on my Anycubic KLP with the SKR 1.4, but I keep getting holes in some places. G33 is required with all deltas to account for differences between the heights of the endstops and the tilt of the bed, but it doesn't actually "level" the bed, per se.
@@surensimonyan6060 Yeah, I have never really tried it. You might be able to edit the map. It would take some experimenting.
@@ChrisRiley If you'd like to give it a shot, Jay Aristide put together a pretty dope fw with UBL and other goodies, and I adapted it to the SKR 1.4 and BLTouch and have been using G29 P4 R to edit the mesh. It's working pretty brilliantly nowdays - Jay really did a great job. Give it a shot if you want to: www.thingiverse.com/thing:4081644
@@surensimonyan6060 I will check it out, thanks for the link.
Hello Chris, for some reason my "z-probe offset" value has no noticeable affect on my z-values. The only noticeable affect is when I offset the "mesh grid" using "G29 P6 C-X.XX". I am using "Marlin 1-1-9 rev1.4". I have success printing near the center of the bed but as I drift to the corners my first layer is unreliable - any advice? Thank you.
Things have changed in UBL, I am going to try and rework it for another video. The only way I know to get around the offset is to set it before you enable UBL.
can u tell me, its normal that problem? what its the common, heat the bed then level, and print, or level bed, then heat up, print?
I answered the other comment, but this is a pretty common issue even on inductive probes.
Is there a stl file for the orange plastic piece on the back of the extruder stepper
Check this one out.
www.thingiverse.com/thing:3250689
This one is my fav.
www.thingiverse.com/thing:3528397
I salvaged a FLSUN i3 Plus and was able to load it with Marlin 1.1.9 that the seller provided for this particular printer and performed autolevel with the blue box inductive sensor it has. At first I found it needed -1 offset and it printed perfectly. I think I presed the dial in some of the, for me, misterious options like "load" or "save" or "reset" EPROOM and now it prints in mid air! Will hav to start again from the begining as it seems lots easier than this procedure. But lets see if I feel confidnt enough to venture in such a cumbersome process. And I was going to start trying to avoid stringing in prints! Can you make a tutorial for that also? Best regards!
The delta process is a little easier than this one I would say. I did a video on that here. th-cam.com/video/5G8GdNywsUQ/w-d-xo.html
This is the part I have so much trouble with. I don't know why I find it so difficult to comprehend the z offset. I'm saving this video to try this out. Also, I have a mks TFT 32 touch screen. Will this work as far as the grid thing is concerned?
I totally get that, It's hard for me to wrap my mind around as well. The touch screen, I don't know, I would be very interested to know the answer.
@@ChrisRiley thanks, when I get the time and courage I'll give it a go and let you know..