I have been working for a pretty long time on a system that uses a stepper motor as a winch and does monitor the actual position using an AMS magnetic angular sensor with 14 bits of resolution over each 360° giving the monitored data as a PWM signal and 12 bits resolution delivering the data following the quadrature encoder method.
https://ams.com/as5047uhttps://ams.com/as5172The great benefit of using the Quadrature Encoder I/F is that many ARM based microcontrollers have a quadrature encoder peripheral build in. Here the Link to the datasheet of the LPC1769 as an example:
https://www.nxp.com/docs/en/data-sheet/LPC1769_68_67_66_65_64_63.pdfHere the link to a very inexpensive board from "Embedded Artists" I use. The board is so cheap, and Embedded Artists have a huge selection of so called "LPCXpresso", and so small, that making your own board is more expensive. And the board has also huge benefits. One is that it comes with a board that contains the hard and software to program and debug programs on the board using the free
LPCXPRESSO IDE that includes the software to configure to the LPCXPRESSO board you choose to use CMSIC API software for all the peripherals on board.
The need for a home position is fully served by using the "Index-Signal" from the quadrature encoder I/F. I am sure C-3PO knows this, but for the rest of us a short presentation of the quadrature encoder and the use of the magnetic angular encoder:
One benefits for my application in a sailboat model is that I do place the AMS sensor below the deck os it cannot get in touch with water and place a plastic cover over an opening on the deck. The magnet is connected to an axis that turns with the sail boom. This way I can have the actual position of the boom monitored with 12 bit resolution using the quadrature encoder and the 14 bit absolute resolution supplied as PWM by the sensor for fine tuning length of the sheet of the corresponding boom. The stepper motor used as winch is also monitored using an angular magnetic sensor to supply the sheet length required in accordance to the angular position of the boom!
This graphic shows how the quadrature encoder works and remember, it works with 12 bit resolution per 360° turn. Also, the CMSIC API and the quadrature encoder peripheral of the LPC1769 controller do the processing of the quadrature encoding! So you do not have to bother about low level programming. The "I" Index signal would be assigned to the "Home position" as it is issued once per 360° turn.