Skip to content

Commit c602603

Browse files
authored
Merge pull request #55 from Team537/release/v1.4.0
Release/v1.4.0
2 parents 27c53b9 + 115ea64 commit c602603

File tree

9 files changed

+890
-406
lines changed

9 files changed

+890
-406
lines changed
Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
package frc.robot;
2+
3+
import com.ctre.phoenix6.configs.TalonFXConfiguration;
4+
import com.revrobotics.spark.config.ClosedLoopConfig.FeedbackSensor;
5+
import com.revrobotics.spark.config.SparkMaxConfig;
6+
7+
import frc.robot.Constants.DriveConstants;
8+
9+
public final class Configs {
10+
11+
public static final class Swerve {
12+
13+
public static final class Driving {
14+
15+
// Driving Configs
16+
public static final SparkMaxConfig NEO_DRIVING_CONFIG = new SparkMaxConfig();
17+
public static final TalonFXConfiguration KRAKEN_X60_CONFIGURATION = new TalonFXConfiguration();
18+
public static final TalonFXConfiguration KRAKEN_X60_FOC_CONFIGURATION = new TalonFXConfiguration();
19+
20+
static {
21+
22+
// --- NEO DRIVING CONFIG ---
23+
24+
// Configure encoder settings
25+
NEO_DRIVING_CONFIG.encoder
26+
.positionConversionFactor(DriveConstants.NeoDriving.ENCODER_POSITION_FACTOR)
27+
.velocityConversionFactor(DriveConstants.NeoDriving.ENCODER_VELOCITY_FACTOR);
28+
29+
// Configure PIDF control loop
30+
NEO_DRIVING_CONFIG.closedLoop
31+
.feedbackSensor(FeedbackSensor.kPrimaryEncoder)
32+
.pidf(DriveConstants.NeoDriving.KP, DriveConstants.NeoDriving.KI,
33+
DriveConstants.NeoDriving.KD, DriveConstants.NeoDriving.FF)
34+
.outputRange(DriveConstants.NeoDriving.PID_MIN_OUTPUT,
35+
DriveConstants.NeoDriving.PID_MAX_OUTPUT);
36+
37+
// Configure motor settings
38+
NEO_DRIVING_CONFIG
39+
.idleMode(DriveConstants.NeoDriving.IDLE_MODE)
40+
.smartCurrentLimit(DriveConstants.NeoDriving.CURRENT_LIMIT);
41+
42+
// --- KRAKEN X60 DRIVING CONFIG ---
43+
44+
KRAKEN_X60_CONFIGURATION
45+
.Feedback.SensorToMechanismRatio = DriveConstants.KrakenX60Driving.SENSOR_TO_MECHANISM_RATIO;
46+
47+
KRAKEN_X60_CONFIGURATION
48+
.CurrentLimits
49+
.SupplyCurrentLimitEnable = DriveConstants.KrakenX60Driving.CURRENT_LIMIT_ENABLED;
50+
KRAKEN_X60_CONFIGURATION
51+
.CurrentLimits
52+
.SupplyCurrentLimit = DriveConstants.KrakenX60Driving.CURRENT_LIMIT;
53+
KRAKEN_X60_CONFIGURATION
54+
.CurrentLimits
55+
.SupplyCurrentLowerLimit = DriveConstants.KrakenX60Driving.CURRENT_LOWER_LIMIT;
56+
KRAKEN_X60_CONFIGURATION
57+
.CurrentLimits
58+
.SupplyCurrentLowerTime = DriveConstants.KrakenX60Driving.CURRENT_LOWER_TIME;
59+
60+
KRAKEN_X60_CONFIGURATION
61+
.Slot0
62+
.kP = DriveConstants.KrakenX60Driving.KP;
63+
KRAKEN_X60_CONFIGURATION
64+
.Slot0
65+
.kI = DriveConstants.KrakenX60Driving.KI;
66+
KRAKEN_X60_CONFIGURATION
67+
.Slot0
68+
.kD = DriveConstants.KrakenX60Driving.KD;
69+
KRAKEN_X60_CONFIGURATION
70+
.Slot0
71+
.kV = DriveConstants.KrakenX60Driving.KV;
72+
KRAKEN_X60_CONFIGURATION
73+
.Slot0
74+
.kA = DriveConstants.KrakenX60Driving.KA;
75+
76+
KRAKEN_X60_CONFIGURATION
77+
.MotorOutput
78+
.NeutralMode = DriveConstants.KrakenX60Driving.NEUTRAL_MODE;
79+
80+
// --- KRAKEN X60 FOC DRIVING CONFIG ---
81+
82+
KRAKEN_X60_FOC_CONFIGURATION
83+
.Feedback.SensorToMechanismRatio = DriveConstants.KrakenX60FOCDriving.SENSOR_TO_MECHANISM_RATIO;
84+
85+
KRAKEN_X60_FOC_CONFIGURATION
86+
.CurrentLimits
87+
.SupplyCurrentLimitEnable = DriveConstants.KrakenX60FOCDriving.CURRENT_LIMIT_ENABLED;
88+
KRAKEN_X60_FOC_CONFIGURATION
89+
.CurrentLimits
90+
.SupplyCurrentLimit = DriveConstants.KrakenX60FOCDriving.CURRENT_LIMIT;
91+
KRAKEN_X60_FOC_CONFIGURATION
92+
.CurrentLimits
93+
.SupplyCurrentLowerLimit = DriveConstants.KrakenX60FOCDriving.CURRENT_LOWER_LIMIT;
94+
KRAKEN_X60_FOC_CONFIGURATION
95+
.CurrentLimits
96+
.SupplyCurrentLowerTime = DriveConstants.KrakenX60FOCDriving.CURRENT_LOWER_TIME;
97+
98+
KRAKEN_X60_FOC_CONFIGURATION
99+
.Slot0
100+
.kP = DriveConstants.KrakenX60FOCDriving.KP;
101+
KRAKEN_X60_FOC_CONFIGURATION
102+
.Slot0
103+
.kI = DriveConstants.KrakenX60FOCDriving.KI;
104+
KRAKEN_X60_FOC_CONFIGURATION
105+
.Slot0
106+
.kD = DriveConstants.KrakenX60FOCDriving.KD;
107+
KRAKEN_X60_FOC_CONFIGURATION
108+
.Slot0
109+
.kV = DriveConstants.KrakenX60FOCDriving.KV;
110+
KRAKEN_X60_FOC_CONFIGURATION
111+
.Slot0
112+
.kA = DriveConstants.KrakenX60FOCDriving.KA;
113+
114+
KRAKEN_X60_FOC_CONFIGURATION
115+
.MotorOutput
116+
.NeutralMode = DriveConstants.KrakenX60FOCDriving.NEUTRAL_MODE;
117+
118+
}
119+
120+
}
121+
122+
public static final class Turning {
123+
124+
// Turning Configs
125+
public static final SparkMaxConfig NEO_550_TURNING_CONFIG = new SparkMaxConfig();
126+
127+
static {
128+
129+
// --- NEO 550 TURNING CONFIG ---
130+
131+
// Configure absolute encoder settings
132+
NEO_550_TURNING_CONFIG.absoluteEncoder
133+
.positionConversionFactor(DriveConstants.Neo550Turning.ENCODER_POSITION_FACTOR)
134+
.velocityConversionFactor(DriveConstants.Neo550Turning.ENCODER_VELOCITY_FACTOR)
135+
.inverted(DriveConstants.Neo550Turning.ENCODER_INVERTED);
136+
137+
// Configure PID control loop
138+
NEO_550_TURNING_CONFIG.closedLoop
139+
.feedbackSensor(FeedbackSensor.kAbsoluteEncoder)
140+
.pid(DriveConstants.Neo550Turning.KP, DriveConstants.Neo550Turning.KI, DriveConstants.Neo550Turning.KD)
141+
.outputRange(DriveConstants.Neo550Turning.PID_MIN_OUTPUT, DriveConstants.Neo550Turning.PID_MAX_OUTPUT)
142+
.positionWrappingEnabled(true)
143+
.positionWrappingInputRange(DriveConstants.Neo550Turning.POSITION_PID_MIN_INPUT,
144+
DriveConstants.Neo550Turning.POSITION_PID_MAX_INPUT);
145+
146+
// Configure motor settings
147+
NEO_550_TURNING_CONFIG
148+
.idleMode(DriveConstants.Neo550Turning.IDLE_MODE)
149+
.smartCurrentLimit(DriveConstants.Neo550Turning.CURRENT_LIMIT);
150+
151+
}
152+
153+
}
154+
155+
156+
}
157+
158+
public static final class Squid {
159+
160+
}
161+
162+
public static final class Narwhal {
163+
164+
}
165+
166+
}

0 commit comments

Comments
 (0)