Changelog for QCoDeS 0.2.0

This release contains large number of driver updates as well as significant improvements to the dataset and documentation. It also introduces a new Parameter Class (ParameterWithSetpoints) that is intended to replace ArrayParameter.

New & Improved

  • New and Improved drivers:

    • Alazar cards:

      • Alazar 9870 Don’t assign to instrument property (#1182)

      • Alazar add buffer completed callback (#1234)

      • updated/fixed ATS9870 driver (#1290)

      • Alazar remove AlazarParameter support (#1184)

      • Add firmware version to Alazar get_idn (#1308)

      • Add Alazar ATS9373 driver (#1324)

      • Add functions to read and write registers on Alazar and Trigger holdoff for 9360 (#1307)

      • Alazar add get/set parameter (#1523)

      • Alazar: refactor DLL API related things (#1471)

    • Lock-in amplifiers:

      • Fix maximum frequency for SRS860 - it is 500 kHz (#1164)

      • Standford Research SR860 lock-in amplifier driver improvements and bug fixes (#1160)

      • SR86x lockin: get values of many parameters at once (#1245)

      • SR830: Add increment/decrement sensitivity functions. (#1380)

      • driver / SR830 : add the snap XY command to read X and Y together (#1333)

      • Fix SR830’s _change_sensitivity function. (#1411)

      • Feature/dem 805/implement sampling rate float parameter (#1510)

      • Feature/dem 804/implement missing uhfli commands (#1500)

      • Driver: ziuhfli - demod{}_harmonic now return int (#1534)

    • Magnets:

      • AMI430 driver setting set point despite being outside safe region (#1162)

      • Driver/Mercury iPS with VISA (#897)

      • driver / add block_during_ramp parameter to AMI430_3D (#1228)

      • Fix / driver / mercury ips / firmware 2.6 (#1385)

      • Homogeneous coordinates for field vectors in Mercury iPS (#1398)

      • Add simultaneous blocking ramp parameters MercuryIPS (#1467)

      • Various IPS120 driver improvements (#1402)

      • Field Vectors attributes should only be floats (#1458)

    • Multi Meters:

      • Keithley 2400 protect read commands (#1171)

      • Refactor Keysight 344xxA code and small fixes (#1169)

      • Fix keithley 2600 formatting (#1301)

      • add driver for keithley6500 (#1233)

      • Driver: Keysight 344xxA - flexible measurements and modularization (#1433)

      • adds a very basic pyvisa-sim yaml for the Keithley 2600 (#1465)

      • Driver/gentec maestro (#1507)

    • Oscilloscopes:

      • Driver/infiniium additional parameters (#1203)

      • Set minimum version of firmware for Rigol DS4000 (#1206)

      • Extend RTO1000 driver (#1410)

    • Signal and Waveform generators:

      • Added support for N5183B Signal Generator (#1153, #1155)

      • Refactor awg file handling in awg5014 driver (#1066)

      • Rigol dg1062 (#1082)

      • Hotfix/awg70000 makeseqxfile (#1213)

      • AWG5208: Consider wait for trigger equivalent to running in wait for trigger (#1283)

      • fix: N52xx various fixes (#1299)

      • Use log instead of print in AWG70000A driver (#1390)

      • Driver/awg5014 upload lomentum sequence (#1381)

      • Feature/keysight 33xx pulsewidth (#1405)

      • Feature/dem 564/driver for zi hdawg8 (#1331)

      • feat: add specs for model ‘33512B’ in KeysightAgilent_33XXX (#1422)

      • Remove deprecated keysight waveform drivers drivers (#1435)

      • Feature/rigol dg1062/adding duty cycle parameter (#1456)

      • [DEM-831] Compiler warnings in ZIHDAWG8 should be logged or raised. (#1522)

    • Spectrum and Vector Network Analyzers:

      • Driver / signalhound use standard logging (#1154)

      • driver/Keysight N5245A (#807)

      • Remove unused function in N52xx driver (#1219)

      • Spectrum analyser update (#1248)

      • Signal hound a few more changes (#1318)

      • Znb read from existing channels (#1111)

    • Temperature controllers:

      • Driver/lakeshore336 and lakeshore 372 (#972)

      • Extension/lakeshore read curve file (#1421)

      • Lakeshore Model 336: make runnable, add minimal test, and fixes along the way (#1526)

    • Others:

      • Change loglevel for send/recv in IPInstrument (#1146)

      • M4i: bugfix spectrum digitizer driver (#1145)

      • Add set_parameter_bounds to IVVI.py (#1128)

      • Reorder initialization of IVVI (#1212)

      • Add new driver for Newport AG-UC8 (#1230)

      • IVVI add missing underscore in parameter name (#1246)

      • Fix decadac docstring (#1282)

      • Remove all remaining uses of get/set in instrument drivers (#1325)

      • Update CryogenicSMS driver (#1346)

      • MiniCircuits: wrong USB packet size resulting in error on Windows 7 (#1366)

      • Minicircuits USB_SPDT catch the correct error (#1376)

      • add M2j driver (#1188)

      • Feature/dem 613/update s5i driver (#1392)

      • Driver dev/switch matrix (#1373)

      • Driver / DynaCool PPMS (#1218)

      • Driver/stahl (#1390)

      • Driver/keithley s46 (#1409)

      • Added driver for Basel current preamplifier. (#1327)

      • add option for pretrigger memsize to channel readout (#1461)

      • Dev/b2200 switch matrix multiple channel connect (#1480)

      • Add boxcar average option to M4i driver (#1509)

      • fix bug in averaging of m4i blockavg (#1528)

  • Other changes:

    • Config:

      • allow config to update based on specified path (#1226)

      • Config cleanup (#1242)

      • Bugfix: fix __repr__ of Config (#1403)

    • Dataset:

      • Add some minor DataSet conveniences (#1211)

      • Make data saver accept numpy type floats/ints (#1225)

      • Dataset Context manager. Allow insertion of Data direcly as arrays (#1207)

      • Fix requirements of ordering of setpoints as dependencies (#1250)

      • Dataset support multiparameter (#1249)

      • String-valued parameters support (#1248)

      • Ensure that post actions are performed in some context managers (#1289)

      • Enhance run table query performance with indices (#1277)

      • DataSaver.add_result ‘array’ before ‘numeric’ now works (#1306)

      • Refactor / dataset __init__ method (#1323, #1332)

      • Feature: access snapshot of a DataSet, and docs (also, Station bug fix + tests) (#1322)

      • Meaningful exception when loading/creating dataset for non-existing run id (#1328)

      • Fix JSON-dumping of snapshots with numpy-typed values (and other) (#1328)

      • qcodes.dataset.* fool-proofing and minor fixes (#1334)

      • Development/dependencies dsl (#1227)

      • Add Subscribers from config (#1365)

      • Improvement / dataset metadata (#1382)

      • DataSet.get_data bugs with start/end arguments (#1386)

      • Add function to fix wrong descriptions (#1396)

      • Feature / let database show version without upgrading (#1395)

      • Fix bug where atomic and ConnectionPlus might not commit to database (+ fix DataSet.unsubscribe) (+ deprecate DataSet modify_results, modify_result, add_parameter_values) (#1389)

      • Feature / database extract runs (#1397)

      • Add get_parameter_data aka get_columns (#1400)

      • Ensure that partial run creation is completly rolled back (#1445)

      • Hashable and Immutable ParamSpec (#1367)

      • Don’t allow connection to db that is newer than the one we support (#1454)

      • Dataset: Fixed issue with legacy import (#1459)

      • Add Pandas exporter to dataset (#1423, #1508)

      • Fix issues with infered_from and add checks for infered_from and depends_on that are strings (#1453)

      • Document exporting of data from dataset (#1462)

      • Feature: give DataSet an explicit start method (#1482, #1486)

      • Rename mark_complete to mark_completed (#1495)

      • Cast array params to np array before inserting (#1497)

      • Remove redundant reshape (#1499)

      • fix: Handle ‘inf’ in _convert_numeric (#1449)

      • Dataset: Fix/do not retrive nulls (#1512)

      • Update Offline Plotting Tutorial with kwargs examples (#1516)

    • Documentation:

    • Instruments and Parameters:

      • Add option to remove channels from ChannelList (#1045)

      • Fix validation of steps (#1176)

      • Add paramterScaler with an usage example (#1069)

      • Bug: snapshot fails when instantiating InstrumentBase (#1209)

      • Find or create an instrument without worrying about existing instances (#1210)

      • GroupParameter and Group (for visa commands that set/get more than one parameter at once) (#1232, #1266)

      • Make Array validators shape optionally callable (#1312)

      • Ensure Parameter name is an identifer (#1326)

      • Don’t use deprecated add_parameters in tests (#1343)

      • Snapshot diff and method chaining (#1363)

      • Bugfix: removing a channel instance that was added with extend (#1368)

      • Discourage the use of QCoDeS functions (#1378)

      • Extension/dynamic module (#1353)

      • Fix unclarity about post_delay/inter_delay of Parameter, remove deprecated get/set delay and get/set step (#1387)

      • Use getattr to get ask/write from instruments (#1451)

      • New Parameter Class ParameterWithSetpoints (#1263)

      • val_mapping creator function to solve on/off/true/false issue (#1413, #1502)

      • Add origin to parameter warnings (#1481)

    • Legacy dataset:

      • fix read and write of NaN to hdf5, issue (#1180)

      • add flush option to hdf5 write_metadata (#1455)

    • Logging:

      • Log the instrument that a failed parameter update comes from (#1173)

      • Feat / logfile analysis (#1093)

      • logging module (#1309, #1364)

    • Plotting:

      • Feature / add label to plot_by_id (#1235)

      • Feature / rescale ticks and units in plot_by_id (#1239)

      • Smart color scale (#1253, #1255, #1259, #1294)

      • Format ticks for non-SI-unit axis in a more readable way (#1243)

      • plot_by_id: pass kwargs to subplots and plot function (#1258)

      • Fix potential divide_by_zero warning in scale selection (#1261)

      • Plot_by_id rasterise 2d plots for large datasets (#1305)

      • Feature: plot_by_id string-valued data for 2D plots (#1311)

      • Fix / plot by id cmap kwar (#1427)

    • Other:

      • Setup benchmarking and add simple dataset benchmark (#1202)

      • Set up CI with Azure Pipelines (#1292, #1293, #1300)

      • Catch generic exceptions in import of dependencies. (#1316)

      • Test with python 3.7 on travis (#1321)

      • Adapt workaround for spyder UMR to work with newest version of spyder (#1338)

      • Monitor: Support for new versions of Websocket (#1407, #1420)

      • Make error_caused_by more robust (#1532)