# How do you make a new CR-10 Smart do auto bed-levelling?

I have just bought a Creality CR-10 Smart 3D printer, and - as part of the rite of passage of newbies - I am struggling with getting a usable initial layer. Whilst trying to make sense of what I was seeing in the net and correlating it with what I was experiencing with my printer, I thought to check the printer's credentials (I had assumed it was a recent model). However, looking at the information on the LED screen, I see:

Machine type CR-10 Smart
Firmware version HW 1.0.6
Screen version T18
Hardware version DWIN 4.3

Can anyone comment on whether this is recent or ancient? Is it a V1 or a V2?

As a software engineer of several decades standing, but a complete newbie to 3D printing, I'm suffering from culture shock, and I'm struggling to understand why my printer doesn't just work "out of the box" like my line printers do.

I find it particularly difficult sorting out the information about Creality's various CR-10* models, partly because of the naming conventions, but chiefly because my CR-10 Smart doesn't look like any that I have seen referred to anywhere in the net. I was told that the CR-10 Smart had auto bed levelling (ABL) built in, but when I search for CR-10S ABL I only find stuff about add-ons like BLTouch, and nothing about the CR-10 Smart with built-in ABL.

Add into the mix the now traditional Internet problem that the date of web pages and whether they are still relevant is often unclear.

Then I found a Youtube video by WillCaddy, which suggested that CR-10S printers with Creality firmware do not have ABL enabled, and that to get functioning ABL you had to install TH3D.

Is this true?

If anyone can help me with any of this, I would be very grateful. I am working my way slowly through Michael Laws' excellent "Teaching Tech" channel, but I'm impatient...

Leveling (actually scanning the surface) can be done manually prior to executing a print job.

From the graphical interface you can command the Automatic Bed Leveling on the CR-10 Smart (Settings -> Level):

It appears that the print head is sensitive to the pressure the head (nozzle) exerts to the build surface.

The procedure start in the middle of the bed for you to determine the nozzle to touch the build surface. The printer will then proceed the scanning of the surface (25 point in the video1)). This procedure is done prior to printing a print job and stores the scanned surface into memory. Unless you hit the gantry, put extreme pressure on the build surface or move the printer to a different location, this scanned level should at least last for several prints. Alternatively, you could add G-code G29 to your start G-code which will cause it to scan the surface before each print, see for details Using auto-bed leveling, do I need to initiate G29 before every print?.

So far, this is how it is supposed to work! Does it actually work?

According to this review,

it clearly does not compensate for the surface geometry. The reviewer hints that this is "not optimized or not activated in the firmware".

to get functioning ABL you had to install TH3D.

Is this true?

So activating this requires a firmware update to become active. From a notice by Creality on this leveling issue:

After receiving feedback from a number of users regarding the leveling capabilities of the CR-10 SMART 3d printer, Creality's product researchers quickly responded with an update to the CR-10 SMART firmware.Following are the Tips for better leveling.

One-click upgrade to the latest firmware version v1.0.10.

it appears that it is fixed if you update to the firmware version v1.0.10 released at 10 Sept., 2021.

1) It is not advised to do a 25 point scanning of the surface before each print, this takes about 3 minutes. These higher scanning grid points meshes are useful for once in a while scanning. The validity of the use of 25 point is also up for debate, the build surface is glass which is inherently flat due to its production process, less points may work as well to scan the print plane/mesh.

• Thanks for this. I have tried to upgrade the firmware to v1.0.10, but I've only succeeded in bricking the machine. This appears to be par for the course from other comments on the net :-( It looks as though the SD card has to be formatted on a PC for the upgrade to work, and I only have Macs and Linux. I'm going to bed now and I'll look at it again tomorrow. Feb 16 at 2:05
• I have managed to unbrick my printer and install firmware version v1.0.10. I have updated the ABL mesh using OctoPrint's Bed Visualizer. I noticed that the Creality Slicer does not include G29or M420 S1by default, so I've added the latter to the Slicer's configuration. However, there is no substantial improvement in the first layer: the filament is not sticking to the bed, so I assume the print head is still too high. The control line output before the print is perfect, but the gcode content comes out badly. Feb 18 at 23:18
• Aha! Using Teaching Tech's 3D Printer Calibration First Layer Generator I get much better results (30% perfect, 60% head too low, 10% filament not sticking). I can proceed again from here. I'm awarding @Oscar the points! Thanks! Feb 18 at 23:43
• @StephenWinnall Consider buying an adhesive like 3DLAC or an equivalent, this sticks so well that even the final percent will stick. I'm not affiliated with the brand, just sharing years of usage. I never ever had problems getting filament to stick except for the first time printer use in 2016 which had ad tape from the OEM on it, ditched it the same day and printed directly into Aluminium heatbed with 3DLAC. I also use is on all my glass build surfaces.
– 0scar
Feb 18 at 23:58
• I've found out what was causing me most of my problems. It may not have been ABL after all. For some reason, I assumed 0.4mm was a kind of standard for a hot end nozzle, so I was using that in my settings, also because I thought my printer had a 0.4mm nozzle. However, closer examination reveals that the nozzle is at least 1.0mm, if not 1.5mm. I simply used what was on the printer when it was delivered. There are two replacement nozzles that look like they might be 0.4mm. Not surprisingly, once I told the slicer the correct nozzle size, things started working properly :-) Feb 20 at 2:01

@0scar asked me to post this answer and accept it (see the comment above). I'll try to describe everything I did, most of which helped a little bit but didn't really solve the problem. Bear in mind that I'm a complete newbie to 3D printing.

1. Although I knew my printer was a Creality, I didn't know that a CR-10 Smart is not the same thing as a CR-10S. Mine is a CR-10 Smart.
2. I upgraded the firmware from 1.0.7 to 1.0.10. I managed to brick the computer entirely doing this, but I managed to fix it in the end. I found this post particularly helpful whilst doing this.
3. I used OctoPrint's Bed Visualizer to update the mesh for my printer's ABL. The mesh is stored in EEPROM, so this doesn't have to be done often.
4. I didn't understand how OctoPrint's Bed Visualizer managed to produce the shape for the print plate that it did, so I checked the bolts under the glass plate, discovered they were loose, tightened them up, re-ran the mesh generation and got a considerably more plausible plate geometry.
5. I discovered that Creality Slicer (a variant of Cura) does not include G29 or M420 S1 in the G-code that it generates by default for the CR-10 Smart, so I added M420 S1 to the printer's machine settings which tells it to use the mesh stored by Bed Visualizer.
6. I have been following Teaching Tech's 3D Printer Calibration and, after upgrading the firmware, I started setting up my first layer generation and got a reasonable result. At this point I thought the problem was solved.
7. I celebrated by printing a 3D Benchy, but that was a sobering experience and I returned to Teaching Tech.
8. The next step in Teaching Tech's 3D Printer Calibration that I tried was temperature tuning. That was a complete disaster, so I moved on to retraction tuning, since the Benchy had lots of stringing. Retraction tuning was also disastrous, so I decided to stand back and think a bit.
9. For some reason I looked more closely at my printer's nozzle. For some reason, I assumed 0.4 mm was a kind of standard for a hot end nozzle, so I was using that in my settings, also because I thought my printer had a 0.4 mm nozzle. However, closer examination revealed that the nozzle is at least 1.0 mm, if not 1.5 mm. Not surprisingly, once I told the slicer the correct nozzle size, printing improved dramatically.

In the meantime, I believe that my basic problem was always the nozzle size, though – as you can see above – there were a number of other things that I corrected on the way.

So now @0scar and I believe that the problem addressed in the title has been solved, and – in accordance with @0scar's wishes – I will accept my answer, though his input was instrumental in finding the solution.

I shall now devote myself to the rest of Teaching Tech's 3D Printer Calibration.