Guide to Leveling the Ender S1

Sep 28th, 2023 (edited)
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 7.55 KB | None | 0 0
  1. The following steps are largely applicable to stock firmware, but the physical sections should always apply. It's assumed if you've customized your setup in some way you will know which sections of this guide do or do not apply to you!
  3. Any applicable notes or improvements suggested in the comments will be edited in!
  5.     Heat your bed to an appropriate temperature for your filament material. For PLA this is usually 50 degrees C. This is to ensure you're leveling correctly after any thermal expansion.
  7.    Unload all of your bed supports by unscrewing the discs underneath your bed until they are completely free spinning.
  9.    Preload the supports by screwing the discs back upwards until they JUST start to tension the supports. The best way to do this is to freely spin the disc with some speed and let it stop on it's own. At this point your bed is ready for leveling. (The amount of preload is an opinion of mine, see the "bonus info" section below for notes on this and alternatives).
  11.     Find and select "leveling" within the settings screen.
  13.     Wait for it to home.
  15.     This is where the S1 and the S1 Pro differ a bit. (Thanks u/darrenoc!) For the Pro you select aux leveling, on the bottom left. For the S1 you have to go to "Prepare", then "Move Axis" and set the Z position to 0 manually.
  17.     For the following steps, positions 1 through 5 are moved to via buttons on the Pro, but for the S1 you must disable the stepper, also in the prepare menu, and push the print head to each corner manually.
  19.         1 is the center of the bed
  21.         2 is the front left
  23.         3 is the front right
  25.         4 is the back right
  27.         5 is the back left
  29.     Move the head to position 1, and adjust the z-offset of the head using the software control. You want 0.1mm of distance between it and the bed - this is approximately the width of a piece of paper, thus the "paper trick". This is where you slide a piece of paper between the print head and the bed, and wiggle it around. You want it so that the paper can move around, but with slight resistance from the head.
  31.     Move the head to position 2 and use the WHEEL to adjust the bed until the paper can again move around, but with slight resistance. Do not touch the z-offset at this point.
  33.     Repeat for positions 3, 4 and 5. Do not touch the z-offset.
  35.     Go around positions 2, 3, 4 and 5 again and again until all four corners pass the paper test. Try to do as minimal adjustments as possible, otherwise you end up with the corners being under far too much load. Do not touch the z-offset yet!
  37.     Go back to position 1 and adjust the z-offset within software again, accounting for the new bed position. At this point your bed is "leveled". If you are using an S1, turn the steppers back on now.
  39.     Run an auto-level. This will create an in-memory bed mesh to account for any warping of your print bed that you can't resolve via manual adjustments. Wait for it to complete.
  41.    Adjust your settings in your slicer to USE the bed mesh. If you're using totally stock firmware this is probably not needed as it looks like Creality have it enabled anyway (thanks, u/green_bread for bringing this up!), but I'm going to leave it in here as it doesn't hurt to include it. UPDATED 02/05/23 - See the bottom of the post! This involves putting, after the call to G28, EITHER "G29" OR "M420 S1" OR "M420 S1 Z10". "G29" auto-levels before each print. "M420 S1" loads the bed mesh from memory - this is the default Creality behaviour. "M420 S1 Z10" loads the bed mesh from memory, and slowly returns to base values over 10 layers. It's up to you which you use. At the bottom of this post is my current Start G-Code for reference - in Cura this is edited via Preferences -> Printers -> Machine Settings on the bottom left, you may have to look this up depending on your slicer!
  43.    Print the bed level test of your choice. If there are gaps in your print (or god forbid if it's grinding against your bed), live adjust the z-offset UPWARDS by tapping the Z icon on the top right of the progress screen. If you are failing to get adhesion, stop the print, clean the bed (dish soap and a clean sponge, followed with a small amount of IPA once it's back in place), make sure your temperatures are okay, and ONLY AFTER CHECKING THOSE TWO THINGS, try the print again, and if you're still failing to get adhesion, live adjust the z-offset DOWNWARDS.
  45.     Reprint the appropriate test until the entire print goes through flawlessly.
  47. If you are using springs, you'll want to redo this process every couple of big prints. If you're using silicone supports you should only need to relevel the bed in full when you start having problems, otherwise an auto-bed level and a quick z-level offset adjustment will handle nozzle wear, changes and temperature differences.
  49. And below, as promised, my start g-code for reference purposes! This is mostly Cura default, with the extra bed-mesh enabling line, but it's good to have as a baseline.
  51.    â€‹; Ender 3 S1 Start G-code
  52.    G92 E0 ; Reset Extruder
  53.    G28 ; Home all axes
  54.    M420 S1 Z10 ;Use the bed mesh, compensate over 10 layers
  55.    G1 Z10.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
  56.    G1 X0 Y0
  57.    M104 S{material_print_temperature_layer_0}
  58.    M190 S{material_bed_temperature_layer_0}
  59.    M109 S{material_print_temperature_layer_0}
  60.    G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position
  61.    G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line
  62.    G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little
  63.    G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line
  64.    G92 E0 ; Reset Extruder
  65.    G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
  66.    G1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish
  68. Bonus info:
  70. If you set up Octoprint or flash the "professional" (a bit of a misnomer, but that's another post) firmware, you'll be able to view your bed mesh and total variance on the bed. Two things to be aware of here, firstly that anything around 0.2mm or less variance is absolutely fine (I've had prints come out perfectly at 0.35 variance), and secondly that you shouldn't strive to adjust your bed based off of those numbers alone - you'll end up with an over-tensioned set of supports quite quickly...I've been there!
  72. There's also been some stuff in the comments about the amount of preload to use, which I'd recommend checking out as there's a lot of very valuable info down there. I use a minimal amount of preload to avoid warping the bed down in the corners, but if you have a significantly warped bed, or you're worried about getting X/Y axis movement when you shouldn't, it would be worth spinning them to a medium about preload then adding a half turn or two to compensate for that. The only thing to watch out for is to make sure you don't end up compressing your springs so much the coils are touching, that's too far!
  74. Thanks to everyone for chiming in!
  76. UPDATE NOTES, 02/05,2023:
  77. I've recently had to do a more detailed dig into Marlin, and there's a misunderstanding over the behaviour of the `RESTORE_LEVELING_AFTER_G28` firmware flag - it restores the previous bed leveling state, but that's not necessarily the *correct* one, just "whatever was loaded prior to G28".
  79. This also accounts for why some people get different results from seeming the same start code, as depending on printer state and other startup actions, different users will get differing behaviour.
  81. As including `M420 S1` is explicit in it's behaviour, and has no negative effects on the print or the hardware, I now recommend including it in start codes even with the above firmware flag enabled.
Add Comment
Please, Sign In to add comment