General Notes
===================
-If you receive the error "unable to enumerate amplifiers" or "unable to load okFrontPanel.dll", try installing .NET 3.5 via Microsoft Update or Windows Update.


Release Notes
===================

v1.60
=================
- Remove Boost 1 at the Head from Apollo Bilayer SP

v1.59
=================
- Fix Vcmd range for Apollo Bilayer SP to support +/-512mV

v1.58
=================
- Initial release for Apollo Bilayer Special
    - Variable 4-pole Bessel filter
    - Adjustable Boost circuit
    - 4 Gain Settings (3-independent settings, 1 derived)

v1.57
=================
- Reduce number of slots to 2 for Apollo Bilayer Special

v1.56
=================
- Set default values for Apollo Bilayer
- Create DevID for Apollo Bilayer Special with special settings

v1.55
=================
- Remove Cslow compensations from Apollo Bilayer

v1.54
=================
- Add support for Apollo Bilayer using the Zuma board

v1.53
=================
- Change PocketPatch Forte 16 resolution from 14-bit to 16-bit

v1.52
=================
- Set PocketPatch Forte 16 low gain to 8.33Meg

v1.51
=================
- Create Forte 16 Solo based on the PocketPatch

v1.50
=================
- Fine-tune gain values for Pico

v1.49
=================
- Undo error suppression from v1.48
- Default Pico2 gain is 10Meg/100Meg/1Gig/2Gig/5Gig

v1.48
=================
- Suppress error for segment duration check.
- Default Triton gain is 10Meg/100Meg/400Meg/2Gig

v1.47
=================
- Add Vhalf protocol support for the Apollo/Mach.

v1.46
=================
- Revert Pico Cfast to be zero based.  cfast_offset = 0.
- Update Pico ranges for Cfast and Cslows.
- Undo v1.41 channel re-mapping on multi-channel amplifiers.

v1.45
=================
- Add 3-bits of Trigger Out support for Apollo/Mach.

v1.43
=================
- Add "shasta_1.cfg" support for current clamp gain configuration for
  Shasta models that support current clamp, including Forte DUO models.
  Values are tab delimited.

  Example:
	shasta_1.cfg (or any other comment)
        2
        4x	4
        10x	10

v1.42
=================
- Add "shasta_0.cfg" support for all Shasta models, including Forte.

v1.41
=================
- Add support for channel re-mapping.
    apollo_map.txt
    jet_map.txt
    shasta_map.txt
    forte16_map.txt
    triton_map.txt
    control_map.txt = For re-mapping the control of each channel

- Format is "from-channel" and "to-channel" separated by a space.

- Each channel appearing in the first column, must appear exactly
  once in the second column.

    example:
    1 2
    2 3
    3 5
    5 12
    4 8
    8 4
    12 1

- control_map.txt may not be needed.  If it's needed, simply copy
  the model based mapping file, and rename it as control_map.txt.  

v1.40
=================
- Use Pico's V2 as 3.3V source to Break Out Box, in order to allow manual
  switching of Imode and Iclamp to high logic state.

v1.39
=================
- Fix JP hardware address from v1.38.

v1.38
=================
- Create Generic Jet device that reads in all config files.
- Add JP support for Jet ONT.

v1.37
=================
- Change Rseries default value for Apollo/Mach to 15 Meg-ohms.
- Support rseries in apollo_0.comp for Apollo/Mach.  For example,
  the following apollo_0.comp file placed in the same folder as TecellaLab.exe
  will change the Rseries max value to 22 Meg-ohms.

        apollo_0.comp - first line is comment line
        rseries 22000

v1.36
=================
- Correct the number of gains for Apollo/Mach to 2.

v1.35
=================
- Add 1024 segment support for Triton.
- Update tritonplus.bit to 0x41 (2017-04-02 release).

v1.34
=================
- Add TriggerOut support for Triton.
- Update tritonplus.bit to 0x37 (2017-03-30 release),

v1.33
=================
- Add support for Triton in this main branch.

v1.30 - v1.32
=================
- Add DevID subtypes.

v1.29
=================
- Fix "Playback TLC file" feature.
  (No DLL changes - still uses v1.28 TecellaAmp DLL.)

v1.28
=================
- Uncomment dir.length logic in hardware_opal_kelly.cpp.
- Skip v1.27, so that LSB of v1.28 matches corresponding v106.08.

v1.26
=================
- For Apollo/Mach, set the current clamp (CC) gains as follows:

    10x gain with  0pF CC capacitance compensation
    10x gain with 55pF CC capacitance compensation

- Add support for gain over-ride files apollo_0.cfg (for VC) and
  apollo_1.cfg (for CC) for Apollo/Mach.

v1.25
=================
- For Apollo/Mach, set default Cfast offset to 0.
  This undoes the setting of 15pF from v1.23.

v1.24
=================
- "cfast_offset" now supported for apollo_0.comp, shasta_0.comp,
  and pico2_0.comp.  Sample file format is:

    apollo_0.comp (first line is comment line)
    cfast_offset 25

- Force re-programming of the firmware when selecting "Start" tab in
  TecellaLab.

v1.23
=================
- For Apollo/Mach, set default Cfast zero to 15.  This means that
  setting Cfast to zero will actually set the Cfast hardware to 15pF.

- For Apollo/Mach, add "cfast_offset" parameter to "apollo_0.comp" file
  to over-ride the above default setting.

    - Create a file called "apollo_0.comp".
    - The first line is comment line.  Suggest typing "apollo_0.comp".
    - As an example, on the second line, enter "cfast_offset 30"
      to change default Cfast offset from 15 to 30.

- Create Shasta Duo configuration to support both voltage clamp and
  current clamp.

v1.22
=================
- For Apollo/Mach, force Iclamp OFF when switching configurations.
  This fixes side-effect of v1.20, V1.21 where switching from CC to VC
  with Iclamp ON caused ringing on VC High Gain.

v1.21
=================
- Add delay before and after loading firmware.

v1.20
=================
- Do not reset the FPGA when changing user configuration.
- Maintain source select when changing user configuration.
- Revert back to block size of 1024 for Apollo.

v1.19
=================
- For Mach Duo2, use Low and High gains in Current Clamp mode to
  select the level of capacitance compensation.  22pF for Low setting,
  and 62pF for High setting.  Voltage follower gain is 4x for both
  settings.

v1.18
=================
- Do not re-load the FPGA when changing user configuration.

v1.17
=================
- Support for Mach for 1024 segments, without the channel 145-192 bug.

v1.16
=================
- Auto Artifact removal now works when combining Delta segments with
  Ramp segments.

v1.14
=================
- Auto artifact removal now works on downward ramps, too.

v1.12
=================
- Auto artifact removal now works on each step of ramp segments.

v1.11
=================
- For Apollo and Mach, current clamp range is increased to +/-5nA.

- Revert maximum number of stimulus segments to 64.

v1.10
=================
- For Apollo and Mach, maximum number of stimulus segments is increased
  from 64 to 1024.

- For Apollo and Mach, fix the bug where an extra segment was inserted
  between stimulus patterns when the stimulus pattern was repeated
  more than once.

v1.06
=================
- Max_stimulus_segment is increased to 256 for Apollo, Shasta, Jet, and
  Triton+, but firmware changes are necessary.

v1.05
=================
- Disables Digital Leak Compensation
- Max_stim_seg is 128 for Apollo and Triton, but requires firmware change

v1.04
=================
- Reverse polarity of iadj to match that of Vcmd

v1.03
=================
- Set iadj register to 0 when switching to Current Clamp mode

v1.02
=================
- Use model cell for offset calibration of all current clamp modes

v1.01
=================
- Fix issues with Mach Duo when switching modes from voltage clamp
  to current clamp, and vice versa

v1.00
=================
- Support Mach Duo (voltage clamp and current clamp) that uses the
  Bolt daughter board
- Some support for Jet Sonic

v0.98
=================
- Can define number of slots and channels per slot in apollo_0.comp
- Example (there should be no leading whitespace in actual file):
    apollo_0.comp   (1st line is comment line)
    slots 2         (Number of slots/banks is 2)
    chans 16        (Number of channels per slot/bank is 16)

v0.97
=================
- Fix Auto Artifact update in API
- Add current clamp mode register support for Mach/Sonic Bolt in API

v0.96
=================
- Remove error check for Invalid Ramp End Value

v0.95
=================
- Add vcmd.range file support for Pico (see v0.90 notes)
- Leak and Rseries interaction is only checked if dummy file 
  "check_leak_rseries" exists
- Build 64-bit version TecellaAmp.DLL using br64.sh
- Create new DevID for Mach

v0.93
=================
- Add support for 384-channel Mach and Rio

v0.92
=================
- Streamlined Vcmd thread control
- Removed two extra pulses at end of Auto Comp
- Streamlined debug logging

v0.90
=================
- Support Vcmd Range configuration file. Filename is vcmd.range
    1st line is comment line
    2nd line is minimum value in volts
    3rd line is maximum value in volts
    4th line is LSB value in volts
      - For 10-bit DAC, (max - min) / 1023 (or 1024)
      - For 12-bit DAC, (max - min) / 4095 (or 4096)
 
- Example format (no leading spaces in actual file):
    Comment
    min -1
    max 1
    lsb 4.884e-4
  Or
    Comment
    min -1.0
    max 1.0
    lsb 4.884e-4

- At startup, will load last settings, if dummy file "use_suspend.info"
  exists in the same folder as TecellaLab.exe

v0.89
=================
- Support generic Triton with config file and comp override file.
  Rf of 10M/100M/500M/1G.  Uses "Salinas C" as device ID.

v0.88c
=================
- Fix TecellaLab, so it no longer crashes upon exit

v0.88
=================
- Fix gain telegraph for Pico

v0.87
=================
- Change timing resolution to 10us for selected Triton models in
  TecellaAmp DLL

- This change is not yet supported in TecellaLab, so one must program
  1/10 of the desired timing for these selected Triton models

v0.86
=================
- Added support for gain over-ride files for most models
    apollo_0.cfg
    jet_0.cfg
    shasta_0.cfg

- Format is the same as for Pico and TritonDuo over-ride files
  shown in earlier releases

- Added support for compensation value over-ride files for
  most files
    apollo_0.comp
    jet_0.comp
    pico2_0.comp
    shasta_0.comp
    triton_0.comp
    triton_duo_0.comp

  Format is:

    triton_0.comp (comment line)
    cfast 200
    cslow0 100
    cslow1 100
    cslow2 100
    cslow3 100
    jp_min -254
    jp_max 256
    leak 2
    rseries 10000

v0.85
=================
- Added support for Triton gain over-ride file (triton_0.cfg)
- Format is the same as for Pico and TritonPlus shown below.

v0.84
=================
- Boost settings are now linked to Rf Gain settings
- Boost is enabled by default on Pico2 for 3.3Gig and 10Gig settings
- Default settings can be over-ridden via the boost configuration file
- Format for Pico2 boost over-ride file (pico2_0.boost)
    - First line is comment line
    - Second line is number of Rf gains (default 5)
    - Subsequent lines (one per gain) are SPACE delimited with 3 fields
         Enable (0 or 1), Frequency (0 to 255), Gain (0 to 255)
         Example:
            pico2_0.boost (or any other comment)
            5
            0 128 128
            0 128 128
            0 128 128
            1 22 52
            1 70 178
- Format for Pico2 or Triton Duo gain over-ride file (pico2_0.cfg or triton_duo_0.cfg)
    - First line is comment line
    - Second line is number of Rf gains (5 for Pico, 4 for Triton Duo)
    - Subsequent lines (one per gain) are TAB delimited with 2 fields
         Display string, Rf value in exponent form
         Example:
            pico2_0.cfg (or any other comment)
            5
            10Meg	10e6
            100Meg	100e6
            1Gig	1e9
            3.3Gig	3.3e9
            10Gig	10e9
- Only check Cfast in AutoCal setup tab by default

v0.83
-----------
- Fix Pico AutoCal problem on Windows XP
- For Pico, offset the displayed Cfast value, so approximately 0pF is
  displayed after compensating source=head with nothing attached
- Speed up AutoCal

v0.82
-----------
- Fix sources for Pico2

v0.81
-----------
- Config file support added to Pico2
- Bug fixes for Pico2

v0.80
-----------
- TritonDuo: add I=0 and Iclamp offset calibration
- TritonDuo: full Vclamp/Iclamp support completed

v0.79
-----------
- TritonDuo: config file support
- TritonDuo: combine I=0 and Iclamp into single mode.
  Use IclampOn bit to switch between the two modes.

v0.78
-----------
- Add Iclamp On/Off support for custom amplifiers

v0.77
-----------
- Add dual-register source select support to enable disconnecting
  the head, and allow Imodel to be decoupled from Iclamp circuit.

v0.76
-----------
- Add support for multiple Iclamp gain values for Tritons that
  support Iclamp.  Available gain values are 10x, 30x, 120x,
  and 250x.

v0.75
-----------
- For Picos and Tritons that support Iclamp (current clamp)
  mode(s).  Allow connecting/disconnecting of Iclamp circuit
  in Iclamp modes to achieve true I=0 in any of the Iclamp
  modes.  In the future, I=0 mode will be phased out, since
  any Iclamp mode can be used in I=0 mode.

v0.74
-----------
- Support for both Vclamp and Iclamp on new Triton amplifiers
- Enabling 100% Rs compensation on Pico is more reliable

v0.73
-----------
- Pico's I=0 & Iclamp gains are now 1x, 10x, 40x, 100x, 250x
- Preliminary support for TEVC Pico

v0.72
-----------
- Support new higher bandwidth Triton+
- Fix Pico's JP range to be +/-255mV (was +/-127mV)
- Eliminate register write delays on multi-channel amplifiers

v0.69
-----------
- Enable boost on Pico 2

v0.68
-----------
- Support Pico 2 gains without having to auto-calibrate scale

v0.64
-----------
- Fix Iclamp and I=0 modes for Triton
- Sync version numbers of TecellaLab and TecellaAmp SDK/API

v0.51
-----------
- Use C:\TecellaLabData for captures and protocols folders
- AutoScale down to Rf of 30Meg

v0.50
-----------
- AutoScale all Rf gains

v0.49
-----------
- Fixes Pico Iclamp offsets
- Can choose V1 or V2 GUI

v0.47
-----------
- Fixes crash on New Protocol

v0.44
-----------
- Fixes crash on save protocol

v0.43
-----------
- Fixes Pico Rs Comp bug

v0.42b
-----------
- Pre-release for 0.43
- Fixes performance issues

v0.42
-----------
- Fixes bug for TecellaLab version 1 save tlc file if no "captures" folder present
- Save file location cannot be changed in version 1
- Save file name is yyyyMMdd_hhmmss_zzz.tlc in version 1

v0.41
-----------
- Adds support for additional amplifiers.

v0.40
-----------
- Adds support for additional amplifiers.
- Keyboard shortcuts added for graph navigation.


v0.39
-----------
- Adds support for additional amplifiers.


v0.38
-----------
- Adds support for additional amplifiers.
- Adds level-histogram feature.
- Fixes units for ABF conversion.


v0.37
-----------
- Holding level for Iclamp can be set now.
- Stimulus editor no longer does weird things after it is closed.


v0.36
-----------
- Fixes buffer overflows for Jet and Richmond when using Zap.
- Fixed Advance step scan button. 
- Allows larger ranges for the DSP filters.


v0.35
-----------
- Step Scan - beta version added. 


v0.34
-----------
- Adds Iclamp enable/disable per channel if it's supported by the amplifier.
- Reorganize channels settings so auto compensations are always shown.


v0.33
-----------
- Fixes the "Use Stimulus" control.


v0.32
-----------
- Adds support for current clamp modes.
- Adds controls to synchronize acquisition with a trigger in.
- Implements simple file playback.


v0.31
-----------
- Enables a new offset adjust mode that simultaneously adjusts the stimulus (JP) and the response.


v0.30
-----------
- Fixes crash in TLC conversion from v0.29.


v0.29
-----------
- Fixes support for Turbo mode.
- Delta segments types have been fixed, but are handled differently than before.
	- The resulting stimulus format is not compatible with the old stimulus format.
- Program options are now saved in the user's directory and transfer from version to version.
- Fixed small things about stimulus programming and tlc conversion.
- Changed flow for how to use TecellaLab.
- Added unit prefixes to lots of places.


v0.28
-----------
- Added slew rate control on a per stimulus segment basis.
- Added digital output controls on a per stimulus segment basis.


v0.27
-----------
- Add slew rate control and labels.


v0.26
-----------
- In the middle of a lot of changes.
- TLC conversion added.
- Amplifier pairing doesn't work in this version.
- TLC viewing functionality temporarily disabled removed.


v0.25
-----------
- Added basic TLC viewing functionality.


v0.24
-----------
- Added frequency boost filter.
- Added auto zero and auto offset adjust functionality.
- Filter performance improvements.


v0.23
-----------
- TLC files record correctly again.
- Improvements made to auto scale.
- Uses TecellaTLC v0.3, which is now open source.


v0.22 (Deprecated)
-----------
- WARNING: Records corrupt TLC files.
- Holding voltage range was hard coded to +-255mV, now it changes depending on the actual range of the amplifier.


v0.21 (Deprecated)
-----------
- WARNING: Records corrupt TLC files.
- Supports new amplifier configurations.
- Fixes some spurious device contention errors, however others remain.


v0.20
-----------
- First release to use the new Opal Kelly drivers v3.1.0.
 Zap duration can be controlled via a toggle button.
- Added low pass filtering functionality.
- Auto calibration and auto scale are run automatically at startup.


v0.19
-----------
- Adds RMS statistics.
- Delay between repeats takes effect immediately, instead of at next repeat.
- Digital leak feature added.

v0.18
-----------
- Implements a delay between repeats.
- Prevents/handles conflicting amplifier commands more gracefully.

v0.17
-----------
- Fixes a bug where using multiple amplifiers would crash when running Zap.

v0.16
-----------
This version introduces a new GUI with dockable windows.
New features include:
	- Selectable amplifier configurations, if supported by the amplifier.
	- Automatically combines multiple connected amplifiers so it looks like one.
	- Automatic compensations now work during repeat acquisition.
	- Improved capacitance compensation algorithm.
	- Auto calibrate/scale/artifact can now be toggled on/off.
	- Added labels to the graph so it is easier to identify the channels.
	- Stimulus can be made relative to the holding voltage.
	- Artifact removal now displays it's equivalent capacitance.
	- The Statistics window updates periodically instead of after every run.
	- Improved graphing CPU usage.
