![]() |
MindSensors SD540C Issues
Let me introduce myself, I am the Programming Mentor for FRC Team 2903. One of our other mentors saw the MindSensor SD540C motor controllers and thought they would be an improvement over the Talon SRX CAN motor controllers we used last year, in regards to wiring and electronics layout.
I can agree with him on that portion. The rest of it, well read on. The configuration tool downloaded never finds any of the motor controllers on our can bus and it crashes when we attempt to refresh. I discovered a command line utility located on the roboRIO in /usr/local/bin called clcp_sd540c, but soon discovered that, while it could see the controllers on the CAN bus, I didn't have enough information on how to program them. I looked around for documentation, but without finding any, I used a disassembler and reverse engineered the program to figure out the command line format: clcp_sd540c scan clcp_sd540c id <id> <new_id> are the most important commands, although I also used the name command to rename the devices. Now that id's of the controllers had been modified so that I could have all 8 of them on the CAN bus, I was able to load some simple teleop code to drive with a joystick. This is where the fun begins. The Talon SRX CAN motor controllers had very good support in the WPI library and could hook into the robot drive subsystem and we could simply use ArcadeDrive or TankDrive after creating the robotdrive object with the 4 motor controllers. Even after updating last year's robot with the current software, the Talons continued to work wonderfully. The SD540C controllers, not so much. We had to configure them from the command line, and because the provided class has not been well integrated with WPILIB, we had create our own arcade and tank drive methods in order to even drive the robot. During our testing of the implemented drive methods, we ran into several problems with the controllers: 1. The voltage ramp up is not 0 by default as the documentation says. I am not sure what it was, but it was not 0. And even after setting it to 0, the controllers do not immediately apply the power to the motors. Setting the voltage ramp-up to 0 improved the situation from the default setting though. We did not measure the voltage output, and, if needed we can provide that data. 2. Setting the Stop mode to brake rather than the default coast, does not always stop the motors immediately, sometimes they continue to run for a second or two. 3. The motors whine furiously like they are not getting enough voltage. When they are at full power it's fine. I can provide a video which I believe has sound if desired. The electronics mentor seemed to think it was something to do with possibly underpowering the motors, but he didn't do any voltage testing. I can provide that if needed. 4. Frequently when starting, the motors run at a very high rate for a second or two, or until we press the drive control joystick. We haven't debugged that one too far yet. 5. SetInverse(true), does not reverse the direction of the motor controller. I noticed that MindSensors provided a Firmware update to fix that for the SD540 and SD540B controllers, I wonder if a firmware update is available for the SD540C and if it is available for download for manual installation with the command line utility described above. Needless to say, we are quite disappointed at this point in the season, with only 2 weeks left in build season. We are already preparing to move back to the Talons as we know they suited our needs and will figure out another way to clean up their wiring. If anyone has any experience with these controllers and can provide us with some possible investigation paths, we'll likely start the move to the Talons on Friday. The whining we can live with, but the ramp up speed, when we asked for 0 ramp-up is the biggest issue. The second one is the not stopping when power is removed from the controllers. Having SetInverse() not working, is an annoyance, but we work around it by sending the negative motor power to the controllers on that side of the robot. I realize that we are missing some voltage information, but that can be easily gotten. Thanks for reading! |
Re: MindSensors SD540C Issues
What's so bad about wiring the Talons?
|
Re: MindSensors SD540C Issues
Quote:
I didn't say the Talons were hard to wire, just that the SD540C controllers were more conducive to cleaner wire management. :) Since we are likely moving back to the Talons, the way we managed the wiring for the SD540C will also work quite well for the Talons. |
Re: MindSensors SD540C Issues
Quote:
|
Re: MindSensors SD540C Issues
Quote:
Also, to answer OP's question, this may just be the reality of the motor controllers. SD540(B) controllers were found not to be very reliable, and were outclassed by the SPARK in every way. Based on other people's teardowns of the original SD540, I assume this motor controller is using very cheap construction methods and components, leading to these failures. |
Re: MindSensors SD540C Issues
Quote:
[QUOTE-bobbysq;1642584]Also, to answer OP's question, this may just be the reality of the motor controllers. SD540(B) controllers were found not to be very reliable, and were outclassed by the SPARK in every way. Based on other people's teardowns of the original SD540, I assume this motor controller is using very cheap construction methods and components, leading to these failures.[/quote] Thank you for this information, this is the first real information we've received. Do you have links to these teardowns that I can share with the electronics team? (I will also search, but if you have them at hand...) |
Re: MindSensors SD540C Issues
Quote:
These things could certainly have improved though. |
Re: MindSensors SD540C Issues
Quote:
|
| All times are GMT -5. The time now is 12:35. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi