roboRIO not found

I’ve been having some trouble programming/debugging the RoboRIO. This is the tail end of the output I see in the console when attempting to deploy:

get-target-ip:
     [echo] Trying Target: roboRIO-488.local
Unknown host: roboRIO-488.local
     [echo]  roboRIO not found via mDNS, falling back to static USB
     [echo] roboRIO not found via USB, falling back to static address of 10.4.88.2

BUILD FAILED
C:\Users\John\wpilib\java\current\ant\build.xml:45: Assertion failed boolean test.
roboRIO not found, please check that the roboRIO is connected, imaged and that the team number is set properly in Eclipse

I can ping roboRIO-488.local successfully. I can also read the files on the roboRIO via FTP.

In Window->Preferences->WPILib Preferences, my team number is set to 488.

The roboRIO has been imaged with the v23 image (and I can confirm with the tool). I can also see and operate the robot via the Driver Station.

By plugging in the USB cable, I am able to program the robot. Also, the debug environment seems to only try connecting to roborio-488.local, and doesn’t work via USB.

Any idea what’s going on?

Did you install Java on the rRIO?

Yes, using the JVM Wizard from FIRST.

I did a little experiment.

First, using cmd.exe, I pinged roboRIO-488.local:

C:\Users\John>ping roboRIO-488.local -4

Pinging roboRIO-488.local [169.254.82.206] with 32 bytes of data:
Reply from 169.254.82.206: bytes=32 time=1ms TTL=64

Then I went into C:\users\john\wpilib\java\current\ant\build.xml, and modified this:


<property name="target" value="roboRIO-${team-number}.local" />

into this:

<property name="target" value="169.254.82.206" />

I was able to deploy code successfully.

The question is… why is Eclipse unable to resolve roboRIO-488.local, while Windows (via cmd and explorer) can resolve it easily?

Typically this is due to a firewall only blocking certain applications.

Good thinking… though I already tried disabling the Windows Firewall entirely, to no effect.

Plus, Eclipse has no issue connecting to the roboRIO, as long as I refer to it by IP and not by its mDNS address (roboRIO-488.local).

As a workaround…

Is it possible to modify the WPI plugin to get the debug command to use an IP address target instead of the “roboRio-488.local” address? And if so, how?

Well, instead of modifying the plugins, I decided to modify my machine.

I edited my hosts file (C:\Windows\System32\drivers\etc\hosts) to include this line:

169.254.82.206 roboRIO-488.local

This allows deployment and debugging without modification of build scripts or anything… but is obviously somewhat fragile. Hopefully I can root cause the actual issue in the meantime.

This would be possible by modifying the ant script in the ~/wpilib/java/current/ant/ directory, but that’ll run into the same issue as a hosts workaround, which is that the roboRIO ip could change. As it is, we default to mdns, but fall back to static USB and old-style 10.te.am.2 if mdns isn’t found.

The problem I had there is while I could edit the ant script to deploy code, it seemed like Eclipse would always attempt to connect to “roboRio-488.local” when opening the connection to the remote debugger.

Is there a way to mess with that?

Well, you could theoretically make a new ant run config that runs the debug-deploy target, and a new remote debug configuration that connects to the remote jvm session. I haven’t tried it, but I just went and looked at the plugin source, and I think these are the parameters you’ll need to set:
Connection Type: Standard (Socket Attach)
Host: <YOUR IP HERE>
Port: 8348
No guarantees that these are the actual correct parameters, as I didn’t write any part of the plugin, but if I’m reading it correctly, then that’s what you’re looking for. If you’re interested in taking a look yourself (if that doesn’t work), then visit https://usfirst.collab.net/sf/projects/wpilib/ and follow the instructions to look at the source. The particular file I’m pulling this info from is eclipse-plugins/<long package name>.java/src/main/java/<more packages>/launching/JavaLaunchShortcut.java, in the getRemoteDebugConfig method. Hope that helps.

Have you tried roborio-0488.local?

That address does not resolve for me. Interesting idea, though. =]

What OS are you running?

Windows 7.

Did you install the NI update? Windows does not come with an mDNS resolver, the NI update installs one.

We were seeing the same symptoms yesterday.

Reconfiguring the D-Link router with the “Bridge Configuration Utility” fixed us up. This tool came with the software update, and is in
C:\Program Files (x86)\National Instruments\LabVIEW 2014\project