Skip to content

Competition Preparation Checklist

The journey to competition is the ultimate test of Teamwork and Innovation. This complete checklist ensures that every technical detail of your MARSLib-powered robot is validated, maximizing our Impact on the field. Follow this timeline to prepare for your event, ensuring that the final weeks of the season are both productive and Fun as we prepare to compete at the highest level.

  • Code Review.

    • All code reviewed by senior programmer.
    • Coding standards followed.
    • No TODO comments in critical paths.
    • Error handling implemented.
  • Testing.

    • All unit tests passing.
    • Code coverage ≥ 80%.
    • Integration tests passing.
    • Simulation tests validated.
  • Performance.

    • Loop time < 10ms (50Hz main)
    • Memory usage stable.
    • CPU usage < 50%.
    • No memory leaks.
  • Hardware Testing.

    • All subsystems tested on real hardware.
    • Sensors calibrated and verified.
    • Motor controllers configured.
    • CAN bus verified (< 80% utilization)
  • Autonomous.

    • All auto modes tested.
    • Path following accurate (< 5cm error)
    • Vision integration tested.
    • Auto selection working.
  • Driver Practice.

    • Driver station configured.
    • Controller profiles set.
    • Practice auto routines.
    • Teleop operation practiced.
  • Code Freeze.

    • Feature freeze implemented.
    • Only bug fixes allowed.
    • Change management process.
    • Version control tagged.
  • Documentation.

    • Code documented.
    • Subsystem operation documented.
    • Troubleshooting guide updated.
    • Quick reference guide created.
  • Backup Plan.

    • Previous season code archived.
    • Known bugs documented.
    • Workaround procedures documented.
    • Emergency rollback plan.
  • Final Testing.

    • Full robot functionality test.
    • All auto modes validated.
    • Driver station backup configured.
    • Practice day test completed.
  • Competition Preparation.

    • USB drives prepared (code + tools)
    • Laptop configured and tested.
    • Radio configured (team number, SSID)
    • Driver station license updated.
  • Team Preparation.

    • Operators trained on all features.
    • Pit crew trained on basic debugging.
    • Scouting forms prepared.
    • Competition rules reviewed.

  • Final Checklist.

    • Robot powered and tested.
    • All subsystems functional.
    • Auto modes tested.
    • Batteries charged and tested.
    • Spare parts packed.
  • Digital Preparation.

    • Latest code deployed to robot.
    • AdvantageKit logging enabled.
    • RioLog working.
    • Driver station connecting.
  • Bring These Files.

    • Latest code JAR.
    • Source code zip.
    • Previous working version (backup)
    • WPILog analysis tools.
    • Driver station updates.
  • Programming Laptop.

    • Connected to pit network.
    • VS Code installed.
    • Gradle working offline.
    • Git repository cloned.
    • AdvantageScope installed.
  • Driver Station Laptop.

    • Driver station updated.
    • Team number set.
    • Java runtime installed.
    • USB gamepads configured.
    • Dashboard layout set.
  • Network Configuration.

    • Robot radio configured.
    • Team SSID set.
    • Static IP configured (10.TE.AM.1)
    • DNS configured.
    • Firewall rules set.
  • Hardware Check.

    • All CAN devices connected.
    • Power distribution panel checked.
    • Motor controllers powered.
    • Sensors reading correctly.
    • Cameras connected and focused.
  • Software Deployment.

    • Deploy latest code.
    • Verify all subsystems initialize.
    • Check for error messages in RioLog.
    • Test all auto modes.
    • Verify driver station connection.
  • Calibration.

    • Gyroscope calibrated.
    • Encoders zeroed.
    • Cameras calibrated (if needed)
    • Pneumensions system charged.
    • Mechanism limits set.

  • Robot Inspection.

    • Batteries fully charged (> 12.5V)
    • All connections secure.
    • No visible damage.
    • Mechanisms move freely.
    • Sensors connected.
  • System Check.

    • Robot powered on.
    • Driver station connected.
    • Comm LEDs green.
    • Joysticks connected.
    • No error messages.
  • Software Verification.
    • Correct auto mode selected.
    • Alliance color set correctly.
    • Starting position confirmed.
    • Game piece position verified.
    • Camera feed visible.
  • Final Checks.
    • Robot e-stopped.
    • Driver station connected.
    • Auto mode confirmed.
    • Team ready.
    • Communications working.

  • Watch For.
    • Auto executes correctly.
    • Robot stays in bounds.
    • No collisions.
    • Scored points accurately.
    • No brownouts.
  • Monitor.
    • Loop times stable.
    • CPU usage normal.
    • Battery voltage > 10V.
    • No comm drops.
    • No error messages.
  • Analysis.
    • Review WPILog from previous match.
    • Check for errors in RioLog.
    • Monitor battery usage.
    • Check motor temperatures.
    • Review driver feedback.
┌─────────────────────┐
│ Problem Reported │
└──────────┬──────────┘
├─→ Is it a hardware issue?
│ ├─ YES → Check connections, fuses, sensors
│ └─ NO → Continue
├─→ Is it a code issue?
│ ├─ YES → Check RioLog for errors
│ │ Review recent changes
│ │ Revert if needed
│ └─ NO → Continue
├─→ Is it a driver issue?
│ ├─ YES → Provide more practice
│ └─ NO → Continue
└─→ Is it critical?
├─ YES → Fix immediately, skip match if needed
└─ NO → Document, fix after matches

Symptoms:

  • Driver station shows “No Robot Code”.
  • Comm LEDs red
  • Can’t ping 10.TE.AM.2.

Solutions:

  1. Check radio power.
  2. Verify radio configured (team number)
  3. Check Ethernet cables.
  4. Reboot roboRIO.
  5. Re-deploy code.
  6. Check for firewall issues.

Symptoms:

  • Auto doesn’t start.
  • Robot drives erratically.
  • Auto stops mid-execution.

Solutions:

  1. Verify auto mode selected.
  2. Check starting position matches.
  3. Verify path files loaded.
  4. Check odometry reset.
  5. Review WPILog for errors.
  6. Test in practice mode.

Symptoms:

  • Loop time > 10ms.
  • CPU usage high.
  • Robot jerky movement.

Solutions:

  1. Check performance dashboard.
  2. Review recent code changes.
  3. Check for memory allocations.
  4. Verify CAN bus not overloaded.
  5. Check for too many sensors.
  6. Reduce camera resolution.

Symptoms:

  • Battery voltage drops quickly.
  • Brownouts during match.
  • Motors weak

Solutions:

  1. Check current limiting.
  2. Reduce aggressive driving.
  3. Check for short circuits.
  4. Verify all motors calibrated.
  5. Check battery health.
  6. Reduce motor voltage.

  • Review WPILog.
    • Check for errors.
    • Review performance metrics.
    • Analyze auto execution.
    • Check driver input.
    • Monitor sensor readings.
  • Record.
    • Match score.
    • Auto points scored.
    • Teleop points scored.
    • Fouls committed.
    • Driver feedback.
  • Analyze.
    • Loop time stable?
    • Memory usage normal?
    • CPU usage acceptable?
    • Any brownouts?
    • Comm drops?
  • Discuss.
    • What went well.
    • What needs improvement.
    • Software changes needed.
    • Driver practice needed.
    • Strategy adjustments.
  • Plan
    • Bug fixes for tomorrow.
    • Auto mode adjustments.
    • Driver practice schedule.
    • Strategy changes.
    • Code freeze decisions.

  • Plan
    • Alliance partners’ capabilities.
    • Auto coordination.
    • Defense strategies.
    • Backup plans.
    • Scouting data review.
  • Implement.
    • Alliance-specific auto modes.
    • Partner communication.
    • Coordinated strategies.
    • Performance optimizations.
    • Additional telemetry.
  • Verify.
    • All auto modes tested.
    • Partners understand cues.
    • Driver practice complete.
    • Backup plans ready.
    • Performance validated.

If latest code fails:

  1. Stop - Don’t panic.
  2. Assess - How bad is the problem?
  3. Decision - Fix or rollback?
  4. Action - Execute rollback plan.

Rollback Steps:

Terminal window
# 1. Identify last working version
git log --oneline -10
# 2. Checkout last known good commit
git checkout <last-working-commit>
# 3. Build and deploy
./gradlew build
./gradlew deploy
# 4. Verify quickly
# Run basic functionality test

If hardware fails:

  1. Identify - What component failed?
  2. Workaround - Can software compensate?
  3. Replace - Use spare if available.
  4. Adapt - Adjust robot operation.

Software Workarounds:

  • Dead sensor: Use odometry/vision.
  • Failed motor: Adjust weight distribution.
  • Camera issue: Use driver aim.
  • Encoder issue: Use voltage control.

  • Analyze.
    • Competition results.
    • Auto success rate.
    • Teleop scoring.
    • Reliability statistics.
    • Driver performance.
  • Document.
    • What worked well.
    • What needs improvement.
    • Technical debt.
    • Feature wishlist.
    • Lessons learned.
  • Plan
    • Offseason development.
    • Testing priorities.
    • Training needs.
    • Technology upgrades.
    • Next season goals.

☐ Battery charged (green light on charger)
☐ Robot powers on
☐ Driver station connects (green comm LEDs)
☐ Auto mode selected
☐ Joystunks connected
☐ No errors in RioLog
☐ Battery voltage > 12.5V
☐ No error messages
☐ WPILog from previous match saved
☐ Next auto mode selected
☐ Driver ready
Lead Programmer: _______________
Technical Mentor: _______________
_FIRST_® Technical Advisor: _______
Regional Director: ______________

Technical Success:

  • Zero auto failures.
  • 99%+ match reliability.
  • < 5% brownout rate.
  • All subsystems functional.

Team Success:

  • Drivers confident.
  • Pit crew trained.
  • Communication clear.
  • Positive team morale.

Strategic Success:

  • Auto scoring optimized.
  • Teleop scoring maximized.
  • Defense effective.
  • Alliance cooperation successful.

FIRST® Resources:

MARSLib Resources:

Community Resources:


Good luck at competition! 🏆

Remember: A well-prepared robot is a reliable robot. This checklist helps ensure nothing is forgotten.

Questions? Ask in Discord or GitHub Discussions!