Motor Controllers in Code (WPILib)
WPILib provides common motor interfaces and helpers.
1 PWM vs CAN
- PWM: simple, no telemetry; 1‑way control
- CAN: rich telemetry + configs; requires healthy CAN bus
2 Java Basics
// PWM example
PWMSparkMax left = new PWMSparkMax(0);
// CAN vendor example (REV/CTRE classes live in vendor libs)
Prefer subsystems to own motors; commands call methods, not raw
set().