Getting Started


Your shipment should have arrived with the following items. If anything is missing, please contact us as soon as possible so we may replace the item.

  • Xilinx or Intel FPGA development module
  • USB Cable (USB 2.0 or USB 3.0 as appropriate)

Downloading the FrontPanel SDK

Important note: We are not able to provide download access to users who have purchased an item from another manufacturer that includes one of our FPGA modules unless we have an agreement in place with that OEM to do so.

If you are using a piece of equipment that incorporates an Opal Kelly device, please contact the manufacturer of that equipment for support.

The FrontPanel SDK is available for free download to registered customers through our Pins Support Portal online. Note that you will need to sign up for a Pins account and request download approval by supplying your order information. 

Following the instructions at the top… If you are not already registered with Pins you will need to register first. Once you are registered, you will need to request access to the FrontPanel SDK downloads. Instructions for this are at the top of the page. We need to get enough information from you to associate you with a purchase of one of our products.

Installation and Setup

This section will guide you through the software installation. The XEM is a USB device which requires a special driver to be installed on your system. You should install this driver before connecting the XEM to your system. After installation, you should attach your device. Windows performs additional device driver installation after the device is attached, so you should do this before starting FrontPanel for the first time.

Note that the FrontPanel SDK is also available for Mac and Linux platforms. This guide only covers the Windows release.

System Requirements

  • Microsoft Windows 10 or later (64-bit)
  • USB (version 1.1, 2.0, or 3.0)
  • 512 MB RAM
  • Approximately 50 MB free disk space

Software Installation

The FrontPanel SDK includes the following components:

  • Universal USB driver for all Opal Kelly integration modules
  • Opal Kelly’s FrontPanel® desktop application
  • FrontPanel API for C, C++, Python, and Java
  • Sample Verilog and VHDL projects
  • Sample FrontPanel projects

The installation wizard will guide you through the installation and should only take a minute or two. We suggest installing everything available — it won’t take up much space. By default, the installation procedure will copy files to the following directory:

C:\Program Files\Opal Kelly\FrontPanelUSB

When installation is complete, a two new entry will be made in your Start Menu:

Windows Start Menu → All Programs → Opal Kelly

The folder (Opal Kelly) contains shortcuts to the documentation as well as a shortcut to the Samples folder. The shortcut (Opal Kelly FrontPanel) will start FrontPanel.

Powering the Device

Some integration modules are USB bus powered (e.g. XEM7001). Others will require external power to be applied. Please refer to the corresponding User’s Manual for information on powering the device. Be sure to use a clean, well-regulated supply within the specified voltage range for the device input.

IMPORTANT – Heat Dissipation

Care should be taken to provide proper cooling for the XEM and components on the board. The devices can potentially generate more heat than can be dissipated in still air. Passive or active cooling should be considered. Cooling requirements must be determined by the end-user using empirical data or simulation information from the appropriate Xilinx or Altera tools.

Connecting the Device

Once the software is installed on your system, connect the module to a USB port which can provide bus power. Windows will recognize that a new device has been attached and will display a notice near the taskbar. Windows will then display the Found New Hardware dialog.

Allow Windows to install the software automatically and click Next. Windows should then properly locate the driver installed previously and complete the installation. Your module is now ready to be used and will be recognized in FrontPanel.

Note that different modules have different USB serial numbers. Windows recognizes them as different devices and therefore performs the “Found New Hardware” procedure for each board. If you have multiple devices, you’ll need to go through this short procedure for each one. Each time, Windows should find the appropriate driver automatically.

An Introductory Project

FrontPanel Sample Bitfiles

Pre-built bitfiles for the FrontPanel Samples are available for download through the Pins Support Portal.

Additional Configuration May Be Required

Some boards require additional configuration for the samples to work, such as setting a VIO voltage to enable the LEDs or setting a switch to enable USB configuration. Check the specific board’s documentation for more information.

A few examples have been installed with the FrontPanel software. These can be found at the following location under the Windows Start Menu:

Windows Start Menu → All Programs → Opal Kelly → FrontPanel → Samples Directory

Use this shortcut and then open the First example folder to find the following:

XEMxxxx-VerilogProject source folder for the XEMxxxx in Verilog.
XEMxxxx-VHDLProject source folder for the XEMxxxx in VHDL.
...Project source folders for other Opal Kelly modules.
First.xfpThe FrontPanel XML interface description.

The Samples folder contains a README file that describes the process of building the sample bitfiles. You can download pre-built bitfiles from the Pins website.

Download the Configuration File

Start FrontPanel and click the FPGA Configuration Download button to open a file selector dialog. Browse to the appropriate configuration file (e.g. first.bit) and click OK. FrontPanel will then download the configuration file to the FPGA. Download time typically varies between 50 ms and 800 ms depending on the USB connection speed and configuration file size.

Instead of using the file selector dialog to browse for the configuration file, you can also drag and drop the first.bit file onto the FPGA Configuration button.

Load the FrontPanel Profile

When the download is complete, click the Load FrontPanel Profile button to open another file selector dialog. This time, select the First.xfp file and click OK. FrontPanel will load the profile and open the first (and only) panel in the profile. It should look like this:

The panel contains eight okToggleButtons which are connected to the physical LEDs on the XEM or ZEM as well as four okLEDs which are connected to the physical pushbuttons (if present on the device). You can click on the toggle buttons and observe that the LEDs change state. You can also press the pushbuttons and observe the virtual LEDs in FrontPanel echo their state. At the bottom are the inputs (A and B) and the output (SUM) of a 16-bit adder designed into the FPGA. Using the mouse wheel or keyboard, you can change the inputs and observe the output.

Note that the functionality varies slightly depending on what LEDs and buttons are available on your specific hardware. For example, the XEM3010 only has two pushbuttons.

Congratulations! You’ve just been introduced to the simplicity and power of FrontPanel. More elaborate examples are available in the Samples directory. Please see the FrontPanel User’s Manual for a short tutorial on FrontPanel.

Instead of using the file selector dialog to browse for the profile file, you can also drag and drop the first.xfp file onto the Load FrontPanel Profile button.

What’s Next?

You’re ready to start using your module. A few documents will help get you going quickly. These documents are available on our website.

Vivado IP Core – The FrontPanel Subsystem Vivado IP Core is an HDL generator that handles the interconnection and instantiation of the FrontPanel HDL components delivered within the FrontPanel SDK.

FrontPanel User’s Manual – This manual describes FrontPanel and describes how to add FrontPanel support to new or existing FPGA designs. You’re looking at it now!

Device User’s Manual – This manual describes the design and function of the module. Look here to find specification and application information about the module.

Pins – Module pin mappings (how each expansion pin is connected to the FPGA) are provided online through Opal Kelly Pins. You can review this information online and create your own Peripherals to automatically generate constraint files for the FPGA design tools.

FrontPanel API Documentation – This HTML documentation is a browsable description of the FrontPanel programmer’s interface. Although specifically written for the C++ API, it readily translates to the Python API except in noted areas.

FrontPanel SDK Examples – Simple API code usage examples are provided in multiple languages.

Samples & Tools – Several sample projects provide a great starting point to developing your own project. These are installed with FrontPanel in the installation directory.

Additional Resources

The following additional tools are not available for download from Opal Kelly but may be useful.

Latest FPGA Development Software

Developing new FPGA applications requires design suite software from the vendor of the FPGA on the Opal Kelly module, either Intel (ZEM boards) or Xilinx (XEM boards). Both vendors offer free versions of their tools that can be used with low density FPGAs found on lower end FPGA modules from Opal Kelly. Please refer to the FPGA vendor documentation for the FPGA on your module for the development suite requirements. Note that with 7-series and newer modules (XEM7xxx, XEM8xxx, and beyond) Xilinx requires use of the Vivado Design Suite.


Python is an object-oriented, multi-platform interpreted language with a simple syntax. Together with extensive libraries, application development with Python is quick, easy, and robust. FrontPanel Python extensions allow you to configure and communicate with the XEM within any Python program. More information on Python can be found at their official website: Be sure to download a supported version of Python.


wxWidgets is an Open Source C++ class library designed to make GUI design fast and portable. Applications designed with wxWidgets can easily be ported between Windows, Linux, and Apple operating systems. wxWidgets is often favorably compared to the Microsoft Foundation Classes (MFC). More information can be found at the website:


This is an implementation of the wxWidgets library for use under Python. This diverse library makes it very easy to build graphical applications quickly. In addition to the FrontPanel Python extensions, a complete GUI interface to your project can be built quickly and easily. The official website for wxPython is at:


FreeMat is a free environment for rapid engineering, scientific prototyping, and data processing. It is similar to commercial systems such as MATLAB from Mathworks but is Open Source. It is available as a free download at