Change Log
This file lists all the important changes to ATS-SDK
[7.5.0] - 2021-5-20
Added
- Code samples and documentation for ATS9146.
- Code samples and documentation for ATS9353.
- Code samples and documentation for ATS9872.
- Code samples and documentation for ATS9628.
Fixed
- 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 code
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
Changed
- 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.
Added
- 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.
- Added AlazarGetFPGAVersion
- Deploy on Debian.
Fixed
- 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
Removed
- Documentation about `AlazarSetTriggerOperationForScanning()`, which has been
superseded by `AlazarOCTIgnoreBadClock()`.
- Remove AlazarEnableFFT from language wrappers.
[7.3.0] - 2019-5-17
Added
[7.2.4] - 2019-1-22
Added
- ATS9130 code samples
- Traditional AutoDMA code samples for ATS9120
[7.2.3] - 2018-12-20
Removed
- Support for LabVIEW 7.1. The oldest supported LabVIEW version is now 2009.
Fixed
- 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.
Changed
- Sign installer with 256-bit signature.
[7.2.2] - 2018-9-26
Fixed
- Remove double "index" entry in the manual
- Erroneous supported external trigger ranges for ATS310 and ATS330
[7.2.1] - 2018-6-19
Fixed
- 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
Changed
- Various modifications in the ATS-SDK guide.
[7.2.0] - 2018-3-26
Changed
- 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
Added
- 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
Fixed
- 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
Changed
- 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#
Added
- Doxygen documentation
- `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
Removed
- Non-exported functions `AlazarWrite()` and `AlazarCoprocessorDownloadBuffer()`
from AlazarApi.h
Fixed
- 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
Added
- Function to extract NPT footer
[7.1.3] - 2015-11-3
Changed
- Update the DMABuffer Python API to use ctypes
[7.1.2] - 2015-10-16
Added
- OCT Ignore Bad Clock feature
[7.1.1] - 2015-10-6
Added
- Document AlazarFFTSetWindowFunction
- on-FPGA FFT LabVIEW code sample
[7.1.0] - 2015-9-23
Added
- AlazarDSP module for on-FPGA FFT support
Fixed
- Error in Python samples that caused `AlazarAbortCapture()` not to be called
[7.0.0] - 2015-8-11
Added
- LabVIEW support to ATS-SDK
- Support for ATS9373 and ATS9416
- `AlazarConfigureLSB()` documentation
- Data packing and DES support and documentation
Changed
- Various small changes in the documentation
[6.2.0] - 2015-3-2
Added
- Code samples for ATS9373, ATS9360 and remove ATS9360_FIFO
- External Clock Issues for OCT Applications section to guide.
Changed
- 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()`.
Removed
- Remove Visual Basic 6 documentation and code samples.
[6.1.0] - 2013-2-11
Added
- 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.
Changed
- Update MATLAB samples to call `AlazarAllocBufferUx` and `AlazarFreeBufferUx`
to ensure buffer alignment requirements are satisfied.
Fixed
- Bug in MATLAB samples that caused "Undefined function or method
AlazarErrorToText ..." errors.
[6.0.4] - 2012-7-24
Added
- 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()`.
Changed
- Update ATS9440 MATLAB AutoDMA samples to add `ADMA_INTERLEAVE_SAMPLES` flag by
default.
[6.0.3] - 2011-6-16
Added
- Support for the ATS9351 and ATS9850.
Changed
- 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
Changed
- 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 2.3.4.5 "Digital input" to fix an error
describing the AUX I/O digital input configuration.
[6.0.1] - 2011-2-7
Added
- 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.
Changed
- 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
Added
[5.8.4] - 2010-12-14
Added
- Support for ATS9440
- `AlazarSetTriggerOperationForScanning()` and `AlazarConfigureSampleSkipping()`
API functions.
- VB6 sample programs, and update single-ported samples programs to simplify
code.
Changed
- Move release history to release notes file.
[5.8.3] - 2010-8-18
Added
- Support for ATS9325.
- `AlazarSetClockSwitchOver()` to configure dummy clock.
- `EEC_MODE` to parameter to `AlazarGetParameter()` and `AlazarSetParameter()`.
Changed
- Update `AlazarConfigureAuxIO()` description in function reference.
- Expand description of `AlazarSetCaptureClock()` decimation parameter in
section 2.3.1.4 "10 MHz PLL".
- Expand description of `AlazarInputControl()` to include board specific input
ranges.
[5.8.2] - 2010-5-28
Changed
- Update ATS-SDK Guide to add section describing buffer size and alignment
requirements.
Fixed
- 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
Added
- 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
Added
- 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`
Deprecated
- Synchronous AutoDMA acquisition functions including: `AlazarStartAutoDMA()`,
`AlazarGetNexBuffer()`, `AlazarAbortAutoDma()`, and
`AlazarGetAutoDMAHeaderTimeStamp()`.
Changed
- Update SDK documentation and sample code.
[5.6.0] - 2008-6-1
Added