Skip to content
FRC Article 7 min read

FRC "No Robot Code" & Driver Station Won't Connect: Full Fix Checklist

A verified, step-by-step FRC troubleshooting decision tree for "No Robot Code" and a Driver Station that won't connect to the roboRIO — most common causes first.

Browse the guides
to read
7 min

to read

words
1,389

words

sections
4

sections

"No Robot Code" means the Driver Station is talking to your roboRIO, but your program isn't running — usually because the code was never deployed, crashed on startup, or the roboRIO rebooted without relaunching it. Open the Driver Station console (or RioLog) to read the crash. If the Communications box is also red, it's a connection problem, and the number-one cause is the wrong team number set in the Driver Station.

Work the checklist below in order. It is sorted by how often each cause actually shows up, so most teams are back on the field within the first two or three steps.

First, read the three status boxes

The Status Pane on the left of the Driver Station has three indicators. Which ones are red tells you where the problem is, so always look here before touching anything.

BoxGreen meansRed means
CommunicationsThe DS is exchanging data with the roboRIO's FRC Network Communications task (split into TCP and UDP halves).The DS cannot reach the roboRIO at all. This is a networking/link problem, not a code problem.
Robot CodeYour program is running and reporting status (the DS is receiving battery-voltage updates from it).The roboRIO is reachable but no user program is running — not deployed, crashed, or exited.
JoysticksAt least one gamepad/joystick is detected.No usable input device is plugged into the DS laptop.

The Status String below the boxes echoes the same thing in words: "No Robot Communication" (Communications red) or "No Robot Code" (Communications green, Robot Code red).

The ordered checklist

1. Team number set correctly in the Driver Station

This is the single most common cause of "won't connect," especially on a fresh laptop or a borrowed one at an event. In the Driver Station, click the Setup tab and type your team number into the team-number box, then press Enter or click outside the box so it takes effect. Enter your number with no leading zeros (e.g., 254, not 0254). A mistyped or missing team number means the DS is looking for a roboRIO that doesn't exist on the network — Communications stays red.

If Communications is red, prove you have a physical connection before chasing anything subtle:

  • USB is the most reliable path. Plug a USB cable from the laptop straight into the roboRIO's USB Device port. Over USB the roboRIO is always 172.22.11.2 — this bypasses the radio, mDNS, and firewalls entirely. If USB connects but the radio doesn't, the problem is in the radio/network path, not the robot code.
  • Over the radio, confirm the robot radio is powered (check for a solid power light), that Ethernet runs radio → roboRIO, and that the radio has been configured for your team number with the official radio configuration tool. An unconfigured or unpowered radio gives you exactly this symptom.
  • Check the obvious: robot main breaker on, roboRIO powered (Status LED on), Ethernet fully seated at both ends.

3. Robot Code is red: deployed, or crashed on startup?

If Communications is green but Robot Code is red, the roboRIO is fine — your program isn't running. Deploy succeeding does not prove the code runs; it can build, deploy, then throw an exception in robotInit and exit, which leaves Robot Code red.

Read the console output. There are two ways to see the roboRIO's NetConsole:

  • Driver Station Console Viewer: click the gear icon at the top of the DS message window and choose View Console.
  • RioLog in VS Code: it opens automatically at the end of each deploy, or press Ctrl+Shift+P and run WPILib: Start RioLog.

A stack trace here (null pointer, an unconfigured CAN device, a bad port) tells you exactly why the program died. Fix it and redeploy. If you just want to relaunch the existing code, use the Restart Robot Code button on the DS Diagnostics tab — it restarts your program without rebooting the OS.

One frequent gotcha: after a roboRIO reboot, Robot Code can stay red for 10–30 seconds while the program restarts. Give it time before assuming it crashed.

4. mDNS, firewall, and the IP scheme

Still no Communications, but USB works? You have an mDNS or firewall problem on the radio path. The roboRIO advertises itself as roboRIO-####-FRC.local (your team number, no leading zeros). For that name to resolve, the NI FRC Game Tools must be installed on the laptop — it provides the mDNS resolver.

  • Disable the laptop's firewall (all profiles) and any VPN. Firewalls routinely block the DS↔roboRIO traffic.
  • Disable other network adapters temporarily (Wi-Fi, virtual/VM adapters, extra Ethernet) so the DS isn't trying the wrong interface. A corporate DNS server trying to resolve .local over regular DNS can also break mDNS resolution.
  • Verify the IP scheme. FRC uses 10.TE.AM.x, where you split your team number: TE is the leading digits, AM is the last two. Team 1234 → 10.12.34.x; team 12345 → 10.123.45.x.
DeviceAddress
roboRIO (over radio)10.TE.AM.2
Robot radio10.TE.AM.1
roboRIO (over USB)172.22.11.2
DS laptopDHCP in 10.TE.AM.2010.TE.AM.199

From a terminal, ping roboRIO-####-FRC.local tests name resolution; ping 10.TE.AM.2 (or ping 172.22.11.2 on USB) tests raw connectivity. If the IP pings but the name doesn't, it's mDNS. If neither pings, it's the link.

5. roboRIO image / firmware

A roboRIO that was never imaged — or is imaged for a past season — often won't behave. Connect over USB (the roboRIO must be imaged over USB, never Ethernet) and run the roboRIO Imaging Tool from the NI Game Tools to flash the current-season image. This also confirms the team number is written to the roboRIO. Do this any time a roboRIO is brand-new, was borrowed, or is acting erratically at the start of a season.

6. Reboot the roboRIO (and the User button)

When in doubt, power-cycle the roboRIO (or press the small Reset button). Wait for the Status LED to settle before re-checking the DS.

Two hardware notes worth knowing:

  • The User button, if held for more than 5 seconds, tells the roboRIO not to auto-load your program. If someone did this, code won't start on boot — don't hold that button.
  • Holding the Reset button for ~5 seconds puts the roboRIO into Safe Mode for recovery if the OS is corrupted.
  • If you ever hit Emergency Stop (the Space bar in the DS, or a physical E-Stop), the roboRIO must be rebooted before it can be enabled again.

7. SSH in and confirm the program is running

If the console is ambiguous, connect directly. Over USB or the radio:

ssh admin@172.22.11.2

(or ssh admin@roboRIO-####-FRC.local). The admin account has root access, and the password is blank — just press Enter at the prompt. Then check whether your program is alive:

ps -A | grep -i frc

You should see the running FRC user program. If it isn't there, your code isn't running — go back to Step 3 and read the crash. To force a clean restart of robot code from the shell without rebooting:

/usr/local/frc/bin/frcKillRobot.sh -t -r

If only the Joysticks box is red

This one is independent of the robot. Plug a gamepad into the DS laptop's USB, confirm it appears in the DS Setup tab's USB Devices list, and drag it to the slot your code expects. No joystick will not stop the robot from connecting or enabling — it only stops joystick-driven commands from working.

Quick reference

  • Communications red → networking/link. Start with team number (Step 1), then USB, then mDNS/firewall.
  • Communications green, Robot Code red → your program isn't running. Read the console/RioLog for the crash.
  • Both green, nothing moves → you're connected and running; you just need to Enable the robot (Enter disables, the on-screen Enable button enables).
  • USB always works at 172.22.11.2 — use it to isolate radio problems fast.

Verify addresses and behavior against the current-season WPILib docs; the roboRIO control-system fundamentals above are durable across recent seasons, including 2026 (REBUILT presented by Haas).

Spot an error or something out of date?Log in to suggest an edit

Keep reading

More from the pit

Learn every department of FRC — free

Structured lessons, quizzes, and team tools. Built by an FRC student, for the community.

394lessons
11departments
100%free
Browse the guides