This file lists all the important changes to ATS-SDK
[23.1.0] - 2023-3-21
Code samples and documentation for ATS9428.
Code samples and documentation for ATS9442.
Code samples and documentation for ATS9437.
NPT stream to memory sample programs for MATLAB & Python.
Added missing 100 ohm definition.
Code samples and documentation for ATS9182.
Remove FIFO-only streaming flag from ATS9146 LabVIEW sample programs.
Remove record header sample programs for boards that do not support it.
Regression introduced in 7.5.0 where some MATLAB files had wrong formatting.
Remove ADMA_ALLOC_BUFFERS flags in StreamToMemory sample programs.
Fix issue where generic sample programs were missing an outdated VI.
Fix floating point range in NPT_Volts.vi sample programs.
C sample programs doing conversion to volts account for data interleaving type.
[7.7.0] - 2022-10-25
Code samples and documentation for ATS9364.
Documentation section regarding multi-threading.
Issue in AlazarSetParameterUL.vi (LabVIEW sub-VI) which would cause it to not work on 32-bit LabVIEW.
[7.6.0] - 2022-5-30
Document parallel DMA buffer mode.
Deprecate NPT footer extraction APIs. There is a new library called ats-footers for NPT footer extraction. See ATS-SDK User Guide for more details.
[7.5.1] - 2021-9-16
No user-visible change
[7.5.0] - 2021-5-20
Code samples and documentation for ATS9146.
Code samples and documentation for ATS9353.
Code samples and documentation for ATS9872.
Code samples and documentation for ATS9628.
[INTERAL] Add support for pre-release version numbers.
Default input coupling for ATS9351 C, C#, MATLAB and Python.
Regression introduced in v7.4.0 where `atsapi.py` lists some deprecated boards, causing the interpreter to issue errors when Python codes samples are started.
Remove no longer supported boards from boardTypeIdToText() in MATLAB samples.
Issue in AlazarSysInfo's Makefile that prevents this code sample from building.
[7.4.0] - 2020-4-28
Modify MATLAB interface to limit raw pointer usage in calling code and simplify overall usage of the API. Extensive documentation about the differences in calling convention between C and MATLAB functions is included in the ATS-SDK guide's getting started section.
Mark single-port code samples as non-recommended (internal ref #10)
Replace AXI8870 with AXI9870 everywhere
Issue where Python code samples were using `time.clock()` to measure wall-clock time instead of `time.time()`.
Change wording of multi-channel entries like "A + B" with "A, B" in the channel selection parameter of `AlazarBeforeAsyncRead()` in LabVIEW code samples. This is meant to clarify the meaning of multi-channel acquisitions.
Remove notion of time per tick from code samples because it's board-dependent. board.
Activate sample interleaving by default on ATS9440. This is necessary for the board to sustain high data rates with 4 channels active.
Correct SampleToVolts code fragments in programmers guide.
LabVIEW code samples to extract NPT footers
LabVIEW code samples for ATS9371
+/- 200mV input range entry for ATS9625 and ATS9626 LabVIEW code samples. This helps use digitizers purchased with the alternate input range.
LabVIEW "CreateStreamFile" code samples
Documentation about `AlazarOCTIgnoreBadClock()`.
Document that `AlazarSetParameterUL()` for `SET_ADC_MODE` must be called before `AlazarSetCaptureClock()`.
Code samples and documentation for ATS9352.
Deploy on Debian.
Issue where the available sample rates in LabVIEW code sample for some boards did not match the allowed values. Products affected are: ATS860, ATS9360, ATS9373, ATS9625, ATS9626 and ATS9637.
Issue in the `AlazarSetTriggerOperation examples` section of the programmer's guide where an example was using wrong arguments in the `AlazarSetTriggerOperation()` function call.
Issue where, when Python code samples are used with new versions of the ATSApi library, loading atsapi.py errors out with and "undefined symbol" error for `AlazarDSPOutputSnoopStatus()`
List of boards that support bandwidth limit in the SDK guide. ATS9870 was listed erroneously and ATS860 was missing.
Fixed AlazarFreeBuffer being called with arguments in the wrong order in stream to memory sample codes.
Issue where pthreads library was missing from multithreaded code samples under Linux, causing linker errors.
Remove U32 cast of samplesPerAcquisition in MATLAB CS code.
Added missing boards to AlazarSysInfo.
Fixed LabVIEW's AlazarBoardsFound.vi function wrapper. It was using the wrong ATSApi function internally, causing the sub-VI to return erroneous values.
Remove ATSApi.dll from Samples_MATLAB/include
Documentation about `AlazarSetTriggerOperationForScanning()`, which has been superseded by `AlazarOCTIgnoreBadClock()`.
Remove AlazarEnableFFT from language wrappers.
[7.3.0] - 2019-5-17
ATS9637 code samples
[7.2.4] - 2019-1-22
ATS9130 code samples
Traditional AutoDMA code samples for ATS9120
[7.2.3] - 2018-12-20
Support for LabVIEW 7.1. The oldest supported LabVIEW version is now 2009.
Issue in the Makefile of the code samples where the ordering of options passed to the compiler is not correct. This can cause "undefined references" errors with some compilers.
Issue with AlazarInputControlEx.vi where the "call library node" function would emit the following error: "The function name specified for this node cannot be found in the library"
AlazarDSPGetModules calls in MATLAB code samples. Some places used `0` in lieu of `libpointer`s, which would cause some versions of MATLAB to not run code samples correctly.
Issue with LabVIEW code samples where running on-FPGA applications with LabVIEW 2018 would cause "error 1097" messages.
Sign installer with 256-bit signature.
[7.2.2] - 2018-9-26
Remove double "index" entry in the manual
Erroneous supported external trigger ranges for ATS310 and ATS330
[7.2.1] - 2018-6-19
Issue where the buffer layout wasn't documented properly in some MATLAB code samples.
LabVIEW code samples for ATS9120
MATLAB code samples default values for ATS9120
Various modifications in the ATS-SDK guide.
[7.2.0] - 2018-3-26
Rename sample files to a meaningful name
Reformatted the SDK guide
Update AlazarSysInfo code sample with latest boards
Make BinToText8 cross-platform
Make BinToText16 cross-platform
Call AlazarAllocBufferU16Ex and U8Ex instead of valloc
Python support for DIS DSP module
Code samples for ATS9120 and ATS9371
Missing functions in the Python wrapper
In AlazarApi.cs, error codes added (603, 604, 609)
In AlazarApi.cs, board types added (AXI8870, ATS9637, ATS9120, ATS9371)
In AlazarApi.cs and AlazarDSP.cs, functions removed and added to match API
Samples in CSharp: different clock configuration for each board type
Samples in CSharp: NPT_Scan, AR_Volts, NPT_Volts, TR_Volts
Issue with the number of samples allocated and written in on-FPGA mode in Labview.
Issue in Python code samples where `DMABuffer` memory would leak.
Issue in Python code samples where data files would be opened in text mode. This could lead to corrupt data written to disk on some versions of Python.
Type of HANDLE in ATSApi Python wrapper
Encoding of file name in CreateStreamFile.vi
[7.1.5] - 2016-8-10
Requires driver v5.10.14 or above
Move input range to 1V for ATS9416 in code samples
Set input coupling to DC for ATS9626 in code samples
Make default sample rate used in samples codes the highest possible
Use Hanning windows as default for FFT sample codes
Replaced call to `AlazarInputControl()` with `AlazarInputControlEx()` in all code samples in C, MATLAB, Python, and C#
`AlazarDSPGetParameterU32()`, a generic interface to retrieve U32-typed DSP parameters
FFT background subtraction feature, with the following functions:
`AlazarFFTGetMaxTriggerRepeatRate()` to get the maximum trigger repeat rate that the FFT engine can support without overflow
`AlazarFFTSetScalingAndSlicing()` to set internal scaling and slicing parameters in the FFT module
Sample VIs for ATS9350, ATS9351, ATS9360, and ATS9373 for on FPGA FFT, for all 3 output formats (U8, U16, and float)
AlazarDSPGetBufferU8/U16/Float.vi and AlazarDSPGetNextBufferU8/U16/Float.vi
MATLAB sample code for NPT Master/Slave mode for all board types
on-FPGA FFT sample codes for MATLAB, Python and C#, for supported boards (ATS9350, ATS9351, ATS9360 and ATS9373)
on-FPGA FFT sample codes for C, for ATS9351
Non-exported functions `AlazarWrite()` and `AlazarCoprocessorDownloadBuffer()` from AlazarApi.h
Bug in on FPGA FFT VIs to use DSP handle wherever required
Bug in "Continuous streaming" and "Triggered streaming" VIs in setting records per buffer and record count
Bug in python code samples concerning the data type for boards above 8-bit being derived wrong
Error in channels definition in AlazarDefs.m
Bug in generating `Average` and `AverageMultithreaded` sample codes in C.
Bug in generating `Samples_C/ATS9440/DualPort/CS_LSB`
[7.1.4] - 2016-1-8
Function to extract NPT footer
[7.1.3] - 2015-11-3
Update the DMABuffer Python API to use ctypes
[7.1.2] - 2015-10-16
OCT Ignore Bad Clock feature
[7.1.1] - 2015-10-6
on-FPGA FFT LabVIEW code sample
[7.1.0] - 2015-9-23
AlazarDSP module for on-FPGA FFT support
Error in Python samples that caused `AlazarAbortCapture()` not to be called
[7.0.0] - 2015-8-11
LabVIEW support to ATS-SDK
Support for ATS9373 and ATS9416
Data packing and DES support and documentation
Various small changes in the documentation
[6.2.0] - 2015-3-2
Code samples for ATS9373, ATS9360 and remove ATS9360_FIFO
External Clock Issues for OCT Applications section to guide.
Update 10Mhz PLL documentation for ATS9416, ATS9373 and AXI9870.
Move ATS9350/ATS9351 Advanced 10MHz PLL under Advanced Topics in guide.
Update External Trigger Data Source in guide.
Move `AlazarSetTriggerOperationForScanning()` under Advanced Topics in guide.
Update `AlazarBeforeAsyncRead()` with new board's information.
Move board-specific data to guide's appendix and make references to that section.
Update `AlazarInputControl()` and add `AlazarInputControlEx()`.
Remove Visual Basic 6 documentation and code samples.
[6.1.0] - 2013-2-11
Support for ATS9360-FIFO.
`AlazarAllocBufferU8()`, `AlazarAllocBuffer16()`, `AlazarFreeBufferU8()`, and `AlazarFreeBufferU16()` to allocate page aligned buffers.
`GET_FPGA_TEMPERATURE` to `AlazarGetParameter()` to read current FPGA temperature of PCIe digitizers.
"Advanced 10 MHz PLL" mode to ATS-SDK Guide.
`AlazarConfigureRecordAverage()` for FPGA record average with the ATS9870 with FPGA 180 or above.
`AlazarCoprocessorDownload()`, `AlazarCoprocessorRegisterWrite()`, and `AlazarCoprocessorRegisterRead()` for ATS962x user FPGA control.
`ApiNotSupportedInQuadChannelMode`, `ApiFileIoError`, and `ApiInvalidClockFrequency` to ATS-SDK error reference, and move error reference after function reference.
A glossary section to ATS-SDK Guide.
`STOS_OPTION_DEFER_START_CAPTURE` constant to MATLAB, C# and VB SDKs.
brief instructions for C++/CLI and VB.NET developers to access ATSApi.dll though a reference to AlazarApiNet.dll.
Update MATLAB samples to call `AlazarAllocBufferUx` and `AlazarFreeBufferUx` to ensure buffer alignment requirements are satisfied.
Bug in MATLAB samples that caused "Undefined function or method AlazarErrorToText ..." errors.
[6.0.4] - 2012-7-24
Support for ATS9625 and ATS9626
`AlazarGetBoardRevision()` to return PCB revision of PCIE digitizers.
`PACK_MODE`, `GET_CHANNELS_PER_BOARD`, `EXT_TRIGGER_IMPEDANCE`, and `GET_CPF_DEVICE` parameters for `AlazarGetParameter()`.
Update ATS9440 MATLAB AutoDMA samples to add `ADMA_INTERLEAVE_SAMPLES` flag by default.
[6.0.3] - 2011-6-16
Support for the ATS9351 and ATS9850.
Update ATS-SDK Guide section 3.3.4 AsyncRead to fix a typo where the BytesToRead parameter was repeated.
[6.0.2] - 2011-4-28
Update MATLAB sample code to add support for 32- and 64-bit MATLAB 2009a and later.
Update ATS-SDK Guide section 2.3.4 "AUX I/O" for the ATS9440.
Update ATS-SDK Guide section 220.127.116.11 "Digital input" to fix an error describing the AUX I/O digital input configuration.
[6.0.1] - 2011-2-7
Single- and multi-threaded C/C++ samples that demonstrate how to average data from continuous and no-pretrigger dual-ported AutoDMA mode streaming acquisitions.
C/C++ projects for Microsoft Visual C++ Express 2008 and later that target 32-bit platforms only. Note that projects with "_x64" in their filenames support both 32- and 64-bit built targets, but require build tools that support 64-bit cross-compilation, such as Visual C++ Professional 2008 and later. Visual C++ Express editions do not include 64-bit cross-compilers, so will fail to open these projects.
Modify all C/C++ projects to generate output .exe files whose filenames have the same base as the project name. For example, AcqToDisk.vcproj generates AcqToDisk.exe. Visual C++ Express 2010 generates a warning otherwise.
[6.0.0] - 2011-1-24
MATLAB sample programs.
[5.8.4] - 2010-12-14
Support for ATS9440
`AlazarSetTriggerOperationForScanning()` and `AlazarConfigureSampleSkipping()` API functions.
VB6 sample programs, and update single-ported samples programs to simplify code.
Move release history to release notes file.
[5.8.3] - 2010-8-18
Support for ATS9325.
`AlazarSetClockSwitchOver()` to configure dummy clock.
`EEC_MODE` to parameter to `AlazarGetParameter()` and `AlazarSetParameter()`.
Update `AlazarConfigureAuxIO()` description in function reference.
Expand description of `AlazarSetCaptureClock()` decimation parameter in section 18.104.22.168 "10 MHz PLL".
Expand description of `AlazarInputControl()` to include board specific input ranges.
[5.8.2] - 2010-5-28
Update ATS-SDK Guide to add section describing buffer size and alignment requirements.
Lib files to include API functions added with 5.8.1 release.
Error in `AlazarSetExternalClockLevel()` description in function reference.
[5.8.1] - 2010-5-12
C# sample programs
The following API functions: `AlazarForceTriggerEnable()`, `AlazarSetExternalClockLevel()`.
The following `AlazarGetParameter()` values to AlazarCmd.h: `GET_ASYNC_BUFFERS_PENDING`, `GET_ASYNC_BUFFERS_PENDING_FULL` and `GET_ASYNC_BUFFERS_PENDING_EMPTY`
`AUX_OUT_TRIGGER_ENABLE` to `AlazarConfigureAuxIO()`.
[5.8.0] - 2010-1-21
Support for ATS9350.
The following API functions: `AlazarConfigureAuxIO()`, `AlazarCreateStreamFile()`, `AlazarErrorToText()`, `AlazarReadEx()`.
The following AlazarSetParameter values: `SET_SINGLE_CHANNEL_MODE`.
The following AlazarGetParameter values: `GET_SAMPLES_PER_TIMESTAMP_CLOCK`, `GET_RECORDS_CAPTURED`.
The following AlazarGetParameterUL values: `GET_MAX_PRETRIGGER_SAMPLES`
Synchronous AutoDMA acquisition functions including: `AlazarStartAutoDMA()`, `AlazarGetNexBuffer()`, `AlazarAbortAutoDma()`, and `AlazarGetAutoDMAHeaderTimeStamp()`.
Update SDK documentation and sample code.
[5.6.0] - 2008-6-1
ATS-SDK 5.6.0 release