How to use alternate encoder for PID control on REV Spark Max Controller

I am having issues setting up the alternate encoder mode on the Spark Max controller. I enabled alternate encoder mode in the advanced settings on the REV hardware client, but it looks like the motor is not using the alternate encoder for PID control. When I plot the alternate encoder position in the Telemetry on the hardware client, it does not respond to any motor movements. How can I fix this issue?
On this website ( it says I need to add a command line in the Spark Max API to change the device for PID control, but the hardware client says there is no available APIs. What are the steps to fix this?

Do you have an external encoder wired into the SPARK MAX? (See

Yes, I have the alternate encoder adapter (REV-11-1881) for the external encoder.

It sounds as though you are trying to get things working using only REV Hardware Client. I don’t have this setup at hand to check out now, but perhaps someone else does. If you’re trying to do this in code, there are examples – but guessing this is not where you are right now?

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.