Welcome to the FPGA Interface Python API’s documentation!

The National Instruments FPGA Interface Python API is used for communication between processor and FPGA within NI reconfigurable I/O (RIO) hardware such as NI CompactRIO, NI Single-Board RIO, NI FlexRIO, and NI R Series multifunction RIO.

With the FPGA Interface Python API, developers can use LabVIEW FPGA to program the FPGA within NI hardware and communicate to it from Python running on a host computer. This gives engineers and scientists with Python expertise the ability to take advantage of compiled LabVIEW FPGA bitfiles, also the option to reuse existing Python code.

Info Python API for interacting with LabVIEW FPGA Devices. See our GitHub.
Author National Instruments
Maintainers Michael Strain <Michael.Strain@ni.com>, Mose Gumble <mose.gumble@ni.com>


The nifpga package contains an API for interacting with National Instrument’s LabVIEW FPGA Devices - from Python. This package was created and is officially supported by National Instruments.

nifpga supports versions 16.0 and later of the RIO driver.

Some functions in the nifpga package may be unavailable with earlier versions of your RIO driver. Visit the National Instruments downloads page to upgrade the appropriate RIO device driver for your hardware.

nifpga supports Windows and Linux operating systems.

nifpga supports Python 2.7, 3.4+ . nifpga will likely work on other Python implementations. Feel free to open a issue on github for supporting a new implementation.

Bugs / Feature Requests

To report a bug or submit a feature request, please use our GitHub issues page to open a new issue.

Information to Include When Asking For Help

Please include all of the following information when opening an issue:

  • Detailed steps on how to reproduce the problem, and full traceback (if applicable).

  • The exact python version used:

    $ python -c "import sys; print(sys.version)"
  • The exact versions of packages used:

    $ python -m pip list
  • The exact version of the RIO driver used. Follow this KB article to determine the RIO driver you have installed.

  • The operating system and version (e.g. Windows 7, CentOS 7.2, …)

Additional Documentation

If you are unfamiliar with LabVIEW FPGA module, perusing the LabVIEW FPGA Module resource is a great way to get started. This documentation is API-agnostic.


nifpga is licensed under an MIT-style license (see LICENSE). Other incorporated projects may be licensed under different licenses. All licenses allow for non-commercial and commercial use.

Indices and Tables