My team is trying to implement the integrated encoders on the Spark NEO. We have the Rev MAX breakout board, but we aren’t quite sure what wires to solder where. We obviously would wire the ground and power wires, but we don’t understand why there’s an A, B, and C output for the encoder, rather than just an A and B output. Does anybody have guidance for wiring this?
The NEO encoder must be plugged into the SPARK MAX in order for the MAX to drive the NEO. You can access the velocity and position values through CAN rather than directly through reading the encoder.
The NEO encoder is a 3-phase hall sensor, therefore it has an A, B, and C channel just like the three main motor phases. There is also ground, power, and motor temperature lines in that connector as well.
Thanks! Right now we have it wired from the breakout board to the DIO ports on the roborio. Are you saying that we could just use CAN instead?
If all you need is to provide “speed inputs”, any old method will do.
If you want to get feedback for speed or number of rotations, you will need to connect via CAN for FRC purposes.
- PWM is entirely open-loop control; you cannot get any feedback info from it.
- USB is not allowed for motor control, at least not this year.
You need to drive the NEO with a spark max, simply plugging it into the encoder port on the side of the motor controller. No soldering required. Driving it over CAN is ideal, as you can then read the internal hall effect in code without anything additional.
For absolute clarity and +1 to @krf , the NEO encoder MUST be connected to the SPARK MAX, even if you are just sending open-loop commands.
It sounds like @npbartelt needs the speed or position values based on the original question, so CAN is the only option to get those from the SPARK MAX/NEO combo without an additional encoder on the mechanism itself.
Correct, we need speed and position. We have it controlled using CAN right now, but have the encoders wired to the DIO ports on the roborio using the breakout board on the MAX. We didn’t realize we could just use CAN for those values. Thanks much!
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.