Spinapi Changelog ================= This file documents changes that have been made to spinapi. The version of spinapi is given by the date it was released. If minor bugfixes to spinapi are made, or example programs are updated, the version is not changed, but a letter is added to the end of the spinapi package. (starting with b, then c, etc.) Unless otherwise noted, it is not necessary to reinstall drivers when a new version of spinapi is released. Simply linking with the new spinapi library is sufficient to take advantage of the changes. Change History ============== ----------- 2008-09-23 ----------- - Updated error reporting features of SpinAPI. ----------- 2008-09-18 ----------- -Added support for Firmware revision 10-18. ----------- 2008-07-14 ----------- RadioProcessor: - Added CPMG directory with example and information ----------- 2008-07-09 This version is only for PulseBlasterDDS-II boards. ----------- PBDDS-II: - Added more example programs ----------- 2008-06-21 ----------- PBDDS-II - Corrected PBDDS-II Amplitude Register problem. ----------- 2008-06-12 ----------- PBDDS-II - Added PBDDS-II folder with example. - Added interrupt functions for boards that support it. ----------- 2008-05-21 ----------- RadioProcessor: - Added "DirectCapture.c." This is an example program on utilizing the direct ram capture feature of the RadioProcessor. - Updated the commenting in "SinglePulse_NMR.c." - USB Transfers will now timeout if the board is disconnected unexpectedly. ----------- 2008-05-13 ----------- usb.c,driver-usb-windows.c,spinapi.c,if.c, util.h - Improved USB Transfer rates. - Added support for 12-8 and 12-9 Firmware revisions. - Updated debug logging. ----------- 2008-02-10: ----------- if.c, caps. - Added support for PB-DDS-I-300 PCI Card with 1024 Frequency registers and 8 phase registers (Firmware version 10-17.) ----------- 2008-02-09: ----------- if.c, caps.c - Added support for the PB-DDS-I-300 PCI Card with 1024 Frequency Registers and 4 Phase Registers. Acquisition is disabled (Firmware version 10-16.) ----------- 2008-01-29: ----------- singlepulse_nmr.c - Undersampling will now use the correct folded frequency. ----------- 2007-12-14: ----------- USB Driver: -Added Windows Vista Support. USB Boards will now function properly on 32-bit Vista computers. ----------- 2007-09-13: ----------- RadioProcessor: -Added singlepulse_nmr.c, singlepulse_nmr.h, singlepulse_nmr_example.bat. ----------- 2007-09-04: ----------- PBDDS-I-300: -Updated pb_inst_dds() and pb_inst_dds_shape() to increase functionality. ----------- 2007-08-03: ----------- PBDDS-I-300: -Added support in caps.c -changed some attributes of board struct -Support for PBDDS-I-300 instruction format added to pb_inst_radio_shape() -Added pb_inst_dds() and pb_inst_dds_shape() which are the same as radio without the aquision paramters(cos, sin, trigger_scan) ----------- 2007-07-18: ----------- iSpin: -Added iSpin test programs. USB boards: -Updated USB Transfer Code to increase download speed and efficiency. ----------- 2007-07-11: ----------- All boards: -Updated JCAMP-DX file formatting. USB boards: -Improved USB transfer code to utilize less memory. ----------- 2007-04-20: ----------- RadioProcessor: -Added a new optional command to pb_setup_filters function: users may now enter NARROW_BW in the 'cmd' field, which will result in a narrower input bandwidth (3-stage CIC filter instead of the default 1-stage CIC filter). For more information, please see the pb_setup_filters section of the SpinAPI Reference document. All boards: -Installation procedure bugfixes ----------- 2007-04-11: ----------- Changed installation procedure -All SpinCore boards are automatically uninstalled from Device Manager when software installation begins. Boards are then then scanned for after install completes. ----------- 2007-02-28: ----------- Support for several new firmware revisions ----------- 2007-02-13: ----------- Support for new product added: USB PulseBlaster Plus! (v2) ----------- 2006-12-13: ----------- Note for PulseBlaster Interpreter users: -Please upgrade to the latest version of the Interpreter (20061213) at this time RadioProcessor: -Support for new firmware revision --pb_set_radio_control(FORCE_AVG) can now be called to force averaging across separate scans (firmware 10-14) ----------- 2006-10-20: ----------- RadioProcessor: -Support for two new firmware revisions -pb_set_radio_control(BNC0_CLK) can now be called to exercise BNC clock output capability on certain models ----------- 2006-10-09b: ----------- Note for PulseBlaster Interpreter users: -Please upgrade to the latest version of the Interpreter (20061009) at this time RadioProcessor: -Acquisition parameters added to ASCII output files -pb_write_ascii(...) deprecated; use pb_write_ascii_verbose(...) instead -pb_write_ascii(...) can still be used, but will write a zero on the 'Spectrometer Frequency' line in the ASCII output file. -Appropriate changes made to example programs PulseBlasterESR: -Status readback issue fixed Example Programs: -New directory structure -All programs now feature on-screen text descriptions ----------- 2006-08-24: ----------- Updated existing example programs and added new example for PBESR boards. 'FF Fix' behavior modified to subtract rather than add to prevent rollover. ----------- 2006-07-20: ----------- Added support for new firmware revisions with 'FF' fix : 8-5, 10-11, 10-12 and 12-3 (PulseBlasterESR, RadioProcessor TRX-I 75-75-150, RadioProcessor TRX-I 50-75-300 and RadioProcessorUSB, respectively) ----------- 2006-07-06: ----------- For boards that have not been updated with the PB Core 'FF' fix, spinapi will continue to add an extra clock cycle in the situations described below under 2006-06-13b. For boards without firmware registers (PB24/16/12, Some PB-ESRs, PB-Plus!, ISA boards), there is no way for spinapi to know if the board has been fixed and so the behavior described under 2006-06-13b will continue as well. If you have one of these boards and if it has had the 'PB Core FF fix' performed, please add 'pb_bypass_FF_fix(1);' to the beginning of your pulse programs. More information about this new function is available in the spinapi documentation at: http://www.pulseblaster.com/CD/spinapi/spinapi_reference/ ----------- 2006-06-20: ----------- Support for several new firmware revisions ------------ 2006-06-13b: ------------ All Products: -temporary workaround in PB core (extra clock cycle added to all delays ending in 0xFF except 0x0FF) -if you downloaded the original version of 2006-06-13, please download 2006-06-13b instead. -this 'extra clock cycle' behavior will be removed when the counter problem is fixed in firmware ----------- 2006-06-12: ----------- RadioProcessor: -Updates for support of custom firmware 10-10 ----------- 2006-06-01b: ----------- Minor bugfixes for PB-ESR example programs ----------- 2006-06-01: ----------- RadioProcessor: -Added JCAMP-DX output capability -Modified RadioProcessor examples so that they output the JCAMP-DX files in addition to ASCII and Felix PBESR-PRO: -cosmetic fix for longdelaytest.c ----------- 2006-05-24: ----------- RadioProcessor: -Support for latests PCI firmware revisions -Bugfixes for USB board ----------- 2006-05-18: ----------- RadioProcessor: -Test parameters are now written into the Felix files along with the acquired data. ( viewable by clicking Process -> Edit Title ) ----------- 2006-05-08: ----------- RadioProcessor: -Bugfixes for RadioProcessor USB board ----------- 2006-05-04: ----------- RadioProcessor: -Support for boards without data acquisition (firmware 10-7) ----------- 2006-05-03: ----------- RadioProcessor: -Support for AWG-Capable boards (firmware 10-5,10-6) -Support for RadioProcessor USB board (Windows only) ----------- 2006-03-21: ----------- RadioProcessor: -pb_setup_cic() incorrectly set the m parameter to the opposite of the intended value. This has been fixed. -As a side effect of the above, the default settings for the CIC filter used by pb_setup_filters() is now stages=1, m=1. Previous versions of the documentation erroneously indicated that m=2 was used as the setting -pb_init() no longer resets the internal registers of the RadioProcessor. This allows, for example, separate programs to configure the board, and start the experiment -A new function, pb_reset_defaults() has been introduced which does reset the internal registers. This should be called immediately after pb_init() in all cases, except when you are sure the board is already configured properly and you don't want to change it (for example, in a standalone program which simply starts and experiment with pb_start() based on already configured programs) ----------- 2006-02-20: ----------- All boards: -Linux now supported ----------- 2006-02-06: ----------- All boards: -Updates Windows Drivers. NOTE: YOU WILL NEED TO UPDATE THE CURRENTLY INSTALLED DRIVERS, SEE THE SPINAPI INSTALLATION DOCUMENTATION FOR HELP ----------- 2005-12-12: ----------- All boards: -General documentation enhancements, and improvements to compilation documentation. -pb_sleep_ms() function added to provide a portable sleep function RadioProcessor: -Issue with pb_get_data() occasionally returning incorrect data points is fixed. -Issue with phase registers occasionally getting incorrectly set is fixed. ----------- 2005-11-03: ----------- All Boards: -New directory general/ which contains two new programs: pb_start and pb_stop. These work with all boards and will trigger and stop the board respectively. RadioProcessor: -Updates to support latest firmware revision (10-4) -New function pb_scan_count() which can be used to determine the progress of a multiple-scan experiment ----------- 2005-10-03: ----------- All boards: -Rounding behavior for instruction length updated to round to the nearest value rather than always rounding down. For example, on a 100MHz board, entering 99ns will round up to 100ns instead of down to 90ns. This was done to make spinapi more intuitive and easy to use, but if you have existing code which relies on the old behavior and don't wish to change it, please contact us. pb_set_phase(), and pb_set_freq() were also modified in this way. -pb_inst_direct() function added to allow low-level creation of instructions ------------ 2005-08-18c: ------------ PulseBlaster24: -Support for PB02PC board revision added ------------ 2005-08-18b: ------------ PulseBlasterDDS: -Bug with programming PHASE_REGS_0 fixed ---------- 2005-08-18: ---------- RadioProcessor: -excite_test program updated to have shorter pulses -support for segmenting ram added (see pb_set_scan_segments()) ---------- 2005-08-10: ---------- General -Documentation updates RadioProcessor -Updated example program -New default filter configuration (and pb_setup_filters() syntax changed) ----------- 2005-07-07b: ----------- -Comments in PulseBlasterESR examples clarified. ---------- 2005-07-07: ---------- -Changelog started. All SpinCore products are now officially supported with this spinapi release.