VSG60 SCPI Programming Manual
VSG60 SCPI Programming Manual
User Guide
VSG60 SCPI Programming Manual
Published 11/3/2023
©2023, Signal Hound
1502 SE Commerce Ave, Suite 101
Battle Ground, WA
Phone 360-313-7997
Contents
1 Version Notes ........................................................................................................................................... 4
2 Introduction / About SCPI ....................................................................................................................... 4
3 SCPI command basics............................................................................................................................. 4
For the purposes of Signal Hound and the VSG60 software, a user can send SCPI commands to
control the VSG60 software in an automatic fashion. SCPI commands are sent to instruments
over many interfaces, commonly GPIB, VXI, USB, Ethernet, etc. The VSG60 software accepts
commands over a network socket. The VSG60 software will accept a single network connection
in which it can receive SCPI commands and send responses.
This document will cover the basics of SCPI commands, how to get started programming the
VSG60 software, and will cover the full SCPI command set implemented by the VSG60 software.
3.1 Commands
A SCPI command is comprised of a series of keywords separated by colons. A command may be
followed by a ‘?’ to represent a query, a series of parameters separated by spaces, or both.
Commands are case insensitive. Each keyword in a command can have a short and long form.
Both can be used interchangeably.
:SENSe:FREQuency:CENTer is a command with three keywords. Each keyword has a short
and long form. The short form is denoted by the uppercase characters and the long form is the
full keyword including the upper and lower-case characters. For example, FREQ is the short form
of FREQUENCY. When constructing a command, the short and long form can be interchanged.
For example, you could construct the command as such, :SENS:FREQUENCY:CENT where
SENSE and CENTER are sent as short form and FREQUENCY as longform.
Some commands are options and are denoted as such by the ‘[]’ characters.
:SENS:FREQ:CENT 1GHZ\n
Commands will be processed once a newline is reached. Additionally, a newline will reset the
current keyword path.
This is an example of sending two commands at once. Additionally, when sending multiple
commands, you don’t need to repeat all keywords leading up to the final keyword for commands
after the first.
Here SPAN retains the :SENS:FREQ: keywords from the previous command. To prevent this from
happening use the colon character leading the second command. For example
:SENS:FREQ:CENT 1GHz; :SPAN 10MHz\n
This is an invalid series of commands, since span is prefixed with a colon command which reset
the previous keywords.
3.3 Parameters
There are several types of parameters that can be sent in commands.
Boolean ON | OFF | 0 | 1
Keyword Character specific strings for a given command. These keywords can also
<bool> have short and long form.
Numeric Numeric parameters take either the form of integer or decimal values.
<integer> Examples include
<double> 1
1.23
9
3.14
Frequency These are numeric parameters with a frequency suffix. Possible frequency
<freq> suffixes include
HZ | KHZ | MHZ | GHZ
The suffixes are case insensitive. If a suffix is not present, Hz is the default
unit. Examples include
1kHz
20MHz
12GHz
Any function that returns a frequency will return the frequency in Hz with no
suffix present.
Amplitude These are numeric parameters with an amplitude suffix. Possible amplitude
<amplitude> suffixes include
DBM | DBMV | DBUV | MV
The suffixes are case insensitive. A suffix must be present unless indicated
otherwise. Examples include
-20DBM
60dbuv
If a function returns an amplitude, it will return the amplitude in the current
software units without a suffix.
“1000000;-20\n”
The command sent performs a peak search and queries the X and Y positions of the marker. The
return is the X and Y positions separated by a semicolon and terminated with a newline.
:SYSTem:ERRor?
<> Angle brackets around a parameter indicate a *RCL <int>
type and angle brackets should not be
included in the user command. <int> is the type of parameter and an
example of using this command would
be
*RCL 1
4 Getting Started
See the SCPI examples found in the SDK download on any of the Signal Hound product download
pages. The examples use the C programming language and a common VISA library
implementation.
Instrument control is performed by connecting to the VSG60 software on TCP/IP port 5024. On
this port, a user can send and receive raw SCPI commands. It is not necessary to use a I/O library
like VISA to communicate with the VSG60 software but it can simplify several operations. It is
possible to communicate directly over the socket with socket programming. The computer that is
communicating with the VSG60 software does not have to be the same computer running the
VSG60 software and does not have to be a Windows platform.
Only one connection to the VSG60 software can be active at a time. The connection can be
terminated by either closing the socket connection, either through the socket library you are using,
the viClose function if you are using a VISA library, or by closing your application. The VSG60 will
immediately begin waiting for another socket connection when the previous one is ended.
Functionality Implemented
AM Yes
FM Yes
Multitone Yes
Step Sweep Yes
Ramp Sweep Yes
AWGN Yes
Digital Mod Yes
OFDM No
Bluetooth LE No
IEEE 802.11 a/n/ac/ax Yes
LTE No
Arb Yes
Streaming Yes
6 Examples
SCPI examples are found in the SDK which can be downloaded from the Signal Hound website.
7 Functions
7.1 Common Commands
The software supports the following common commands.
Command *IDN?
*RCL <int>
*SAV <int>
*RST
*TRG
*OPC
*ESR?
Description *IDN?, Query the serial number and name of the device.
*RCL, Load preset [1-9].
*SAV, Save preset [1-9].
*RST, Same as PRESet, see below.
*TRG, Triggers the device.
*OPC, Tells the instrument that after all the commands are executed and finished to
set the ESR bit 0 (OPC bit) to 1. This command in combination with the *ESR?
command can be used for synchronization through polling. See the C++ SCPI
examples in the SDK for an example of polling using these commands.
*ESR?, Returns the Event Status Register (ESR). Only bit 0 is used at this time. Bit
0 represents Operation Complete (OPC). Returns 0 if *OPC has been seen but there
are still commands to be executed and finished. Sends a 1 when all commands have
been finished and executed. This command in combination with the *ESR?
command can be used for synchronization through polling. See the C++ SCPI
examples in the SDK for an example of polling using these commands.
Examples *IDN?
*RCL 1
*SAV 1
*TRG
*RST
*OPC
*ESR?
Software Status Bar
Controls File Menu -> Presets -> Load
File Menu -> Presets -> Save
Preset Key
Trigger Key
Couplings None
Preset N/A
Notes
7.2 Display
Command :DISPlay:HIDE <bool>
:DISPlay:HIDE?
Description HIDE, When set to true, hides the VSG60 application. The application will be
hidden in the taskbar but will continue to be visible in the task manager. The SCPI
lockout dialog will continue to be visible but can be disabled in the preferences
menu, prior to setting the application hidden.
HIDE?, Returns true when the application is not visible.
Examples DISP:HIDE 1
DISP:HIDE?
Software
Controls
Couplings None
Preset
Notes
Command :SYSTem:COMMunicate:GTLocal
:SYSTem:CLOSe
:SYSTem:PRESet
:SYSTem:PRESet?
:SYSTem:PRESet[:USER]:SAVE <filename>
:SYSTem:PRESet[:USER]:LOAD <filename>
:SYSTem:VERsion?
Description COMMunicate:GTLocal, Puts the software in local mode.
CLOSe, Disconnect any active device and closes the software. There is not a way to
reopen the software using SCPI commands. This will also terminate the socket
connection.
PRESet, Presets the active device. This will power cycled the active device and
return the software to the initial power on state. This process can take between 6-20
seconds depending on the device type.
PRESet?, Presets the active device. This will close and reopen the active device.
This process can take between 6-20 seconds depending on the device type. Returns
0 or 1 depending on success. (1 for success)
PRESet[:USER]:SAVE, Save a preset with the given file name. The file name
should have extension “.ini”.
PRESet[:USER]:LOAD, Load the preset given by the file name. If the preset does
not exist, nothing occurs. The file name should have extension “.ini”.
VERsion?, Returns the software version number.
Examples SYST:CLOS
SYST:PRESET?
SYST:PRESET:USER:SAVE
“C:/Users/Me/Documents/SignalHound/customPreset2.ini”
SYST:PRESET:USER:LOAD
”C:/Users/Me/Documents/SignalHound/customPreset2.ini”
SYSTEM:VERSION?
SYST:COMM:GTL
Software Status Bar
Controls File -> Exit
Preset
Presets -> Save User Preset
Presets -> Load User Preset
Help -> About
Remote Mode Dialog -> Return to Local
Couplings None
Preset N/A
Notes
Connecting Signal Hound devices can take between 3-20 seconds depending on the type of
device and the state of the device prior to interfacing it. If the VISA timeout is shorter than the
time it takes to connect the device in the software, you will need to loop on timeout until you
receive the connect status return.
Command :SYSTem:DEVice:ACTive?
:SYSTem:DEVice:COUNt?
:SYSTem:DEVice:LIST?
:SYSTem:DEVice:CONnect? <int>
:SYSTem:DEVice:DISConnect?
Description ACTive?, Returns whether or not a device is currently connected and active in the
software. Look at the *IDN? function to request information about the device.
COUNt?, Returns the number of devices connected to the PC. No device may be
active when this function is called. IE, you must call DISConnect? before calling
this function.
LIST?, Returns all serial numbers available. The serial numbers are returned as
ascii integers and are comma separated. To determine how many serial numbers
are present, use the COUNt? function.
CONnect?, Connect a device. You need to provide the serial number of the device
to connect. Returns 0 or 1 depending on if the device successfully opened.
DISConnect?, Disconnects the active device. Returns 1 when finished.
Examples SYST:DEV:ACT?
SYST:DEV:COUNT?
SYSTEM:DEVICE:LIST?
SYSTEM:DEVICE:CONNECT? 30700189
SYSTEM:DEV:CONNECT?
SYST:DEV:DISC?
Software File Menu -> File -> Connect
Controls File Menu -> File -> Disconnect
Couplings Only one device can be active at a time.
Preset N/A
Notes
7.3.2 Errors
The VSG60 software maintains a list of system errors available to the user. Errors are stored with
a unique ID, name, and description. The types of issues represented in the error list are settings
conflicts, SCPI issues such as invalid parameter types or instructions, file I/O errors, etc.
It is recommended to frequently check for errors when utilizing SCPI in the software. Check the
SCPI examples to see how to quickly poll for any present errors.
“ID,description;error information”
ID is a unique integer for the error. The description is an ascii text description for the error, and
error information is any additional context information for the error generated. An example error
message is below.
This error indicates the SCPI parser was expecting a frequency parameter and was either unable
to find it or was unable to parse it as a frequency.
Once the error queue is empty, the software will return the ‘no error’ error when the next system
error is requested. ‘No error’ has an ID of 0.
Command :SYSTem:ERRor:COUNt?
:SYSTem:ERRor[:NEXT]?
:SYSTem:ERRor:CLEAr
Description COUNt?, Returns the number of errors in the error queue.
NEXT?, Returns the next error in the queue, and removing it from the queue.
CLEAR, Remove all errors from the queue, returns nothing.
Examples SYST:ERR:COUN?
SYSTEM:ERROR:NEXT?
SYST:ERR?
SYST:ERR:CLEAR
Software Utilities -> Show Error Log
Controls Error Info -> Clear Button
Couplings None
Preset N/A
Notes None
7.4 Reference
These commands control the reference oscillator settings the of the spectrum analyzer.
7.5 Output
Command :OUTPut[:STATe] ON|OFF|0|1
:OUTPut[:STATe]?
:OUTPut:MODulation[:STATe] ON|OFF|0|1
:OUTPut:MODulation[:STATe]?
Description
Examples :OUTPUT 1
:OUTPUT:MOD ON
Software RF On/Off
Controls Mod On/Off
Couplings None
Preset On program startup, both RF and Mod off
Notes None
7.6 Frequency
Command [:SOURce]:FREQuency <freq>
[:SOURce]:FREQuency?
[:SOURce]:FREQuency:STEP[:INCRement] <freq>
[:SOURce]:FREQuency:STEP[:INCRement]?
Description
Examples FREQ 2.45GHz
FREQ?
FREQ:STEP 20MHz
FREQ:STEP?
Software Freq
Controls Step
Couplings None
Preset
Notes None
7.7 Power
Command [:SOURce]:POWer <double>
[:SOURce]:POWer?
[:SOURce]:POWer:STEP[:INCRement] <double>
[:SOURce]:POWer:STEP[:INCRement]?
Description
Examples POW -20
POW?
POW:STEP 1
POW:STEP?
Software Level (dBm)
Controls Step (dB)
Couplings None
Preset
Notes None
7.8 Impairments
Command :OUTPut:IMPairments:LEVel:OFFSet <double>
:OUTPut:IMPairments:LEVel:OFFSet?
:OUTPut:IMPairments:FLATness[:STATe] <bool>
:OUTPut:IMPairments:FLATness[:STATe]?
:OUTPut:IMPairments:FREQuency:OFFSet <freq>
:OUTPut:IMPairments:FREQuency:OFFSet?
:OUTPut:IMPairments:FREQuency:INVert <bool>
:OUTPut:IMPairments:FREQuency:INVert?
:OUTPut:IMPairments:LSPur[:STATe] <bool>
:OUTPut:IMPairments:LSPur[:STATe]?
:OUTPut:IMPairments:IOFFset <int>
:OUTPut:IMPairments:IOFFset?
:OUTPut:IMPairments:QOFFset <int>
:OUTPut:IMPairments:QOFFset?
:OUTPut:IMPairments:IMBAlance:AMPL <double>
:OUTPut:IMPairments:IMBAlance:AMPL?
:OUTPut:IMPairments:IMBAlance:PHASe <double>
:OUTPut:IMPairments:IMBAlance:PHASe?
:OUTPut:IMPairments:SRATe:MULTiplier <double>
:OUTPut:IMPairments:SRATe:MULTiplier?
:OUTPut:IMPairments:AWGN[:STATe] <bool>
:OUTPut:IMPairments:AQGN[:STATe]?
:OUTPut:IMPairments:AWGN:SNR <double>
:OUTPut:IMPairments:AWGN:SNR?
:OUTPut:IMPairments:AWGN:IBWidth <freq>
:OUTPut:IMPairments:AWGN:IBWidth?
:OUTPut:IMPairments:CHANnel[:STATe] <bool>
:OUTPut:IMPairments:CHANnel[:STATe]?
:OUTPut:IMPairments:CHANnel:LENgth?
:OUTPut:IMPairments:CHANnel:DATA <I1>, <Q1>, <I2>, <Q2>, …,
<In>, <Qn>
:OUTPut:IMPairments:CHANnel:DATA?
:OUTPut:IMPairments:PNOIse[:STATe] <bool>
:OUTPut:IMPairments:PNOIse[:STATe]?
Description CHANnel:LENgth?, Returns the number of complex taps in the channel
impairment filter.
CHANnel:DATA, Set the channel impairment taps. The I/Q values should be
provided as alternating I/Q complex values, each I and Q value sent as a separate
SCPI parameter, as ascii. A comma should separate all I/Q values. A comma should
not be placed after the last Q value. An error will be thrown if an odd number of
parameters is provided. See example below and programming example for usage.
CHANnel:DATA?, Returns the channel impairment taps as a list of real imaginary
values, each value separated by a comma. For example, a 3 tap filter will be
returned as 6 comma separated ascii values, real imaginary alternating.
Examples OUTP:IMP:LEV:OFFS 10
OUTP:IMP:FREQ:OFFS 1MHz
OUTP:IMP:FREQ:INV ON
OUTP:IMP:LSP ON
OUTP:IMP:IOFF 10
OUTP:IMP:QOFF -22
OUTP:IMP:IMBA:AMPL 2
OUTP:IMP:IMBA:PHASE 3.14159
OUTP:IMP:SRAT:MULT 1
OUTP:IMP:AWGN ON
OUTP:IMP:AWGN:SNR 30
OUTP:IMP:AWGN:IBW 10MHz
OUTP:IMP:CHAN 1
OUTP:IMP:CHAN:LEN?
OUTP:IMP:CHAN:DATA?
OUTP:IMP:PNOISE:STATE ON
Software Impairment Controls -> Level Offset
Controls Impairment Controls -> User Flatness
Impairment Controls -> Frequency Offset
Impairment Controls -> Low Spur Mode
Impairment Controls -> I Offset
Impairment Controls -> Q Offset
Impairment Controls -> I/Q Phase Imbalance (deg)
Impairment Controls -> I/Q Ampl Imbalance (dB)
Impairment Controls ->Sample Rate Error (ppm)
Impairment Controls -> AWGN Enabled
Impairment Controls -> AWGN SNR (dB)
Impairment Controls -> AWGN Bandwidth
Impairment Controls -> Channel Filter Enabled
Impairment Controls -> Phase Noise Enabled
Couplings None
Preset
Notes None
7.12 Multitone
Command [:SOURce]:MTONe[:STATe] <bool>
[:SOURce]:MTONe[:STATe]?
[:SOURce]:MTONe:PHASe FIXed|RANDom|PARAbolic
[:SOURce]:MTONe:PHASe?
[:SOURce]:MTONe:PHASe:SEED <int>
[:SOURce]:MTONe:PHASe:SEED?
[:SOURce]:MTONe:NTONes <int>
[:SOURce]:MTONe:NTONes?
[:SOURce]:MTONe:FSPacing <freq>
[:SOURce]:MTONe:FSPacing?
[:SOURce]:MTONe:FNOTch <freq>
[:SOURce]:MTONe:FNOTch?
Description
Examples MTON ON
MTON:PHAS PARA
MTON:PHAS:SEED 1234
MTON:NTON 1001
MTON:FSP 10kHz
MTON:FNOT 1MHz
Software Multitone Controls -> Enabled
Controls Multitone Controls -> Tone Phase
Multitone Controls -> Seed
Multitone Controls -> Tone Count
Multitone Controls -> Freq Spacing
Multitone Controls -> Notch Width
Couplings None
Preset
Notes None
7.15 AWGN
Command [:SOURce]:RADio:AWGN[:STATe] <bool>
[:SOURce]:RADio:AWGN[:STATe]?
[:SOURce]:RADio:AWGN:BWIDth <freq>
[:SOURce]:RADio:AWGN:BWIDth?
[:SOURce]:RADio:AWGN:LENgth <time>
[:SOURce]:RADio:AWGN:LENgth?
[:SOURce]:RADio:AWGN:SEED <int>
[:SOURce]:RADio:AWGN:SEED?
Description
Examples RAD:AWGN ON
RAD:AWGN:BWID 20M
RAD:AWGN:LEN 100ms
RAD:AWGN:SEED 23
Software AWGN Controls -> Enabled
Controls AWGN Controls -> Bandwidth
AWGN Controls -> Length
AWGN Controls -> Seed
Couplings None
Preset
Notes None
7.17 802.11a
Command [:SOURce]:RADio:WLAN:NONHT:[:STATe] <bool>
[:SOURce]:RADio:WLAN:NONHT:[:STATe]>
[:SOURce]:RADio:WLAN:NONHT:TRIGger:TYPE SINGle|CONTinuous
[:SOURce]:RADio:WLAN:NONHT:TRIGger:TYPE?
[:SOURce]:RADio:WLAN:NONHT:IDLE <time>
[:SOURce]:RADio:WLAN:NONHT:IDLE?
[:SOURce]:RADio:WLAN:NONHT:MCS <int>
[:SOURce]:RADio:WLAN:NONHT:MCS?
[:SOURce]:RADio:WLAN:NONHT:SRATe <freq>
[:SOURce]:RADio:WLAN:NONHT:SRATe?
[:SOURce]:RADio:WLAN:NONHT:INTERleave[:STATe] <bool>
[:SOURce]:RADio:WLAN:NONHT:INTERleave[:STATe]?
[:SOURce]:RADio:WLAN:NONHT:SCRAMble[:STATe] <bool>
[:SOURce]:RADio:WLAN:NONHT:SCRAMble[:STATe]?
[:SOURce]:RADio:WLAN:NONHT:SCRAMble:INIT <int>
[:SOURce]:RADio:WLAN:NONHT:SCRAMble:INIT?
[:SOURce]:RADio:WLAN:NONHT:WINdow:LENgth <int>
[:SOURce]:RADio:WLAN:NONHT:WINdow:LENgth?
[:SOURce]:RADio:WLAN:NONHT:DATA PN7|PN9|PN15|PN21|CUSTom
[:SOURce]:RADio:WLAN:NONHT:DATA?
[:SOURce]:RADio:WLAN:NONHT:DATA:SEED <int>
[:SOURce]:RADio:WLAN:NONHT:DATA:SEED?
[:SOURce]:RADio:WLAN:NONHT:DATA:LENgth <int>
[:SOURce]:RADio:WLAN:NONHT:DATA:LENgth?
[:SOURce]:RADio:WLAN:NONHT:SEQuence <string>
[:SOURce]:RADio:WLAN:NONHT:SEQuence?
Description MCS values should be between [0,7]
Only sample rate can be specified, subcarrier spacing is controlled through the UI
only. These settings are linked and can be controlled through just the sample rate
control.
Data length controls the number of bytes to use from the source. If the source is
shorter than the length, the data is repeated until the length is met.
The string for the data sequence must contain only ascii ‘0’s and ‘1’s. If any other
character is present, including whitespace, a system error will be thrown and the
custom bit sequence will not be set.
Examples RAD:WLAN:NONHT:TRIG:TYPE CONT
RAD:WLAN:NONHT:IDLE 10ms
RAD:WLAN:NONHT:MCS 7
RAD:WLAN:NONHT:SRATE 20MHz
RAD:WLAN:NONHT:INTER true
RAD:WLAN:NONHT:SCRAM 93
RAD:WLAN:NONHT:SCRAM:INIT 13
RAD:WLAN:NONHT:WIN:LEN 4
RAD:WLAN:NONHT:DATA PN15
RAD:WLAN:NONHT:SEED 1
RAD:WLAN:NONHT:DATA:LEN 1500
RAD:WLAN:NONHT:DATA:SEQ 0011001101010101
Software See IEEE 802.11a controls
Controls
Couplings None
Preset
Notes None
7.18 802.11n
Command [:SOURce]:RADio:WLAN:HT:[:STATe] <bool>
[:SOURce]:RADio:WLAN:HT:[:STATe]>
[:SOURce]:RADio:WLAN:HT:TRIGger:TYPE SINGle|CONTinuous
[:SOURce]:RADio:WLAN:HT:TRIGger:TYPE?
[:SOURce]:RADio:WLAN:HT:IDLE <time>
[:SOURce]:RADio:WLAN:HT:IDLE?
[:SOURce]:RADio:WLAN:HT:MCS <int>
[:SOURce]:RADio:WLAN:HT:MCS?
[:SOURce]:RADio:WLAN:HT:GI SHORt|LONG
[:SOURce]:RADio:WLAN:HT:GI?
[:SOURce]:RADio:WLAN:HT:SRATe <freq>
[:SOURce]:RADio:WLAN:HT:SRATe?
[:SOURce]:RADio:WLAN:HT:INTERleave[:STATe] <bool>
[:SOURce]:RADio:WLAN:HT:INTERleave[:STATe]?
[:SOURce]:RADio:WLAN:HT:SCRAMble[:STATe] <bool>
[:SOURce]:RADio:WLAN:HT:SCRAMble[:STATe]?
[:SOURce]:RADio:WLAN:HT:SCRAMble:INIT <int>
[:SOURce]:RADio:WLAN:HT:SCRAMble:INIT?
[:SOURce]:RADio:WLAN:HT:WINdow:LENgth <int>
[:SOURce]:RADio:WLAN:HT:WINdow:LENgth?
[:SOURce]:RADio:WLAN:HT:DATA PN7|PN9|PN15|PN21|CUSTom
[:SOURce]:RADio:WLAN:HT:DATA?
[:SOURce]:RADio:WLAN:HT:DATA:SEED <int>
[:SOURce]:RADio:WLAN:HT:DATA:SEED?
[:SOURce]:RADio:WLAN:HT:DATA:LENgth <int>
[:SOURce]:RADio:WLAN:HT:DATA:LENgth?
[:SOURce]:RADio:WLAN:HT:SEQuence <string>
[:SOURce]:RADio:WLAN:HT:SEQuence?
Description MCS values should be between [0,7]
Only sample rate can be specified, subcarrier spacing is controlled through the UI
only. These settings are linked and can be controlled through just the sample rate
control.
Data length controls the number of bytes to use from the source. If the source is
shorter than the length, the data is repeated until the length is met.
The string for the data sequence must contain only ascii ‘0’s and ‘1’s. If any other
character is present, including whitespace, a system error will be thrown and the
custom bit sequence will not be set.
Examples RAD:WLAN:HT:TRIG:TYPE CONT
RAD:WLAN:HT:IDLE 10ms
RAD:WLAN:HT:MCS 7
RAD:WLAN:HT:GI LONG
RAD:WLAN:HT:SRATE 20MHz
RAD:WLAN:HT:INTER true
RAD:WLAN:HT:SCRAM 93
RAD:WLAN:HT:SCRAM:INIT 13
RAD:WLAN:HT:WIN:LEN 4
RAD:WLAN:HT:DATA PN15
RAD:WLAN:HT:SEED 1
RAD:WLAN:HT:DATA:LEN 1500
RAD:WLAN:HT:DATA:SEQ 0011001101010101
Software See IEEE 802.11n controls
Controls
Couplings None
Preset
Notes None
7.19 802.11ac
Command [:SOURce]:RADio:WLAN:VHT:[:STATe] <bool>
[:SOURce]:RADio:WLAN:VHT:[:STATe]>
[:SOURce]:RADio:WLAN:VHT:TRIGger:TYPE SINGle|CONTinuous
[:SOURce]:RADio:WLAN:VHT:TRIGger:TYPE?
[:SOURce]:RADio:WLAN:VHT:IDLE <time>
[:SOURce]:RADio:WLAN:VHT:IDLE?
[:SOURce]:RADio:WLAN:VHT:MCS <int>
[:SOURce]:RADio:WLAN:VHT:MCS?
[:SOURce]:RADio:WLAN:VHT:GI SHORt|LONG
[:SOURce]:RADio:WLAN:VHT:GI?
[:SOURce]:RADio:WLAN:VHT:SRATe <freq>
[:SOURce]:RADio:WLAN:VHT:SRATe?
[:SOURce]:RADio:WLAN:VHT:INTERleave[:STATe] <bool>
[:SOURce]:RADio:WLAN:VHT:INTERleave[:STATe]?
[:SOURce]:RADio:WLAN:VHT:SCRAMble[:STATe] <bool>
[:SOURce]:RADio:WLAN:VHT:SCRAMble[:STATe]?
[:SOURce]:RADio:WLAN:VHT:SCRAMble:INIT <int>
[:SOURce]:RADio:WLAN:VHT:SCRAMble:INIT?
[:SOURce]:RADio:WLAN:VHT:GID <int>
[:SOURce]:RADio:WLAN:VHT:GID?
[:SOURce]:RADio:WLAN:VHT:PAID <int>
[:SOURce]:RADio:WLAN:VHT:PAID?
[:SOURce]:RADio:WLAN:VHT:WINdow:LENgth <int>
[:SOURce]:RADio:WLAN:VHT:WINdow:LENgth?
[:SOURce]:RADio:WLAN:VHT:DATA PN7|PN9|PN15|PN21|CUSTom
[:SOURce]:RADio:WLAN:VHT:DATA?
[:SOURce]:RADio:WLAN:VHT:DATA:SEED <int>
[:SOURce]:RADio:WLAN:VHT:DATA:SEED?
[:SOURce]:RADio:WLAN:VHT:DATA:LENgth <int>
[:SOURce]:RADio:WLAN:VHT:DATA:LENgth?
[:SOURce]:RADio:WLAN:VHT:SEQuence <string>
[:SOURce]:RADio:WLAN:VHT:SEQuence?
Description MCS values should be between [0,8]
Only sample rate can be specified, subcarrier spacing is controlled through the UI
only. These settings are linked and can be controlled through just the sample rate
control.
Data length controls the number of bytes to use from the source. If the source is
shorter than the length, the data is repeated until the length is met.
The string for the data sequence must contain only ascii ‘0’s and ‘1’s. If any other
character is present, including whitespace, a system error will be thrown and the
custom bit sequence will not be set.
Examples RAD:WLAN:VHT:TRIG:TYPE CONT
RAD:WLAN:VHT:IDLE 10ms
RAD:WLAN:VHT:MCS 7
RAD:WLAN:VHT:GI LONG
RAD:WLAN:VHT:SRATE 20MHz
RAD:WLAN:VHT:INTER true
RAD:WLAN:VHT:SCRAM 93
RAD:WLAN:VHT:SCRAM:INIT 13
RAD:WLAN:VHT:GID 63
RAD:WLAN:VHT:PAID 275
RAD:WLAN:VHT:WIN:LEN 4
RAD:WLAN:VHT:DATA PN15
RAD:WLAN:VHT:SEED 1
RAD:WLAN:VHT:DATA:LEN 1500
RAD:WLAN:VHT:DATA:SEQ 0011001101010101
Software See IEEE 802.11ac controls
Controls
Couplings None
Preset
Notes None
7.20 802.11ax
Command [:SOURce]:RADio:WLAN:HE:[:STATe] <bool>
[:SOURce]:RADio:WLAN:HE:[:STATe]>
[:SOURce]:RADio:WLAN:HE:TRIGger:TYPE SINGle|CONTinuous
[:SOURce]:RADio:WLAN:HE:TRIGger:TYPE?
[:SOURce]:RADio:WLAN:HE:IDLE <time>
[:SOURce]:RADio:WLAN:HE:IDLE?
[:SOURce]:RADio:WLAN:HE:BWIDth 20M|40M
[:SOURce]:RADio:WLAN:HE:BWIDth?
[:SOURce]:RADio:WLAN:HE:CODing BCC|LDPC
[:SOURce]:RADio:WLAN:HE:CODing?
[:SOURce]:RADio:WLAN:HE:MCS <int>
[:SOURce]:RADio:WLAN:HE:MCS?
[:SOURce]:RADio:WLAN:HE:GI <int>
[:SOURce]:RADio:WLAN:HE:GI?
[:SOURce]:RADio:WLAN:HE:SRATe <freq>
[:SOURce]:RADio:WLAN:HE:SRATe?
[:SOURce]:RADio:WLAN:HE:SCRAMble:INIT <int>
[:SOURce]:RADio:WLAN:HE:SCRAMble:INIT?
[:SOURce]:RADio:WLAN:HE:WINdow:LENgth <int>
[:SOURce]:RADio:WLAN:HE:WINdow:LENgth?
[:SOURce]:RADio:WLAN:HE:DATA PN7|PN9|PN15|PN21|CUSTom
[:SOURce]:RADio:WLAN:HE:DATA?
[:SOURce]:RADio:WLAN:HE:DATA:SEED <int>
[:SOURce]:RADio:WLAN:HE:DATA:SEED?
[:SOURce]:RADio:WLAN:HE:DATA:LENgth <int>
[:SOURce]:RADio:WLAN:HE:DATA:LENgth?
[:SOURce]:RADio:WLAN:HE:SEQuence <string>
[:SOURce]:RADio:WLAN:HE:SEQuence?
Description MCS values should be between [0,11]
GI values should be between [0,3] and represent the 4 choices in the guard interval
combo box.
Only sample rate can be specified, subcarrier spacing is controlled through the UI
only. These settings are linked and can be controlled through just the sample rate
control.
Data length controls the number of bytes to use from the source. If the source is
shorter than the length, the data is repeated until the length is met.
The string for the data sequence must contain only ascii ‘0’s and ‘1’s. If any other
character is present, including whitespace, a system error will be thrown and the
custom bit sequence will not be set.
Examples RAD:WLAN:HE:TRIG:TYPE CONT
RAD:WLAN:HE:IDLE 10ms
RAD:WLAN:HE:BWIDTH 20M
RAD:WLAN:HE:CODING BCC
RAD:WLAN:HE:MCS 7
RAD:WLAN:HE:GI 1
RAD:WLAN:HE:SRATE 20MHz
RAD:WLAN:HE:SCRAM 93
RAD:WLAN:HE:SCRAM:INIT 13
RAD:WLAN:HE:WIN:LEN 4
RAD:WLAN:HE:DATA PN15
RAD:WLAN:HE:SEED 1
RAD:WLAN:HE:DATA:LEN 1500
RAD:WLAN:HE:DATA:SEQ 0011001101010101
Software See IEEE 802.11ax controls
Controls
Couplings None
Preset
Notes None
7.21 Arb
Command [:SOURce]:RADio:ARB[:STATe] <bool>
[:SOURce]:RADio:ARB[:STATe]?
[:SOURce]:RADio:ARB:TRIGger:TYPE SINGle|CONTinuous
[:SOURce]:RADio:ARB:TRIGger:TYPE?
[:SOURce]:RADio:ARB:SRATe <freq>
[:SOURce]:RADio:ARB:SRATe?
[:SOURce]:RADio:ARB:IQ:SCALe:AUTO[:STATe] <bool>
[:SOURce]:RADio:ARB:IQ:SCALe:AUTO[:STATe]?
[:SOURce]:RADio:ARB:IQ:SCALe <double>
[:SOURce]:RADio:ARB:IQ:SCALe?
[:SOURce]:RADio:ARB:IQ:SCALe:AVERage[:STATe] <bool>
[:SOURce]:RADio:ARB:IQ:SCALe:AVERage[:STATe]?
[:SOURce]:RADio:ARB:SAMPle:PERiod <int>
[:SOURce]:RADio:ARB:SAMPle:PERiod?
[:SOURce]:RADio:ARB:SAMPle:OFFSet <int>
[:SOURce]:RADio:ARB:SAMPle:OFFSet?
[:SOURce]:RADio:ARB:SAMPle:COUNt <int>
[:SOURce]:RADio:ARB:SAMPle:COUNt?
[:SOURce]:RADio:ARB:WAVeform?
[:SOURce]:RADio:ARB:WAVeform:LENgth?
[:SOURce]:RADio:ARB:WAVeform:LOAD:CSV <filename>
[:SOURce]:RADio:ARB:WAVeform:LOAD:BINSC <filename>
[:SOURce]:RADio:ARB:WAVeform:LOAD:BINFC <filename>
[:SOURce]:RADio:ARB:WAVeform:LOAD:MIDAS <filename>
[:SOURce]:RADio:ARB:WAVeform:LOAD:WAV <filename>
[:SOURce]:RADio:ARB:WAVeform:LOAD:SEQuence <filename>
[:SOURce]:RADio:ARB:WAVeform:LOAD:IQ:ASCII <I1>, <Q1>, <I2>,
<Q2>, …, <In>, <Qn>
[:SOURce]:RADio:ARB:WAVeform:LOAD?
[:SOURce]:RADio:ARB:WAVeform:UNLOAD
Description STATe, Enable/disable the Arb output mode.
TRIGger:TYPE, Set the trigger mode for Arb output.
SRATe, Set the Arb output sample rate.
IQ:SCALe:AUTO:STATe, Enable/disable auto I/Q scaling.
IQ:SCALe, Set the I/Q scale to be used when auto scaling is disabled.
IQ:SCALe:AVERage:STATe, Enable/disable how to calculate the output power of
the signal.
SAMPle:PERiod, Set the waveform period in samples. Period is calculated after
accounting for the offset and count.
SAMPle:OFFSet, Set the waveform offset in samples. Specifies how many samples
into the loaded waveform to start playback. Between offset and count, this allows
users to only play a portion of the loaded waveform.
SAMPle:COUNt, Specify the number of samples after the offset to output. Between
offset and count, this allows users to only play a portion of the loaded waveform.
WAVeform?, Queries the name of the loaded waveform. Returns an empty string is
no file is loaded.
WAVeform:LENgth?, Returns the total number of samples in the loaded waveform.
The number returned does not include the offset and count values specified above. If
no file is loaded, this returns 0.
LOAD, Loads various file types. The file name provided must specify a file that
matches the file type specified by the load SCPI function used. See the software UI
manual for more information.
LOAD:BINSC, Loads 16-bit complex integer binary file with provided filename.
LOAD:BINFC, Loads 32-bit complex float binary file with provided filename.
LOAD:SEQuence, Loads a custom sequence file (created with the sequence editor)
with the provided filename.
LOAD:IQ:ASCII, Load an I/Q waveform sent over SCPI. The I/Q values should be
provided as alternating I/Q complex values, each I and Q value sent as a separate
SCPI parameter, as ascii. A comma should separate all I/Q values. A comma should
not be placed after the last Q value. An error will be thrown if an odd number of
parameters is provided. See example below and programming example for usage.
LOAD?, Returns 1 if a waveform is loaded.
UNLOAD, Unloads any loaded waveform.
Examples RAD:ARB ON
RAD:ARB:TRIG:TYPE SING
RAD:ARB:SRAT 10MHz
RAD:ARB:IQ:SCALE:AUTO ON
RAD:ARB:IQ:SCALE 50
RAD:ARB:IQ:SCALE:AVERAGE OFF
RAD:ARB:SAMPLE:PERIOD 10000
RADIO:ARB:SAMPLE:OFFSET 1024
RAD:ARB:SAMP:OFFS?
RAD:ARB:SAMP:COUNT 5000
RAD:ARB:WAV?
RAD:ARB:WAVEFORM:LENGTH?
RAD:ARB:WAV:LOAD:CSV “file.csv”
Please note, that the quotations must appear in the command. If using a
programming language like C/C++, you must escape sequence the quote in the
string, for example
“RAD:ARB:WAV:LOAD:CSV \”file.csv\””
RAD:ARB:WAV:LOAD:BINFC “file.bin”
RAD:ARB:WAV:LOAD:IQ:ASCII 1.0, 0.0, 1.0, 0.0, -1.0, 0.0, -1.0,
0.0
<This line loaded an I/Q waveform with 4 I/Q samples where the first two samples
were (1.0,0.0) and the last two samples were (-1.0, 0.0)> See the programming
examples for another example of using this function.
RAD:ARB:WAV:LOAD?
RAD:ARB:WAV:UNLOAD
Software Arb Controls -> Enabled
Controls Arb Controls -> Trigger Mode
Arb Controls -> Sample Rate
Arb Controls -> Auto Scale
Arb Controls -> I/Q Scale (%)
Arb Controls -> Output Signal Average
Arb Controls -> Period
Arb Controls -> Sample Offset
Arb Controls -> Samples to Use
Arb Controls -> Samples in File
Arb Controls -> Load
Arb Controls -> Unload File
Couplings None
Preset No file loaded.
Notes None
7.22 Streaming
Command [:SOURce]:STREAMing[:STATe] <bool>
[:SOURce]:STREAMing[:STATe]?
[:SOURce]:STREAMing:SRATe <freq>
[:SOURce]:STREAMing:SRATe?
[:SOURce]:STREAMing:IQ:SCALe <double>
[:SOURce]:STREAMing:IQ:SCALe?
[:SOURce]:STREAMing:WAVeform:LOAD:BINSC <filename>
[:SOURce]:STREAMing:WAVeform:LOAD:BINFC <filename>
[:SOURce]:STREAMing:WAVeform:LOAD:WAV <filename>
[:SOURce]:STREAMing:WAVeform:LOAD?
[:SOURce]:STREAMing:WAVeform:UNLOAD
Description STATe, Enable/disable the streaming output mode.
SRATe, Set the output sample rate.
IQ:SCALe, Set the I/Q scale as a percentage.
LOAD:BINSC, Loads 16-bit complex integer binary file with provided filename.
LOAD:BINFC, Loads 32-bit complex float binary file with provided filename.
LOAD:WAV, Loads .wav file with provided filename.
UNLOAD, Unloads all waveform files.
Examples STREAMING ON
STREAM:SRAT 10MHz
STREAMING:IQ:SCALE 50
STREAM:WAV:LOAD:BINSC “file.bin”
Please note, that the quotations must appear in the command. If using a
programming language like C/C++, you must escape sequence the quote in the
string, for example
“STREAM:WAV:LOAD:BINSC \”file.bin\””
STREAM:WAV:LOAD:BINFC “file.bin”
STREAM:WAV:LOAD:WAV “file.wav”
STREAM:WAV:LOAD?
STREAM:WAV:UNLOAD
Software Streaming Controls -> Enabled
Controls Streaming Controls -> Sample Rate
Streaming Controls -> I/Q Scale (%)
Streaming Controls -> Load Files
Streaming Controls -> Unload Files
Couplings None
Preset No files loaded.
Notes None