<p>You have the endstop which sends a on or off to the controller board.</p>

<p>The boards firmware knows if it is a close or open switch.</p>

<p>Lets assume pressed is on and unpressed is off.</p>

<p>When the axis is at home it will read as ON. The firmware then will not allow the axis to move in the direction you have designated is the Home direction. Now this is probably where you got confused. You in fact are the one to open a code file, and say what direction is home. When your turn it on the first time, chances are you have done it wrong on at least one. Then you will frantically go and manually press it yourself as your printers hotend crashes HARD into the bed.. All of us have been there !</p>

<p>Generally Prusas use ramps 1.4</p>

<p><a href="http://reprap.org/wiki/RAMPS_1.4" rel="nofollow">http://reprap.org/wiki/RAMPS_1.4</a></p>

<p>Your code is your firmware. Usually you just edit a header file (single file). These files are heavily documented, depending which you use. Your seller might provider you with a preconfigured header file.</p>

<p>Will note that yes, if the endstop slips or is not position right, the printer will crash into it self. Usually no damage, but it is a very unpleasant thing to happen. </p>

<p>Also worth noting that some firmware will force you to home before you move. Others will let you crash the printer on the opposite side. Just a motor, will do whatever you tell it to.</p>

<p>In short. You tell it how the endstops work and what direction is home on a printer.</p>

CC BY-SA 3.0
2016-08-07T21:30:20.960Z
I don't see how this is is an answer to the question. The question asks *how* the homing works (in term of the "algorithm" that is used) but your answer is just some remark about how people crash their hotend into the bed because of bad endstop config.
Tom van der Zanden
CC BY-SA 3.0
2016-08-07T23:43:23.577Z
Hi Tom Sorry you find it confusing. I explain how end stops work and how the firmware / electronics see and process the states. Which does answer the question. I think you got lost with the extra information about why the heads would crash. That was to express how the different firmwares handle and fail to handle carriage position. Let me know if you have other questions. Happy printing!
MakerModder
CC BY-SA 3.0
2016-08-06T08:44:17.657Z
2016-08-07T12:31:47.357Z
2016-08-07T12:31:47.357Z
MakerModder
<p>It works like you describe, but it does not move all axes at the same time. It first moves the X-axis, subtracting steps while the X endstop is not pressed. When the X-axis is is homed (the X-endstop is gets pressed) it repeats the procedure for the Y-axis and finally the Z-axis.</p>

CC BY-SA 3.0
2016-08-05T00:25:12.567Z
I've always found it odd that 3D printers have basically the reverse homing sequence from conventional cnc machines. Most industrial mills, lasers, and routers homing order is Z, Y, then X. This is to reduce the chances of crashing into any fixtures mounted on the work table.
tbm0115
CC BY-SA 3.0
2016-08-06T06:46:29.157Z
3d printers generally have the z endstop at the bottom rather than the top for better or worse. So homing z would make it crash into anything under it. Many people (me included) put the z endstop on top because that just makes more sense.
John Meacham
CC BY-SA 3.0
2016-08-04T15:46:04.377Z
2016-08-04T16:07:28.650Z
2016-08-04T16:07:28.650Z
Flautarian
<p><a href="https://i.sstatic.net/Fpc5P.jpg" rel="noreferrer"><img src="https://i.sstatic.net/Fpc5P.jpg" alt="enter image description here"></a></p>

<p>By what process does the Prusa i3 determine it's home position?  </p>

<p>I have a feeling that it works like this, but I'm not entirely sure about it:</p>

<ol>
<li>If none of the end stops are activated; assume you are somewhere between Max-X, Max-Y, Max-Z and the point 0,0,0.</li>
<li>do

<ol>
<li>For axis in Axies

<ol>
<li>If axis endstop not signaling

<ol>
<li>subtract 100 steps from axis.</li>
</ol></li>
</ol></li>
</ol></li>
<li>while endstops are not signaling, or if point 0,0,0 not reached; </li>
</ol>

CC BY-SA 3.0
2016-08-05T13:55:11.930Z
The answer to this question is completely dependent on the firmware your printer is running and the configuration of said firmware (the homing order in Marlin is configurable, you have a variety of options such as "home Z first" or "home X and Y simultaneously").
Tom van der Zanden
<prusa-i3><reprap>
How does the home position work on a Prusa i3 RepRap Printer?
leeand00
# How does the home position work on a Prusa i3 RepRap Printer?

(Asked by: username_0 on 2016-08-04)

[![enter image description here](https://i.sstatic.net/Fpc5P.jpg)](https://i.sstatic.net/Fpc5P.jpg)

By what process does the Prusa i3 determine it's home position?

I have a feeling that it works like this, but I'm not entirely sure about it:

1. If none of the end stops are activated; assume you are somewhere between Max-X, Max-Y, Max-Z and the point 0,0,0.
2. do
   1. For axis in Axies
      1. If axis endstop not signaling
         1. subtract 100 steps from axis.
3. while endstops are not signaling, or if point 0,0,0 not reached;

**Tags:** prusa-i3, reprap
> **Comments:**
> **username_1**: The answer to this question is completely dependent on the firmware your printer is running and the configuration of said firmware (the homing order in Marlin is configurable, you have a variety of options such as "home Z first" or "home X and Y simultaneously").  

---

## 2 answers

### Answer by username_3 on 2016-08-04. Score: 8 | Accepted answer

It works like you describe, but it does not move all axes at the same time. It first moves the X-axis, subtracting steps while the X endstop is not pressed. When the X-axis is is homed (the X-endstop is gets pressed) it repeats the procedure for the Y-axis and finally the Z-axis.

> **Comments:**
> **username_4**: I've always found it odd that 3D printers have basically the reverse homing sequence from conventional cnc machines. Most industrial mills, lasers, and routers homing order is Z, Y, then X. This is to reduce the chances of crashing into any fixtures mounted on the work table.  
> **username_5**: 3d printers generally have the z endstop at the bottom rather than the top for better or worse. So homing z would make it crash into anything under it. Many people (me included) put the z endstop on top because that just makes more sense.  

---

### Answer by username_2 on 2016-08-06. Score: 1

You have the endstop which sends a on or off to the controller board.

The boards firmware knows if it is a close or open switch.

Lets assume pressed is on and unpressed is off.

When the axis is at home it will read as ON. The firmware then will not allow the axis to move in the direction you have designated is the Home direction. Now this is probably where you got confused. You in fact are the one to open a code file, and say what direction is home. When your turn it on the first time, chances are you have done it wrong on at least one. Then you will frantically go and manually press it yourself as your printers hotend crashes HARD into the bed.. All of us have been there !

Generally Prusas use ramps 1.4

<http://reprap.org/wiki/RAMPS_1.4>

Your code is your firmware. Usually you just edit a header file (single file). These files are heavily documented, depending which you use. Your seller might provider you with a preconfigured header file.

Will note that yes, if the endstop slips or is not position right, the printer will crash into it self. Usually no damage, but it is a very unpleasant thing to happen.

Also worth noting that some firmware will force you to home before you move. Others will let you crash the printer on the opposite side. Just a motor, will do whatever you tell it to.

In short. You tell it how the endstops work and what direction is home on a printer.

> **Comments:**
> **username_1**: I don't see how this is is an answer to the question. The question asks *how* the homing works (in term of the "algorithm" that is used) but your answer is just some remark about how people crash their hotend into the bed because of bad endstop config.  
> **username_2**: Hi Tom Sorry you find it confusing. I explain how end stops work and how the firmware / electronics see and process the states. Which does answer the question. I think you got lost with the extra information about why the heads would crash. That was to express how the different firmwares handle and fail to handle carriage position. Let me know if you have other questions. Happy printing!  

---

