We’ve been experiencing drastic problems when driving the neo’s using the onboard PID Controller (in addition to the problem where the encoders return 0 once in a while).
Here is the setup:
Initialize each Spark Max individually, create a CANPIDController for each, set the P (about 0.001), I (0), and D (0) values for all of the 6 motors (3 per side) to be the same. Then during auto periodic, use setReference(200, ControlType.kPosition). This results in this very weird video and graph for the encoder value:
https://www.chiefdelphi.com/uploads/default/original/3X/8/8/889b3fe1054e0eff3e628ba0682f04633be4b653.MOV
Any ideas for this weird behavior? (Notice the spikes in the graph, never reaching the target of 200).