/frc-tips

Tips for programming an FRC (FIRST Robotics Competition) robot

Primary LanguageHTMLGNU General Public License v3.0GPL-3.0

FRC tips

In the course of volunteering with an FRC team (and at various events), I see the same problems come around again and again. Some of them have excellent resources already available to provide help; others take a little digging.

This project is a small collection of tips I've gathered to save redoing the same research effort. Largely I'm just repeating stuff other people already said. Example code is all in Java.

  • CAN bus: What is my utilization? How much is too much? How do I fix it?
  • Ramps: How do I stop my robot from falling over when they drive too fast?
  • Coast mode: How do I make my robot stop, stay stopped, and yet be easy to move?
  • Burnout: How do you stop your motors from burning out?
  • Safety Captain: Help! I just got appointed Safety Captain. What do I do now?
  • Commands: Short guide to WPILIB commands, including lambda functions, and CommandScheduler
  • Links: What are some useful resources for FRC?

I decided to put this together as a Github repository, partly so I could incorporate code files if I needed to, but mostly to make it easier for others to correct my inevitable mistakes.

Suggestions I have received for future notes:

  • How to reset and persist motor controllers
  • Some swerve bot gotchas - see example swervebot
  • Mecanum Drive gotchas.
  • How to add your first autonomous routine, including for non-command robots
  • Checking for errors (e.g. CAN bus devices). Retrying?
  • How should I configure and use IP addresses? (see IP Configurations) How should I wire the Ethernet on the robot?
  • Current limits and voltage compensation
  • How to debug "No robot code"
  • Example code that uses all commands stuff