SDS Swerve With Spark Max's failing

We’ve recently assembled and had driving an SDS MK4i with NEO’s. We have recently noticed 2 of the 8 motor controllers used have failed after use over some time, first one let out magic smoke, second one just refused to power on again.
We think since the SDS Library is mainly Falcon based, Ramp rates and AMP rates may need to be set in the controllers.
I also did drive it quite hard when I was initally testing out the library, we now have very perminant marks in our carpet due to it, so could that have something to do with it as well? Thanks!

1 Like

Without looking at the code it would be difficult to say anything for certain, but I would suspect your code lacks current limits, which are usually a good idea as they can help protect both the motor and the controller, as the breakers don’t trip instantly since they are thermally activated.

1 Like

We’ve lost 3 in the last week. One fried it’s can chips, another is blinking gate fault and a third is claiming its only power by USB, even when it’s hooked to a battery. This is in different use cases, all on neo 550s.

Apologies, code is here: https://github.com/R0NAM1/FRC_2022_Rapid_React

public static final double MAX_VELOCITY_METERS_PER_SECOND = 6380.0 / 60.0 *
      SdsModuleConfigurations.MK3_STANDARD.getDriveReduction() *
      SdsModuleConfigurations.MK3_STANDARD.getWheelDiameter() * Math.PI;

m_frontLeftModule = Mk4iSwerveModuleHelper.createNeo(
    // This parameter is optional, but will allow you to see the current state of the module on the dashboard.
    tab.getLayout("Front Left Module", BuiltInLayouts.kList)
        .withSize(2, 4)
        .withPosition(0, 0),
    // This can either be STANDARD or FAST depending on your gear configuration (This seems to only apply to mark 3's, an MK4 equiv is L3, closest anyway)
    Mk4iSwerveModuleHelper.GearRatio.L2,
    // This is the ID of the drive motor
    Constants.FRONT_LEFT_MODULE_DRIVE_MOTOR,
    // This is the ID of the steer motor
    Constants.FRONT_LEFT_MODULE_STEER_MOTOR,
    // This is the ID of the steer encoder
    Constants.FRONT_LEFT_MODULE_STEER_ENCODER,
    // This is how much the steer encoder is offset from true zero (In our case, zero is facing straight forward)
    Constants.FRONT_LEFT_MODULE_STEER_OFFSET
);

You are using MK3 config for the max velocity, but seem to be configuring MK4i modules. I personally haven’t done too much with swerve, but I suspect this could be causing the current limits to not work properly.

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