iCon Behavioral Control Interface
Overview
The iCon is a behavioral control interface designed to support easy or complex behavioral experiments. It has interchangeable analog and digital modules to fit the needs of any experimental paradigm. It can control most third-party behavioral chambers. The iCon connects directly to any TDT RZ processor with a DSP-M or optical quad DSP card and is controlled with TDT's Synapse software — resulting in high-bandwidth, precision control of behavioral hardware with real-time signal monitoring and full integration with neural recordings.
The iCon is available with two (iCon2) or four (iCon4) module slots. It is configurable with the following modules:
- iA4 Differential Bioamp
- iHn High Voltage Interface
- iL24 Digital Logic Interface
- iMn Multi-function Interface
- iRn IR Driver Interface
- iS9 Aversive Stimulator
- iV2 Video Capture Interface
- iXn Lux Optical Interface
See the Hardware Manual for information on hardware setup and technical specifications.
Rig Setup
When attached to a DSPM card, the iCon is automatically detected and populated in the Synapse Rig Editor. By default, each iCon is its own object in the Synapse Processing Tree.
Icon detected, Processing Tree with iCon |
By default, all iCon submodules are attached to a single iCon object in the Processing Tree. You may wish to logically split modules from their parent iCon and control them independently. For example, if you are running four separate cages with a single iCon4 that has four iH8 modules, you would want them available as individual objects in the Processing Tree for independent control.
Icon configured as four virtual iCons, Processing Tree with four virtual iCons |
Logic Input Processor
The iHn inputs, iL24 inputs, iRn inputs, and iMn and iS9 touch sensor inputs are all digital signals (logic TTL) that go through an input processor. The iMn analog inputs first go through an additional analog input processor, see iMn Input Processor below for more details.
Logic Input Options |
Logic Input Processor |
Debounce is the amount of time the input has to settle before its new state is used. This is useful for lever presses or hardware button presses which can 'bounce' on contact and trigger several rapid artificial events before making solid contact.
You can optionally save epoch timestamp events for each input. An integer code for the event type is stored with the timestamp. See Epoc Storage below for more information.
Duration Testing
The inputs can use built-in duration testing. In this example, the button has to be pressed for 600 ms to get to the 'Active' state, and another 400 ms for it to 'Pass'.
Time to Active not reached by Input.
Pass and Fail not activated.
Time to Active reached by Input, so 'Active' trigger fires.
Time to Pass
was not reached by Input, so the 'Fail' trigger fires when Input is released.
Time to Active reached by Input, so 'Active' trigger fires.
Time to Pass also
reached by Input, so 'Pass' trigger fires.
Epoc Storage
Epoc events are triggered on the 'rise' event of the input and a timestamp and value of 3 is stored in the data tank. If the input is true for more than 2 samples then the 'fall' event is also timestamped and stored, with a value of 4.
The full state of the input, including duration test results, is captured in the integer code:
Example values of the epoc event:
Connect the result of the input processor to other gizmos by enabling the Hal Output Port. You can connect any of these bits, or the integer (word) value, to the output port.
iMn Input Processor
The iMn analog inputs uses an additional input processor before the Logic Input Processor. The entire input processor for the iMn is shown below.
iMn Input Processor |
The raw and processed analog signal is available as a Hal output link to optionally view and save the signal. This is useful for debugging the analog processing.
See the iMn Synapse Manual for more information.
Logic Output Processor
Logic Output Options |
All outputs are digital signals (logic TTL) that are either turned on/off, triggered for a single sample, or strobed high for a fixed duration.
Set the Name of the output to something that makes sense for your experiment, e.g. 'Reward'.
You can optionally save epoch timestamp events for each output. A timestamp is saved when the output turns on. If the output is high for more than 2 samples then the offset is stored as well.
Triggered Pulse - output stays high for a fixed amount of time. If Duration is 0, this
is a single sample. If Duration is greater than 0, use the OutDur
API parameter to
dynamically set the duration.
The output can be controlled by a Hal Input Port link, setting the OutEnab
API parameter,
or by clicking the output on the Runtime Monitor.
iMn Output Processor
The iMn uses the signal from the logic output processor to generate an analog waveform. See the iMn Synapse Manual for more information.
Design Interface
Each iCon module's I/O is assigned through buttons on the user interface that match the physical location on the module. If you create an I/O that you want to move to a different physical location on the iCon, right-click and use the "Swap with..." or "Move to..." options. The possible targets for the swap or move will be highlighted. You can also select a target on a different module within the same iCon.
WordIn / WordOut
All inputs states (true, pass, fail, etc) are packed into an integer that is available with
the InBits
API parameter for each input. The WordIn settings let you pack the raw input
states (true/false only, directly from hardware before any processing) into an integer
and make it available as an output link that other gizmos can connect to.
The OutWord
API parameters lets you set all raw output states with a single integer.
The WordOut settings let you optionally control all iHn outputs or
iL24 outputs with a single gizmo input.
Pynapse Integration
The iCon can be directly controlled by Pynapse. The same input/output settings are available from within the Pynapse user interface. In this case the WordIn / WordOut are not available.
Runtime Interface
When Runtime Monitor is checked, a user interface appears at runtime.
The iCon Tab shows you the state of the inputs/outputs, and lets you manually trigger the inputs/outputs by clicking them.