https://diynovate.com/step-3-adding-an-encoder-for-position-feedback/