The Pathway To Perfect Prints with the Creality CR-10 Mini

Last year I got myself a Creality CR-10 Mini as my first 3D printer. I did a lot of research and decided that the CR-10 Mini gave me the best bang for my buck in the £200 – £400 range, whilst being a slightly more manageable size than its big brother, the CR-10.

I love my CR-10 Mini, but for the first week it was an absolute nightmare – my prints were constantly pulling off the bed and I really struggled with levelling. To save you this pain, I put together the following post to document the steps I took to get perfect prints from my CR-10 Mini.

I’ll cover a bed levelling routine, how to use bed levelling squares, bed adhesion with PVA glue, adding some GCode to the start of each print, and the slicer settings I use.

I didn’t come up with any of this, I’m just putting it all in one place for you as a helpful resource. Without further ado, let’s begin!

Bed Levelling Routine

To get good prints, you must have a level bed. I found the best way to achieve this on my CR-10 Mini was to use a normal sheet of A4 printer paper and lower the printer head over each of the four corners until the head just touches the paper.

You can then adjust the levelling knob underneath each corner until the printer nozzle just tugs gently on the A4 paper. You should still be able to slide the paper backwards and forwards underneath the nozzle but should feel some resistance.

Initially, I did this by selecting “Disable Steppers” on my CR-10 Mini and then physically moving the head around by hand.

However, I then found a routine online that automatically moves the printer head to each corner and moves it up and down. You can find that here:

The above routine will revolutionise your bed levelling!

Also, as a side note, I would highly recommend printing some larger knobs to help level your bed, the default ones are quite painful on the fingers and are hard to finely adjust. Levelling knobs can be found at the following link – they are the same for the CR-10 and the CR-10 Mini:

Bed Levelling Squares

The above bed levelling routine will get your bed level so that it should print well, but how do you check that it actually will print well? To verify that my 3D printer is in a good state to print, I always do a quick print of some levelling squares.

The levelling squares are printed in each of the four corners of the bed and also in the middle. They are only one layer thick (0.2mm), so they don’t use up much material.

The point of these levelling squares is that you can watch how the print performs in each corner and can make live adjustments to the level of the bed (if you need to) so that it’s perfect for printing once you’re finished.

I tend to run this once in every “session” of 3D printing, or after levelling the bed. You don’t need to do it before every print, I think that’s overkill.

You can get a masterclass on live-levelling at this video, it’s quite long at 29 minutes, but is definitely worth watching through:

I couldn’t find any levelling squares for the CR-10 Mini so I used the ones for the CR-10 and stretched them in my slicer (Ultimaker Cura) so that they fit on the bed. If you’d like to have a go of these CR-10 levelling squares, you can download them here:

After doing the levelling routine with paper, and then printing bed levelling squares (a couple of times, if necessary), then your bed will be level and ready to go.

PVA Glue Bed Adhesion

My biggest problem when I first got my CR-10 Mini was bed adhesion. My first print was great because I used the sand papery stuff that came with my CR-10, as you can see below the cat. However, I damaged this paper when scraping the cat off and decided it was not going to work in the long run.

When printing directly onto the glass, I found that my prints kept lifting – I tried glue stick and hair spray, but nothing worked.

Then I saw this video on PVA glue:

Now I know what you’re thinking, using glue feels like cheating and a bit of a hack, but I would disagree – if it’s robust, repeatable and gives you great results then it’s not a hack, it’s just good practice!

The great thing with using PVA glue (apart from it being really cheap) is that you can change the ratio of glue to water to create a bonding strength that suits your needs.  I’m not too exact about it – I use about 25% glue, 75% water but you can experiment and see which works best for you.

To help the glue evaporate, I heat my bed up to 60 degrees Celsius as I apply the glue using a paint brush.

After discovering this trick, it’s part of my standard routine for preparing the bed for a print. I tend to add a little extra glue after every print or so but there is no hard-and-fast rule, just use your sound judgement.

Additional GCode On Print Start

I know messing around with GCode can seem scary, but there’s no magic to it and with a little additional GCode on the start of your prints, you can get a reliable first layer on every print.

If you start printing your object immediately, you might see what can be best described as a “splurge” come out the end of your 3D printer nozzle. There can also be little bits of stringy plastic hanging around the nozzle too.

Both of these can be disastrous for your first layer and can cause an immediate print fail.

To avoid these problems, I added some GCode to the start of every print that extrudes a stripe of plastic down the edge of my bed to clear the nozzle ready for printing. You can see an example of that at the left side of this picture.

It then retracts the filament and moves sharply forward to break off any stringy bits of plastic. The end result is a clean nozzle at the start of every print.

I also add a skirt onto each print in my slicer (Ultimaker Cura) to give a bit more nozzle clearing before the actual print begins. You can see the skirt in the picture below as the line around the perimeter.

I know this seems a lot, but both steps are crucial – the nozzle-clearing extruded stripe, and the skirt.

The additional GCode I use is shown below. I got it from this website here: but had to change some dimensions as the linked code is for a CR-10, whereas I’m using a CR-10 Mini.

Here is the adjusted code that works really well on my CR-10 Mini:

; Pefix G-Code for most 200mm x 200mm 3D printers by to clean nozzle
; Place as start G-Code in Slicer
; Use of this code is at your own risk (no warranties made or implied)
M117 Clean			; Indicate nozzle clean in progress on LCD
;M109 S<your temp>   		; Uncomment to set your own temp [run warmer to clean out nozzle]
M107				; Turn layer fan off
G21				; Set to metric [change to G20 if you want Imperial]
G90                          ; Force coordinates to be absolute relative to the origin
G28                          ; Home X/Y/Z axis
G0 X1 Y0 Z0.15 F9000         ; Move in 1mm from edge and up [z] 0.15mm
G92 E0                       ; Set extruder to [0] zero
G1 Y190 E50 F500             ; Extrude 100mm filiment along Y axis 190mm long to prime and clean the nozzle
G92 E0                       ; Reset extruder to [0] zero end of cleaning run
G1 E-10 F500                  ; Retract filiment by 3 mm to reduce string effect
G1 X3 Y190 Z5 F9000      	; Move over and rise to safe Z height
G1 X3 Y0 Z5 F9000		; Move back to front of bed at safe Z height to shear strings
; Ensure extruder is not reset by other code or it will be 3mm short [see next line also]
;G1 E3 F500					; Uncomment if you believe exruder will be reset
; Recommend turning off SKIRT in the slicer to avoid strings pulled into first layer
; Begin printing with sliced GCode after here

I use Ultimaker Cura as my slicer and it lets you add a GCode routine onto the beginning of every print under Settings > Printer> Manage Printer > Machine Settings > Start GCode

Slicer Settings

To help you out, I’ll record my slicer settings here. In conjunction with the other techniques I’ve presented in this blog post, I get very acceptable results from my CR-10 Mini. By all means, modify these and comment with your results! However, if you’re looking for a good starting point, I hope this serves you well.

I didn’t change many values, but I did tweak my first layer height to 0.15mm (150 microns), whilst keeping my normal layer height at 0.2mm (200 microns). Supposedly having a slightly compressed first layer pushes the plastic into the bed and causes better adhesion.

All the other settings are pretty much the default. I use PLA so 200 degrees Celsius is a standard nozzle temperature, although I do heat my bed up to 60 degrees as I think it gives less warping than printing onto a cold bed. A heated bed is also useful for helping the PVA glue evaporate, as mentioned above.

To help lay down a good first later, I slowed down the initial layer speed to 20mm/s and I always add a skirt around the outside, just to ensure a clean nozzle and a good flow of plastic.

Printing Finished!

That’s the end of this post – I hope you have found it helpful and fingers crossed you can learn from the mistakes I made to avoid some of the initial pain of setting up your CR-10 Mini.

Let me know your thoughts in the comments and thank you for stopping by at Hartley Hacks.

Happy printing,


Leave a Reply