I conducted a large series of experiments with different sensor settings and different ini + hal settings.
First, I achieved smooth operation of the sensor (of my own design) in version 2.8.4. The Chinese sensor could perform 40,000-50,000 continuous measurements (with 38.5 disabled). My sensor completed the entire task, more than 500,000.
That is, it has been established that the quality of the sensor directly affects the appearance of the error “Probe tripped during non-probe move”.
And with the same settings in version 2.9.7, the error “Queue is not empty after probing” recurs. That is, the appearance of the error does not depend on the sensor. The question remained: does this error appear during the working stroke 38.2-38.3 and the reverse?
I disabled the “until open” movement option, as in version 2.8.4, and the error “Queue is not empty after probing” did not appear. Previously, it was not possible to obtain more than 25,000 measurements. The experiment was interrupted at 40,000. Consequently, the error “Queue is not empty after probing” occurs when executing g38.5, during execution. After g38.3, I have a G1 up command.
To disable the possibility of 38.4-38.5 on the defunct Russian forum (к сожалению, я не помню имени автора решения, но честь ему и хвала), such a modification of hal was proposed and tested by me over hundreds of hours of work and hundreds of thousands of measurements -
Code:
#датчик probe
net probe-in <= parport.0.pin-13-in-not
#net probe-in => motion.probe-input (это в случае работы с G38.5)
#здесь пытаемся убрать ошибку "probe tripped during non-probe mode"
#https://www.cnc-club.ru/forum/viewtopic.php?f=15&t=31612
# Загружаем компонент select8
loadrt select8 count=1
addf select8.0 servo-thread
## Сигнал от датчика подаем на вход разрешения select8
net probe-in select8.0.enable
## Номер режима ведем на вход выбора
net motion-mode motion.motion-type select8.0.sel
## Выход 5 select8 - ко входу для датчика
net probesel select8.0.out5 motion.probe-input