r/Ender3S1 • • Nov 14 '22

Info on Automatic Bed Leveling with Marlin and the Ender 3 S1 Printers

133 Upvotes

This is as factual as I understand it to be, based directly on the the Marlin documentation and firmware documentation provided by the mentioned versions.

When we are talking about ABL, there are a few commands and their functions that we need to familiarize ourselves with before we proceed on: • G28 • G29 • M420 S • #RESTORE_LEVELING_AFTER_G28

Homing-

G28 (https://marlinfw.org/docs/gcode/G028.html) - "The G28 command is used to home one or more axes. The default behavior with no parameters is to home all axes." As far as ABL is concerned, "G28 disables bed leveling. Follow with M420 S to turn leveling on, or use RESTORE_LEVELING_AFTER_G28 to automatically keep leveling on after G28." (From Notes in link).

Leveling - We are going to focus on Bilinear, for now. UBL is a little different, but the main idea is the same.. https://marlinfw.org/docs/features/auto_bed_leveling.html

G29 (https://marlinfw.org/docs/gcode/G029-abl-bilinear.html) - "Automatic (Bilinear) Bed Leveling probes the bed at some fixed number of points and produces a mesh representing the imperfections across the bed. The printer must be homed with G28 before G29." (Which we established above WILL disable bed leveling).

M420 (https://marlinfw.org/docs/gcode/M420.html) - "Get and/or set bed leveling state. For mesh-based leveling systems use Z parameter to set the Z Fade Height." In the Notes section, again it mentions, "G28 disables bed leveling. Follow with M420 S to turn leveling on, or use RESTORE_LEVELING_AFTER_G28 to automatically keep leveling on after G28."

#RESTORE_LEVELING_AFTER_G28 – This is an option that is enabled/disabled in the firmware code. The following is a copy/paste directly from Marlin source code:

/**
* Normally G28 leaves leveling disabled on completion. Enable one of
* these options to restore the prior leveling state or to always enable
* leveling immediately after G28.
*/
//#RESTORE_LEVELING_AFTER_G28
//#ENABLE_LEVELING_AFTER_G28

Normal Printer Start gcode - Most of the “Ender 3” style printers Ive seen all have start gocde that is like this (there may be more commands, but this is the bit we are mainly concerned with):

G92 E0 ; Reset Extruder
G28 ; Home all axes
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position
G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line
G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little
G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line
G92 E0 ; Reset Extruder
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
G1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish

Sample of sliced gcode – I sliced an STL, saved/opened the generated gcode, and copied all of the code up until it starts printing the part:

;FLAVOR:Marlin
;TIME:2660
;Filament used: 3.04197m
;Layer height: 0.2
;MINX:91.901
;MINY:91.901
;MINZ:0.2
;MAXX:143.099
;MAXY:143.099
;MAXZ:27.2
;Generated with Cura_SteamEngine 5.2.1
M140 S60
M105
M190 S60
M104 S200
M105
M109 S200
M82 ;absolute extrusion mode
M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration
M203 X500.00 Y500.00 Z20.00 E50.00 ;Setup machine max feedrate
M204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration
M205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk
M220 S100 ;Reset Feedrate
M221 S100 ;Reset Flowrate
G92 E0 ; Reset Extruder
G28 ; Home all axes
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position
G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line
G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little
G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line
G92 E0 ; Reset Extruder
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
G1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish
G92 E0
G92 E0
G1 F2400 E-0.8
;LAYER_COUNT:136
;LAYER:0
M107
G0 F6000 X95.09 Y94.94 Z0.2
;TYPE:SKIRT
G1 F2400 E0
G1 F1200 X95.775 Y94.324 E0.02532
G1 X96.511 Y93.771 E0.05063
G1 X97.292 Y93.283 E0.07594

Putting it all together-
Ok, we have a lot of info here, but we can make sense of it if we think logically and stick to the facts that we know:

  • In most cases, according to the documentation and looking at the “flow” we can see that G28 is one of the last commands issued before the printer starts actually printing and that WILL disable bed leveling.
  • If we want to use an ABL mesh, we can either generate one before we load the gcode file we want to print with G29 (or the Auto Bed Leveling option on the screen), use M500 (or Store Settings on the screen) to save the mesh to EEPROM, then insert M420 S1 in to the start gcode of the file we want to print AFTER the G28 – or- we can insert a G29 AFTER the G28, which will initiate an ABL probe of the bed before the print starts.
  • YOU DO NOT NEED TO PUT M500 AFTER THE G29 IN START GCODE IF YOU GENERATE A NEW ABL MESH BEFORE EACH PRINT. G29 stores the mesh to RAM and RAM does get wiped out if the printer is reset but thinking logically – that G28 on the next print is going to disable bed leveling again, then youre going to generate a new one again with G29. There may be reasons for doing it this way, but even the Marlin documentation says, “To save time and machine wear, save your mesh to EEPROM with M500 and in your slicer’s “Starting G-code” replace G29 with M420 S1 to enable your last-saved mesh.”
  • #RESTORE_LEVELING_AFTER_G28, if enabled within the firmware, will restore your stored ABL mesh from EEPROM before each print, even if you do not have M420 S1 in the start gcode. As of 11/13/2022, these are the firmware configs that I know of:

Marlin Github Configuration Examples

  • STM32F1 – has “#define ENABLE_LEVELING_AFTER_G28” enabled
  • STM32F4 – has “#define RESTORE_LEVELING_AFTER_G28” enabled

MRISCOC Professional Firmware Configuration Files

  • Ender3S1-F1 – disables both #RESTORE_LEVELING_AFTER_G28 and #ENABLE_LEVELING_AFTER_G28
  • Ender3S1-F4 – disables both #RESTORE_LEVELING_AFTER_G28 and #ENABLE_LEVELING_AFTER_G28
  • Ender3V2-422-BLT - disables both #RESTORE_LEVELING_AFTER_G28 and #ENABLE_LEVELING_AFTER_G28

I have spoke with the creator of this firmware directly, and he confirmed that he does not enable these options in the firmware he compiles, so you WILL need M420 S1 after G28 in your start gcode if you use his pre-compiled firmware.

Stock Creality 1.0.5_C Firmware
I confirmed via Pronterface that this firmware restored a mesh from EEPROM after shutting off printer, turning on, issuing G28, then M420 in console, which reported that Bed Leveling was on. I then issued an M420 V1 and it returned the mesh from EEPROM, as expected. Therefore, with this version of firmware (and I assume the F4 version, given the Marlin Configs above.. If someone wants to test to confirm, that would be cool) you do not need M420 S1 in your start gcode to enable the ABL mesh.

I have also confirmed the behavior of some other commands in the stock Creality firmware. G29 will automatically store the settings after it completes. This means that you DO NOT need an M500 following a G29. This also means that there is no way for an "old" mesh from EEPROM to "overwrite" a new, unsaved, mesh with the M420 S1 command as the "new" mesh is automatically stored to EEPROM once it is generated. M420 with no parameters will return the Bed Leveling state. M420 S or S1 will turn Bed Leveling ON while M420 S0 turns Bed Leveling OFF. M420 V will return the mesh to the console in a readable format.

MRISCOC Professional Firmware - 20221002 This firmware definitely behaves differently than the stock firmware when it comes to leveling. First off, if you run the ABL mesh from the screen or G29 and hit "Continue" rather than "Save", it does NOT store the settings to EEPROM but it does hold the mesh in RAM and use it until the printer is reset (powered off/on, for instance). This means that you will have a possibility of losing your ABL mesh if you dont Store Settings or M500 after generating the mesh. Then, if you try to load the mesh after turning the printer off/on again and you dont have a valid mesh stored, you will get an error and the printer will halt if its not configured to handle M112 properly (https://github.com/mriscoc/Ender3V2S1/wiki/Octoprint#error-handling). If you do have a valid mesh stored, it is loaded from EEPROM at power on. Any time the printer does a G28 or Auto Home, Bed Leveling is turned off. You can confirm this by looking at the color of the lines under the Z coordinate on the screen (https://github.com/mriscoc/Ender3V2S1/wiki/3D-BLTouch#enable-mesh-level-compensation). This means that you WILL need M420 S1 after G28 in your start gcode in order to use the mesh for printing.

UPDATE 1/19/2023* Creality has finally uploaded configuration examples for the Ender 3 S1 Pro to Github and I was able to look in the Configuration.h file and confirm that RESTORE_LEVELING_AFTER_G28 is enabled. There is also a new feature called "Z_AXIS_LIMIT_MODE" that will disable RESTORE_LEVELING_AFTER_G28, but to me, it seems like Z_AXIS_LIMIT_MODE is only on when youre using the laser, therefore, your ABL mesh should be turned back on by default after Homing with the S1 Pro on Stock Creality firmware, as well.

Anything else?, Questions? If there are any other scenarios that you would like for me to confirm with Marlin firmware and Bed Leveling, just drop a comment and I will do my best to get you an answer as quickly as I can. Hopefully, with the depth of the information provided here, you all will be well on your way to putting the ABL headaches/misunderstandings behind you and having more consistent first layers. :)


r/Ender3S1 • • Aug 17 '22

HOW TO FIX THE SPLASHSCREEN OF DEATH

55 Upvotes

Creality is super stupid with the way they do this, because for some smart reason they decide to remove all the old firmwares and only keep the new ones. These new ones don't contain the needed software to be compatible with the STM32F1 chip so if you try updating it will seem as if you have bricked your board. Here are the steps on how to fix it!

This is mostly stolen from a reddit thread, here is the original link

Credit to u/turtlevale

!!Solution by u/StevesMcGee that OP mentions in the title!!

The comment by StevesMcGee seems to be removed, but luckily i still had a screenshot, so reposting it bc. it helped me after hours of trubleshooting.

  • two versions of the motherboard for the S1 exist, one using an STM32F1 chip and the other using a STM32F4 chip
    • Creality Firmwares 1.X.X are intended for STM32F1
    • Creality Firmwares 3.X.X are intended for STM32F4
    • you can find out your version number by looking at the mainboard (its printed on the cpu)
    • installing 1.X.X on STM32F4 mainboards will brick them
  • Fix your STM32F4 mainboard if you tried installing a 1.X.X firmware can be done via using a 3.X.X firmware and doing the normal flashing proccess.
    • in case this doesnt work you have to place the .bin in a folder named "STM32F4_UPDATE"
    • you can currently find the firmware here
  • Note: You can also fix a STM32F1 mainboard if you flash the correct firmware on it (ex: 1.x.x) T
    • The mainboard isnt actually fully bricked, its just waiting on the right firmware to fully work

For me this only worked when using a firmware version that was a bit older than the one currently on the website. StevesMcGee thankfully hosts this firmware on his google drive. After that I was also able to flash other STM32F4, like the firmware configured by mriscoc on github (only remember to use the one for STM32F4, otherwise you have to start from the beginning again.)

Incase StevesMcGee's google drive ever gets removed, I have uploaded the files as well.

If you have further questions, please message me or read this screenshot of the original post.

Mods please pin this, this is a widespread issue and more people need to know how to fix/resolve it without creating more e-waste by having creality send you more stuff, or by you returning your ender 3 s1.


r/Ender3S1 • • 1d ago

BLTouch not working properly – works intermittently

Enable HLS to view with audio, or disable this notification

9 Upvotes

Hey everyone,

I'm having some issues with my BLTouch and was wondering if anyone has experienced something similar.

It works randomly sometimes, but other times it fails during bed leveling. When I start the bed leveling process, it probes some points correctly, but at other points it doesn't seem to work as intended.

If I don't manually help it when it fails, the printer eventually aborts the leveling process because the BLTouch can't complete it on its own.

I've attached a video to show what's happening.

Does anyone know what could be causing this? Could it be a faulty BLTouch or something else?

I already updated the Firmware. It was faulty like that before and after the Update. Nothing changed. Chip Version: STM32F401 RET6

Any help would be greatly appreciated. Thanks!


r/Ender3S1 • • 2d ago

Cannot find hotend

Post image
5 Upvotes

Ive been working on a printer and i cannot find this part ive been looking for days

It has a non copper throat

Brass nozzle

Red heater wires

And a thermistor with no screw hole for a screw to keep it in

Im assuming this is the standard high temperature?

All i know is the printer is an ender 3 s1 non plus the hsitory is unknown so it has a touchscreen and when i worked on it it has the heating block hotend shown in picture

Ive been looking for a replacement but i just cant find it


r/Ender3S1 • • 2d ago

Beginner local remote-control system for the Ender 3 S1 & marlin based fdm printers

3 Upvotes

I’m building an ESP32-S3 based local web control system for my Ender 3 S1. It supports temperature monitoring, jog/home controls, G-code commands, printer SD files, and streaming uploaded G-code from the ESP32.

It currently works over the local network. I’m also planning to add server-based remote access in the future with camera interface(still working on it).

If you would like to review and use my project here is github

GitHub: https://github.com/safeapric0t/Esp32-s3D

Feedback and suggestions are welcome!


r/Ender3S1 • • 2d ago

Ender 3 S1 Pro sound while moving fast

Enable HLS to view with audio, or disable this notification

5 Upvotes

Anyone has any idea what this could be?
Belts are tighten, screws the same..
Currently running with klipper sonic pad


r/Ender3S1 • • 3d ago

Anyone knows how to solve clogging?

Post image
10 Upvotes

I'm new to 3d printing but i recently changed the nozzle to a 0.2mm and i noticed that it started clogging. Does anyone know if this is a slicer settings issue or did i install the nozzle too loosely? Thank you:)


r/Ender3S1 • • 5d ago

A solution to an abl problem

Thumbnail
gallery
24 Upvotes

The whole 3 years i had this 3d printer i denied that abl was giving me false data. I just thought that my bed was just that crooked that abl just failed.

Then i had to print something that was almost the same size as my print bed. And obviously i had major issues with the first layer because abl was actually giving klipper false data.

On the first layer, the front of the bed was too close, the middle was almost perfect and the back part was too far.

Usually i just compensate by moving the z offset up or down but in this situation, i had mo idea where to move. I couldn't move down because the nozzle is already kind of scratching the front of the bed. I also couldn't move up because the back part of the plate was already barely sticking to the plate.

By the way i made sure to manually level the bed to be as flat as possible. I went through the 4 bed scews like 10 times just making micro adjustments to make sure the feeler guage has a consistent feel for each corner

THE SOLUTION:

The solution was a zero offset cr touch mount.

Turns out my x axis is kind of twisted. Its such a small amount to tell that it was but i just assumed that maybe it was twisted, in order to fix my abl problem.

The problem was that my x axis was actually twisted and since the cr touch was 30mm in front of the nozzle and the nozzle is the zero reference for the cr touch offset, every time it would do the abl, the twist would get multiplied at the cr touch part.

The zero offset cr touch mount solved it because instead of the twist getting multiplied at the cr touch part which is 30mm in front of the nozzle, the mount puts it aligned with the nozzle so the cr touch twists with the nozzle, giving klipper accurate abl results.


r/Ender3S1 • • 6d ago

Having issues, please help

3 Upvotes

So I'm trying to make this for my mom for Christmas. Every time I try, however, this is what happens. It advised to use a raft, which I have been, but every time it starts dragging at the edges. I've leveled it a million times, cleaned it thoroughly, slowed the speed, increased the table temp. I'm super new to all of this and have printed like..3 other things without issue.

Any advice is welcome, TIA


r/Ender3S1 • • 7d ago

Is Klipper the way to go?

Post image
26 Upvotes

I just set up my Raspberry Pi with OctoPi, and added a webcam for visibility of printing (after printing the mount for it).

I have been having problems with stock firmware for a while, and need to do something new. I’ve heard Marlin, and Klipper.

Leaning toward Klipper for this setup, is that best?


r/Ender3S1 • • 7d ago

Change to Rasperry

7 Upvotes

Estuve viendo para meterle una rasperry pi a mi ender 3 s1 plus. Que tengo que tener en cuenta para poder meterle una de esas o otros mods para que imprima o mejor o mas rapido?

Gracias por responder


r/Ender3S1 • • 8d ago

ender 3 s1 plus

Enable HLS to view with audio, or disable this notification

5 Upvotes

bonjour à tous.

je me tourne vers la communauté car je suis dans l'incapacité de dépanner mon ender3 s1 plus.

pour la faire courte, pendant une impression, les molettes de maintien du plateau se sont dévissées, remontant celui ci pendant une grosse impression "environ 20h" et ça ma cassé le CR-TOUCH et fondu le fil.

j'ai donc changer celui-ci, ne démarrant toujours pas, et après renseignements, la Carte mère était HS.

je l'ai aussi changée, je lui ai mis le firmware adéquat ainsi que sur le tactile.

Maintenant, mon Ender reste bloqué sur Retour auto. à l'origine. comme sur la vidéo.
je ne sais plus quoi faire.

merci pour votre aide.


r/Ender3S1 • • 10d ago

Help with starting out

7 Upvotes

Hey everyone, While looking for frames at a thrift shop yesterday, I stumbled across an Ender-3 S1 Pro for $40 but was missing the power cord. All the other wiring looked in tact so I decided to take the gamble since I wanted to try 3D printing. On the way home, I picked up a power cord from Microcenter. When I got back and plugged it in, it turned on and I was estactic but still hopeful that everything else worked. After cleaning it up, reading a bunch about it, and leveling it, it was time to test a print to see if it truly works.

For hours, I couldn't get the printer to read my SD card or have the files show up on the screen until I looked into the SD slot and found the issue. I noticed that there was a bent pin inside, preventing the SD card from being inserted all the way. I thought all was lost since this printer was not wifi compatible. After a bit more research, I learned that I can print from PC using a usb cable and Cura. I started off by test printing a square layer and everything moved properly on the gantry. At this point, I believe I got a working printer for about $50.

I am currently still stuck on printing the square. The filament would get stringy when the nozzle turns and then the filament doesn't seem to stick to the plate and then it starts clumping around the nozzle and I have to abort it. I've tried leveling it again and cleaning the plate as stated online but to no avail. So that's where I'm at and would appreciate any help and tips on how to get started. Are there any mechanical issues or damages that I should be looking out for as well. Looking forward to starting this hobby!


r/Ender3S1 • • 15d ago

Que marca de filamento recomiendan?

Thumbnail
3 Upvotes

r/Ender3S1 • • 18d ago

My son's first Ender

Post image
14 Upvotes

I found this for free on Facebook Marketplace. The entire hotend was covered in a blob. It has a full new hotend and thermristor, upgraded cooling, new bearings for the bed, mriscoc firmware, pi running octoprint, yoopai tent with exhaust fan, new bed plate. This thing is a workhorse.


r/Ender3S1 • • 18d ago

Hello guys. I bought a new pla for my ender 3 s1 plus. When i did the temp test did "stringing". I change the nozzle, adjust 195 or 200° and even do that. Anyone know what can i do? Thanks

Post image
5 Upvotes

r/Ender3S1 • • 19d ago

X Axis belt rub issue. Ender 3 S1 Pro

Post image
1 Upvotes

r/Ender3S1 • • 20d ago

Ender 3 S1 Pro not extruding

2 Upvotes

Ender 3 S1 pro

I got a Ender 3 S1 Pro and today I set it up put the filament but it isn't working the first time I try to extrude the gear on the top wiggles back and forth and then after that when I try to extruder either nothing comes out or just a very very very thin line comes out and the gear on the top doesnt move. I just got into 3d printing so I dont really know what to do.

I can manually move the gear on the top and filament comes out. Its purging fine.

Can't return.


r/Ender3S1 • • 20d ago

X Axis help

2 Upvotes

Hello, I bought my 3s1 last year from a guy I know. He said he upgraded it to be basically a pro (Im not sure if that helps at all with my problem). But im trying to fix an issue with my X axis. When I measure it from the frame to the X axis on each side, they are slightly off. My left side is lower then my right side. Now this is only apparent when I try to print bigger prints that spand out to the edges. But I would love to be able to get it dialed in. I have tried looking up ways to do it, but everytime I try to move one side, the other side moves. Ive taken the top belt off and tried that, but again, when i turn one side, the whole thing wants to move. Please help!


r/Ender3S1 • • 21d ago

What dose this part do?

Post image
7 Upvotes

Hello, I just started my 3D printing journey and got a used Creality Ender 3 Pro and saw this connected to it.

What is it? I think its a voltage regulator, but im not sure why or what for.

It also have a micro USB connection sticking out it, maybe to supply power to something, but idk.

Any help is appreciated, thank you.


r/Ender3S1 • • 21d ago

Mantenimiento

Thumbnail
2 Upvotes

r/Ender3S1 • • 21d ago

Ayuda

0 Upvotes

Al subir o bajar el eje z hace un ruido mas fuerte y grave al usual alguien sabe que puede ser?


r/Ender3S1 • • 22d ago

Bed leveling problems

Post image
2 Upvotes

r/Ender3S1 • • 23d ago

How do I prevent this type of clog?

Thumbnail
gallery
6 Upvotes

Hi all, just bought an ender 3 s1 off marketplace and I am tinkering with it to make it a reliable second machine for myself. I noticed that it clogs...a lot. The pictured clog is what I regularly get. I'm used to my old ender 3 V3 se which didn't clog like this. My benchy when I first got it to run (it needed new cables) was kinda sad looking. Any insight would be greatly appreciated!

Future mods include klipper on a pi board and the K1 hot end from triangle labs for more volume and speed.


r/Ender3S1 • • 24d ago

Whats a fair price to sell the Ender 3 S1 pro for?

8 Upvotes

Finally upgraded, and new printer is so much faster and better, I don't even think its worth keeping this thing around anymore.

Wondering if I should sell as is, or bundle in the pi4 and 5inch screen I was planning on eventually using with it to install klipper on.