Enhanced I/O Missing

I am having an issue trying to get the Cypress Enhanced I/O board working with the 2014 Driver Station. We’ve been using the same board without problems for several years now without issue.

Here is what I’m seeing:

The I/O status light is grayed out and the message:
“Unable to locate I/O unit over USB” shows in the Messages text area.

But, if you look at the I/O tab, you see the green light next to it. Navigating to that tab I see:

All the data is correct - it responds to accelerometer data and my connected buttons and toggles. So clearly the Driver’s Station can see and communicate with the Cypress PSoC, but the Diagnostics tab don’t seem to see it.

On the robot, when we attempt to use the Java library to configure the EI/O, it throws an Enhanced I/O Missing exception.

I’ve checked the version of everything according to the screensteps site:
FTK3 ( is listed in device manager.
ftk_3_simfw.hex is 29,663 bytes.
nicyapi.dll is installed and is version

My driver’s station version is, which I think is the latest?

Any ideas?

I see the same thing. No LED on the diagnostics tab, but everything works on the I/O tab.

You might’ve already done this, but not mentioned it, but have you made sure the service is started? That could potentially be the issue, as it’s mentioned in the “Messages” in your first screenshot…

Upon further investigation, it’s the LED that’s broken. I think it’s safe to ignore it. If you plug in Joystick 5, the I/O light turns on.

Interesting. Additional joysticks were added to aid in identifying and configuring the TI board. In the process, the USB Devices on the Diagnostics tab got out of order and the last two joysticks, I/O, and Kinect LEDs are indeed busted. Trust the one on the I/O Button, but not the one in Diagnostics.

Greg McKaskle

Unfortunately attempting to utilize the EI/O from robot code throws an Enhanced I/O Missing exception when trying to configure it, so it seems that the issue is not only the LED. I will attempt to connect a joystick to port 5 to see if it will fool the DS into thinking it’s connected.

The service is indeed started. The correct version would not show up in device manager if it was not.

Furthermore, the device is working on the I/O tab. It displays live accelerometer data and the current state of the various buttons and switches that I have connected to the Cypress board.

Greg, is there any way that this could affect usage of the EIO board via the DriverStationEnhancedIO Java class?

I have tested moving a joystick to the 5th port to see if it would “trick” the DS into thinking the EI/O unit was present.

While it indeed does light the LED on the Diagnostic tab, it is a red herring and does not resolve my connectivity issues.

On the robot I am still receiving the following exception when I try to configure the EI/O unit:

edu.wpi.first.wpilibj.DriverStationEnhancedIO$EnhancedIOException: Enhanced IO Missing

Greg, or anyone else with information on what can cause this particular exception while the DS can clearly access the EI/O device, I’m willing to try whatever you can think of.

Do you actually have it configured for Enhanced I/O? Or is it set to Compatible mode instead?

I don’t have a Cypress board with me to test, but looking at the code, I don’t believe that the swapped LEDs on the Diagnostics tab will have any other affects. The I/O LED on the I/O tab is used in the code to “remember” that the board is present and functioning. The Diagnostics cluster is a leaf element that is a copy of the I/O and other LEDs.

Please check the mode, as Alan pointed out. I noticed that you were getting a Diagnostics error earlier, and again, I don’t think the LED is the cause of that.

Greg McKaskle

We are seeing the symptom of the IO LED not lighting, but we also see no changes on the I/O screen either when various inputs are changed.
We do not need the Extended configuration, Compatibility mode is enough for us.

Were there any new drivers needed this year that my students may have overlooked installing? Is it possible we could be running an older version of the Driver’s Station? I did not watch them perform install and we may be using a previous year’s version.

The DS version is easy. It is kickoff day 2014.

I don’t have a Cypress board with me, but I assume that you are setting the Digital outputs. The LEDs are supposed to be tied to the Digital outputs. If that doesn’t work, perhaps try Enhanced and see if that works even though you don’t need as many channels.

Greg McKaskle

Have you looked at the troubleshooting section of the screensteps website?

If the I/O tab’s light is not lit and you can’t see things like live accelerometer data, one of the bullet points of the troubleshooting section usually doesn’t check out.

** Update to my situation: I managed to get everything working again by performing the configuration of the unit in robot code later on during initialization. It seems to have been timing related or perhaps something like configuring the jaguars in the same DS update upset the system.