3d Print Guide_Walk Through

First of all, congratulations to a great machine!
If you have any suggestions to this topic, feel free to send me a PM!

You are new to 3d printing?- Be patient. The whole thing is very complex and just little adjustments will make the difference from failed to pretty prints.

Start with easy, little things to create (1-3hours i would suggest) . Going to print the first time and then getting a 24h print on, maybe failes.

There is a lot to learn, if it didn´t work for a long time, cool off a bit and try some time later.

Today the snapmaker team has a lot to bugfix in the firmware, be sure, using the latest firmware before facing a problem. Also setup instrucions and how to´s on the support site will be important for you!


There is also a great WIKI from @Tone, thank you for that!
There are a huge amount of useful links. USE IT!

It would be really nice, just reading your request and answer it. The most time is spent with asking about all neccessary things:


Here we go, if you are prepared to print and it sticks so far you will have to face other problems.
DIY means do it yourself, you have to figure out and solve your problems on your own. Sure you could post in the forum but PLEASE give all information which is needed.

Here are some examples:

  • Type of printer
  • Enclosure used?
  • which filament do you use? (There are 1. the kind of filament, 2. the brand, 3. provided Temp. to print) Like i use Janbex PETG transparent, provided printtemp. 190-220°C, btw i print it with 240-250°C, there is less stringing.
  • which slicersoftware do you use? (This means, slicing software where you put your model in, such as Snapmaker Luban, JS, Slic3r, Cura, Simplify3d, …)
  • what settings do you use? (Simple: want to know them all; Advanced: if you know it is a retraction problem, just the relevant data is ok)
    – Quality Profile if using SnapmakerJS or Luban with original settings
    – Flow, if changed
    – Print Temp.
    – Print Temp. first layer
    – Bed Temp.
    – Bed Temp. first layer
    – Layer height
    – Layer width, first layer
    – Wall thickness
    – Top thickness
    – Bottom thickness
    – Infill
    – Print speed, first layer
    – Print speed, outline
    – Print speed, inline
    – Travelspeed
    – Retractin enable
    – Ratraction at next layer
    – Retraction distance
    – Retraction speed
    – Z-Hop when retract
    – Use Skirt, Brim or Raft?

If you need help or just want to know more, please make some screenshots or photo´s and or some searching in the www or forum.
If you are not able to upload provided data, like .stl´s or gcode, upload it to a oneclickhoster, to your google-drive, dropbox, whatever and share it with us. (oneclickhoster, google it :wink: )
– Pictures (sharp and good to see)
– stl´s
– gcode


At this point, as a newb, i would not change anything on the hardware setup. My machine ran without any issues for more than 2 years. If you have issues which can´t be solved through software you need to calibrate your hardware.

Here is the support article about bed leveling the Snapmaker Original:
And articel if it won´t get stick for the Snapmaker Original:

There are several threads on the forum (and they are not finished yet?) about bedleveling the SM2.0:

Check Level Hot.gcode - #8 by Tone

How to do a larger than 3 x 3 matrix level

On achieving a perfect level


There are several 3d printer test´s on thingiverse or where else you get your .stl´s from.

Here are a few to check your settings condition: (Every filament may need a bit other settings!)

  1. Temperature Tower from Simplify3d on thingiverse
    Temperature Tower by Simplify3D - Thingiverse

    Here are some gcodes, print time 1,5h; 8g filament:
Snapmaker Original

Temperature Tower 190-225°C: SM-Original_Temp_Tower_30mm-s_retract6,5mm25mm-s_RAFT_190-225°C.gcode (1.6 MB)
Temperature Tower 230-265°C: SM-Original_Temp_Tower_30mm-s_retract6,5mm25mm-s_RAFT_230-265°C.gcode (1.6 MB)

Snapmaker A150

Temperature Tower 190-225°C: SM-A150_Temp_Tower_30mm-s_retract6,5mm25mm-s_RAFT_190-225°C.gcode (1.6 MB)
Temperature Tower 230-265°C: SM-A150_Temp_Tower_30mm-s_retract6,5mm25mm-s_RAFT_230-265°C.gcode (1.6 MB)

Snapmaker A250

Temperature Tower 190-225°C: SM-A250_Temp_Tower_30mm-s_retract6,5mm25mm-s_RAFT_190-225°C.gcode (1.7 MB)
Temperature Tower 230-265°C: SM-A250_Temp_Tower_30mm-s_retract6,5mm25mm-s_RAFT_230-265°C.gcode (1.7 MB)

Snapmaker A350

Temperature Tower 190-225°C: SM-A350_Temp_Tower_30mm-s_retract6,5mm25mm-s_RAFT_190-225°C.gcode (1.7 MB)
Temperature Tower 230-265°C: SM-A350_Temp_Tower_30mm-s_retract6,5mm25mm-s_RAFT_230-265°C.gcode (1.7 MB)

  1. Ooze retraction test by [vector]
    It is a nice little test which takes only minutes, you can see if underextruding or retraction faults.
    Quick Retract/Ooze Test by vector - Thingiverse

    ooze_retract_test_by_vector.stl (139.0 KB)

  2. XYZ 20mm Calibration Cube by [iDig3Dprinting]
    Nice test to see filament shrinkage or your extruder or axis are not calibrated right.
    XYZ 20mm Calibration Cube by iDig3Dprinting - Thingiverse

    xyzCalibration_cube.stl (6.7 KB)

  3. Benchy boat printer test [CassiusKatt]
    Nice overall test, bridge, overhang, small walls, little details, …
    Benchy boat printer test by CassiusKatt - Thingiverse

  4. MINI All In One 3D printer test by [majda107]
    *MINI* All In One 3D printer test by majda107 - Thingiverse

    3D_printer_test_mini.STL (2.3 MB)

  5. FDM 3D Printer Assessment (Autodesk & Kickstarter)
    What score did you get?
    GitHub - kickstarter/kickstarter-autodesk-3d: Kickstarter Autodesk 3D Printer Evaluation

    ksr_fdmtest_v4.stl (597.4 KB)


Hey, so good so far.
There comes something out but it´s not perfect?

Check following failure guides to face your problems (or search the www for videos :wink: :

Print Quality Guide




From time to time you will need some response from the printer.
In this case you have to connect it through USB to your computer.
Marlin is the program language which is the machine running, saying in gcode go to x5 y5 and make this and this.
Gcode | Marlin Firmware

Attention, Snapmaker doesn´t use all of the marlin gcode commands and even has made some own things.
Official doc about gcode´s used at snapmaker original:
G-code Reference for Snapmaker - Google Sheets

If you enter a M503 then you can view your current system settings:(unfortunately Snapmaker Luban supports no copy and paste of the terminal yet)

M503 on my Snapmaker Original

Recv: echo:Steps per unit:
Recv: echo: M92 X400.00 Y400.00 Z400.00 E92.60
Recv: echo:Maximum feedrates (mm/s):
Recv: echo: M203 X300.00 Y300.00 Z5.00 E25.00
Recv: echo:Maximum Acceleration (mm/s2):
Recv: echo: M201 X1000 Y1000 Z100 E10000 X_CNC100 Y_CNC100 Z_CNC100 E_CNC100 X_LASER3600 Y_LASER3600 Z_LASER3600
Recv: echo:Accelerations: P=printing, R=retract and T=travel
Recv: echo: M204 P1000.00 R1000.00 T1000.00
Recv: echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s), Z=maximum Z jerk (mm/s), E=maximum E jerk (mm/s)
Recv: echo: M205 S0.00 T0.00 B20000 X20.00 Z0.40 E5.00
Recv: echo:Home offset (mm):
Recv: echo: M206 X-4.50 Y-5.50 Z-5.40
Recv: Mesh bed leveling:
Recv: echo: M420 S0 X2 Y2
Recv: echo: M421 X5.00 Y5.00 Z0.25
Recv: echo: M421 X120.00 Y5.00 Z-0.50
Recv: echo: M421 X5.00 Y120.00 Z0.00
Recv: echo: M421 X120.00 Y120.00 Z-0.55
Recv: echo:Z2 Endstop adjustment (mm):
Recv: echo: M666 Z0.00
Recv: echo:PID settings:
Recv: echo: M301 P22.20 I30.00 D18.00 C100.00 L20
Recv: echo:Filament settings: Disabled
Recv: echo: M200 D3.00
Recv: echo: M200 D0
Recv: ok

If you update your firmware your edit will be lost.


If you are at this point, be sure to know what you do. There is no guarantee if you damage your machine! Copy your original Data of M503 response and save it to get easily back!
There are a huge amount of tutorials out there in the web.

Normally i would suggest you not to change any settings if there is no problem.


If you want to pid tune, you should generally think about which sort of filament do you take the most of your prints. I´m using the most of the time PLA at about 210°C with no printpartcooler.

PID autotune | Marlin Firmware

If you use the most of the time a printpartcooler i suggest you to run the fan at 100% for pid tuning.

For running the Partcoolerfan with 100% enter: M106
If you want to turn it off again enter: M107

Enter following to the terminal for pid tuning: M303 C10 E0 S210
[M303=PID Tuning] [C10=amount of testing(10times)] [E0=Extruder] [S210=Temperature]
If you have done so, you have to wait a few minutes, till following response comes (Your values will be different!):

Recv: Classic PID
Recv: Kp: 9.06
Recv: Ki: 1.57
Recv: Kd: 13.05
Recv: PID Autotune finished! Put the last Kp, Ki and Kd constants from below into Configuration.h

Now you see my new P9.06 I1.57 D13.05 values.

To write it to the machine we enter: M301 P9.06 I1.57 D13.05 E0
Now you have to save your configuration entering: M500

this is currently not available, you would have to edit the firmware configuration.


If you ran into extrusion issues like its permanently over/underextruding you should have a look at your extrusion settings.

If you enter M503 in the terminal you would find following line:
Recv: echo:Steps per unit:
Recv: echo: M92 X400.00 Y400.00 Z400.00 E92.60
[E92.60 is your extrusion factor]

Now you have to mark the filament 120mm over the entry of the print head.

Give the nozzle some heat (edit the S210 to your needed value!) entering: M104 S210
[M104=Set Nozzle Temp] [S190=Temperature set to 210°C]

Set the extruder to relative mode entering: M83
Now, if the printhead is hot, we want to extrude 100mm of filament entering: G1 E100 F100
[G1=linear move] [E100=extrude 100mm] [F100=speed/min this will take a while]

At the end of extruding, you will see the mark is “near” over the printheadentry now.
If you messure from the entry to your mark 20mm, everything is great.
If you messure just 10mm, it´s overextruding (this means there comes too much out)
If you messure 30mm, it´s underextruding.

Now we have to set it up.- We know the old value, in my case E92.60
For this example we messured the mark 15mm over the entry.

Now we have to calculate:
[marked] - [messured] = [extruded]
120mm - 15mm = 105mm

[old E steps/mm] x [Old 100mm] = [old steps taken]
92.6steps/mm x 100mm = 9260steps

[old steps taken] / [extruded] = [new E steps/mm]
9260steps / 105mm = 88.19steps/mm

Now we have to send the new value of E to the machine entering: M92 E88.19
Save it again with: M500

Here is a guide this will help you, if needed:

VIRTUAL BED LEVEL **Snapmaker Original**

If your Touchscreen is broken on your Snapmaker Original you could level your bed manually.


In the M503 you will find these lines:

Recv: Mesh bed leveling:

M421 X5.00 Y5.00 Z0.25
M421 X120.00 Y5.00 Z-0.50
M421 X5.00 Y120.00 Z0.00
M421 X120.00 Y120.00 Z-0.55

These lines are my Z-Offsets. It is not that easy to edit, like write the same with difference in Z.

There are 4 calibration Points, X5Y5; X120Y5; X5Y120; X120Y120.

First of all, we have to drive to the Homeposition, entering: G28
Now the printhead to the needed position, entering: G0 X5 Y5 Z0.6
Now we lower the head till the paper sticks, using: Z0.5
Now we lower the head till the paper sticks, using: Z0.4
Now we lower the head till the paper sticks, using: Z0.3

OK, Position is great, the last position was “Z0.15”, write it down. X5 Y5 Z0.15, 1st point check.

ATTENTION, now up the head, entering: Z0.6
This is to do an all 4 points, go back to START and enter the next calibration point!

After having all points we have to write it to the firmware:

X5 Y5 Z0.15 : calibrate this position to Z0.15, entering: G29 S3 X1 Y1 Z0.15
X120 Y5 Z0.6 : calibrate this position to Z0.6, entering: G29 S3 X2 Y1 Z0.6
X5 Y120 Z0.7 : calibrate this position to Z0.7, entering: G29 S3 X1 Y2 Z0.7
X120 Y120 Z0.8 : calibrate this position to Z0.8, entering: G29 S3 X2 Y2 Z0.8

After this we have to save our values entering: M500
Control your inputs using M503 or G29S0 to see if it is the same on your paper.


Be sure you know what to do, if you are not, get in touch to the support.
I see no problem opening the printhead to change the nozzle.- This is part of the product, but if you damage the pcb in the printhead this would harm your warranty.
Ultimately, i think, it´s a DIY machine, you could repair and service yourself, if you are able to.


FYI Repair tutorial for Snapmaker Original

9. Autodesk Kickstarter FDM Test A150 Prototype

The test geometry is a single, consolidated STL file that tests a printer’s dimensional accuracy, resolution, and alignment. We tested it on the Snapmaker A150 prototype and printed with a layer height of 0.2 mm.

Source: https://github.com/kickstarter/kickstarter-autodesk-3d
Source: https://github.com/kickstarter/kickstarter-autodesk-3d

Timelapse Video

3D Printing #4

  • Model: Snapmaker A150
  • Filament: Snapmaker PLA
  • Nozzle Temperature: 230℃
  • Heated Bed Temperature: 60℃
  • Layer Height: 0.2 mm
  • Printing Speed: 40 mm/s
  • Time: 5h

Um diesen Inhalt anzeigen zu können, brauchst du einen HTML5-kompatiblen Browser. Project-Video-Thumbnail

1. Dimensional Accuracy

To assess dimensional accuracy, measure each tier of the dimensional accuracy stack and record the absolute different between the target and the measured dimensions in a table.

  • Record a “1” if the magnitude of the overall average error is greater than 0.40mm.
  • Record a “2” if the magnitude of the overall average error is between 0.31 and 0.40mm.
  • Record a “3” if the magnitude of the overall average error is between 0.21 and 0.30mm.
  • Record a “4” if the magnitude of the overall average error is 0.11 and 0.20mm.
  • Record a “5” if the magnitude of the overall average error is between 0.0 and 0.10mm.

Snapmaker A150 earned a score of 5 for this test.

2. Fine Flow Control

Using a pair of calipers, measure the height of the shortest spire on the top of the test print. Visually inspect for threads of material connecting the spires. Measure the shortest spire.

  • If the spires are less than 30mm long, assign a 0.
  • If the spires are greater than 30mm, but there is stringing between them, assign a 2.5.
  • If the spires are greater than 30mm long and there is no stringing between them, assign a 5.

Snapmaker A150 earned a score of 4 for this test.

3. Fine Negative Features

Attempt to remove all the pins from their holes using fingers (no tools).

  • Record a “0” if no pins can be removed.
  • Record a “1” if 1 pin can be removed.
  • Record a “2” if 2 pins can be removed.
  • Record a “3” if 3 pins can be removed.
  • Record a “4” if 4 pins can be removed.
  • Record a “5” if all pins can be removed.

Four pins were removable from the test print. But the pin with the smallest tolerance failed. For this test, the Snapmaker A150 earned a score of 4.

4. Overhangs

Inspect the overhang surfaces.

  • Record a “1” if the printer compiled the geometry but dropped loops and infill on the 15, 20, and 30 degree overhangs.
  • Record a “3” if only the 15 and 20 degree surfaces differ from the 45 degree overhang.
  • Record a “4” if only the 15 degree overhang differs from the 45 degree overhang.
  • Record a “5” if there the surface finish between all four overhang surfaces is equivalent.

Snapmaker A150 earned a score of 3 or 4 for this test.

5. Bridging

Inspect for contact between bridges and the surface beneath each.

  • Record a “1” if more than 3 are in contact with the surfaces beneath them.
  • Record a “2” if 3 bridges contact the surfaces beneath them.
  • Record a “3” if 2 bridges contact the surfaces beneath them.
  • Record a “4” if 1 bridge contacts the surface beneath it.
  • Record a “5” if no bridges contact the surfaces beneath them.

For this test, there are 3 bridges contact the surfaces beneath them. So Snapmaker A150 earned a score of 2.

6. XY Resonance

Visually inspect the X and Y ringing features, illuminating the test print from the side to highlight any ringing captured in the print.

If rippling in the X or Y axis can be observed at or past three hash marks, record a “0”, otherwise, record a “2.5”.

Snapmaker A150 earned a score of 2.5 for this test.

7. Z-axis alignment

If a layer registration effect with a period equal to that of the leadscrew is visible on the pillar supporting the fine positive features test, record “0,” otherwise, record “2.5.”

You can check out the test result in the video above, from 01:00 to 01:07. There’s no periodic ripple in Z-axis. The layers are stacked properly with the same layer height. So Snapmaker A150 earned a score of 2.5 for this test.


Sum the results of each section of the test protocol. The highest possible score is 30, indicating a very well-calibrated system.

Here’s a breakdown of Snapmaker A150’s results:

Dimensional Accuracy: 5 of 5 points

Fine Flow Control: 4 of 5 points

Fine Negative Features: 4 of 5 points

Overhangs: 3 of 5 points

Bridging: 2 of 5 points

XY Resonance: 2.5 of 2.5 points

Z-Axis Alignment: 2.5 of 2.5 points

Overall, the A150 prototype scored a total of 23 out of 30 points.

Thank you for reading!
Please make sure sending me a PM if there is anything you want to see added.

Greets from Austria


This is well appreciated. It can be very useful to beginners!

1 Like

Very much appreciated thanks. Would love to see an update for the Snapmaker 2!

1 Like

I tried the PID today. Several attempts resulted with an error message?!

I guess you have a snapmaker 2.0.
If this is the case, there are a few threads about pid tuning, where people have the same issues like you.
Normally I would say, never change a running system, I had no problem so far with the hotend heat. - Many users suggest to give the thermistor a bit of thermal paste for better heat control. - search for extruder calibration is a must, in the forum.

1 Like

Yes, it’s a 2.0. Already did extruder calibration and applied thermal paste.

@xchrisd thanks for doing this - complete noob at this and tried multiple searches to read about starting, glad i came across yours

How do i run the temp tower that is listed in the post?

You can import gcode into luban and press play, or you can put it on a USB and load it from the touchscreen

1 Like

As buzzplop wrote, just print it.
Please have a look at the first layers to prevent any damage to your machine, I give you no warranty about the code.

i was able to bring the code into through the work space, i was able to send it to the machine via wifi and a usb stick. but it would not trigger the nozzle to print. im having horrible strining and i have set the retraction setting from 1.5 all the way up to seven the higher i got the better the result but it was still pretty rough. i am using the snap maker pla white and black. i have tried changing the temp slow down the work speed. i am a complete noob this is the first 3D printer i have ever seen in person. so after reading i see that i need to make a temp tower, also i see that there isnt a way to do it in Luban that im aware of other then manually creating the code. Please any help would be appreciated. i have yet to get a good print out of it, even the sample file had holes and was just not impressive. ooh and yes i have calibrated and changed the extruder.

1 Like

I find myself returning to the calibration guides in https://teachingtechyt.github.io/calibration.html quite often.

Skip the PID calibration though, others have reported the machine will crash


i know im new to this but im just worried about messing something up. im just going to go through all the tabs and complete them one at a time. (except for the PID). when i go to create the Gcode do im not sure of the values that i need to put in. for instance additional start Gcode. also dow to the ABL would i choose the restore saved mesh. again i know im a pain just terrified of breaking something that was so expensive. i do promise i am a quick study. and again Buzzlop, and Xchisd thank you all so much for taking the time to help a newbie out.

No ABL is the correctest choice and equivalent to restore mesh which issues an M420 S1. It’s built in to the machine startup and does not need to be manually restored.

Many machines do not do this automatically and require probing the bed at each startup. Also many other machines can store a mesh, but do not load it on startup.

The Snapmaker, when booted with the 3DP toolhead, automatically issues an M420 S1, which can be verified at startup by just typing M420. It will say something to the effect of levelling enabled.

Don’t be worried about breaking something too bad - firmware wise at least. You can always M502 factory reset.

As far as other choices like the ABL you mentioned, yea, just keep asking!

1 Like

hey thank you for responding. im just a little confused. would i paste this in the first section on the first layer its acking for additional start Gcode,

would i click the additional start gcode and put

G28 ;Home
G1 Z15.0 F6000 ;Move the platform down 15mm
G0 X-4 Y-1 Z0
G92 E0
G1 F200 E20
G92 E0

leave the most deltas unchecked, 320 for the bed x dem, 350 for the bed Y leave extra margin from edge just 0

temp im fine with leaving the same for now
No Abl
and 1MM for retraction.

again thank you

Yea you can paste that there. You don’t have to, that just homes and primes each time. Don’t check 0,0 at center, 0,0 on this machine is the front left corner. The dimensions will be used to calculate the center of the bed, so as long as you’re close the print will be in the center.

Rest looks good!

ok i just had the same problem when i tried loading a different Gcode. i open up luban, ope gcode file select what i downloaded, and sent it to the printer, once there i start the print and the nozzle nor the heated bed heats up.

Is 28 a typo? All commands must start with G or M. G28 is the home command: https://marlinfw.org/docs/gcode/G028.html

So you’re running from the touchscreen? If there’s no invalid commands it should be working. You could remove your preamble and see if that changes anything. Other than priming it’s not doing much, won’t hurt to remove.

ok i removed the addition start code. and now i have the bed heating up but not the nozzle

1 Like

yes from the touchscreen.
do i need to hook up a computer to the machine to manually run the gcode.