Release Notes (FrontPanel)
Latest Release (FrontPanel 5.3.6)
The configurations below represent the current build targets for the API, samples, and applications in this release. Many similar configurations are known to work (e.g. Linux Ubuntu, etc) but these are the official distribution targets.
OS | C/C++ | PYTHON | JAVA | RUBY | C# |
---|---|---|---|---|---|
Windows 10, 11 (x64) | MSVS 2022 | 3.7 | 9 | Yes | Yes |
macOS 10.15+ Intel and Apple Silicon | SDK 10.15 | 3.6.5 (homebrew) | 1.8.0 | 1.8.7 | – |
Ubuntu 24.04 LTS (x64) Linux 6.8.0-48 | gcc 10.5.0 | 3.12.3 | 11 | 3.2.3 | – |
Ubuntu 22.04 LTS (x64) Linux 5.15.0-1013 | gcc 9.4.0 | 3.10.4 | 11 | 3.0.0 | – |
Ubuntu 20.04 LTS (x64) Linux 5.4.0-28 | gcc 9.3.0 | 3.8.2 | 11 | 2.7.0 | – |
Rocky Linux 8.9 (x64, RHEL 8) Linux 4.18.0-553 | gcc 8.5.0 | 3.6.8 | 1.8.0 | 2.5.9 | – |
Rocky Linux 9.3 (x64, RHEL 9) Linux 5.14.0-472 | gcc 11.4.1 | 3.9.18 | 11 | 3.0.7 | – |
Raspbian 10.0 (ARM-Raspberry Pi, Buster) Linux 5.10.103 | gcc 6.3.0 | 3.5.3 | 1.8.0 | 2.3.3 | – |
Raspbian 12.0 (ARM64-Raspberry Pi, Bookworm) Linux 6.6.31 | gcc 12.2.0 | 12.2.0 | 3.11.2 | 3.1.2 | – |
Ubuntu 18.04 (ARM-nVidia TX2) Linux 4.9 | gcc 5.4.0 | 3.5.2 | 1.8.0 | 2.3.1 | – |
Deprecation Notices
The following methods will be removed in FrontPanel 6.0.
okCFrontPanel::IsFrontPanel3Supported
okCFrontPanel::EnableAsynchronousTransfers
okCFrontPanel::GetHostInterfaceWidth
– Migrate to these methods:okTDeviceInfo::wireWidth
okTDeviceInfo::triggerWidth
okTDeviceInfo::pipeWidth
okTDeviceInfo::registerAddressWidth
okTDeviceInfo::registerDataWidth
okCFrontPanel::IsHighSpeed
– Migrate tookTDeviceInfo::usbSpeed
okCFrontPanel::GetBoardModel
– Migrate tookTDeviceInfo::productID
okCFrontPanel::GetDeviceMajorVersion
– Migrate tookTDeviceInfo::deviceMajorVersion
okCFrontPanel::GetDeviceMinorVersion
– Migrate tookTDeviceInfo::deviceMinorVersion
okCFrontPanel::GetSerialNumber
– Migrate tookTDeviceInfo::serialNumber
okCFrontPanel::GetDeviceID
– Migrate tookTDeviceInfo::deviceID
okCFrontPanel::GetDeviceCount
– Migrate toOpalKelly::FrontPanelDevices::GetCount
okCFrontPanel::GetDeviceListModel
– Migrate tookTDeviceInfo::productID
okCFrontPanel::GetBoardModel
– Migrate tookTDeviceInfo::productID
okCFrontPanel::GetDeviceListSerial
– Migrate toOpalKelly::FrontPanelDevices::GetSerial()
okCFrontPanel::OpenBySerial
– Migrate toOpalKelly::FrontPanelDevices::Open
()
Changelog (2024-11-19)
- Fix bug with
GetHostInterfaceWidth()
always returning0
.- This also fixed FrontPanel freezing when an XFP was loaded.
- Fix
IsHighSpeed()
to function as stated in the documentation. - Fix some API documentation formatting issues.
- Fix missing C# dll.
Previous Releases (FrontPanel 5.x)
FrontPanel 5.3.5 (2024-11-04)
- 32-bit API no longer provided on Windows.
- C# is continued to be offered as an AnyCPU target.
- Add Ubuntu 24.04 build target.
- okCDeviceSettings::List now works as the documentation states.
- The previous implementation, okCFrontPanel::ErrorCode List(okCDeviceSettingNames& names),
will show a deprecation warning: “This function only exists for compatibility,
use List(std::vector&) overload instead.”
- The previous implementation, okCFrontPanel::ErrorCode List(okCDeviceSettingNames& names),
- Fix Reset Profile window incorrectly showing for products that don’t support them.
- Correctly add the hasQuadConfigFlash = true flag to Kintex US+ products.
- libokFrontPanel.so version and SONAME is now set properly.
- Users should copy all of the libokFrontPanel.so files if they are moved.
- This is backwards compatible, but not compatible in
the other directions, i.e. programs compiled with the latest FrontPanel
SDK won’t work with the old library, even if it contains all the needed
functions, because it doesn’t have the correct name nor has the correct
SONAME.
- Fix another issue with old vc_redist packages and running firmware updater causing crashes.
- Sign and notarize macOS binaries.
- Fix icons in high DPI mode on macOS.
- macOS sample Makefiles now build universal binaries for Apple silicon.
- Fix UI and icons in Ubuntu.
- Fix Device ID window incorrectly showing up when exiting the GUI FlashLoader utility.
- Clean up outdated FrontPanel files.
- All non-C# and MATLAB source files now use Unix EOLs.
- Add error code page to the API reference documentation, as well as a search bar.
- Add Python usage note to FlashRead and FlashWrite to the API Reference documenatation.
- Fix installer opening above uninstaller in some circumstances.
- Provide Python wheel for Windows in the Python API folder.
- PipeTest updates.
- Add basic statistical analysis switch ‘csv [filename]’.
- This calculates error rates, averages, min, and max rates that are then output to a CSV file.
- Improve error reporting.
- FlashLoader updates.
- Add usage requirements note to usage printout.
- Add ‘c’ option for clearing Reset Profiles (instead of a default, undocumented action on running with no arguments).
- Only configure flashloader.bit when required (not when just printing usage notes)
- RAMTester updates.
- Use more reliable std::chrono::steady_clock.
- Add time and speed reporting to read/verify and write tests.
- QNX support and references removed.
- All functions now set GetLastError().
- Rename Quartus license from okAlteraLicense.dat to okIntelLicense.dat.
FrontPanel 5.3.5 (2024-08-08)
- Add Ubuntu 24.04 build target.
- okCDeviceSettings::List now works as the documentation states.
- The previous implementation, okCFrontPanel::ErrorCode List(okCDeviceSettingNames& names),
will show a deprecation warning: “This function only exists for compatibility,
use List(std::vector&) overload instead.”
- The previous implementation, okCFrontPanel::ErrorCode List(okCDeviceSettingNames& names),
- Fix Reset Profile window incorrectly showing for products that don’t support them.
- Correctly add the hasQuadConfigFlash = true flag to Kintext US+ products.
- libokFrontPanel.so version and soname is now set properly.
- Users should copy all of the libokFrontPanel.so files if they are moved.
- This is backwards compatible, but not compatible in the other directions. I.e. programs compiled with the latest FrontPanel SDK won’t work with the old library, even if it contains all the needed functions, because it doesn’t have the correct name nor the correct SONAME.
- Fix another issue with old vc_redist packages and running firmware updater causing crashes.
- Sign and notarize macOS binaries.
- Fix icons in high DPI mode on macOS.
- macOS sample Makefiles now build universal binaries for Apple silicon.
- Fix UI and icons in Ubuntu.
- Fix Device ID window incorrectly showing up when exiting the GUI FlashLoader utility.
- Clean up outdated FrontPanel files.
- All non-C# and MATLAB source files now use Unix EOLs.
- Add error code page to the API reference documentation, as well as a search bar.
- Add Python usage note to FlashRead and FlashWrite to the API Reference documenatation.
- Fix installer opening above uninstaller in some circumstances.
- Provide Python wheel for Windows in the Python API folder.
- PipeTest updates.
- Add basic statistical analysis switch ‘csv [filename]’.
- This calculates error rates, averages, min, and max rates that are then output to a csv file.
- Improve error reporting.
- Add usage requirements note to usage printout.
- Add ‘c’ option for clearing Reset Profiles (instead of a default, undocumented action on running with no arguments).
- Only configure flashloader.bit when required (not when just printing usage notes)
- Remove mt_random.cpp as it wasn’t used.
- RAMTester updates.
- Use more reliable std::chrono::steady_clock.
- Add time and speed reporting to read/verify and write tests.
- QNX support and references removed.
- All functions now set GetLastError().
- Rename Quartus license from okAlteraLicense.dat to okIntelLicense.dat.
Changelog
- Fix bug regarding running older vc_redist packages on some Windows 10 machines.
- Add Rocky Linux 8 and 9 distributions.
- Add Raspbian 12 (Raspberry Pi 5) arm64 distribution.
- Improve the functionality of GetLastErrorMessage.
- This function now returns the generic message corresponding to the last error returned by a FrontPanel API call, if no more detailed error message is available.
- Add GetErrorMessage API call.
- Pass this function a FrontPanel error, like Timeout, to get a human-readable message giving some extra information.
- Fix XFP sounds not working on macOS.
Known Issues
While we’ve fixed the vc_redist issue within FrontPanel device enumeration, a backend dependency is affected within our firmware updater on Windows. You should be able to fix this by installing the latest Visual C++ redistributables here. It will be fixed in the next release of FrontPanel. This bug is caused by older, out of date redistributable dlls on the system.
FrontPanel 5.3.4
The configurations below represent the current build targets for the API, samples, and applications in this release. Many similar configurations are known to work (e.g. Linux Ubuntu, etc) but these are the official distribution targets.
OS | C/C++ | PYTHON | JAVA | RUBY | C# |
---|---|---|---|---|---|
Windows 10, 11 | MSVS 2022 | 3.7 | 9 | Yes | Yes |
macOS 10.15+ Intel and Apple Silicon | SDK 10.15 | 3.6.5 (homebrew) | 1.8.0 | 1.8.7 | – |
Ubuntu 22.04 LTS (x64) Linux 5.15.0-1013 | gcc 9.4.0 | 3.10.4 | 11 | 3.0.0 | – |
Ubuntu 20.04 LTS (x64) Linux 5.4.0-28 | gcc 9.3.0 | 3.8.2 | 11 | 2.7.0 | – |
Rocky Linux 8.9 (x64, RHEL 8) Linux 4.18.0-553 | gcc 8.5.0 | 3.6.8 | 1.8.0 | 2.5.9 | – |
Rocky Linux 9.3 (x64, RHEL 9) Linux 5.14.0-472 | gcc 11.4.1 | 3.9.18 | 11 | 3.0.7 | – |
Raspbian 10.0 (ARM-Raspberry Pi, Buster) Linux 5.10.103 | gcc 6.3.0 | 3.5.3 | 1.8.0 | 2.3.3 | – |
Raspbian 12.0 (ARM64-Raspberry Pi, Bookworm) Linux 6.6.31 | gcc 12.2.0 | 12.2.0 | 3.11.2 | 3.1.2 | – |
Ubuntu 18.04 (ARM-nVidia TX2) Linux 4.9 | gcc 5.4.0 | 3.5.2 | 1.8.0 | 2.3.1 | – |
Deprecation Notices
Several methods will be removed in FrontPanel 6.0. See the latest release notes for details.
FrontPanel 5.3.3 (2024-06-25)
OS | C/C++ | PYTHON | JAVA | RUBY | C# |
---|---|---|---|---|---|
Windows 10, 11 | MSVS 2022 | 3.7 | 9 | Yes | Yes |
macOS 10.10+ Intel and Apple Silicon | SDK 10.10 | 3.6.5 (homebrew) | 1.8.0 | 1.8.7 | – |
Ubuntu 22.04 LTS (64) Linux 5.15.0-1013 | gcc 9.4.0 | 3.10.4 | 11 | 3.0.0 | – |
Ubuntu 20.04 LTS (64) Linux 5.4.0-28 | gcc 9.3.0 | 3.8.2 | 11 | 2.7.0 | – |
CentOS 7.5 (64) Linux 3.10.0-862 | gcc 4.8.5 | 3.6.8 | 1.8.0 | 2.0.0 | – |
Raspbian 10.0 (ARM-Raspberry Pi, Buster) Linux 5.10.103 | gcc 6.3.0 | 3.5.3 | 1.8.0 | 2.3.3 | – |
Ubuntu 18.04 (ARM-nVidia TX2) Linux 4.9 | gcc 5.4.0 | 3.5.2 | 1.8.0 | 2.3.1 | – |
Changelog
- Add XEM8305-AU15P & XEM8370-KU11P Mac & Linux assets.
Known Issues
Some macOS API binaries were not built correctly with ARM support. A hotfix, 5.3.3.1 was released for the macOS distribution 5.3.3 on our downloads page here.
Some Windows 10 installations crash upon enumerating a device in the FrontPanel GUI. This is due to programs being built with the current newest Microsoft Visual C++ Redistributable packages that conflicts with older ones in certain systems. To resolve, uninstall Microsoft Visual C++ 2015-2022 Redistributable (x64 and x86)
, and install the most recent x64 version here. This will be resolved in the next release of FrontPanel.
FrontPanel 5.3.2 (2024-06-20)
Changelog
- Add XEM8305-AU15P support.
- Add dark/light mode option in the Preferences page.
- Various appearance updates.
- Add Device Information Page to the FrontPanel Application to show properties from GetDeviceInfo.
- Improve error messages for the Flash Loading utility in FrontPanel.
- Remove hasFMCEEPROM=True flag from XEM8320 and XEM8310.
- Target .NET Framework 4.8 for DES Tester MSVS.
Known Issues
Some Windows 10 installations crash upon enumerating a device in the FrontPanel GUI. This is due to programs being built with the current newest Microsoft Visual C++ Redistributable packages that conflicts with older ones in certain systems. To resolve, uninstall Microsoft Visual C++ 2015-2022 Redistributable (x64 and x86)
, and install the most recent x64 version here. This will be resolved in a future release of FrontPanel.
FrontPanel 5.3.1 (2024-01-09)
Changelog
- Add XEM8370-KU11P support
- Use XDG-compliant location for configuration files under Linux.
- Add error checking to I2C EEPROM writes.
- Improve reset profile loading on Linux.
- Improve device setting window appearing to hang on Linux.
- Upgrade samples to MSVS 22.
- Improve handling of maximum and minimum values for digit display and entry XFP controls.
- Configurable minimum and maximum values.
- Max value doesn’t need to be in the form of 2^N-1 anymore.
- Background color of the element changes when an error condition is met.
- Add tool tip when an error condition is met.
- Remove max limit of 255 from okSlider.
- Counters sample XFP now makes fewer noises, and won’t repeat sounds when certain resets are held in the XFP.
- Remove broken PDF links in the Windows start menu.
- Add HTML link to docs.opalkelly.com to the Windows start menu.
- Firmware updater visual updates.
- Fix several cosmetic problems in dark mode.
FrontPanel 5.3.0 (2023-06-13)
Changelog
- API
- Important change to pipe timeout handling under Linux: pipe transfers using the specified timeout may take slightly longer in case the timeout actually expires, i.e. the total function execution time is not exactly bounded by the timeout anymore, as the function still performs the required cleanup in this case, unlike before.
- Recommendation: in case of an error during pipe transfer, it is recommended to close the device as there is no guarantee that the memory used as the transfer buffer can be safely freed until this is done.
- Fix segmentation fault in Linux when using timeouts a certain way, related to the above change.
- Python 2 support discontinued.
- Many EOL software distributions discontinued.
- FPoIP
- Fix minor bug where FrontPanel over IP Client IsFrontPanel3Supported function was incorrectly sending an IsFrontPanelEnabled request to the server.
- Add HasDeviceSettingsSupport method.
- Add HasDeviceSensorsSupport method.
- Increment FPoIP to version 0.20.
- Add the following methods to the FPoIP API:
- FlashEraseSector
- FlashWrite
- FlashRead
- ClearFPGAConfiguration
- ConfigureFPGAFromMemoryWithReset
- ConfigureFPGAFromFlash
- SetFPGAResetProfile
- GetFPGAResetProfile
- LoadDefaultPLLConfiguration
- SetPLL22150Configuration
- GetPLL22150Configuration
- SetEepromPLL22150Configuration
- GetEepromPLL22150Configuration
- GetDeviceSensors
- The okCDeviceSettings class
- okTDeviceSensor struct support
- Update FrontPanel WebAPI with these additions as well: https://github.com/opalkelly-opensource/frontpanel-ws
- FrontPanel Examples
- Revert reset pulse for the RAMTester sample to longer duration for the XEM7350 and XEM7360 only. This is for reliability reasons on older revisions.
- Add opening and closing default nettype directives for many Opal Kelly sample files.
- QOL fixes for DESTester.py.
- Update WebAPI samples Counters and PipeTest to the new frontpanel-ws package version.
- PipeTest now uses
std::chrono
for timing transfers. Resolves issue on certain systems where the timer would not be set correctly, causing PipeTest to not run any tests.
- Linux Installer QOL Changes
- Add basic uninstaller on Linux distributions.
- Add functionality to install.sh to not install share files on non-GUI distributions of
FrontPanel. - FrontPanel launch script on Linux now checks locally for FrontPanel library files.
- Relevant FrontPanel executables are now copied to /usr/local/bin via install.sh.
- FrontPanel library files are now copied to /usr/local/lib.
- Change Linux file permissions so they no longer require chmod before use.
- FrontPanel Application Changes
- Add icon and shortcut support to Linux Distributions via .desktop file.
- Add dark mode support for Windows 10/11.
- Fix an issue with setting an empty device ID from the FrontPanel app. The device ID now displays as “<empty>” if the device ID string is empty, so it may be clicked in the FrontPanel app.
- Allow pressing “-” to toggle the sign of okDigitEntry XFP elements.
- Allow pressing “+” to make okDigitEntry XFP elements positive.
- Clarify tool tip of the “Disable Updates” button in the FrontPanel app.
- High DPI support in FrontPanel Windows distribution.
- Update Mac FrontPanel Icons.
- Improve appearance of the About Box.
- Various other appearance changes.
FrontPanel 5.2.12 (2023-01-31)
OS | C/C++ | PYTHON | JAVA | RUBY | C# |
---|---|---|---|---|---|
Windows 10, 11 | MSVS 2019 | 2.7, 3.7 | 9 | Yes | Yes |
macOS 10.10+ Intel and Apple Silicon | SDK 10.10 | 2.7.2, 3.6.5 (homebrew) | 1.8.0 | 1.8.7 | – |
Ubuntu 22.04 LTS (64) Linux 5.15.0-1013 | gcc 9.4.0 | 2.7.18, 3.10.4 | 11 | 3.0.0 | – |
Ubuntu 20.04 LTS (64) Linux 5.4.0-28 | gcc 9.3.0 | 2.7.18, 3.8.2 | 11 | 2.7.0 | – |
Ubuntu 18.04 LTS (64) Linux 4.15.0-42 | gcc 7.4.0 | 2.7.15, 3.6.6 | 1.8.0 | 2.5.1 | – |
Ubuntu 16.04 LTS (32/64) Linux 4.13.0-38 | gcc 5.4.0 | 2.7.12, 3.5.2 | 8 | 2.3.1 | – |
CentOS 8.0 (64) Linux 4.18.0-147 | gcc 8.3.1 | 2.7.16, 3.6.8 | 11 | 2.5.5 | – |
CentOS 7.0 (64) Linux 3.10.0-862 | gcc 4.8.5 | 2.7.5, 3.6.8 | 1.8.0 | 2.0.0 | – |
CentOS 6.9 Linux 2.6.32-431 | gcc 4.4.7 | 2.6.6 | 1.8.7 | 1.7.0 | – |
Raspbian 9.0 (ARM-Raspberry Pi) Linux 4.14.52 | gcc 6.3.0 | 2.7.13, 3.5.3 | 1.8.0 | 2.3.3 | – |
Ubuntu 14.04 (ARM-Nvidia) Linux 3.10.40 | gcc 4.8.4 | 2.7.6, 3.4.3 | 1.7.0 | 1.9.3 | – |
Ubuntu 16.04 (ARM-Nvidia) Linux 4.4.38 | gcc 5.4.0 | 2.7.12, 3.5.2 | 1.8.0 | 2.3.1 | – |
Operating System Support
Occasionally, we need to sunset support for older distributions. In general, if a targeted operating system or programming language is EOL, it is subject to be discontinued. Below are important notices regarding software and official OS support.
- Ubuntu 18.04 will be discontinued by April 1, 2023.
- Ubuntu 16.04 will be discontinued in FrontPanel 5.3.0
- CentOS 6.9 and CentOS 8.1 will be discontinued in FrontPanel 5.3.0.
- Ubuntu 14.04 (ARM-Nvidia) will be discontinued in FrontPanel 5.3.0.
- Raspbian 9.11 will be discontinued in FrontPanel 5.3.0, and replaced with Raspbian 10.
- 32-Bit Windows Distributions of FrontPanel will be discontinued in FrontPanel 5.3.0.
Deprecation Notices
- Python 2 has been marked EOL since Jan 1, 2020. It will be discontinued in FrontPanel 5.3.0.
Changelog
- Support new firmware update protocol in FrontPanel. Please note that previous versions of FrontPanel cannot be used for firmware updates any longer since 2023-01-23, and this version or later is required to perform them.
- Add device support for XEM8320 rev Cxx.
- Fix a bug with the “FrontPanel Enabled” tooltip in the FrontPanel application.
- Add the WriteRegister() and ReadRegister() functions to the Lua scripting API.
- Explicitly constrain DIFF_TERM to FALSE for the 200Mhz clock oscillator in all samples for the XEM7305, XEM7310, XEM7310MT, XEM7320, XEM7350, and XEM7360.
FrontPanel 5.2.11 (2022-10-10)
- Add Apple Silicon support for FrontPanel Samples.
- Add XEM8350-KU115 HDL to Linux distributions.
FrontPanel 5.2.10 (2022-09-27)
- Add XEM8350-KU115 support.
- Improved recovery behavior for pipe transaction timeouts
FrontPanel 5.2.9 (2022-08-31)
- Fix Python 3 API support on Apple Silicon.
FrontPanel 5.2.8 (2022-08-23)
- Add Apple Silicon Support.
- Add Windows 11 Support.
- Add XEM7320-A200 FrontPanel HDL.
- Add support for XEM7350 revision Fxx.
- All executables, installers, and DLLs are now signed in Windows distributions.
- Signing certificate file digest updated to SHA-256 in Windows distributions.
- Known issues:
- Python 3 API doesn’t function as expected on Apple Silicon. Will be fixed shortly with the release of FrontPanel 5.2.9.
FrontPanel 5.2.7 (2022-07-11)
- Add Ubuntu 22.04 distribution.
- Device sensors now update without a bitfile having to be loaded.
- Add preliminary support for XEM7350 revision Fxx.
- Add read back feature to Flashloader sample. See the documentation for more info: https://docs.opalkelly.com/fpsdk/samples-and-tools/tool-flashloader/
- Fix a bug where an extra sector would be erased when using the flash utility in FrontPanel.
- Fix a bug with the flashloader sample and flash utility in FrontPanel where extra data would be appended to the last transfer when not aligned to 1024 bytes.
- Set FPGA flash memory’s QE bit in Flashloader sample and FrontPanel flash utility when applicable (XEM8310, XEM8320, and XEM8350).
- Update samples for XEM8310 and XEM8320 to use DDR4-2400. Visit DDR4 memory page in the documentation for more information.
- Reorder Configure Device Settings tabs, Device Settings tab is now the default tab instead of Firmware.
FrontPanel 5.2.6 (2022-05-02)
- Add XEM8310 device support.
- Add XEM7360 Rev EXX VCCINT device sensor support.
- Set multi-purpose VREF pins in the XEM7360 and XEM7350 samples Hi-Z when it is not used. See the DDR3 Memory page for either product for more details.
FrontPanel 5.2.5 (2022-02-02)
- Add XEM8320 device support.
- Fix issues related to XEM8350 and other USB 3.0 devices configuring flash loaded bitfiles from within FrontPanel.
- Add functionality to program the XEM8350-KU060’s flash from FrontPanel GUI.
- Fix an issue with the FPGA Flash sector size on the XEM8350.
- Fix for Vivado naming conflict with xpm_cdc_async_rst.
- Add FrontPanel HDL for Vivado 2021.1 and later for applicable XEM products.
- See https://docs.opalkelly.com/fpsdk/troubleshooting/ for more details.
- okToggleButton now works for macOS.
- Add flashloader sample for XEM8320 and XEM8350.
- Add hasQuadConfigFlash flag to okTDeviceInfo.
- Known Issues:
- FrontPanel XFP file updates are not detected on MacOS.
FrontPanel 5.2.4 (2021-07-09)
- Add low VIO support XEM8350 device setting.
- Use a background thread for monitoring device connections under Linux.
- Handle failure to claim USB interface as an error under Linux.
- Fix harmless Valgrind warnings about using uninitialized memory in FrontPanel library.
- Known Issues:
- FrontPanel XFP file updates are not detected on MacOS
FrontPanel 5.2.3 (2020-08-27)
- Improve performance for opening devices in Linux.
- Fix a bug preventing use of the
--load-profile
FrontPanel command line option. - Raspbian 8 support discontinued.
- Known Issues:
- FrontPanel XFP file updates are not detected on MacOS
FrontPanel 5.2.2 (2020-06-11)
- Add FPoIP WebAPI Counters and PipeTest samples
- Add okimpl_fpoip shared object/DLL to the same directory as the FrontPanel GUI to simplify GUI FPoIP use.
- Known Issues:
- FrontPanel XFP file updates are not detected on MacOS
FrontPanel 5.2.1 (2020-06-02)
- Ruby is now a supported language in Windows, please refer to the Programming Languages documentation for details on installing and using the Ruby API.
- Added a new field to
okTDeviceInfo
to differentiate between FPGA flash configuration methods. - Additional bug fixes and improvements.
- Updates to the FPoIP server for use with the JavaScript FPoIP WebAPI
- Known Issues:
- FrontPanel XFP file updates are not detected on MacOS
FrontPanel 5.2.0 (2020-02-28)
- The Python 3 API wrapper is now compatible with all Python 3.x versions beyond 3.4.
- New DeviceInfo fields for determining the FPGA vendor, number of USB interfaces, and whether a USB interface is the primary on a connected module.
- Rename okFrontPanelDLL.h to just okFrontPanel.h to make naming more consistent across operating systems. Applications may still use okFrontPanelDLL.h, which is still provided for compatibility.
- FPoIP servers can now communicate with clients based on earlier protocol versions so long as there are no incompatible differences.
- [Java] Return value of size() method of various collections is now int instead of long, for consistency with the other Java containers.
- FrontPanel HDL simulation sources now check for valid endpoint addresses.
- The FrontPanel Android release now includes the correct shared objects.
- Additional bug fixes and improvements.
- Known Issues:
- FrontPanel XFP file updates are not detected on MacOS
FrontPanel 5.1.3 (2020-02-04)
- Add return values for
UpdateWireIns()
andUpdateWireOuts()
FrontPanel 5.1.2 (2019-11-19)
- Resolve bug preventing use of FPoIP Server Side Scripts
- Allow use of
LoadFile
in Server Side Scripts from SWIG APIs - Add support for reading/writing registers in FPoIP
- The Read and Write Register functions now return
UnsupportedFeature
instead ofDeviceNotOpen
for devices that do not support registers - Miscellaneous bug fixes
- Known Issues:
- FrontPanel XFP file updates are not detected on MacOS
FrontPanel 5.1.1 (2019-10-10)
- Addition of FrontPanel XFP Versioning
- Added GetProfileDirectory function for XFP Lua scripts
- Support for dark mode on MacOS
- Resolve bugs preventing firmware updates on Ubuntu 18.04
- Resolve issues with Linux Ruby API
- Miscellaneous bug fixes
- Known Issues:
- FrontPanel XFP file updates are not detected on MacOS
FrontPanel 5.1.0 (2019-07-08)
- Addition of FrontPanel XFP Lua scripting enabling more functional XFP designs.
- Device support for the XEM8350 and XEM7310MT
- Miscellaneous bug fixes
- Known Issues:
- It is not possible to enter an email address in the FrontPanel firmware update window on Ubuntu 18.04
- FrontPanel XFP file updates are not detected on MacOS
FrontPanel 5.0.2 (2018-07-20)
- The FPoIP components of the FrontPanel library have been split into a separate library. FPoIP applications must include both libraries to function.
- A new “prescale” parameter is available for the okDigitEntry FrontPanel XML component.
FrontPanel 5.0.1 (2018-06-13)
- Firmware updates now supported under Mac OS X.
- A Doxygen tag file and HTML documentation are now included for all platforms.
- Resolved a bug that resulted in a crash during firmware updates.
FrontPanel 5.0.0 (2018-05-04)
- Built using Microsoft Visual Studio 2015. (Visual Studio Runtime here: https://www.microsoft.com/en-us/download/details.aspx?id=48145)
- Addition of FPoIP allowing to use remote FrontPanel devices.
- Added Python 3 support for Windows, macOS, and Ubuntu 16.04 LTS.
- Added support for XEM7320 and XEM7305
okCFrontPanelDevices
can be used for enumerating and opening the devices.okCFrontPanelManager
can be used to be notified about devices connections and disconnections dynamically.- Add
okCFrontPanel::GetLastErrorMessage()
function. - Add functions returning FrontPanel version.
- Known Issues
- Firmware updates are currently only supported under Windows.
Previous Releases (FrontPanel 4.x)
FrontPanel 4.5.6 (2016-11-11)
The configurations below represent the current build targets for the API, samples, and applications in this release. Many similar configurations are known to work (e.g. Linux Ubuntu, etc) but these are the official distribution targets.
OS | C/C++ | PYTHON | JAVA | RUBY | C# |
---|---|---|---|---|---|
Windows 7, 8, 10 | DLL | 2.7, 3.5 | 1.8.0 | – | Yes |
macOS 10.8+ | SDK 10.8 | 2.7.2 | 1.6.0 | 1.8.7 | – |
Linux CentOS 6.5 | gcc 4.4.7 | 2.6.6 | 1.8.7 | 1.7.0 | – |
Linux Ubuntu 12.04 LTS | gcc 4.7.0 | 2.7.2 | 1.8.7 | 1.7.x | – |
Changelog
- Windows Python version 3.5 updates
- Added support for XEM7010, XEM7310, and ZEM5310
- Add “chunksize” parameter to okFilePipe component
- Fix some Java and C# wrapper memory management issues
- Add “okSetWireIn” and “okActivateTriggerIn” FrontPanel XML components
- New Vivado sources for Kintex 7 boards (XEM7350/XEM7360). We recommend using these encrypted sources in Vivado when possible as support for using ISE NGC files in Vivado is not guaranteed.
- FrontPanel GUI performance improvements.
- FrontPanel firmware updates through Pins.
- Windows XP is not supported.
- Added okFrontPanelDLL_TryLoadLib to allow graceful degradation of software without FrontPanel DLL.
- Fix a bug involving IPMI EEPROM programming with the XEM7360.
- Fix a bug with sector erase in the flashloader sample interfacing with 32 Mbit flash parts. The HDL incorrectly used page (two byte) addressing for sector (64 kB) erase operations. It now uses sector (one byte) addressing to be compatible with existing software. Flashloader bitfiles located in the
bitfiles
folder have been updated with this fix.
FrontPanel 4.5.5 (2016-03-21)
- Added support for XEM7001, ZEM5305, XEM7360 devices.
- Sounds update to use compatible files between Windows and Mac OS X.
- Improve device settings load time on USB 3.0 devices.
- Update configuration file dialog to include *.rbf for Altera files.
- Improvements to FrontPanelManager.
- XEM7350 HDL updated to fix defect with block throttled pipes.
- ZEM4310 okLibrary.vhd updated.
FrontPanel 4.5.0 (2015-03-14)
- Added Device Settings dialog for supported devices.
- Fixed a defect with the Flash programming dialog that was not erasing enough sectors for the programming operation.
- Fixed a defect with the Flash programming dialog that prevented proper boot configuration of Kintex-7 devices (XEM7350).
- okTDeviceInfo::productID type changed from okEProduct to int.
FrontPanel 4.4.2 (2014-09-15)
The configurations below represent the current build targets for the API, samples, and applications in this release. Many similar configurations are known to work (e.g. Linux Ubuntu, etc) but these are the official distribution targets.
OS | C/C++ | PYTHON | JAVA | RUBY | C# |
---|---|---|---|---|---|
Windows 7, 8 | DLL | 2.7, 3.2 | 1.8.0 | – | Yes |
macOS 10.8+ | SDK 10.8 | 2.7.2 | 1.6.0 | 1.8.7 | – |
Linux CentOS 6.5 | gcc 4.4.7 | 2.6.6 | 1.8.7 | 1.7.0 | – |
Linux Ubuntu 12.04 LTS | gcc 4.7.0 | 2.7.2 | 1.8.7 | 1.7.x | – |
Changelog
- Add support for XEM7350-K410T
- Fix for undefined symbols in Linux library.
- Minor updates to Linux / Mac sample Makefiles.
FrontPanel 4.4.1 (2014-06-19)
- Fix udev_list_entry_get_by_name on Linux/Python.
- Fix issues loading Python 3.2 library under Windows
- Fix DeviceChange sample to use FrontPanel Manager API for device attach/detach detection.
- Fix for Linux and Mac C/C++ libraries with improper references that would cause a segmentation fault.
- Fix formatting for the HTML API documentation.
- Fix misplaced files in the Windows installer.
FrontPanel 4.4.0 (2014-05-19)
- API: Change FrontPanel DLL to an “import library”. NOTE: This removes the requirement for okFrontPanelDLL.cpp in your projects and requires you to link with okFrontPanel.lib (the import library). Please see the FrontPanel User’s Manual and Samples README for additional guidance.
- API: Removed pipe transfer upper limit. The API will now automatically split a large transfer into multiple transfers as supported by the firmware.
- FrontPanel GUI: New icons
- FrontPanel GUI: Support for Mac Retina displays
- FrontPanel GUI: Add FMC Peripheral IPMI information for XEM7350
- FrontPanel GUI: Add Flash programming feature
- FrontPanel GUI: Add XEM7350 sensors display
- FrontPanel GUI: Add reset profile editing
FrontPanel 4.3.1
The configurations below represent the current build targets for the API, samples, and applications in this release. Many similar configurations are known to work (e.g. Linux Ubuntu, etc) but these are the official distribution targets.
OS | C/C++ | PYTHON | JAVA | RUBY | C# |
---|---|---|---|---|---|
Windows 7, 8, 10 | DLL | 2.7, 3.2 | 1.8.0 | – | Yes |
macOS 10.8+ | SDK 10.8 | 2.7.2 | 1.6.0 | 1.8.7 | – |
Linux CentOS 6.5 | gcc 4.4.7 | 2.6.6 | 1.8.7 | 1.7.0 | – |
Linux Ubuntu 12.04 LTS | gcc 4.7.0 | 2.7.2 | 1.8.7 | 1.7.x | – |
Changelog
- Added XEM6310MT support
- Added XEM6320 support
- Added XEM7350 support
- Added ZEM4310 support
- Added DeviceSensors API
- Added DeviceSettings API
- Added FrontPanelManager API
- Added DeviceInfo structure and API
- Fix ResetProfile API for wrapped languages
- Update Registers API for all languages
- Performance improvements on Linux
- Added USB 3.0 firmware update to FrontPanel
- Improved settings access in FrontPanel
FrontPanel 4.1.x
The following are changes made between FrontPanel SDK versions 4.0 and 4.1.
- Support added for USB 3.0 devices (XEM6310-LX45 and XEM6310-LX150, initially)
- New Register endpoints (USB 3.0 devices only)
- New APIs
ReadRegister
,ReadRegisterSet
,WriteRegister
,WriteRegisterSet
- New HDL module RegisterBridge
- New APIs
- New API
GetDeviceInfo
- New APIs to support System Flash storage:
FlashEraseSector
,FlashRead
,FlashWrite
- Reset Profile support (USB 3.0 devices only)
- New APIs
GetFPGABootResetProfile
andSetFPGABootResetProfile
for power-on FPGA configuration and Reset Profile execution. - New APIs
GetFPGAJTAGResetProfile
andSetFPGAJTAGResetProfile
for JTAG-based configuration Reset Profile execution.
- New APIs
- New API
GetWireInValue
USB 3.0
The changes to the SDK in this version largely represent changes in support of new FrontPanel SDK functionality provided by USB 3.0 devices. These devices provide the following additional features. For more details, please see the FrontPanel User’s Manual.
- Access to non-volatile storage independent of the FPGA (System Flash).
- Firmware retention of WireIn values that may be retrieved even if the FrontPanel API instance is detached and subsequently reattached or if the device itself is detached and subsequently reattached.
- Reset Profiles that enable a firmware-managed process for post-configuration FPGA reset.
- New RegisterBridge endpoint that provides a 32-bit address and 32-bit data addressable space.
FrontPanel 4.0.x
To accommodate the addition of support for FrontPanel-enabled PCI Express devices (namely the XEM6110), the API class name for the interface has been renamed okCFrontPanel
(previously okCUsbFrontPanel
). Along with the updated DLL source and header files, this change is the only change required.
Previous Releases (FrontPanel 3.x)
FrontPanel 3.1
This document describes the differences between the 3.0.x and 3.1 release versions of the Opal Kelly FrontPanel framework. The API has not changed in this release. However, there has been a slight change to how endpoint modules are connected to the FrontPanel Host Interface. Additionally, the Windows driver has been modernized and now supports 64-bit editions of Windows XP and Windows Vista.
Driver Change
FrontPanel 3.1 ships with a new USB driver for the Opal Kelly FrontPanel-enabled devices. This driver now support 64-bit editions of Windows XP and Windows Vista.
Although the API has not changed, you will need to use the latest DLL to communicate with the new driver. In most cases, you should be able to just drop in the new DLL. No re-build will be necessary. Note that Windows will associate all devices with the new driver, so a “mixed” system with both old and new drivers is not possible.
With the new driver installed and associated with an attached device (in this case, an XEM3001v2), your device list within Device Manager will now display as shown below. Note that a new device family (FrontPanel devices) has been added.

Devices attached to the NEW driver will look as shown above. Devices attached to the OLD driver will appear in the Universal Serial Bus Controllers group at the bottom of the list.
Note: Windows will only automatically update the driver for devices that are attached at the time you install the new FrontPanel software. To update other devices, after FrontPanel is installed, just right click on the device in Device Manager and click “Update Driver Software…” Windows should take care of the rest.
HDL Changes
The FrontPanel 3.0 and previous HDL modules used a shared bus to connect the endpoint modules to the host interface module. This was done using a bus described in HDL as a tri-state bus. Xilinx FPGAs have not supported tri-states within the fabric for some time now, including Spartan-3. However, the synthesis tools have accommodated by converting the bus into a large mux.
With new devices such as the Virtex-5, Xilinx has deprecated this conversion support. Therefore, we have chosen to describe the bus as a Wire-OR configuration where all endpoint modules are bitwise-ORed and the result is sent to the okHost. This change requires a slight change in your HDL as you migrate to the new modules.
okWireOR HDL module
The okWireOR HDL modules is a simple parameterizable piece of HDL which creates 16 N-input OR gates. These combine the ok2
busses from each of the endpoints into a single ok2
bus on the okHost
. For convenience, both VHDL and Verilog versions take a parameter (N) to set the size of the gates. As you add endpoints to your design, you must increase this N appropriately.
Consider the Counters sample. The Verilog host interface declarations with FrontPanel 3.0 looked like this:
okHostInterface okHI(
.hi_in(hi_in), .hi_out(hi_out), .hi_inout(hi_inout),
.ti_clk(ti_clk), .ok1(ok1), .ok2(ok2));
okWireIn ep00 (.ok1(ok1), .ok2(ok2), .ep_addr(8'h00), .ep_dataout(ep00wire));
okWireOut ep20 (.ok1(ok1), .ok2(ok2), .ep_addr(8'h20), .ep_datain(ep20wire));
okWireOut ep21 (.ok1(ok1), .ok2(ok2), .ep_addr(8'h21), .ep_datain(ep21wire));
okWireOut ep22 (.ok1(ok1), .ok2(ok2), .ep_addr(8'h22), .ep_datain(ep22wire));
okTriggerIn ep40 (.ok1(ok1), .ok2(ok2), .ep_addr(8'h40), .ep_clk(clk2), .ep_trigger(ep40wire));
okTriggerOut ep60 (.ok1(ok1), .ok2(ok2), .ep_addr(8'h60), .ep_clk(clk1), .ep_trigger(ep60trig));
okTriggerOut ep61 (.ok1(ok1), .ok2(ok2), .ep_addr(8'h61), .ep_clk(clk2), .ep_trigger(ep61trig));
Code language: PHP (php)
with FrontPanel 3.1, this same set of declarations looks like this:
wire [17*5-1:0] ok2x;
okHost okHI(
.hi_in(hi_in), .hi_out(hi_out), .hi_inout(hi_inout), .ti_clk(ti_clk),
.ok1(ok1), .ok2(ok2));
okWireOR # (.N(5)) wireOR (ok2, ok2x);
okWireIn wi00(.ok1(ok1), .ep_addr(8'h00), .ep_dataout(ep00wire));
okWireOut wo20(.ok1(ok1), .ok2(ok2x[ 0*17 +: 17 ]), .ep_addr(8'h20), .ep_datain(ep20wire));
okWireOut wo21(.ok1(ok1), .ok2(ok2x[ 1*17 +: 17 ]), .ep_addr(8'h21), .ep_datain(ep21wire));
okWireOut wo22(.ok1(ok1), .ok2(ok2x[ 2*17 +: 17 ]), .ep_addr(8'h22), .ep_datain(ep22wire));
okTriggerIn ti40(.ok1(ok1), .ep_addr(8'h40), .ep_clk(clk2), .ep_trigger(ep40wire));
okTriggerOut to60(.ok1(ok1), .ok2(ok2x[ 3*17 +: 17 ]), .ep_addr(8'h60), .ep_clk(clk1), .ep_trigger(ep60trig));
okTriggerOut to61(.ok1(ok1), .ok2(ok2x[ 4*17 +: 17 ]), .ep_addr(8'h61), .ep_clk(clk2), .ep_trigger(ep61trig));
Code language: PHP (php)
The only difference is how the ok2
bus is connected. In FrontPanel 3.0, all HDL modules had an ok2
port. In FrontPanel 3.1, some do not. Also note the additional okWireOR
module. Finally, note that each of the HDL modules with an ok2
port attach to a different range of signals on ok2x
.
FRONTPANEL 3.1 MODULES WITH OK2 PORTS | |
---|---|
okTriggerOut | okWireOut |
okPipeIn | okPipeOut |
okBTPipeIn | okBTPipeOut |
In the example above,
wo20.ok2
is attached took2x[16:0]
, the first 17 bits ofok2x
.wo21.ok2
is attached took2x[33:17]
, the second 17 bits ofok2x
.- …and so on…
The okWireOR
takes this 17*5-bit (85-bit) bus and distills it to a single 17-bit bus which is attached to the okHost
.
It is important to note the following:
ok2x
is declared as a 17*5-bit (85-bit) wire bus.okWireOR
has the parameter N set to 5.- There are exactly 5 HDL module connections to
ok2x
and none are shared.
Summary
Updating your HDL code from FrontPanel 3.0 to FrontPanel 3.1 should be a relatively routine task. Although not currently required on Spartan-3 devices, this migration was necessary to support the Virtex-5 devices and others for which Xilinx will deprecate tristate synthesis in their ISE tools.
The WireOR declaration is little awkward but should result in slightly lower resource usage for the FrontPanel host interface.
FrontPanel 3.0
This document describes the differences between the 1.x and 3.0 release versions of the Opal Kelly FrontPanel API. For the most part, applications developed with FrontPanel v1.x will easily port to v3.0 with relatively minor changes required at the software and HDL level. The new performance and features of 3.0 will be available with additional updates to your software and HDL.
Background and Summary
The central architecture of FrontPanel, with its Wires, Triggers, and Pipes abstractions, has been very useful to a large number of varied applications. One notable limitation has been the availability of a “throttled” or “negotiated” Pipe. With FrontPanel 1.x, Pipe transfers were always performed at full-length and full-speed with the Host Interface acting as master. Any throttling of this transfer had to be done at a higher level, typically using some combination of Wires and/or Triggers to implement BUSY, READY, or DONE signals.
FrontPanel 3.0 introduces a new Block Throttled Pipe or BTPipe module that provides a higher-performance synchronous data transfer mode. With the BTPipe, the HDL can throttle data transfer at a block level for optimal performance and low-level throttling. All even block sizes of 2 through 1024 bytes are supported to best suit your HDL design and transfer requirements. Due to implementation specifics, power-of-two block sizes are fastest.
API Updates
In addition to the methods to support the BTPipe, many methods have been updated with more robust return codes. These error codes provide more information when a given method fails. In the particular case of the BTPipe, the additional reporting allows for a recoverable timeout in case the hardware becomes unresponsive. Additionally, the board-specific classes derived from okCUsbFrontPanel have been eliminated and are no longer necessary.
Migration Path
- API First – You can migrate to the latest API at any time. We recommend upgrading your software to the latest API even if you do not (or cannot) upgrade devices to the latest firmware. The new API will automatically recognize older FrontPanel firmware and work properly.
- HDL and Firmware – The HDL and device firmware must be upgraded simultaneously. New firmware will not operate with an FPGA configuration file made with previous versions of the HDL modules.
Firmware Changes
Applications taking advantage of new FrontPanel 3.0 features will require a firmware update to the associated devices. The new firmware is available for XEM3001v2 and XEM3010 products. A firmware update will not be provided for the XEM3001v1. In the past, each product line has had an independent release to add features or fix bugs. Firmware releases have now been unified to a standard release version so that all devices will share the same firmware version number.
To update the firmware on a particular module, it must be attached to a computer with the FrontPanel Application installed. You can then use the firmware update wizard to upgrade the firmware using a Firmware Package available from Opal Kelly.
Software API Changes
Backward Compatibility
The new Software API fully supports communication with Opal Kelly devices with older firmware. In other words, you can update your PC software application with the new API and it will still work with an XEM3001v2 or XEM3010 hardware with older firmware. Features only available with updated firmware will simply return the UnsupportedFeature error code.
[DEPRECATED] Event-Based Updates
The event-based distribution of wire and trigger updates has been deprecated. Specifically, this means that the okCEventHandler
class is no longer present. Also gone are the methods UnregisterAll
and AddEventHandler
from the API.
Note that these methods were never supported in the DLL and are rarely used in practice.
[DEPRECATED] Static Library
Static libraries (i.e. those that you compile-in to your software) for all platforms have been deprecated. Static libraries are compiler-specific which makes it difficult to support different compilers such as Borland and even different versions of VisualStudio. Our DLL has been available for over a year now and is the recommended way to build FrontPanel into your application.
Because the DLL is C as opposed to the C++ of the static library, we have built a C++ wrapper around the DLL. This means that most existing FrontPanel applications can be rebuilt with just a single additional line of code to load the DLL:
okFrontPanelDLL_LoadLib(NULL); // Load the FrontPanel DLL.
Code language: PHP (php)
Just a few changes are all that are needed to move your existing statically-linked to the dynamically-linked:
- Add the above line of code somewhere in the initialization section of your source.
- Add
okFrontPanelDLL.cpp
to your project. - Include
okFrontPanelDLL.h
rather thanokCUsbFrontPanel.h
in your source. - Do NOT link with
okFrontPanel.lib
anymore. - Make sure
okFrontPanel.dll
is located in your executable’s directory.
Derived classes
The classes derived from okCUsbFrontPanel
(i.e. okCUsbXEM3001v2
, okCUsbXEM3010
, etc.) have been eliminated. A single class (okCUsbFrontPanel
) contains all the functions necessary to communicate with any of the board models. You can always find out what type of board you’re connected to by calling GetBoardModel()
.
FrontPanel 1.x
xem = new okCUsbXEM3001v2();xem = new okCUsbXEM3010();
Code language: JavaScript (javascript)
FrontPanel 3.0
xem = new okCUsbFrontPanel();
Code language: JavaScript (javascript)
PLL Access Methods
The PLL access methods were previously part of the derived classes. The unification of the okCUsbFrontPanel
class has brought them under its umbrella. This required a bit of renaming, but should be easy to follow:
FrontPanel 1.x
// XEM3001v2 xem->GetPLLConfiguration(...);xem->SetPLLConfiguration(...);xem->GetEepromPLLConfiguration(...);xem->SetEepromPLLConfiguration(...); // XEM3010 (instance of okCUsbXEM3010 class)xem->GetPLLConfiguration(...);xem->SetPLLConfiguration(...);xem->GetEepromPLLConfiguration(...);xem->SetEepromPLLConfiguration(...);
Code language: JSON / JSON with Comments (json)
FrontPanel 3.0
// XEM3001v2 xem->GetPLL22150Configuration(...);xem->SetPLL22150Configuration(...);xem->GetEepromPLL22150Configuration(...);xem->SetEepromPLL22150Configuration(...); // XEM3010 xem->GetPLL22393Configuration(...);xem->SetPLL22393Configuration(...);xem->GetEepromPLL22393Configuration(...);xem->SetEepromPLL22393Configuration(...);
Code language: JSON / JSON with Comments (json)
ErrorCodes
More thorough error reporting has been added to the FrontPanel API. This comes in the form of more verbose error codes from many methods that could, potentially, fail under some circumstances. For more information on the meaning of the return codes for particular methods, consult the FrontPanel API Reference Guide.
ERRORCODES DEFINED BY THE OKCUSBFRONTPANEL CLASS | ||
---|---|---|
NoError | DeviceNotOpen | CommunicationError |
Failed | InvalidEndpoint | InvalidBitstream |
Timeout | InvalidBlockSize | FileError |
DoneNotHigh | I2CRestrictedAddress | I2CNack |
TransferError | I2CBitError | I2CUnknownStatus |
UnsupportedFeature |
API METHODS THAT RETURN AN ERRORCODE | |
---|---|
OpenBySerial | GetPLL22393Configuration |
ResetFPGA | SetPLL22393Configuration |
ConfigureFPGAFromMemory | GetEepromPLL22393Configuration |
ConfigureFPGA | SetEepromPLL22393Configuration |
WriteI2C | SetWireInValue |
ReadI2C | ActivateTriggerIn |
LoadDefaultPLLConfiguration | WriteToPipeIn |
GetPLL22150Configuration | ReadFromPipeOut |
SetPLL22150Configuration | WriteToBlockPipeIn |
GetEepromPLL22150Configuration | ReadFromBlockPipeOut |
SetEepromPLL22150Configuration |
Support for Block Throttled Pipes
Support for Block Throttled Pipes comes in the form of two new API methods. These methods work similar to the existing WriteToPipeIn
and ReadFromPipeOut
methods provided for “standard” pipes with the addition of a blocksize parameter. For more information on how to apply the new Block Throttled Pipes, consult the FrontPanel User’s Manual.
Dynamic Library Changes
The DLL (.so
under Linux or .dylib
under Mac OS X) has been fitted with a new C++ wrapper around all the functionality. You may still use the DLL from pure C if you wish; C++ functionality is compiled only when using C++ compilers.
In order to avoid namespace collisions, we have renamed the enumerated types in the DLL to appear more “Opal Kelly specific”. For example,
ClockSource_22150
→ok_ClockSource_22150
BoardModel
→ok_BoardModel
- …and so on…
FPGA HDL Changes
For the most part, HDL changes for a particular project are minor and represent changes in naming conventions. With superficial changes, all HDL projects should work. These projects will immediately benefit from the additional bandwidth possible with FrontPanel 3.0 pipes. With additional redesign, these projects can take advantage of the BTPipes.
Host Interface
In order to clean up the wiring required to attach the host interface, the bundle of host interface connections from FrontPanel 1.x (HI_CLK, HI_RDWR, HI_CS, HI_ADDR, HI_DATA, etc) has been replaced with only three busses: HI_IN, HI_OUT, and HI_INOUT. This is mostly a cosmetic change.
FrontPanel 1.x
okHostInterface okHI(.hi_clk(hi_clk),.hi_rdwr(hi_rdwr),.hi_cs(hi_cs),.hi_irq(hi_irq),.hi_busy(hi_busy),.hi_addr(hi_addr),.hi_data(hi_data),.ti_clk(ti_clk),.ti_control(ti_control),.ti_data(ti_data));
Code language: CSS (css)
FrontPanel 3.0
okHostInterface okHI(.hi_in(hi_in),.hi_out(hi_out),.hi_inout(hi_inout),.ti_clk(ti_clk),.ok1(ok1),.ok2(ok2));
Code language: CSS (css)
Target Interface
Similar to the cosmetic change on the host interface bundle, the target interface bundle has been consolidated into two busses. One from the host interface to endpoint modules (OK1[30:0]) and one from the endpoint modules to the host interface (OK2[16:0]).
The elimination of a bidirectional bus on the target interface works better with the internal architecture of the FPGA and capabilities of the synthesis tools.
FrontPanel 1.x
okWireOut ep22 (.ti_clk(ti_clk),.ti_control(ti_control),.ti_data(ti_data),.ep_addr(8'h22),.ep_datain(ep22wire));
FrontPanel 3.0
okWireOut ep22 (.ok1(ok1),.ok2(ok2),.ep_addr(8'h22),.ep_datain(ep22wire));
okBTPipeIn, okBTPipeOut
Support for the new Block Throttled Pipes has been added. Two new modules support these endpoints. Please see the FrontPanel User’s Manual for more details.