Internal State -
The DSM board uses internal states to produce controllable outputs and is also necessary for synchronization between two boards. There are five internal states that the board can be in:
- Disarmed - in this state, the board does not do anything.
 - Armed - in this state, the DSM waits for a trigger signal which will commence the waveform output sequence
 - Triggered - this is the intermediate state between Armed and In Loop in which the trigger signal is being sensed
 - In Loop - this is the state where the DSM outputs the waveforms. The board stays in this state until the Loop Count is complete
 - Loop Done - this is the state right after "In Loop". This is where the board decides to either go to the "Disarmed" state or go to the "Armed" state
 
The DSM produces waveforms ONLY in the "In Loop" state and must go through several other states before it actually reaches that state. The different internal states is not only important because it is necessary for synchronization but is also important so that the DSM itself is able to output waveforms in a controllable fashion.
Below is a timeline of the different signals within the board and how they affect the internal states. Two states, "Disarmed" and "Loop Complete", are not shown.
        
        
Basically, the goal is to be able to reach the "In Loop" state in a repeatable and orderly way. The signals above are the specified signals that are able to change the board's state from one state to the other. It is assumed that the board is already in the "Armed" state. The falling TRIG signal changes the state from "Armed" to "Triggered" and also changes the SYNCO signal after a user specified delay. The SYNCO signal is mirrored by the SYNCI signal (see the Synchronization page for a more detailed discussion) and when SYNCI signal signal rises, the board's state changes from "Triggered" to "In Loop" and begins waveform generation.
States are changed either automatically through the firmware, by user action or through an external input such as a trigger signal. For example changing the board from “Disarmed” to “Armed” requires that the user clicks on the Arm button in the GUI application but changing from “In Loop” to "Loop Complete" is done automatically through the firmware without user or external input.
The diagram below shows how the board operates in regards to its different states. Waveform generation as stated previously is done in the “In Loop” state. "SW" stands for software and refers to a DSM GUI button or command and "FW" stands for firmware and refers to the onboard firmware actions.
        
        
        
        Disarmed
        
        When the DSM application is first turned on, it will put the board in the “Disarmed” state. At this point, the user can click on the Arm button in the DSM application to change the board to the “Armed” state. No other inputs will affect the board during this state.
        
        
        
        Armed
        
        In the “Armed” state, the board is ready to be triggered. The user can either supply a trigger signal through the TRIG SMA connector, manually press the TRIG button on the physical board or click on the Software Trigger button in the GUI. Only falling signals (from logical high to low) will cause the board to change to state “Triggered”.
        
        
        
        Triggered
        
        Once the board is in “Triggered” state, it will automatically go to the next “In Loop” state after a brief time that is specified by the user called TSYNC1. For a detailed look at the “Triggered” to “In Loop” transition, please go to the Synchronization page in the Multiple Board Operation section.
        
        
        
        In Loop
        
        When the board is producing output waveforms, it is considered to be in the “In Loop” state. Each loop is one full cycle of the waveform defined by the user using either the built-in waveform parameters or the User-Defined file. The number of loops is specified by Loop Count in the DSM application. If Loop Count is zero, then the board will be in an infinite loop and will output waveforms continuously until the user presses the Abort button in the DSM application.
NOTE: You may stop the entire sequence of events and return the board to "Disarmed" by using the Abort button at any time.
        
        
        
        Loop Done
        
        If Loop Count is finite, then after the last waveform is complete, the board will automatically enter the “Loop Done” state. As this point, the board either goes into “Disarmed” state or “Armed” state depending on if Auto Arm is enabled in the DSM application. If Auto Arm is checked, then the board will go into “Armed” state and will be ready for the next trigger signal. If it is unchecked, then the board will go into the “Disarmed” state and the user will have to manually arm the board again.