Single wire wheel encoders

Dose any one know if single-line encoder (non quadrature) is supported? I use a set of motors for skid steering today and they have a encoder with only one signal cable. When I read the instructions it’s pointing to WENC_PINA and WENC_PINB but I only have one pin that is connected to “AUX OUT 4” for one of the encoders. How do I configure single wire encoders? I’m currently running ArduRover V3.5.1.

Same problem here, I don’t think it’s supported in the code at all. I will probably hack it a bit, I also have single wire encoders that can get me speed, but I need to source the direction input from somewhere else in the ardupilot stack to modify the wheel encoder “quadrature” driver.

Has anyone managed to get this working?

A single pin doesn’t give you direction only speed. It’s supported only as an rpm sensor but not a wheel encoder.

In my scenario, the robot needs to move forward, stop, and then move backward without abrupt changes in wheel direction.

I thought about providing the direction using the motor control direction signal (H-bridge). Is it worth hacking the driver to do this, or should I add an external controller to generate a quadrature signal based on this single Hall sensor signal and the motor control direction signal?

Unfortunately, I can’t change the motors which already come with a Hall sensor.

Another option would be to use open-loop control, but then I’m worried about the robot not being able to follow a straight line.

It won’t really work, you may need reversed bridge when stopping so it may start counting wrong way while braking. You may also get overshoot and have to move slightly backwards when stopping.

It will be easier to add a quadrature encoders than to hack a reliable “one wire RPM + something” solution.

See this and use an Arduino.