# Bed level from a PC

**URL:** <https://forum.snapmaker.com/t/bed-level-from-a-pc/5814>\
**Category:** Original (3-in-1)\
**Created:** [April 3, 2020, 5:11pm UTC](https://forum.snapmaker.com/t/bed-level-from-a-pc/5814 "2020-04-03T17:11:19Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![redtree68](https://avatars.discourse-cdn.com/v4/letter/r/a88e57/32.png) [@redtree68](https://forum.snapmaker.com/u/redtree68)\
**Post date:** [April 3, 2020, 5:11pm UTC](https://forum.snapmaker.com/t/bed-level-from-a-pc/5814/1 "2020-04-03T17:11:19Z")

</div>

The control module on my Snapmaker original does not show a display anymore.  
The printer seems to still work when using a PC connected to it.  
I just can’t seem to level the bed correctly.  
Does anyone know the commands to level the bed from a computer instead of using the module?  
Does anyone know of _common_ problems with the control module that might make it repairable?  
(I tried firmware upgrade, resetting the module, re-powering the system)

---

<div class="post-metadata">

**Author:** ![xchrisd](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.snapmaker.com/xchrisd/32/1503_2.png) [@xchrisd](https://forum.snapmaker.com/u/xchrisd)\
**Post date:** [April 3, 2020, 5:22pm UTC](https://forum.snapmaker.com/t/bed-level-from-a-pc/5814/2 "2020-04-03T17:22:21Z")

</div>

Hey @redtree68

**READ IT WELL, I GUARANTEE FOR NOTHING, Z-HOP FIRST BEFORE XY-MOVEMENT**  
Guide for remote Leveling Snapmaker Original:  
[https://forum.snapmaker.com/t/calibration-in-snapmakerjs/5034/2?u=xchrisd](https://forum.snapmaker.com/t/calibration-in-snapmakerjs/5034/2)

---

<div class="post-metadata">

**Author:** ![Edwin](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.snapmaker.com/edwin/32/13481_2.png) [@Edwin](https://forum.snapmaker.com/u/Edwin)\
**Post date:** [April 8, 2020, 1:54pm UTC](https://forum.snapmaker.com/t/bed-level-from-a-pc/5814/3 "2020-04-08T13:54:51Z")

</div>

Hi @redtree68, what is the status of the touchscreen? Can it start normally or keep it blank? Snapmaker Original cannot run a calibration with Snapmakerjs, since it need some compicated modification. The only thing is that you need to get the touchscreen work or have a new one.

---

<div class="post-metadata">

**Author:** ![lmagoulas](https://avatars.discourse-cdn.com/v4/letter/l/53a042/32.png) [@lmagoulas](https://forum.snapmaker.com/u/lmagoulas)\
**Post date:** [September 15, 2026, 6:46am UTC](https://forum.snapmaker.com/t/bed-level-from-a-pc/5814/4 "2026-09-15T06:46:20Z")

</div>

Hi @xchrisd

You and this link helped me greatly 5 years ago, I salvaged an original from the garbage. Anyway I could use the info in this link, specifically the gcode command for bed level, any chance you remember it?

The link seems broken, any help would be great

Thank you

---

<div class="post-metadata">

**Author:** ![lmagoulas](https://avatars.discourse-cdn.com/v4/letter/l/53a042/32.png) [@lmagoulas](https://forum.snapmaker.com/u/lmagoulas)\
**Post date:** [September 15, 2026, 4:52pm UTC](https://forum.snapmaker.com/t/bed-level-from-a-pc/5814/5 "2026-09-15T16:52:54Z")

</div>

I believe the code I want was something like:

M421 (or M420) X1 Y1 Z(my offset which is -4.5 for me)

M421 X1 Y2 Z-4.50

M421 X2 Y1 Z-4.5

M421 X2 Y2 Z-4.5

From memory I beleive there might have been an S1 or S0 in the code as well.

---

<div class="post-metadata">

**Author:** ![xchrisd](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.snapmaker.com/xchrisd/32/1503_2.png) [@xchrisd](https://forum.snapmaker.com/u/xchrisd)\
**Post date:** [September 15, 2026, 5:54pm UTC](https://forum.snapmaker.com/t/bed-level-from-a-pc/5814/6 "2026-09-15T17:54:48Z")

</div>

Hey, glad to help 😉  
For me the link isn’t broken, may try again?  
[https://forum.snapmaker.com/t/calibration-in-snapmakerjs/5034/2?u=xchrisd](https://forum.snapmaker.com/t/calibration-in-snapmakerjs/5034/2)

---

<div class="post-metadata">

**Author:** ![lmagoulas](https://avatars.discourse-cdn.com/v4/letter/l/53a042/32.png) [@lmagoulas](https://forum.snapmaker.com/u/lmagoulas)\
**Post date:** [September 15, 2026, 11:05pm UTC](https://forum.snapmaker.com/t/bed-level-from-a-pc/5814/7 "2026-09-15T23:05:02Z")

</div>

Yes, I noticed you’re quite helpful on here, kind of inspire me to be more helpful as well.

Interesting, I use Brave browser and I just tried on Chrome and when I click the link it says;

" **Oops! That page doesn’t exist or is private."**

Maybe it is set to private?

Again, thank you for your help.

---

<div class="post-metadata">

**Author:** ![lmagoulas](https://avatars.discourse-cdn.com/v4/letter/l/53a042/32.png) [@lmagoulas](https://forum.snapmaker.com/u/lmagoulas)\
**Post date:** [September 16, 2026, 4:45am UTC](https://forum.snapmaker.com/t/bed-level-from-a-pc/5814/8 "2026-09-16T04:45:22Z")

</div>

Also just tried it on my cell phone and the wayback. Strange because I remember opening this link 5 years ago, the only thing I can think of is the webmaster put links on private for new members.

If there is any chance you or anybody reading this could copy and paste the text from that guide on here (not sure if that goes against forum etiquette) or send me in message.

I would be grateful.

---

<div class="post-metadata">

**Author:** ![MarkJ](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.snapmaker.com/markj/32/29732_2.png) [@MarkJ](https://forum.snapmaker.com/u/MarkJ)\
**Post date:** [September 16, 2026, 11:39am UTC](https://forum.snapmaker.com/t/bed-level-from-a-pc/5814/9 "2026-09-16T11:39:06Z")

</div>

Unfortunately, not working for me either

---

<div class="post-metadata">

**Author:** ![xchrisd](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.snapmaker.com/xchrisd/32/1503_2.png) [@xchrisd](https://forum.snapmaker.com/u/xchrisd)\
**Post date:** [September 16, 2026, 6:04pm UTC](https://forum.snapmaker.com/t/bed-level-from-a-pc/5814/10 "2026-09-16T18:04:48Z")

</div>

Okay, thanks for letting me know, here is the copied text of my initial post:  
Hey @dskerr , if you have followed the last post of your other topic

> [@Heating uncontrolably](http://forum.snapmaker.com/t/heating-uncontrolably/4723/9):
>
> Did you read this:

and you want to adjust or calibrate your machine anyways you could send the snapmaker marlin commands over the terminal. maybe look at this, [https://marlinfw.org/docs/gcode](https://marlinfw.org/docs/gcode)

COMMAND: **M503** shows you actual calibration settings:  
Send: N78 M503\*26  
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 S1 X2 Y2  
**Recv: echo: M421 X5.00 Y5.00 Z0.25** //this lines are the Z offsets per position  
**Recv: echo: M421 X120.00 Y5.00 Z-0.50** // there are four positions on the bed where it is calibrated  
**Recv: echo: M421 X5.00 Y120.00 Z0.00** // these are my current offsets  
**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 want to calibrate your bed:

G28 : home axis  
M420 S1 : set mesh adjustment (calibrate bed height) active  
G29 S0 : shows you the actual bed mesh

i have figured out, it is complicated 😅  
my printer doesn´t go to the right points of messurement.  
my way works like this:  
**ATTENTION give the Z some height at every positon NOT to collidate with the bed!**

**i give you no warranty or something else, if you destroy something, i am guilt-free**

go to your position, i.e. X5 Y5 Z1  
now, turn your Z down till the paper works for you (like normal calibration) like  
Z0.9  
Z0.8  
etc.

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

here are the points of interest:

Recv: Mesh bed leveling:  
Recv: echo: M420 S1 X2 Y2  
Recv: echo: 1: M421 X5.00 Y5.00 Z0.25  
Recv: echo: 2: M421 X120.00 Y5.00 Z-0.50  
Recv: echo: 4: M421 X5.00 Y120.00 Z0.00  
Recv: echo: 3: M421 X120.00 Y120.00 Z-0.55

Recv: Measured points:  
Recv: 1:0.25000 2:-0.50000  
Recv: 4:0.00000 3:-0.55000  
Recv: ok

X5.00 Y5.00 : 1 (0.25) : left forward : X1 Y1  
X120.00 Y5.00 : 2 (-0.5) : right forward : X2 Y1  
X120.00 Y120.00: 3 (-0.55): right backward: X2 Y2  
X5.00 Y120.00 : 4 (0.00) : left backward : X1 Y2

now you have to save your settings:  
M500 : save to eeprom

check your calibration settings:  
M503 or G29 S0

**FINISH**

> **[Bed Leveling (Manual)](https://marlinfw.org/docs/gcode/G029-mbl.html)**
>
> Mesh Bed Leveling (MBL) allows interactively measuring a Z height mesh without a bed probe. The only tool required is a piece of paper or a feeler gauge. MBL uses the mesh to compensate for variations in height across the bed.

feel free to contact me,  
greets Chris

---

<div class="post-metadata">

**Author:** ![lmagoulas](https://avatars.discourse-cdn.com/v4/letter/l/53a042/32.png) [@lmagoulas](https://forum.snapmaker.com/u/lmagoulas)\
**Post date:** [September 18, 2026, 4:27am UTC](https://forum.snapmaker.com/t/bed-level-from-a-pc/5814/11 "2026-09-18T04:27:25Z")

</div>

Yes, this is what I was looking for. Thank you.
