Skip to main content

Project Template

All Ironclad robot projects follow the same layout:

src/
└─ main/java/frc/robot/
├─ subsystems/
├─ constants/
├─ logging/ (optional)
├─ utils/ (optional)
├─ Robot.java
└─ Main.java

Packages

FolderPurpose
subsystems/Hardware interfaces (motors, sensors)
constants/Shared constants by subsystem
logging/(Optional) telemetry/logging wrappers
utils/Helpers & wrappers

Conventions

  • Class names: PascalCase
  • Variables: camelCase
  • Constants: ALL_CAPS
  • No magic numbers — put values in constants/
  • Use @Override where applicable
Ironclad Convention

Each subsystem owns its default command, constants, and public API. Keep hardware control close to the subsystem.