So we’ve been working with the NEO brushless motors from REV and today we’ve been having an astonishing amount of problems getting it to work correctly so we’re looking for suggestions. Our problem is as follows:
After about 35-40 seconds of turning on power to the robot (Applying power to the SPARK MAX and CAN bus), the motor begins stuttering heavily in Brake mode (it does the same in Coast mode, it’s just less noticeable. The robot then needs to be fully power throttled before the motors will function again, but it just goes back to the same state after the 35-40 seconds.
Things we’ve tried:
-Switching firmware versions = We’ve used v1.0.385 and v1.0.381, as well as the 1.1.26Beta version.
-Swtiching NEO Motors
-Swtiching SPARK MAX controllers
We’re trying to recreate what you’re seeing over here. Can you try the same experiments with the CAN bus completely disconnected, and then again with CAN only and no USB?
I suspect that a parameter might have been inadvertently changed. We need to try to get it working with each individual interface.
It is odd that you are able to connect through the client to update firmware, but it doesn’t control the motor. Are you running the latest Client? Check and make sure that all of your parameters are set to their default values based on this parameter list: SPARK MAX Configuration Parameters.
There is a new command in the beta release called RestoreFactoryDefaults() if you would rather do that. This requires both the beta firmware and the beta API.
Also, please send me your code, either in this thread or to [email protected].
A few more questions: Could you elaborate on what behavior you are seeing? What does the Status LED indicate when it stopped working? Does the motor spin differently than you expect it to, or does it not spin at all?
When connected via CAN the status LED blinks back and forth between light blue (brushless, brake) and the colour for it’s corresponding direction (either red or green), that’s what we believe is causing the stuttering. And to elaborate, when we run the motors via CAN, the motors function fine for 30-40 seconds and then begin aggressively shuttering until power to the robot is completely restarted.
To clarify, did you verify recently that the parameters are set to default? There is a chance that during CAN ID assignment that another parameter was toggled in the Client that you didn’t intend to change. I don’t meant to badger the point, I’m just asking for clarification of your previous statement.
In summary so far:
CAN and USB both physically connected
Commands from USB
Stuttering after 30 - 40s
Commands from CAN
Unknown at this time
USB connection only (CAN physically unplugged)
You stated that it doesn’t work, but I am still unclear as to what you are observing. e.g. Status LED and other behaviors
CAN connection only (USB physically unplugged)
Worked for 6 hours, then started showing the 30-40s stutter.
Please let me know if my summary is incorrect and please fill in any gaps if you can.
Also, how is your battery charge? You mentioned nothing changing after 6 hours of successful operation. Was the battery ever swapped out during this time?
It is possible that after 30 - 40s of operation with a discharged battery, the controller is browning out momentarily. This will stop the motor, temporarily bring the voltage back up, the motor will turn back on, and then the startup current causes a quicker brownout that starts the oscillation you’re seeing that manifests as stuttering.
So after some more testing and troubleshooting, we were able to get all but 2 motor controllers functional. We still have one controller that is completely unresponsive, as well as another that won’t take new firmware (It’s stuck on version 1.0.367, all the rest are running 1.0.385).
Sorry for the late reply, but if it still isn’t working try updating to the latest firmware, the client likely won’t work while CAN or PWM is connected. If they stutter while running them through the robot, try checking for bad connections (we had a couple CAN adapters with loose crimps).
Only while testing configuration changes via the client (i.e. using the motor testing panel). Through testing we determined that the SPARK MAX gets confused when it has more than 1 motor controlling system connecting (CAN, PWM, USB, etc.)
Hi Did you get a resolution for your initial problem of stutters/jitters? We are having the exact same issue - happening in both brake and coast mode (brake is worse) with our group of drive train motors. The other neos on our robot don’t exhibit this problem. It happens with brand new fully charge batteries within seconds. It doesn’t appear to be a cam issue since other neo/sparks work and if we disconnect the rio and test each spark via usb they work fine. Any suggestions would be greatly appreciated.
Can you post your driverstation log file? Our robot has the same issues we believe are caused by brownouts from driving. We enabled current limiting as a band-aid fix.