All notable changes to `atsapi` are documented here.
`GET_ADC_TEMPERATURE` to `AlazarGetParameter()` to get the ADC temperature in degrees C as a long integer value.
Issue where ATS9437 and ATS9637 board fail to acquire at 180MS/s.
Issue where ATS9364 Windows driver fails to start, showing a yellow triangle in the device manager.
Firmware upgrade on ATS9470 and ATS9473.
DMA reset on Linux for ATS9470 and ATS9473.
Update deptools version.
Support for active SyncBoards.
Remove 2.5V external trigger range for ATS9364.
Issue with driver installation on Linux (kernel version <5.0.0) where dkms indicates that the kernel-headers package is not supported.
Regression introduced in v7.7.2 where Windows driver installation fails on systems with no previously installed AlazarTech drivers.
Support for ATS9470 and ATS9473.
Issue on ATS9364 where TTL-range external trigger did not work.
Issue where using `AlazarSetParamater(handle, channel, SET_DATA_FORMAT, 1)` to set channel input in signed mode return error `ApiInvalid`. This issue affects boards ATS9120, ATS9130, ATS9146, ATS9352 and ATS9353.
Linux support for ATS9364.
Remove 32-bit compilation of drivers.
Remove support for Forest.
Increase NEON memory cap to 512M.
Power monitor support for ATS9364.
Issue where Linux Python programs using ATSApi would crash at the end of their execution.
Issue where `DATA_WIDTH` parameter would return 14 for ATS9364 instead of 12.
Regression introduced in v7.6.5 where varicap calibration doesn't work on ATS9146 and relays are noisy.
Support for ATS9364.
Regression on Linux where acquisitions would cause `ApiDmaChannelInvalid` errors.
Regression introduced in v7.5.4 where the startup time of applications using ATS9626 and ATS9625 boards was much larger than expected.
Issue where ATS9437 and ATS9637 can return ApiPllNotLocked error when starting an acquisition at 100MSPS.
Remove unnecessary exports from ATSApi shared library on Linux.
Fix regression introduced in v7.5.4 where driver for ATS9874 is not detected.
Deploy drivers for OEM boards to specific containers.
Fix regression introduced in v7.5.5 where calibration on ATS9146 and ATS9872 was corrupted.
Fix issue where acquisitions with ATS9872 showed glitches in data when acquiring at or under 100 MSPS.
Regression introduced in v7.5.4 where calling `AlazarSetParameter` with `SET_DATA_FORMAT` would cause the system to crash.
Regression introduced in v7.5.4 where acquisition on Linux failed after a few seconds.
Documentation of `GET_PCIE_LINK_SPEED` parameter.
Issues on Linux where logging would not work if the `HOME` environment variable is not defined. It is now possible to set a `ALAZARRCPATH` environment variable to point to a directory where `.alazarc` should be located.
Added `OPTION_ON_FPGA_FFT` option and `ApiOnFpgaFftOptionMissing` error. The option is required for on-FPGA FFT acquisitions on ATS9352 and ATS9353.
Modify documentation of the `AUX_OUT_PACER` auxiliary I/O mode to explain the dependency of the ratio to the number of active channels.
Updated documentation of `AlazarFFTGetMaxTriggerRepeatRate`.
Support for Linux Kernel v5.18.
Add support for On-FPGA FFT v6.
Regression introduced in v7.5.4 that would cause AlazarDSO to show an "Internal AlazarDSO error" on startup with some boards.
Regression introduced in v7.5.4 where using AlazarPostAsyncBuffer() in Windows can cause an "Insufficient system resources" error.
Firmware update support for ATS9637, ATS9437, ATS9618 and ATS9453.
Intensity report for "+3.3V_VI" power line for ATS9637, ATS9437 and ATS9618.
Regression introduced in v7.5.4 where `CreateStreamFile` would cause `ApiFileIoError`s.
Fix issue where AlazarAllocBufferU16 allocates only half of the data needed.
Make serial number prefix of OCuLink digitizers "C" instead of "T".
Fix issue where computer crashes when closing DSO with ATS9626.
Support for Jaguar.
Add support for Linux v5.17.
Firmware update support for ATS4001.
Linux support for ATS9470 and ATS9473.
ATS4001 Windows Support.
Issue with AlazarDSO startup time degradation with Thunderbolt systems.
Support for ATS9280.
Issue in FOREST where calls to `AlazarBusy()` would cause an error message to be logged (ATSApi <= v7.5.3), or return an error internally (ATSApi > 7.5.3) causing acquisitions to fail.
Issue on ATS9352 and ATS9353 where computer can crash when AlazarDSO is started.
Issue where board configuration functions would cause ATS9352 and ATS9353 to make a crackling noise.
Issue where channel gain is set to zero on ATS9637, ATS9437 and ATS9618. This issue appears with ATSApi > 7.5.3 .
Issue where using `AlazarGetParameterUL` with `GET_FPGA_TEMPERATURE` returns `ApiFailed` on boards ATS9371 and ATS9373.
Issue on ATS9352 and ATS9353 where power monitor would show wrong values for Device 3, AIN3.
Increase the number of digitizers of a given model that can be detected in a single Linux system from 10 to 50.
Issue with channel B on ATS9628 outputting nothing.
Issue in power monitor interface for ATS9416 where device 3 AIN1 shows invalid values in Celsius instead of Volts.
Issue where Linux drivers would not be reloaded properly after a kernel update.
Non-DKMS releases of the drivers.
Driver for ATS9874.
Issue introduced in v7.5.0 where calibrating ATS9120 and ATS9130 fails for channel B.
Issue introduced in v7.2.1 where Linux drivers would not detect some boards. Affected products are ATS9462, ATS9625, ATS9626, ATS9870
Issue where board memory size is not redetected after updating board configuration.
Issue in power monitor for ATS9872 and ATS9874 where `P_3.5VA` field was mistakenly called `P_4.5VA` and was reporting wrong values.
Bug introduced in v7.4.4 where calling `AlazarSetCaptureClock()` on Linux on ATS9416 returns an unknown error code.
Issue where ATS9416 unipolar ranges where not accessible on Linux.
Regression introduced in v7.4.6 where calling `AlazarInputControl()` on channel B on ATS9120 and ATS9130 can cause `ApiFailed` errors in some situations.
Issue affecting all products introduced in v7.4.5 that causes acquisitions on Linux systems to fail with `ApiWaitTimeout` or `ApiDmaInProgress` errors.
Support for ATS9628.
Initialize ATS9872 with 400mV input range.
Bug introduced in v7.4.6 where calls to `AlazarGetDriverVersionEx()` fail on some boards with `ApiFailed`. Affected products are ATS310, ATS330, ATS460, ATS660, ATS850, ATS860, ATS9325, ATS9350, ATS9351, ATS9360, ATS9416, ATS9440, ATS9462, ATS9625, ATS9626. In addition, the following products are affected only on Windows: ATS9370, ATS9371, ATS9373. Lastly, ATS9870 is affected only on Linux.
Issue on ATS9872 that would cause some relays' state to be changed multiple times when an acquisition is started, causing a crackling noise on some boards.
Support for ATS9146 v1.3 with uncalibrated input range.
Support for ATS9874.
DDR memory detection for ATS9146, ATS9120 and ATS9130.
Issue with the signature of the driver file for ATS9146, which could cause the drivers for this board to not install properly on some Windows systems.
Issue where the digitizer's analog inputs acts as high-pass filters even though input coupling is set to DC. Affected products are ATS9637, ATS9437 and ATS9618.
ATS9470 support.
Support for ATS9872.
Regression introduced in v7.1.2 where using internal sample clocks other than 100 MS/s does not work on ATS9416 master/slave systems under Linux.
Regression introduced in v7.1.2 where the driver would not work properly on Linux systems with kernel versions less than 4.11
Regression introduced in v7.1.2 where the DKMS driver does not build properly on CentOS 8 because of a mismatch in the number of arguments to the `access_ok` function.
Issue with DMA transfers that caused "gaps" in received data. Data buffer may be populated with zeroes in these gaps. Affected products are ATS9637 and ATS9453.
Issue where board configuration database is corrupted after calibration. Affected boards are ATST371, ATS9371 and ATS9373.
Issue where computers using ARM processor reboot when starting an acquisition. All boards are affected.
Communication issue between ADC and FPGA that caused data acquisition to not work on some ATS9453 boards.
Add 2.4GHz sampling rate and 2.0GHz to 3.0GHz using internal clock PLL by step of 100MHz on ATS9453.
Crashes on ATS9146 on some Windows 10 systems during driver initialization .
Spurious `ApiFailed` errors when using fast external clock on ATS9416, ATS9352, ATS9146.
Support for ATS9353
Regression introduced in v7.1.2 that caused some boards to not be detected by the driver under Linux. Affected products are ATS9352, ATS9440, ATS9453, ATS9637 and ATS9870.
Increase the maximum number of boards of the same model per computer from 5 to 10 under Linux.
Support for DES on ATS9352
Support for EEPROM databases on ATS9371 and ATS9373
Support for bus type database entry on ATS9371 and ATS9373
Support for DKMS for Linux drivers. With this change, AlazarTech drivers are no longer dependent on the exact kernel versions of the systems on which they run. This means that users can install and run our drivers on any supported kernel; versions 2.6.32 up to the most current (version 5.6).
Issue on ATS9373 driver where some invalid power monitor entries are displayed
Issue with DMA transfers that caused "gaps" in received data. Data buffer may be populated with zeroes in these gaps. Affected product is ATS9146.
Support for ATS9373 v1.7
Issue in drivers where firmware upgrade could cause blue screen crashes on server-class systems.
Support for Linux kernel v5.3
Support for sampling rates 10MHz, 20MHz and 50MHz without decimation on ATS9416.
Solve issue where the amount of memory returned by `AlazarGetParameterUL()`, `AlazarQueryCapability()` and `AlazarGetChannelInfo()` changes after calling `AlazarSetRecordSize()`. This affects PCI digitizers.
Fix PLL clock duty cycle on ATS9352 to suppress glitches.
Use PLL to generate clock greater than 10MHz on ATS9416. Decimation uses the minimum usable clock between 10MHz, 20MHz, 50MHz and 100MHz.
Initial release of Windows and Linux drivers for ATS9437 and ATS9618.
Support for ATS9416 v1.4
Issue where reported memory size is bad when it is fixed into the EEPROM. Affected products are ATS9352, ATS9637, ATS9453 and ATS9146.
Panel identification LED not working.
Issue where power monitor LED BAD2 is on when board starts.
Issue introduced in driver v7.0.1 where the decimation of the sample clock can be left in an invalid state when `AlazarSetCaptureClock()` is called. Affected products are ATS9120, ATS9130, ATS9637, ATS9453, ATS9352 and ATS9146.
Fixes ATS9120 and ATS9130 power monitor issue on Linux. The power monitor APIs for these products would sometimes output an `ApiFailed` error.
Increase the calibration timeout for ATS9352, to ensure that this board can work with external clock frequencies as low as 25 MHz. Note that when using external clock at low frequencies, the calibration duration (and in consequence the duration of function calls to `AlazarInputControl` and `AlazarSetCaptureClock`) can be above 1 second.
Increase CPLD timeout when reading or writing ADT7411 devices.
Fixes power monitor channel list on ATS9371 and ATS9373.
Fixes memory size detection on ATS9352, ATS9637 and ATS9453.
Issue with DMA transfers that caused "gaps" in received data. Data buffer may be populated with zeroes in these gaps. Affected products are ATS9120, ATS9130 and ATS9352.
Issue in ATS9352 where the calibration was not properly run in some instances (external clock source with slow frequency).
Fixes daisy chained configuration for Loupe
Fixes support for external clocking for Loupe
Re-release of version v6.7.1. This is necessary because v6.7.1 drivers do not indicate the correct version number once installed.
Initial release of Windows driver for ATS9146.
Initial release of Linux driver for ATS9146.
Initial release of Linux driver for ATS9453.
Fixes bug in ATS9371 driver that caused corruption of DMA data and blue screen in certain configurations.
Solve issue with Windows 10 v1903 (May 2019 Update) that caused "ApiFailed" errors upon starting acquisitions.
Initial release of Linux driver for ATS9352.
Public release
Unable to control input channels I to P.
Issue where 32-bit applications would not work correctly on 64-bit systems.
Support for fast buffer lock
Support for power monitor API
Initial release of Windows driver for ATS9000
No change in the driver for this release
Issue where the driver does not start on some systems because of signature requirements
Issue where the version number of the driver was incorrectly reported as 0.0.0
Fix external trigger TTL range
Initial release of Windows driver for ATS9453.
Initial release of Windows driver for ATS9352
Remove bug in 6.1.0 that caused computer crash when setting setting up the acquisition
Initial release of Windows driver for ATS9130.
Initial release of Linux driver for ATS9371.
Initial release of Linux driver for ATS9120.
Initial release of Linux driver for ATS9130.
Fix an issue where installation would not work properly on updated Windows 7 systems.
Deprecate Windows 7 SP0
Support for ATS-GMA
Initial release of Windows driver for ATS9637.
Initial release of Linux driver for ATS9637.
Support for Windows silent installation.
Initial release of Windows driver for ATS9120.
Initial release of Windows driver for ATS9371.
Support for Windows 10 Signature Enforcement mode. In computers where this mode is active, versions of this driver before 6.0.0 will not install correctly. Instead, a window titled "Windows requires a digitally signed driver" will appear during or shortly after the installation process.
Issue that could cause long streaming data transfers, such as Stream to Memory in AlazarDSO, to stall on recent Windows 10 versions.
Hardened driver to protect against user applications not cleaning-up DMA transfers. In previous versions, if user terminated their acquisition without calling `AlazarAbortAsyncRead()` (e.g. by pressing `Ctrl-C` during development), DMA driver would lock up and a shut down cycle was required before further acquisitions could be made.
Issue where EEPROM writes would not have any effect.
Bug in AlazarSetCaptureClock that resulted in false PLLNotLocked errors
Bug that caused driver to crash and cause kernel Oops on some systems.
Kernel memory management issues that cause the driver to crash with paging requests error on some systems.
Modify ADC initialization procedure for DES mode with internal clock. This makes the initialization process more robust.
Bug that would cause the PCIe speed and width to be displayed wrong with ATSApi DLL v5.10.20 and above.
Bug that could cause the driver to crash and cause kernel Oops in some systems.
Initial release of Linux driver for ATS9416.
Update FPGA version to 47.00
Update FPGA version to 44.01
Modify ADC initialization procedure for DES mode with internal clock. This makes the initialization process more robust.
Bug in 9416 where records where shifted in multi-channel acquisition
Bug where Windows XP computer would restart when asked to power off
Support for hibernation to ATS9416
Update the coprocessor loading order
Extend OCT ignore bad clock support to ATS9373
Enable record footers in ATS9373 with FPGA version 25.03 and above.
Extend NPT record footer support to ATS9360.
Support for system sleep and hibernation. The driver aborts DMA transfers with error 559 (`ApiPowerDown`) if the system enters a low power state.
Support for resuming from sleep and hibernation states, and Windows 8 "fast start-up". The driver aborts DMA transfers with error 559 (`ApiPowerDown`) when the system enters a low power state.
Add support for record footers in NPT mode. This option requires FPGA v43.12 or later.
Bug where ATS9626 HC default coprocessor is not downloaded
Read the DAC clock phase from the EEPROM
Adds the fundations for state saving/restoring
Memory init routine resets capture
Support for ADC DCLKDESIQ mode.
Support for DCLK phase adjust option.
Partial solution for DMA lockup issue
Bug when reading CPLD version.
Support for resuming from low power states.
Support Nova board; increase memory detection time-out to 6 sec for Nova.
Bug introduced in v5.9.21 that might cause `AlazarBeforeAsyncRead()` to return `ApiInvalidOffset` in NPT mode.
Bug introduced in v5.9.21 that caused `AlazarBeforeAsyncRead()` to return `ApiInvalidSize`.
Update driver to cache ADC writes. This resolves a problem configuring dual-edge sampling mode.
Update DLL to reset cached pre-trigger sample data after each call to `AlazarBeforeAsyncRead()`. This fixes a problem introduced in driver v5.9.21 that caused `AlazarWaitAsyncBufferComplete()` to return `ApiWaitTimeout` when the on-FPGA FFT was enabled.
Update serial number.
Update driver to cache ADC writes. This resolves a problem configuring dual-edge sampling mode.
Initial release of Windows driver for ATS9416.
Update `AlazarBeforeAsyncRead()` to ignore `ADMA_INTERLEAVE_SAMPLES` flag in single channel mode
Update `AlazarBeforeAsyncRead()` to force `ADMA_FIFO_ONLY_STREAMING` in NPT, traditional, and continuous streaming modes
Update `AlazarBeforeAsyncRead()` to support pre-trigger samples in NPT mode.
Update driver to not perform ADC SPI reads
Initial release of Windows driver for ATS9370.
Initial release of Windows driver for ATS9373.
Initial release of Linux driver for ATS9373.
Support for internal 10 MHz PLL clock source
`AlazarGetCpldVersion()` to return 8-bit major and minor values
Driver timer callback bug that might cause a stop error on system shut-down.
Bug that might cause a crash on system shut-down because a timer callback error.
Update driver to select default CPF download based on user major and minor versions.
Update memory detection code.
Modify VCO charge pump settings
Support for advanced 10 MHz PLL external clock, and internal 10 MHz PLL.
Update `AlazarSetCaptureClock()` to support `INTERNAL_CLOCK_10MHz_REF`.
Update `AlazarSetParameterUL()` to allow `SET_ADC_MODE` to control dual edge sampling.
`AlazarSetCaptureClock()` to disable dual-edge sampling in external clock mode.
Update `AlazarGetCPLDVersion()` to return 8-bit major and minor versions.
Update `AlazarSetCaptureClock()` to support internal sample rates greater than 2 GS/s.
Update driver to set +5V sensor high limit to +5.3V.
Update `AlazarBeforeAsyncRead()` to support FFT data from FPGA 20.10 and higher.
Update `AlazarBeforeAsyncRead()` to return `ApiUnsupportedFunction` if called without `ADMA_FIFO_ONLY_STREAMING` flag.
Update driver memory detection code
Update inf to support CPF DMA download from 32-bit applications under 64-bit Windows.
Support for CPF DMA download from 32-bit applications under 64-bit Windows
Support for 3600 MS/s, 3000 MS/s, and 2400 MS/s internal sample rates on boards with 2 GHz ADCs.
Bug that intermittently caused `AlazarRead()` to return unexpected data on 64-bit systems with more than about 3GB of physical memory.
Update memory detection code to perform MPFE reset and increase number of retries.
`AlazarBeforeAsyncRead()` to not perform FIFO reset before start of acquisition.
Support for 2 GHz ADCs and dual-edge sampling.
Bug that might cause `AlazarAbortAsyncRead()` to fail.
Update driver and DLL so that the driver, rather than DLL, initializes the DMA descriptor list common buffer.
Change default external clock level from 50% to 58%.
Change `AlazarGetParameter()` `GET_SAMPLES_PER_TIMESTAMP_CLOCK` return value from 2 to 8 samples.
Update `AlazarResetTimestamp()` to support ATS9870.
Support for sample skipping with FPGA version 8.3 or later.
Bug that caused the mounting bracket LED to not work correctly.
Bug that caused a blue screen error if an application queued more DMA buffers than the operating system had resources to map. The maximum size is approximately 256 MB on 64-bit Windows 7, but may vary with operating system version and the amount of available physical memory.
Bug on 64-bit operating systems with more than 4 GB of memory that caused AlazarPostAsyncBuffer to return ApiAccessDenied if the virtual address of a user buffer was above 2^32.
Fix a bug in `AlazarSetParameter()` `PACK_MODE` that caused `PACK_8_BITS_PER_SAMPLE` to not work correctly.
Update `AlazarBeforeAsyncRead()` and `AlazarWaitNextAsyncBufferComplete()` to work correctly when the driver allocates DMA buffers (`ADMA_ALLOC_BUFFERS` set), and 8-bit data packing mode is enabled.
Initial release of Windows driver for ATS9360.
Initial release of Linux driver for ATS9360.
`GET_FPGA_TEMPERATURE` to `AlazarGetParameter()` to get the FPGA temperature in degrees C as a long integer value.
Fix driver so that 32-bit applications running under 64-bit Windows can call `AlazarCoprocessorRegisterRead()`, `AlazarCoprocessorRegisterWrite()`, and `AlazarCoprogressorDownload()`.
Support for +/- 200 mV alternate input range.
Support for ATS9870 50 MHz sampling rate.
`AlazarGetBoardRevision()` to get board revision information of PCIe boards.
`GET_FPGA_TEMPERATURE` to `AlazarGetParmaterUL()`.
Bug with trigger delay at 250 MS/s.
Bug AUX IO trigger enable in dual-channel NPT mode where half the desired number of records per trigger enable were captured.
Bug that caused `AlazarInputControl()` to return `ApiFailed` when `INPUT_RANGE_HIFI` was selected.
Bug that resulted in a ~200 mV offset on CH A when TTL external trigger range was selected.
Updates the FPGA to version 23 to fix a bug with trigger delay at 250 MS/s.
Speed up memory detection
`AlazarConfigureRecordAverage()` for FPGA record averaging.
Support undisturbed pacer output with FPGA 18.13 or later.
Add alternate input range mode to support +/- 500 mV
Update driver to support undisturbed pacer output with FPGA 18.13 or later.
Alternate input range mode to support +/- 500 mV.
Bug with AUX IO trigger enable in NPT mode where one record per trigger enable was captured, rather than "records per buffer" records.
Updates ATSApi.dll to fix a bug with AUX IO trigger enable in dual-channel NPT mode where half the desired number of records per trigger enable were captured.
Updates the FPGA to version 22 to fix a bug with AUX IO trigger enable in NPT mode where one record per trigger enable was captured, rather than "records per buffer" records.
Support for advanced 10 MHz PLL option
Support for +/- 200 mV input range.
Support for advanced 10 MHz PLL option
Support for +/- 200 mV input range
Update driver to add support for advanced 10 MHz PLL option
Update driver to improve memory detection
Update DLL to add `GET_FPGA_TEMPERATURE` to `AlazarGetPaarmaterUL()` to return FPGA temperature.
Update DLL to log calls to `AlazarClose()` in AlazarApi.log
Improve memory detection
Special build to generate 62.5 MHz clock
Add AlazarGetBoardRevision() to get revision number of PCIe boards.
Add `GET_FPGA_TEMPERATURE` to AlazarGetParameterUL().
Fix 10 MHz external clock mode and a memory detection bug.
Update driver to fix 10 MHz external clock mode and a memory detection bug.
Support for optional +/-250 mV input range.
Support CPF DMA download from 32-bit applications under 64-bit Windows.
Bug that caused the on-board memory to not be detected the second time that the driver was loaded.
Install coprocessor FPGA version 5.3 by default.
Change `AlazarCoprocessorDownloadBuffer()` to abort in-progress DMA transfers before starting a new CPF DMA transfer.
Install single time-domain coprocessor v5.3 as default coprocessor FPGA image.
Fixes an error that resulted in the FPGA images not being installed to the "SysWOW64\Drivers" directory. As a result, 32-bit applications under 64-bit Windows got a "no boards found" error while 64-bit applications worked fine.
Install single time-domain coprocessor v5.3 as default coprocessor FPGA image
Add `AlazarGetBoardRevision()` to get board revision information of PCIE boards.
Problem that caused a blue screen error on a system because of a conflict with anti-virus software.
Fix signal inversion issue.
Modify `AlazarInputControl()` to always setup board for +- 400 mV range, even if an applicaiton requests some other input input range.
Support for 200 MS/s internal sample rate.
Update DpInst.exe to support installation under Korean Windows
Fix problems 100 MS/s and lower internal sample rates.
Problems at 100 MS/s and lower internal sample rates
Initial release of Windows driver for ATS9625.
Initial release of Windows driver for ATS9626.
Initial release of Linux driver for ATS9625.
Initial release of Linux driver for ATS9626.
Update DpInst.exe to support installation in Korean language.
Update driver to allow two or more application threads to access a board's registers at the same time.
Support for `AlazarSetExternalClockLevel()`.
Support for slow external clock mode on ATS9351.
ATS860 FPGA A8110021.ali that supports all clock rates from 25 MHz up to 200MHz with zero jitter.
Bugs that resulted in the digitizer not working correctly when in PC's with 3.4 GHz or greater processors, such as the Intel Core i7-2600K. The symptoms of this problem included intermittent DC offset errors on input channels and the failure of the on-board memory detection causing PCI Express boards to be reported as a FIFO-Only.
Includes FPGA version 44.0 image files A6110244.ali and A6210244.ali, which fixes a bug in triggered streaming AutoDMA with small DMA buffers that resulted in incorrect data.
Support 64-bit Windows systems (XP, Vista, 7) with 4GB or more of memory.
Bug that resulted in 2 or 3 AutoDMA buffers to be captured per trigger enable pulse. This fix requires ATS9440 FPGA 4.03 or later.
Bug that would generate an `ApiPllNotLocked` error in external clock mode if `AlazarSetCaptureClock()` was called with `SAMPLE_RATE_180_MSPS` or `SAMPLE_RATE_160MSPS`, rather than `SAMPLE_RATE_USER_DEF`.
Updates (ATSApi.dll) serial number family codes.
Support for TTL external trigger mode introduced in ATS9325 hardware version 1.5.
Allows a programmer to use `GET_CHANNELS_PER_BOARD` parameter to obtain the number of maximum input channels per board from AlazarGetParameter function.
Changes default state of external trigger relay for v1.1 boards.
Initial release of Windows driver for ATS9351.
Initial release of Linux driver for ATS9350.
Bug introduced in v5.8.1 that caused independent boards to sample at 1 GS/s when any internal sample rate was selected.
Support for ATS9870 Master/Slave board configurations.
Bug that causes `AlazarSetCaptureClock()` to return `ApiInvalidData` when 10 MHz external PLL mode was selected.
Initial release of Windows driver for ATS9325.
Initial release of Windows driver for ATS9440.
Initial release of Linux driver for ATS9440.
Automatically enables software SPI if FW version is 15.0 or greater.
Supports 50 or 300 ohm external trigger impedance with hardware revision 1.3.
`SET_EXT_TRIG_IMPEDANCE` to `AlazarSetParameter()` to control external trigger impedance.
Bug introduced in version 5.7.18 of the DLL (ATSApi.dll) that might generate an `ApiDmaInProgress` error from `AlazarReadEx()` if it was called after calling `AlazarAbortAsyncRead()`.
Bug in the DLL (ATSApi.dll) that would cause `AlazarBeforeAsyncRead()` to return `ApiLockAndProbePagesFailed` if the `ADMA_ALLOC_BUFFERS` flag was set and the number of buffers was increased since the last call to `AlazarBeforeAsyncRead()`.
`AlazarSetTriggerOperationForScanning()` for OCT applications using external clock and trigger inputs where the external clock signal becomes unsuitable to drive the digitizer between scan lines. Use this option to delay start of an acquisition until an external trigger event when the clock is stable.
Bug that resulted in incorrect sample rates on the slaves of an ATS9350 Master/Slave configuration.
Support for ATS9350 Master/Slave configuration.
Change `AlazarSetCaptureClock()` to add support for selecting rising or falling edge of external clock inputs.
Bug where LED 13 lights up on driver download.
`AlazazarSetClockSwitchOver()` which allows scanning applications using an external clock input to switch to an internal "dummy" clock during re-trace intervals if the external clock signal is not suitable to drive the ADCs during re-trace internvals.
Allows driver to control SPI communication with VCO only when FPGA versions 14.9, 14.10 or 14.11 are installed.
Allows driver to control SPI communication with VCO when FPGA version 14.9 or later is installed.
Version 5.7.13 allows driver to control SPI communication with VCO when FPGA version 14.9 or later is installed.
ATS460-8M bug that resulted in ApiBufferOverflow errors in streaming AutoDMA modes when the number of samples per AutoDMA buffer was 4M or greater.
Bug that caused `AlazarHyperDisp()` to return `ApiUnsupportedFunction` even if supported by the firmware.
Bug that resulted in `ApiBufferOverflow` errors in streaming AutoDMA modes when the number of samples per AutoDMA buffer was 4M or greater.
Bug that caused AlazarHyperDisp to return ApiUnsupportedFunction even if supported by the firmware.
Change VCO parameters in the ATS9350.sys file to reduce spurious noise levels.
Bug in version 5.7.10, where the driver installation program installed an incorrect version of the FPGA image. Version 5.7.11 installs the correct FPGA image A6110242.ali.
Support to `AlazarGetNextAsyncBuffer()` with the `ADMA_GET_PROCESSED` flag to return an array 32-bit signed data from ATS9870 boards with autocorrelation firmware.
Installs the FPGA image A6110242.ali.
`AlazarErrorToText()` to convert return code to strings.
`AlazarSetExternalClockLevel()` function to allow setting the external clock comparator level. This function replaces using `AlazarSetParameterUL()` with the `SEND_DAC` parameter.
Bug where `AlazarStartCapture()` may return `ApiNotSuppotedInDualChannel` Mode with Continuous AutoDMA transfers.
Bug affecting stability in "10 MHz PLL" external clock mode.
`AlazarHyperDisp()` to support ATS9462.
`AlazarHyperDispEx()` to work with 64-bit transfer offsets.
`AlazarHyperDispEx()` to check FPGA version of PCIe devices for HyperDisp support and retun `ApiUnsupportedCommand` if it is not available with the FPGA version. The ATS9350 requires FPGA version 13.6. The ATS9462 requires FPGA version 33.1. The ATS9870 requires FPGA version 34.13.
Support for the version C silicon of the ADC chip used on ATS9870. In this version, driver automatically detects the silicon version and sets timing parameters so data can be acquired correctly irrespective of the silicon version. Previous driver versions would have set timing parameters for version B silicon, which has now been discontinued by the manufacturer. If an older driver were used with version C silicon, user may have seen glitches on one or both channels.
Bug in version 5.7.7 where the 10 MHz PLL clock is not set properly.
`GET_MAX_PRETRIGGER_SAMPLES` property to `AlazarGetParameterUL()` to allow applications to determine the maximum number of pre-trigger samples supported by a board.
Initial release of Windows driver for ATS9350.
Initial release of Windows driver for ATS9850.
Initial release of Linux driver for ATS9350.
Initial release of Linux driver for ATS9850.
`AlazarConfigureAuxIo()` function to allow applications to setup the AUX I/O.
Bug in continuous streaming where `AlazarWaitAsyncBufferComplete` would fail with `ApiWaitTimeout` unless `AlazarSetRecordSize()` was called before calling `AlazarStartCapture()`.
New FPGA images, A6110242.ali and A6210242.ali, which allows Trigger Output on the AUX I/O connector of v1.3 boards.
Disk streaming API, whereby all streaming operations are handled by the AlazarTech DLL.
Properly supports "10 MHz PLL" external clock mode.
`AlazarWaitNextAsyncBufferComplete()` to not copy data back to user buffer, if buffer length is zero. Previous versions required that both the buffer be zero and NULL. This was problematic in environments such as LabVIEW.
`AlazarSetExternalTrigger()` to disable support for AC-coupled external trigger. The value it now returns is `ApiNotSupportedThisChannel`.
Modify `AlazarWaitAsyncBufferComplete()` to return `ApiBufferOverflow` rather than `ApiFailed` when it detects a buffer overflow error. This is particularly important improvement for LabVIEW vi's.
`AlazarReadEx` to allow 64-bit "trigger offset" values for the ATS9870 boards with more than 2G samples per channel of on-board memory.
Bug in which a value written to the analog CPLD may result in `AlazarStartCapture()` returning `ApiPllNotLocked` error.
`ADMA_GET_PROCESSED_DATA` flag to AdmaFlags in `AlazarBeforeAsyncRead()`. Setting this flag allows AlazarGetNextAsyncBuffer (used by LabVIEW vi's) to copy data into the user buffer in a consistent format. Note, however, that this involves data manipulation by the CPU, so data intensive applications may prefer to use raw data buffers and interpret them accordingly.
Version 5.7.2 is highly recommended to be used with firmware version 31 or higher. Older firmware versions do not include an error correction circuit (ECC) that is required by the ADC chip. Without this ECC, signal integrity can be compromised.
Disables Gray code data output from the ADC chip. This is done because the ADC manufacturer plans to remove this option from future versions of silicon.
Initial release of Windows driver for ATS9870.
Initial release of Linux driver for ATS9870.
Support for ATS9462 with on-board memory.
Bug that caused the reported memory size from `AlazarGetParameter()` (MEM_SIZE) to return 0 after calling `AlazarReadEEprom()`.
Change `SETGET_ASYNC_BUFFCOUNT` to allow less than 3 buffers.
Bug that caused incorrect triggerring in NPT mode with both channels enabled and the AUX I/O trigger enable input enabled.
Bug in version 5.6.12, where the driver installation program installed an older version (v5.6.11) of the device driver file (ATS9462.sys).
There are no new capabilities for the ATS330 in driver version 5.6.11
Allow signed data output in addition to the existing unsigned format. This FPGA also implements special timing circuitry to handle active SyncBoard 460 x4 for Master/Slave systems of up to 4 boards.
There are no new capabilities for the ATS860 in driver version 5.6.12
Bug in `AlazarSetCaptureClock()` that resulted in `ApiPllNotLocked` errors in master-slave board systems onfigured to use an external clock input.
Workaround for a bug in firmware version 23 that intermittently caused the AlazarDSO bus benchmark test to return an `ApiBufferOverflow` error.
New FPGA images, A6110240.ali and A6210240.ali, which allow signed data output in addition to the existing unsigned format.
FPGA version to allow the programmer to control whether the ATS860 output data is unsigned binary (default) or signed.
Bug in previous versions for Master/Slave operation of multiple ATS860s. In previous versions, slave board(s) could have a +/- 1 point (2-point peak to peak) trigger jitter at 250 MS/s rate. With the updated FPGA, slave boards now have the same trigger jitter as the Master board, +/- 0.5 point (1-point peak to peak) jitter.
Bug in `AbortAsyncRead()` where the function might fail when called in NPT mode. The PC would have to be rebooted to recover from this error.
Modify driver to detect buffer overflow after asynchronous transfer. Previous version did not check for this overflow and could have displayed bad data in AlazarDSO. This problem becomes more pronounced on slower computers and longer (> 40 K) buffers.
Change `AlazarAbortAsyncRead()` for ATS9462 with FPGA version 23 or greater to assert DREQ until DMA completes rather than using `AlazarAbortCapture()`. This is very useful if ATS9462 is supposed to be clocked by an external clock, but no external clock is supplied. Previous versions would have locked up the computer, needing a power cycle.
Bug in previous versions that could have caused LabVIEW vis to stop working (ApiWaitTimeout error in AsyncDMA.vi) until the PC was rebooted. This bug was caused by an incomplete clean-up of DMA buffers that had been queued up.
Reports an error if user selects 180 MS/s or 160 MS/s sample rate and the on-board PLL does not lock.
Bug in `AlazarAbortAsyncRead()` in continuous or triggered mode where the in-progress DMA was not aborted. The PC would have to be rebooted to recover from this error.
Bug in AlazarRead that might lock PLL.
Bug in AlazarAbortAsyncRead in continuous or triggered mode where the in-progress DMA was not aborted. The PC would have to be rebooted to recover from this error.
Bug which may have caused the two inputs channels to appear to be offset by one sample.
Bug that may have caused AutoDMA acquisitions for Traditional DMA (non-NPT) to stall if RecordsPerBuffer was set to 1 and RecordCount was set to 1.
Bug that could have caused Slow External Clock to not work as it should.
Bug in the driver that could have caused a lockup of the computer at very high trigger repeat rates. The lockup may have exhibited itself by freezing the mouse and keyboard or by simply stalling the acquisition.
Bug introduced in version 5.6.4 that caused DMA transfers to fail in LabVIEW VIs.
Full support for 64 bit scatter-gather lists. Previous versions did not fully support 64-bit addressing, causing some reduction in data throughput on 64-bit computers with greater than 4 GB memory.
Bug in previous versions that could have caused on-board DMA state machine to lock up in DmaPaused or DmaInProgress states. The accompanying FPGA files allow unconditional completion of an in-progress DMA in order to avoid this error.
Bug in previous versions whereby if user attempts to do a No-Pre-trigger (NPT) acquisition using Asynchronous DMA after having done an acquisition with "Enable Headers", the first 16 points of the NPT data were corrupted. Version 5.6.4 resets the "Enable Headers" bit properly when doing an NPT acquisition.
Bug that NPT and Traditional Synch/AsyncDMA would fail if the user was previously using Continuous Streaming or Triggered Streaming. The trigger settings were not being restored properly.
The accompanying A6110237.ALI and A6210237.ALI FPGA images fix a bug in previous versions that could have possibly caused the DMA engine to lock up when a user initiated an abort.
Bug in NPT DMA mode. This bug caused data corruption at the end of data buffers returned by ATS860.
Bug in API `AlazarAbortAsyncRead()`, that prevented the NPT AsyncDMA from completing the DMA when an external clock was being used and the clock stopped.
Bug which could have prevented the full DMA transfer from completing for NPT AutoDMA transfers.
Bug in the WinXP64, and Windows Vista X64 drivers that stalled the Asynchronous DMA acquisition process from completing the capture, due to a compiler optimization.
Setup.exe installation program to distribute the driver.
Previous versions of the driver could have caused data integrity problems with some SODIMMs used on ATS460-128M. Version 5.6.0 introduces new FPGA images, A6110236.ali and A6210236.ali, that fix this bug by running the on-board memory at 100 MHz clock frequency.
Bug where API `AlazarQueryCapability()` presented the device serial number in an incorrect format; the device-type digit was missing. The ATS9462 device-type digit is "9", and therefore all serial numbers should start with a "9" and be greater the 900000. Customers owning an ATS9462 should not be concerned as the device EEPROM does hold the correct value. Only the `AlazarQueryCapability()` API was affected.
Apis, `AlazarSetParameter()`, `AlazarGetParameter()`, `AlazarSetParameterUL()`, and `AlazarGetParameterUL()` are documented.
Asynchronous AutoDMA applications using the `AlazarWaitNextAsyncBufferComplete()` API, (mostly used in LabView) can sense if an overflow situation is about to occur, and selectively discard data buffers in order to safe guard from overflowing.
ATSApi.dll now indicates the architecture type in the Product Description field of the files property page. This is used to easily distinguish the x64 architecture SDK dll from the x32 architecture sdk dll. To view this information, Right-Button click on the dll file, select the Properties menu item and click the Version tab.
Bug in previous versions that caused LabVIEW VIs to hang if user stopped the VI and tried to restart it. Previous drivers used to report a wrong value for on-board memory for ATS9462 when a VI was run after being stopped. This resulted in wrong calculation of DMA buffer length, causing a PC hang-up. Version 5.5.3 reports the same, correct, value no matter how many times a vi is started or stopped.
Bug in previous versions that caused LabVIEW VI to hang if user tried to stop an acquisition in Triggered Streaming mode. In previous versions, dll code would end up in an infinite loop when a Triggered Streaming acquisition was stopped. Fixes this bug by avoiding the infinite loop.
Bug in previous versions that caused LabVIEW vis to not trigger properly in NPT mode if user had previously used Continuous Streaming or Triggered Streaming mode. In effect, once the vi was put in either Continuous Streaming or Triggered Streaming mode (by internally setting the "Continuous Mode" bit to "1"), it could never come out of the mode unless the PC was re-booted, i.e. the "Continuous Mode" bit was never reset to 0 when NPT mode was selected. Version 5.5.3 fixes this bug by properly resetting the "Continuous Mode" bit when NPT mode is selected.
Bug in previous versions that caused ASoPC signature to return a hexadecimal value of 0xC for on-board memory bits, i.e. bits 15 down to 12. This could have been interpreted by some application programs as the ATS9462 having 128 Meg per channel of on-board memory. Version 5.5.3 fixes this problem by reporting a value of 0x0 for bits 15 down to 12 of the ASoPC signature
Memory leak in GetNextAsyncBuffer API call used by LabVIEW.
Bug in `AlazarAbortAsyncRead()` (asynchronous DMA) that could have caused the code to go into an infinite loop for NPT AsyncDMA with finite number of triggers.
Two new API functions: `AlazarStopAutoDMA()` and `AlazarFlushAutoDMA()`. These functions can be called if the user is capturing data using AutoDMA (synchronous DMA) and triggers stop coming. `AlazarStopAutoDMA()` stops any further DMAs from being started. This function should be called before `AlazarFlushAutoDMA()`. `AlazarFlushAutoDMA()` generates the required number of software triggers to complete the current DMA, thereby guaranteeing an orderly end of the acquisition session despite the lack of user-supplied triggers.
Bug in V5.5.0 that did not allow asynchronous DMA on ATS660. Starting with V5.5.1, ATS660 has full asynchronous DMA capability.
Bug in V5.5.0 which did not allow the calibration EEPROM to be updated.
Bug in `AlazarAbortAsyncRead()` that could have caused false buffer overflow error. This overflow error would have appeared if the user had set infinite number of records, stopped the acquisition manually and then tried to start another acquisition.
Initial release of Windows driver for ATS9462.
Support for helper functions for asynchronous DMA from ATS860 to host PC memory using overlapped I/O.
Bug in `AlazarGetNextAutoDMABuffer()` routine. In version 5.4.0 of the driver, this routine was returning only half the data in No-Pre-Trigger (NPT) mode.
Bug in previous versions that caused the driver not to load under Windows 2000.
Full Vista power management compliance, i.e. it fixes a power state handling bug in previous versions, which caused a Vista-based PC to crash if it was powered down with the ATSxxx driver loaded. In some machines, this crash caused a re-boot.
Full support for No-Pre-Trigger (NPT) operations for ATS860. These features were not available in previous versions.
Full support for asynchronous DMA from board to host PC memory using overlapped I/O. Overlapped I/O, (IO completion ports) are a high performance means of reading and writing simultaneously on the same socket. It is managed at system level, thus offering maximum performance. This technique has only been available since the advent of Winsock 2.0 in Windows NT, 2000, and XP. Note that this feature is not supported under Windows 98 SE. This is the highest performance dma possible under Windows, as the CPU usage stays at 0% even if data throughput is 100 MB/s. Some new API calls have been introduced in this version to allow asynchronous dma's: - `AlazarBeforeAsyncRead()` - `AlazarAsyncRead()` - `AlazarAbortAsyncRead()`
Bug whereby a single-ported data transfer (using AlazarRead) that was greater than 4 Megabytes, would return corrupted data.
Use the same integrated memory controller as ATS460 and ATS660, allowing greater reliability and faster throughput.
No user visible change.
No user visible change.
Ability to adjust the external clock reference voltage using `AlazarDACSettingAdjust()`.
Bug in all previous v5.x.x drivers, whereby `AlazarGetNextAutoDMABuffer()` did not return code 513 when the last buffer was received. This could have resulted in acquiring an extra buffer containing bad data at the end of the acquisition.
Use a new, highly integrated memory control logic that improves data throughput and reliability. Note that this new logic increases power consumption by approximatively 10%.
WOW support, allowing 32 bit applications to call 64 bit driver. Installation of WOW drivers is done simultaneously with the 64-bit driver installation.
64 bit driver for ATS330.
64 bit driver for ATS660.
64 bit driver for ATS850.
64 bit driver for ATS860.
Install AlazarTech products in their own class in Device Manager. The ClassName is "AlazarTech PCI Digitizers".
Bug in the AtsApi.DLL that did not allow dual channel operation in No-Pre-Trigger AutoDMA mode.
Bug in the AtsApi.DLL that did not allow the number of records for Master/Slave configurations to be greater than 1000.
Problem in the trigger engine firmware that may have caused faulty triggering in a Master/Slave configuration using more than 1000 triggers in the Traditional acquisition mode.
Support for Non-Pretrigger AutoDMA in both Dual and Single channel modes.
Allows programmers to read the serial number and other board-specific information using AlazarQueryCapability API call.
Allows programmers to use AlazarRead API call even after an AutoDMA session. In previous versions, some of the AutoDMA related bits were not being reset at the end of an AutoDMA, causing Traditional API's such as AlazarRead to fail.
Bug introduced in Version 4.9.3 whereby non-AutoDMA acquisitions with greater than 1000 triggers produced faulty data. This fix is done in the new FPGA firmware.
Bug found in all previous versions that caused needless relay switching. This bug typically exhibited itself when either the Input Range was changed or a new capture was started.
Support for "10 MHz PLL Reference" clock for ATS660. User is able to multiply the externally supplied 10 MHz reference frequency to produce a 110 MHz to 130 MHz sampling clock.
AC-coupled external clocking (non-PLL). In previous versions AC-coupled clocks were not properly biased. Starting with Version 4.9.7, an on-board DAC is used to provide a 1.5V self-bias for an on-board comparator, thereby allowing external clock signals up to +/- 1V to be used
Allows `AlazarGetStatus()` to return whether or not the 10 MHz PLL is locked or not.
Allows a program to read the serial number and last calibration date of the card(s) in the system using `AlazarQueryCapability()`.
Bug in Version 4.9.5 for ATS660 Master/Slave systems, which did not allow proper synchronization of all channels.
Bug in version 4.8.5 to 4.9.6 that caused Slave boards to be stuck at the alternate oscillator frequency (100 MS/s on ATS660) if Master was clocked at a rate lower than the alternate oscillator frequency (e.g. 50 MS/s on ATS660). Now, all boards are clocked at the same frequency.
Allows NPT AutoDMA to work with optional Trigger Enable. Previous versions did not allow the two modes to operate together.
Bug in Version 4.9.4 that caused intermittant failure of AlazarRead. This bug exhibited itself by seeming to swap data between channels A and B when displaying in API Panel.
Bug in V4.9.4 that loaded the wrong FPGA for ATS660-128M, causing various errors.
Initial release of Windows driver for ATS660.
Initial release of Windows driver for ATS860.
Bug in Version 4.9.3 that did not allow NPT AutoDMA to work in dual channel mode.
Resets the ATS460 upon exit. This resolves the bug that could have caused a bugcheck (blue screen) when the application was closed.
The firmware accompanying Version 4.9.3 also has improved and pipelined interface for PCI bus. Some of the previous firmware versions caused some PCs to freeze while data was being transferred.
Bug in AutoDMA that caused one Pre-Trigger sample to be read if user had set Pre-Trigger depth to be 0.
Bug that caused occasional 8 point trigger jitter at very high trigger repeat rates.
No user visible change.
Bug in the installation INF file that now overwrites registry values when a driver is upgraded. This is particularly useful for customers upgrading from ATS310-128K or ATS330-128K to ATS310-8M or ATS330-8M. Previous versions did not update the maximum buffer size key in the registry, causing a DMA failure message to be generated. Note this error applies only to ATS310 and ATS330 users.
Some kernel level driver errors that could have been generated in some PCs that do strict power management.
Full support for Data Record Headers for AutoDMA transfers. Users can now obtain information such as Time Stamp, Record Number, Who Triggered etc. for each of the records captured using AutoDMA. This makes it very easy to find out if any of the triggers was missed or not and also to obtain the arrival time of each trigger.
Allow the user to acquire up to 256,000 triggers into on-board memory. Previously, this limit was 1000 triggers. As before, both pre-trigger and post-trigger points can be captured for each of the records. A 40-bit timestamp value is also recorded for each of the records.
Bug that caused DMA Overflow flag to be falsely asserted when capturing both channels in continuous capture (PCI streaming) mode.
Full support for the PCI Streaming mode. In previous versions of the driver, DMA Overflow flag was not properly read, resulting in false positives.
Bug for AutoDMA transfers that could have cause one of the FIFOs to overflow at high trigger rates, causing a data dropout.
Bug for ATS310-8M, which did not allow triggering with negative slope.
Bug for ATS310-128K, which did not allow proper operation at sampling rates other than 20 MS/s.
Bug for ATS330-128K, which did not allow proper operation at sampling rates other than 50 MS/s.
Bug for non-AutoDMA transfers (using AlazarRead) that could have caused a failure in the AlazarRead operation, resulting in the system freezing.
Bug for AutoDMA transfers that could have caused data corruption if RecsPerBuf was set to value for which bits 7 or 8 were '1'. For example, a setting of RecsPerBuf = 64 in dual channel mode (or 128 in single-channel mode) could have caused intermittant data corruption. Customers MUST upgrade to V4.8.0 driver, as the fix requires a new FPGA image (*.ALI file) and a new DLL. Do NOT simply copy the FPGA file to its destination folder, as it will not work with any of the older DLL files.
Bug in setting Trigger Timeout. In previous versions, if Timeout was set to a value of 1 (one), the system would not wait for all pre-trigger points to be captured before issuing a Timeout Trigger. In version 4.8.0, if a Timeout value of 1 (one) is set, the DLL will automatically promote that value to 2.
Allow any Slave ATS460 in a Master/Slave system to trigger the system. Previous version (V4.7.0) only allowed the Master board to trigger the system.
Bug in trigger address calculation for AutoDMA transfers. Previous versions of ATS460 driver may have miscalculated the trigger address by as many as 16 points.
Dual channel AutoDMA transfers have been made more reliable in V4.7.1. Previous versions sometimes caused wrong data to be captured for overall data transfer greater than 8 Million samples.
Issue a reset signal to the PCI interface circuit when the ATSApi or ATSApiVB DLL is loaded.
ATSApi and ATSApiVB DLLs no longer try to activate drivers named PCI9052, PCI9054, PCI9056, PCI9656. This could have caused a conflict with other PCI boards that used these interface chips and did not rename their driver name.
Support 128 MegaSamples acquisition memory for ATS460.
Allow the TRIG OUT connector to be reconfigured as TRIGGER ENABLE input. Note that a hardware modification is required to make this change.
Previous versions of ATS460 driver were susceptible to not triggering on Channel A or Channel B when negative slope was selected. Version 4.7.0 fixes this bug.
Bug introduced in version 4.6.5, which caused ATS460 to not be recognized in some PCs. This was caused by improper downloading of the FPGA image.
Bug in Dual channel AutoDMA transfers which sometimes produced spurious data.
More redundant FPGA download scheme that returns an error if the expected FPGA file is not found.
Allows custom FPGAs to be downloaded for OEM customers.
Bug which caused ATS310, ATS330 and ATS460 to freeze in some PCs.
ATS460 V1.2 board support for larger FPGA. Note that previous versions of the driver will cause the PC to freeze upon start-up if v1.2 hardware is found. This is because the FPGA image supplied with the older drivers cannot be loaded into the V1.2 FPGA.
Trigger-related bug introduced in v4.6.3 for ATS310-128K.
Trigger-related bug introduced in v4.6.1 and v4.6.3 for ATS330-128K.
Initial release of Windows driver for ATS310-8M
Initial release of Windows driver for ATS330-8M.
Bug in AutoDMA operation that could cause the ATS460 to freeze during very high trigger repeat rates (~ 8 KHz). System monitoring has been added to guarantee no lock-ups even at extreme trigger rates.
Updates the firmware for ATS460 in order to improve trigger stability. V4.6.1 firmware exhibited as much as 8 sample point trigger jitter under accelerated temperature cycling.
Digital triggering on the ATS330-128K. This type of triggering is much more accurate than analog triggering.
Support for Optional Trigger Out functionality on v1.3 ATS850 hardware. If an ATS850 unit is equipped with Trigger Out upgrade, the ECLK BNC connector, fourth fromt he top, is used for outputting a 5V TTL Trigger signal. When used in conjunction with Trigger Delay, Trigger Out signal is asserted as soon as a trigger condition is detected. This is useful for ultrasonic applications that require a pulser-receiver to be triggered at time t = 0, but ATS850 sampling to start at a later time, say t = 800 sample clocks. Note that Trigger Out is always synchronized to the sampling clock.
The Trigger Out functionality of the ATS460 when used in conjunction with Trigger Delay. Previously, Trigger Out signal was asserted after the delay had expired. Starting from this version, Trigger Out is asserted as soon as a trigger is detected, i.e. before the trigger delay has expired.
Supports the Dual Port Memory Upgrade and fully implements the advanced AutoDMA capability of the ATS460, whereby users can capture data based on rapidly occuring trigger events (also known as Hi-PRF Capture) at rates as high as 2 KHz for records as long as 2048 samples.
Correctly implements the `AlazarGetChannelInfo()` API call and returns correct on-board memory in samples. Previous versions always returned 256K.
Powers down the on-board ADC chips when the DLL is closed, i.e. when the ATS460 is not being used. This is done to improve energy savings and reduce power consumption.
Initial release of Windows driver for ATS460.
Correctly implement the `AlazarGetWhoTriggeredBySystemID()` and `AlazarGetWhoTriggeredBySystemID()` API calls. Previous versions always returned 0.
Initial release of Windows driver for ATS310.
Initial release of Windows driver for ATS330.
`AlazarGetWhoTriggered()` API routine that returns which channel or combination of channels caused the trigger to occur. This is useful in multi-channel transient recording applications. Note that this new API routine will only work with ATS850 hardware version 1.3 or higher.
Support Master/Slave operation of up to eight (8) ATS850 PCI digitizer irrespective of the PCI bus scanning direction. Previous versions worked in motherboards that scanned left-to-right (when facing the BNC connectors), but not the other way around.
Support for ATS850 v1.3. Older hardware versions are also supported. Users who have written software for the older hardware versions do not need to change their software when upgrading to the new driver.
Support Master/Slave operation of two (2) ATS850 digitizers.
All notable changes to `libats` are documented here.
Support for AlazarDSP for ATS9352 and ATS9353 with FPGAs 16.0 and above.
Support for ATS9874.
Support for NPT footers for ATS9120 and ATS9130.
Regression introduced in v7.5.0 that causes `AlazarSetLED()` to fail.
Issue in `AlazarFFTSetWindowFunction()` where behaviour differs if imaginary window is a null pointer or an array of zeros.
Improve some error messages in the library.
Regression introduced in v7.5.0 causing AlazarDSO to fail calibrating ATS9462 and other PCIe gen 1 boards.
Support for ATS9628.
Support for `SEND_DAC_VALUE` for ATS9872.
Regression introduced in v7.0.5 where internal clock acquisitions with ATS660 fail with an `ApiPllNotLocked` error.
Dependency error that causes the installation of the library on some Linux systems to fail with error `Requires: cmake-filesystem(x86-64)`.
Do not return an error if `AlazarSetParameter` is called with `ECC_MODE` on a board that does not support ECC.
Support for ATS9146 v1.3 with uncalibrated input range.
Support for ATS9874.
`AlazarGetDriverVersionEx()` function. This is a replacement for `AlazarGetDriverVersion()` which supports querying the driver version of a specific board, as well as pre-release version numbers.
`AlazarGetATSApiVersion` function. This is a replacement for `AlazarGetSDKVersion()` that adds support for pre-release version numbers.
Install HTML change log instead of Markdown version.
Rename ATS3549 to ATS9470.
Add `DSP_FFT_DATAPATH` to `DSP_PARAMETERS_U32`.
Issue where ATS9416 master/slave systems are not identified properly under Linux.
Display of serial numbers for ATS9872 boards, which would appear with a missing digit in some situations (for example S61042 instead of S610042).
Regression introduced in v7.4.0 where NPT acquisitions can cause spurious `ApiWaitTimeout` errors on ATS9352 and ATS9373.
Issue where triggered streaming acquisitions cause spurious `ApiWaitTimeout` errors on ATS9352.
Issue where `AlazarGetParameter()` returns bad values on Linux for `GET_ASYNC_BUFFERS_PENDING` and `GET_ASYNC_BUFFERS_PENDING_EMPTY` parameters.
Issue where `AlazarGetParameter()` returns bad value for `GET_FPGA_TEMPERATURE` parameter on ATS9352 board.
Issue where `AlazarSetExternalClockLevel()` returns spurious `ApiUnsupportedFunction` errors. Affected products are ATS310, ATS330, ATS460, and ATS850.
Issue introduced in v6.8.0 where using 2048 or more records per buffer with trigger enable causes data synchronization issues.
Issue introduced in v6.8.0 where `ApiTransferComplete` would be returned too early in multi-channel acquisitions using `ADMA_ALLOC_BUFFERS`.
Regression introduced in v7.0.4 where some error conditions are not reported by the library.
Issue where ATS9453 is using AC coupling instead of DC coupling.
Add support for ATS3549 board.
NPT record footers support for ATS9416.
`AlazarPostAsyncGPUBuffer()` and `AlazarWaitAsyncGPUBufferComplete()` functions to support remote DMA applications.
Trigger skipping support in the library.
Driver feature API.
Issue where dual-buffer mode cannot be disabled after being enabled.
Issue with the single-port wrapper when making acquisitions with pre-trigger samples and a single record acquisition.
Issue with the single-port wrapper when making acquisitions with ATS9120 or ATS9310.
Issue introduced in version 7.2.1 where `AlazarGetSerialNumber()` does not return the correct value for some digitizers.
Issue where running a Python application using this library under some Linux distributions could cause a SEGFAULT error when the application terminates.
Support for ATS9353
Support for ATS9872
Regression introduced in v7.0.5 where `AlazarStartCapture()` can cause a Windows exception.
Regression introduced in v7.1.2 of the drivers where the coprocessor of ATS9625 and ATS9626 does not get loaded by default on Linux.
Regression introduced in v7.1.2 that could cause the library to not detect digitizers on some systems.
Remove 1MOhm, +/- 10 V input range on boards ATS9850 and ATS9870. This input range and impedance are not supported on these boards.
Regression introduced in 6.8.0 where AlazarSetCaptureClock() returns ApiFailed in master/slave systems. Affected boards are ATS9461, ATS9462.
Regression introduced in 6.8.0 where record per buffer is not configured correctly in continuous streaming mode, resulting in bad acquired data. Affected boards are ATS9461, ATS9462.
Support EEPROM database for ATST371, ATS9371 and ATS9373
Add `AlazarGetSerialNumber` API to retreive serial number string
Add `AlazarGetSerialNumber` API to retrieve serial number string
Clarify documentation about the maximum decimation in slow external clock
Issues in logging for `AlazarAllocBufferU8()` and `AlazarFreeBufferU8()` function calls.
Issue where the `ADMA_SAMPLE_INTERLEAVE` flag does not have any effect in NPT mode. This issue was introduced in version v6.8.0 and affects boards with more than two channels.
No user-visible change
`AlazarDSPGetNumModulesInBoard()` and `AlazarDSPGetModuleByID()`
Issue where running firmware updater on server-class computers may cause computer crashes.
`API_LOG_CLEAR` entry in `ALAZAR_PARAMETERS` to use in `AlazarSetParameter()`
`CAP_SUPPORTS_API_LOG_CLEAR` entry in `ALAZAR_CAPABILITIES` to use in `AlazarQueryCapability()`
Support for ATS9373 v1.7
`ApiInvalidStateDoRetry` error code
Support for full multiport on ATS9146
List of supported boards for sample skipping
Regression introduced in v6.8.0 where acquisition doesn't work on master/slave systems.
Regression introduced in v6.8.0 where capture clock is not initialized correctly on master/slave systems.
Regression introduced in v6.8.0 where the amount of memory returned by `AlazarQueryCapability()` with `MEMORY_SIZE` is invalid. This affects the value shown in AlazarDSO's title bar.
Regression introduced in v6.8.0 where some deprecated functions are not exported by the library, including `AlazarDSPOutputSnoop*()` and `AlazarEnableFFT()`.
Regression introduced in v6.8.0 where the default coprocessor for ATS9262-SE260 is not loaded properly when the library initializes.
When a function returns `ApiWaitTimeout`, the value does not appear in the log file as an error.
Documentation for `AlazarSetTriggerTimeOut()` to clarify the tick duration for all boards.
Issue where log file is truncated when an application using ATSApi terminates.
Issue where an ATSApi function returns an error and nothing appears in the log file when logging is turned off.
Issue where glitches appear at end of records in single-port acquisition.
Regression introduced in v6.8.0 where master/slave board systems are not detected properly.
Add support for dual-port memory data source for ATS9352. Note that a recent firmware is required for this feature to be active.
Regression introduced in v7.0.2 where calling `AlazarSetCaptureClock()` with `SAMPLE_RATE_USER_DEF` would cause the function to return `ApiFailed`.
Support for `API_FLAGS` in `AlazarGetParameter()`
Regression introduced in ATSApi v7.0.0 where, under Linux, the library sometimes "freezes" when an application using it exits.
No user-visible change
Support for ATS9416 v1.4
New `AlazarGetFPGAVersion()` function which lets users retrieve the FPGA version of their digitizer.
Regression introduced in v6.8.0 where single-channel acquisitions with boards that support dual-buffer mode would fail.
No user-visible change
Issue where applications using ATSApi could lock-up if data acquisition is running when the computer goes to sleep.
Fix false errors returned on MEMORY_SIZE capability retreive.
ATS9352 support for AlazarOCTIgnoreBadClock
ATS9437 support
ATS9618 support
ATS9358 support
AXI9870 board. This is the "correct" name of AXI8870.
AXI8870 label. This is an early name deprecated in favor of AXI9870.
Support for Debian 7. LTS support for Debian ended in May 2018.
Modified the internal logging infrastructure. This makes logging less time-consuming than previously.
NPT Footers support for ATS9352
ATST371 digitizer model.
No user-visible change
No user-visible change
Add support for amplitude calibration.
No user-visible change
No user-visible change
No user-visible change
No user-visible change
No user-visible change
No user-visible change
Add OCT Ignore Bad Clock to ATS9352.
No user-visible change
No user-visible change
No user-visible change
Add ground coupling.
Linux issue introduced in v6.5.0 that causes API functions to fail with ApiFailed errors.
Issues running with 32-bit applications on 64-bit systems for PCIe Gen1 digitizers.
Support for multi-channel FFT for boards that support it
Issue where some 32-bit applications would not work on 64-bit systems with drivers v6.3.0 and later
Support for infinite buffers per trigger enable
`AlazarExtractNPTFootersEx()`, which allows to extract NPT footers correctly in all acquisition modes for all boards that support this feature.
`AlazarExtractNPTFooters()`, `AlazarExtractFFTNPTFooters()` and `AlazarExtractTimeDomainNPTFooters()`. These functions have been superseded by `AlazarExtractNPTFootersEx()`.
Issue where `AlazarAbortAsyncRead()` would not properly terminate a running acquisition on ATS9360, ATS9371, ATS9373 and ATS9416. This could cause data alignment problems with applications that stop and start acquisition multiple times consecutively, or with LabVIEW code samples.
`AlazarConfigureFastBufferLock()` function
Deactivate SetCaptureClock for ATS9352
ATS9352 not recognized
Single-port wrapper buffer management
Report error for unsupported acquisition modes on ATS9120 and ATS9130.
Support for ATS9453
Various API function descriptions to make them easier to understand.
Add the following entries to `AlazarSetExternalTrigger()`: `ETR_5V_50OHM`, `ETR_1V_50OHM`, `ETR_2V5_50OHM` and `ETR_5V_300OHM`.
`CAP_SUPPORT_8_BIT_PACKING` and `CAP_SUPPORT_12_BIT_PACKING` entries to `AlazarQueryCapability()`.
Channel memory sharing on ATS9637.
Support for ATS9352
Single-port wrapper around the dual-port API. This lets most applications developped for single-port digitizers be used without modifications with modern AlazarTech boards. This wrapper has some limitations, see manual for complete details.
The following entries to `AlazarQueryCapability()`: `CAP_SUPPORTS_TRADITIONAL_AUTODMA`, `CAP_SUPPORTS_NPT_AUTODMA`, `CAP_MAX_NPT_PRETRIGGER_SAMPLES`, `CAP_IS_VFIFO_BOARD` and `CAP_SUPPORTS_NATIVE_SINGLE_PORT`
No user visible changes
No user visible changes
Regression introduced in version 5.10.25 that caused ATS9870 master/slave systems to show acquisition timeout problems.
Fix Linux support for ATS9120 and ATS9130.
Added missing exports for deprecated functions.
AlazarAllocBufferU16Ex correctly exported
Support for on board memory size greater than 4 Giga samples via functions `AlazarGetChannelInfoEx()`, `AlazarQueryCapabilityLL()`, `AlazarGetParameterLL()` and `AlazarSetParameterLL()`
Support for ATS9637
Regression where ATS9870's internal clock rates would not be set properly for rates lower than 1 GS/s.
Set the default of number of DMA buffers allocated by the `ADMA_ALLOC_BUFFERS` API to 4 instead of 64. This default value can be modified with the `SETGET_ASYNC_BUFFCOUNT` parameter.
Set the serial number prefix of ATS9371 to `86`.
`AlazarEnableFFT()` is no more necessary and returns `ApiUnsupportedFunction`.
Add internal support for DIS DSP module.
Support for data skipping and on-FPGA FFT simultaneously. This is limited to ATS9360 boards with firmware 20.14 and above.
Support for ATS9371
Support for ATS9120
`AlazarAllocBufferU8Ex()` allows allocation of large buffers over 4GS in size for boards with 8 bit precision.
`AlazarAllocBufferU16Ex()` allows allocation of large buffers over 4GS in size for boards with 16 bit precision.
`AlazarFreeBufferU8Ex()` frees buffer allocated with `AlazarAllocBufferU8Ex()`.
`AlazarFreeBufferU16Ex()` frees buffer allocated with `AlazarAllocBufferU16Ex()`.
Issue with `SET_BUFFERS_PER_TRIGGER_ENABLE` that makes it set the double the requested value in dual-channel mode
Cleanup step in `AlazarBeforeAsyncRead()` to ensure that previous acquisitions are terminated.
Seamless DES support for internal clock acquisitions under Linux.
Make the Visual Studio 2015 redistributable installers passive. This solves an issue where, on some computers, the installer prompt would stay hidden behind the main installer's window.
Make `AlazarSetBWLimit()` return with success for any board if the bandwidth limiter is deactivated.
Fix typo in `AlazarFFTBackgroundSubtractionSetRecordS16()`'s documentation.
Bug under Linux in ATS9360/ATS9370/ATS9373/ATS9416 driver and library that was not reading EEPROM data at initialization time, which could cause an incorrect input offset and not detect available memory with user-created applications. Workaround for this bug used to be to run AlazarFrontPanel or AlazarSysInfo before launching user-created application, thus forcing the EEPROM data to be read. This workaround is no longer required.
Bug in AlazarDSP that causes window functions downloaded to the on-FPGA FFT module to be corrupted, causing increased noise in on-FPGA FFT
Bug in Triggered Streaming that would cause the trigger event location in acquired data not to be stable within one sample, but within 16 samples.
Bug where NPT record footers was not supported on ATS9350 and ATS9351 on firmware versions 21.01 and later.
Bug in AlazarDSP on-FPGA FFT mode where the incorrect multiplier was used for the fft log output when `FFT_OUTPUT_FORMAT_RAW_PLUS_FFT` was activated.
Bug on Linux that caused ATS9373's serial number to appear as 83XXXX instead of 93XXXX.
Conflict between `ADMA_ALLOC_BUFFERS` and `ADMA_ENABLE_RECORD_HEADERS` that causes DMA buffers with record headers active using to have missing data when the `AlazarWaitNextAsyncBufferComplete()` API is used.
Bug in `SET_BUFFERS_PER_TRIGGER_ENABLE` where the value applied was off by a factor of `records_per_buffer`.
Clarify `AlazarSetTriggerOperation()`'s documentation about the external trigger level settings.
Deactivate ATU7825 detection in Windows to prevent GUID conflict.
Make the ATSApi installer overwrite currently installed DLLs in all instances.
`SET_BUFFERS_PER_TRIGGER_ENABLE` parameter for `AlazarSetParameterUL()`.
`AlazarParseFPGAName()`. Now returns `ApiUnsupportedFunction` without doing anything.
`AlazarOEMSetWorkingDirectory()`. Now returns `ApiUnsupportedFunction` without doing anything.
`AlazarOEMGetWorkingDirectory()`. Now returns `ApiUnsupportedFunction` without doing anything.
`AlazarGetOEMFPGAGetDescriptor()`. Now returns `ApiUnsupportedFunction` without doing anything.
`CreateFullPathUsingInstallPathBuffer()`. Now returns `ApiUnsupportedFunction` without doing anything.
`AlazarGetOEMFPGAName()`. Now returns `ApiUnsupportedFunction` without doing anything.
Support for Windows Driver Kit 10
Bug under Windows in ATS9360/ATS9373/ATS9416 driver and library that was not reading EEPROM data at initialization time, which could cause an incorrect input offset and not detect available memory with user-created applications. Workaround for this bug used to be to run AlazarDSO or AlazarSysInfo before launching user-created application, thus forcing the EEPROM data to be read. This workaround is no longer required.
`AlazarExtractNPTFooters()`. This function has been superseeded by `AlazarExtractFFTNPTFooters()` and `AlazarExtractTimeDomainNPTFooters()`.
`AlazarExtractFFTNPTFooters()`
`AlazarExtractTimeDomainNPTFooters()`
Preliminary support for dual-buffer mode
AlazarQueryCapability macro for `ADMA_ENABLE_RECORD_FOOTERS`
AlazarSetADCBackgroundCompensation function
The equivalent of DSOs F4 information for ApiFlags
Use headers from ATS-SDK
In calling AlazarInputControl() or AlazarInputControlEx(), use appropriate IOCTL, based on the number of channels on a board
Remove Register30 access from the library
Moved AlazarSetExternalTrigger(), AlazarSetCaptureClock(), AlazarInputControl(), and AlazarInputControlEx() to libats.cpp
Prevent the library from writing to stdout
Internal slicing of FFT data
Activate NPT record footers for ATS9373 with FPGA 25.3 and above
Add support for AlazarDSP
Bug in AlazarRC that made temporary tmp.txt file appear.
Bug in AlazarRC where logging is enabled when an application starts and the alazar configuration file does not exist.
Default log file path to /tmp/ATSApi.log under Linux
Support for NPT record footers
No change
Bug where ATS9626 hc default coprocessor is not downloaded
CMake-based build
Support for multi-threaded operation
Initial release