Upgrade Firmware on C Series XNET Device in a CompactRIO Chassis

Updated Aug 1, 2023

Reported In


  • NI-9862
  • NI-9860
  • CAN Interface Device


  • LabVIEW FPGA Module
  • Measurement & Automation Explorer (MAX)


  • NI CompactRIO

Issue Details

I have a C Series XNET device in my CompactRIO chassis which is reporting that it needs a firmware update.
  • However, the device does not show up properly in NI MAX and therefore I can't access the option to perform an upgrade.
  • It also might not show up at all in a LabVIEW project, when another C Series XNET module does.
  • When I try to deploy a LabVIEW or VeriStand project, I get an error message –2147220597: The specified firmware was not successfully installed. See the output parameters for more information.
How can I upgrade the firmware for the device?


There is one prerequisite to upgrading XNET module firmware when using a cRIO chassis. FPGA code which is capable of communicating with the XNET module must first be compiled and deployed to the cRIO. This can be accomplished with the following a simplified version of the directions found in the Getting Started with CompactRIO section of the XNET manual:
  1. Ensure all of the proper software is installed.
    1. On the host computer:  LabVIEW, LabVIEW Real-Time, LabVIEW FPGA, NI-RIO, NI-XNET
    2. On the cRIO: NI-XNET
  2. Add modules to the project.
    1. Add the controller to the project and select LabVIEW FPGA Interface as the chassis mode when prompted.    
    2. Add NI-XNET modules by right-clicking the chassis item (not the FPGA) and selecting New»C Series Modules»Existing target or device; then select your XNET device(s).
      1. If you cannot see your XNET device in this window, add it using the New target or device » C-Series Module, and then select your XNET modules.
  3. Compile and run an FPGA VI. An empty FPGA VI may be used; an existing VI will need to be recompiled to incorporate NI-XNET support for the configured slots.
With the XNET enabled FPGA Code deployed, the XNET module will appear in MAX under the cRIO and the firmware update process can start:
  1. Click the module and select Update Firmware.  This will open an Update Firmware window.
  2. Select Begin Update.
  3. Wait for MAX to indicate a successful update.
Repeat these last three steps for all XNET modules as firmware versions must be consistent for all modules.

Additional Information

You may also see similar behavior deploying a LabVIEW or VeriStand project to a cRIO with XNET modules present if the cRIO in the project did not have XNET modules defined when the bitfile was compiled. For example in some versions of NI-XNET, a user might see an error about updating XNET firmware if a bitfile was compiled with only FPGA modules and standard I/O Real-Time Scan Resources, but no XNET modules in the Real-Time Scan Resources section of the LabVIEW project that it was compiled in.
  1. Update the LabVIEW project that compiles the bitfile to match any modules in the system. Ensure that any slots that will be XNET modules (NI-986x) have a NI-986x module defined in the slot. For any empty slots, you can specify a placeholder like an NI-9201 in the Real-Time Resources section.
  2. Recompile the bitfile.
  3. Redeploy the bitfile in the LabVIEW project or using the RIO Device Setup application.
  4. Run the LabVIEW application or VeriStand project.