Хочу реализовать второй вариант, завести датчик Home и индексную метку энкодера в LinuxCnc. Есть описание вариантов поиска нуля в LinuxCnc - https://linuxcnc.org/docs/html/config/ini-homing.html. Один из возможных вариантов, как раз то что мне нужно.
Нужно завести Z метку с серводрайвера в мой контролер Mesa 7i96. У моего серводрайвера есть выходы OZ и /OZ (у версии L есть еще выход OCZ, который можно подключать на прямую к входу контролеру, но у меня версия M), как их подключать пока не понял, появится время буду вникать.
После подключения к контролеру можно использовать HOME_USE_INDEX. Из описания:
Если правильно понимаю, нужно создать объект encoder и связать joint.n.index-enable с encoder.n.index-enable для каждой оси. Не знаю можно ли создать encoder только с индексной меткой без подключения сигналов A и B, если нет понадобиться уйму входов. Поэтому задумался о том чтобы просто завести индексную метку в котролер, объединить его с датчиком Home через AND2. А сам LinuxCnc настроить с параметром HOME_USE_INDEX = NO, но чтобы он смотрел не на датчик Home, а на AND2 к которому подключен датчик Home и индексная метка.HOME_USE_INDEX requires connections in your hal file to joint.n.index-enable from the encoder.n.index-enable.
Вот такой план.