Getting DS to show camera feed

I’m using an 8 slot cRIO and an M1013 AxisCamera. I ran the AxisCamera configuration utility from the Driver Station and it said the username and password were both successfully changed to FRC.

My code was compiling fine before, but since I added the camera code I haven’t been able to compile. The compilation just stalls at

[cRIO] FPGA Hardware GUID: 0xa14c11bde4bb64aef6a86fc52a294cd9
[cRIO] FPGA Software GUID: 0xa14c11bde4bb64aef6a86fc52a294cd9

The code I added was just constructing it and the compilation just stalls. If I remove the code it works just fine.

AxisCamera camera;
camera = AxisCamera.getInstance();

When I connect the cRIO to the DriverStation and go to the Diagnostic tabs I get repeated error messages saying:

ERROR: S_errno_EHOSTDOWN(0x00000043): Failed to connect to the camera CreateCameraSocket() in C:/WindRiver/workspace/WPILib/Vision/AxisCameraParams.cpp at line 457

and at sparse intervals it gives this error message as well…

ERROR: S_errno_EINPROGRESS(0x00000044): Failed to connect to the camera CreateCameraSocket() in C:/WindRiver/workspace/WPILib/Vision/AxisCameraParams.cpp at line 457

Any ideas? Also, what code actually sends the DriverStation the image from the camera? I looked through last year’s code and there’s nothing that looks like it does. Will it automatically display the image if configured correctly regardless of what’s in the code?

I’m no expert on connecting to the camera through the cRIO, but from the error message, it seems like the code cannot find the camera at the specified IP.

Are you sure you’ve got the camera at the right IP?

In the past we used something like this:


The getInstance() method you’re using assumes the camera is at 10.x.y.1 by default. Use the version of the method which specifies the IP.

If your camera is on cRIO ethernet port 2, the IP should be, If it’s connected on the ethernet switch, it should be 10.x.y.11

Thanks! Now my code compiles, but I’m still not getting a camera feed on the DriverStation

printing camera.freshImage() returns true.

EDIT: Hmmmm… Now it’s printing false and I haven’t changed anything. Strange.

Sorry, I may have led you down the wrong path.
If all you’re trying to do is get the image to show on the default dashboard, I think you just need to configure your camera correctly.
I could be wrong, but you shouldn’t need special code on the cRIO unless you’re trying to process images locally on it.

See these links:

Sorry I cant be of more help, I don’t have any hardware here to test with at the moment and we have used smart dashboard in the past, and it’s as simple as adding a widget and pointing it to the right IP:
Getting started w/ smartdashboard

I’m not sure if you’ve solved the problem yet but if you haven’t, which dashboard are you using?

If you’re programming in Java I would assume you are using the SmartDashboard…correct?