# Protocol Commands Archive
Archived
This is for documentation only. The documentation for the latest version is available here.
# Available Commands v1.17
- Available Commands v1.17
- adc_show
- averages
- averages_delay
- dac_lights
- detectors
- environmental
- environmental_array
- ir_baseline
- measurements
- measurements_delay
- message
- nonpulsed_lights
- nonpulsed_lights_brightness
- number_samples
- open_close_start
- protocols
- protocols_delay
- pulse_distance
- pulse_length
- pulsed_lights
- pulsed_lights_brightness
- pulses
- recall
- reference
- save
# adc_show
When "adc_show" is 1, the readings taken by the ADC (analog to digital converter) on the sample and hold circuit are outputted in "data_raw" instead of the normal output. No other output is recorded, and only the last set of adc readings is shown (all other readings are not outputted). By default there are 19 samples, but this can be changed using "number_samples".
Input: number (opens new window)
Values:
- 0, 1
Example:
"adc_show": <number>,
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# averages
averages
sets the number of times to average the protocol. The protocol will be repeated equal to the number of averages, and the resulting data will be averaged and outputted as a single data point. Averaging is often used to reduce noise and improve the quality of measurements.
Input: number (opens new window)
Values:
- 0 - 10000
Example:
"averages": <number>,
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# averages_delay
averages_delay
defines the delay between protocol averages in in milliseconds (ms).
Input: auto
Values:
- 0 - 9999999999
Example:
"averages_delay": <number>,
Dependencies:
- averages
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# dac_lights
When dac_lights
is set to 1, pulsed_lights_brightness
and nonpulsed_lights_brightness
settings will be interpreted by the device as 12-bit values (0 - 4095) directly controlling the LED voltage (via the DAC), instead of microEinsteins (µE * s⁻¹ * m⁻²). This is used during factory calibration.
Note: Setting brightness to high using raw DAC values could permanently disable LEDs, so be careful!
Input: number (opens new window)
Values:
- 0, 1
Example:
"dac_lights": <number>,
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# detectors
detectors
defines which detectors are being measured, and in what order. The chosen meas_light
supplies the light source to be measured. The detector measurement is recorded in "data_raw" in the data received from the MultispeQ, which is then graphed for the user. When detectors
is set to 0, no detector is read and responses will be recorded as zero.
Input: nested array
Values:
- 0 - 4
Example:
"detectors": [
[ <detector> ],
...
],
Dependencies:
- pulses
- pulse_length
- pulse_distance
- pulsed_lights
- pulsed_lights_brightness
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# environmental
environmental
defines which additional sensor(s) to measure. The environmental calls occur at the very beginning of the measurement, prior to any pulses. Some sensors require additional information, like specifying which pin to measure, brightness, etc. In addition to sensor measurements, there are also calls to flip digital pins on/off or set a pwm which could be used to control external lights or even motors. Below is the full list of parameters available in environmental
.
. Adjusting protocols in real time based on these values can be very handy for certain types of protocols.
Input: nested array
Example:
"environmental": [
[ <sensor> ],
...
],
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# environmental_array
environmental_array
defines additional sensors or functionality, just like environmental
. However, environmental_array
returns sensor data once per pulse, as defined in pulses
. This allows a string of sensor measurements to be used in a single macro. The advantage is you can calculate and return in real time things like rates of change, minima and maxima, etc. See examples for details. Note: pulsed_lights_brightness
must NOT be set to zero for any given pulse set for the sensors set in environmental_array
to measure.
Input: nested array
Example:
"environmental_array": [
[ <number> ],
...
],
Dependencies:
- pulses
- pulse_length
- pulse_distance
- pulsed_lights
- pulsed_lights_brightness
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# ir_baseline
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# measurements
number of times to repeat a measurement, which is a set of protocols
Example:
"measurements": <number>
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# measurements_delay
delay between measurements in milliseconds
Example:
"measurements_delay": <number>
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# message
message
sends text to the user between pulse sets, and waits for a response before proceeding. Set <message type> to "0" to not send a message. message
should have the same length as pulses
.
Input: nested array
Values:
alert
- message with an OK button +prompt
- message with an OK and Cancel button +confirm
- message with an OK and Cancel button and text input box
Example:
"message": [
[ <message type>, <message> ],
...
],
Dependencies:
- pulses
- pulse_length
- pulse_distance
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# nonpulsed_lights
nonpulsed_lights
defines which lights are not pulsed (always on) during a pulse set, and in what order.
Input: nested array
Values:
- 0 - 10
Example:
"nonpulsed_lights": [
[ <number> ],
...
],
Dependencies:
- pulses
- pulse_distance
- pulse_length
- nonpulsed_lights_brightness
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# nonpulsed_lights_brightness
nonpulsed_lights_brightness
sets the brightness in microEinsteins (µE * s⁻¹ * m⁻²) of the nonpulsed lights.
Input: nested array
Values:
- 0 - 15000
Example:
"nonpulsed_lights_brightness": [
[ <number> ],
...
],
Dependencies:
- pulses
- pulse_distance
- pulse_length
- nonpulsed_lights
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# number_samples
number_samples
sets the number of samples taken by the ADC (analog to digital converter) on the sample and hold circuit. The median value of these samples is then saved as a single detector value in "data_raw". The ADC is used to measure the detectors (1 - 4). This value is already set to the optimum value, and most signal noise comes from other source, but in certain cases increasing the value may yield improved signal.
Input: number (opens new window)
Values:
- 1 - 500
Example:
"number_samples": <number>,
Dependencies:
- pulses
- pulse_length
- pulse_distance
- detectors
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# open_close_start
When open_close_start
is set to 1, the protocol waits until the user fully opens the clamp and closes the clamp before proceeding. Also works if the clamp starts fully open and then closes. Open and close is detected using the Hall effect sensor on the main body and magnet on the clamp (same sensor used to determine sample thickness). If the device is not calibrated, or calibration is off, or the clamping mechanism does not fully open or close, this function will not work. Calibration details can be found by typing print_memory into the console - see thickness_a, thickness_b, thickness_c, thickness_min, and thickness_max for relevant calibration values.
Input: number (opens new window)
Values:
- 0, 1
Example:
"open_close_start": <number>,
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# protocols
protocols
sets the number of times to repeat the protocol. Unlike averages
, this outputs data every time the protocol is repeated (instead of averaging the repeats and outputting data only once).
Input: number (opens new window)
Values:
- 0 - 999999999
Example:
"protocols": <number>,
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# protocols_delay
protocols_delay
defines the delay between protocol repeats in in milliseconds (ms).
Input: auto
Values:
- 0 - 9999999999
Example:
"protocols_delay": <number>,
Dependencies:
- protocols
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# pulse_distance
pulse_distance
defines the distance, in microseconds (µs) between pulses.
Input: array (opens new window)
Values:
- 750 - 999999999999
Example:
"pulse_distance": [
<number>,
...
],
Dependencies:
- pulses
- pulse_length
- pulsed_lights
- pulsed_lights_brightness
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# pulse_length
pulse_length
defines the length, in microseconds (µs), of a pulse.
Input: nested array
Values:
- 1 - 150
Example:
"pulse_length": [
[ <number> ],
...
],
Dependencies:
- pulses
- pulse_distance
- pulsed_lights
- pulsed_lights_brightness
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# pulsed_lights
pulsed_lights
defines which lights are pulsed, and in what order. When set to 0, no lights are pulsed and no readings are recorded (see Example section here for details).
Input: nested array
Values:
- 0 - 10
Example:
"pulsed_lights": [
[ <number> ],
...
],
Dependencies:
- pulses
- pulse_distance
- pulse_length
- pulsed_lights_brightness
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# pulsed_lights_brightness
pulsed_lights_brightness
sets the brightness in microEinsteins (µE * s⁻¹ * m⁻²) of the pulsed lights.
Input: nested array
Values:
- 0 - 15000
Example:
"pulsed_lights_brightness": [
[ <number> ],
...
],
Dependencies:
- pulses
- pulse_distance
- pulse_length
- pulsed_lights
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# pulses
pulses
defines the number of pulse sets, and quantity of pulses per set.
Input: array (opens new window)
Values:
- 1 - 8000
Example:
"pulses": [
<number>,
...
],
Dependencies:
- pulse_distance
- pulse_length
- pulsed_lights
- pulsed_lights_brightness
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# recall
This command returns values from the device memory (EEPROM). This includes values saved by the user (see Examples below for details) as well as values saved during factory calibration.
Input: array (opens new window)
Example:
"recall": [
"userdef[<location>]",
...
],
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# reference
The MultispeQ is designed to be able to nearly simultaneously measure two detectors (within ~4µs), normalize and subtract the two signals from each other. This can be useful if there is a optical, electronic (interference), or LED (heating) artifact that needs to be removed. reference
specifies another detector to be measured and subtracted from detectors
.
Note: It is possible to add two additional detector circuits to the device, on the main body and clamp circuit boards. The devices come unpopulated by default. If added, these two additional detectors are available by settings detectors
or reference
to 2 (main body) or 4 (clamp). These can then also be used as reference or main detectors.
Input: nested array
Values:
- 1 - 4
Example:
"reference": [
[ <detector> ],
...
],
Dependencies:
- pulses
- pulse_length
- pulse_distance
Instruments:
MultispeQ 1
Last Updated: December 17, 2019
# save
This command saves a value to a location in the device memory (EEPROM).
Input: nested array
Example:
"save": [
[ <location, <value> ],
...
],
Instruments:
MultispeQ 1
Last Updated: December 17, 2019