CONTACT
TEL: 0118 978 6911
COVID-19 Status: We Are Currently Still Shipping All Orders As Normal. Free UK Mainland Delivery On Orders Over £100.00. Read More...
NQA ISO9001 logo

Blog

Programming Example: Return Peak Table Data with an SSA3000X Spectrum Analyser

Posted on: August 20th, 2021 by James

The SIGLENT SSA3000X series of spectrum analysers have an on-screen peak detection that can be used to easily show the peak values in a

  • Configure the instrument span, RBW, and amplitude to capture the signals of interest
  • Send “:CALC:MARK:PEAK:TABL ON”
  • Send “:CALC:PEAK:TABL? “ to return the peak table data

Here, we show the displayed peak table and the data return using a VISA interface:

Products Mentioned In This Article:

  • SSA3000X Series please see HERE

Programming Example: SSA/SVA analyser screen image capture using Python over LAN

Posted on: August 20th, 2021 by James

Here is a brief code example written in Python 3.4 that uses a socket to pull a display image (screenshot) from a SIGLENT SSA/SVA analyser via LAN
and save it to the local drive of the controlling computer.

NOTE: This program saves the picture/display image file in the same directory that the .py file is being run from. It will overwrite any existing file that has the same name.

Download Python 3.4, connect an analyser to the LAN using an Ethernet cable, get the scope IP address, and run the attached .PY program to save an image of the analyser display. The type of file saved is determined by the instruments setting when the program is run.

You can download the .PY file here: [Download not found]

Tested with:

Python 3.4
SSA3000X
SSA3000X Plus
SVA1000X

How do I pick the right spectrum analyser for my application?

Posted on: August 20th, 2021 by James

Introduction

The SIGLENT SSA3000X, SSA3000X Plus and SVA1000X products are based on a similar swept superheterodyne spectrum analyser platform and have very similar starting prices. There are quite a few similarities, but also a few differences that could affect the end results for particular applications.

The table below compares the major specifications and the comparable options as they pertain to specific applications like VSWR.

*Compatible with many commercially available return loss bridges/directional couplers

Additional SVA Features and Options

Still having trouble choosing?

Here are some additional features and options that are exclusive to the SSA PLUS and SVA platforms that may help:

Free Features:

  • Touch screen control with shortcut widget
  • Mouse/Keyboard support
  • Easy web browser web control
  • Power-On-Line – Instrument will automatically restart when power is restored to the mains power connection (power cord) when this feature is enabled.

Additional Options:

  • AM/FM modulation analysis (SVA1000X-AMA. SSA3000XP-AMA) enables visualization of data encoded using AM/FM
  • Digital modulation analysis (SVA1000X-DMA. SSA3000XP-DMA) enables visualization of data encoded using FSK/ASK
  • Advanced measurement kit (SVA1000X-AMK, SSA3000XP-AMK) feature Harmonic and CNR measurements in addition to CHP/ACPR/TOI/OBW/Monitor.
  • Mechanical calibration kit for VNA (F503ME)

If you have additional questions, you can always contact our applications team (info@siglent.com) and we would be happy to answer any additional questions you may have.

Products Mentioned In This Article:

  • SSA3000X Series please see HERE
  • SSA3000X Plus Series please see HERE
  • SVA1000X Series please see HERE

Build FM NRSC masks for SIGLENT SSA3000X/SVA1000Xs using a Python script

Posted on: August 20th, 2021 by James

Many broadcast applications require monitoring a transmitter and observing the output amplitude vs. frequency. For FM radio applications, a common mask is defined by the National Radio Systems Committee (NRSC) and is commonly referred to as the FM NRSC mask.

A very helpful SIGLENT owner, Dan from Alabama Broadcast Services, LLC, built an FM NRSC Mask tool using our original AM NRSC mask python code

This program was built using Python 2.7 and helps create masks around user-defined center frequencies.

Here is a link to the zipped download of the finished Python code: SSA3XNRSC_FM_Limit.zip

DIY Spectrum Analyser Input Protection

Posted on: August 20th, 2021 by James

Spectrum analysers like the SIGLENT SSA3000X and SVA1000X series are extremely useful instruments that can provide invaluable insight into broadcast signal performance, transmitter troubleshooting, and interference as well as RF device characterization and EMC testing.

But, like other spectrum analysers, they are very sensitive and can be damaged easily, if the proper precautions are not followed.

The instruments have standard protection elements that includes a DC blocking capacitor and an automatic attenuator that help to prevent damage from low frequency and higher powered signals. There is even an audible and visible warning if the ADC (Analog-to-Digital Converter) overload.

In addition to this, adding external attenuation and protection can be useful in further preventing damage, especially when connecting to unknown sources such as antennas, transmitters, and LISNs.

One of our customers, Mr. Jeff Covelli (WA8SAJ), is a HAM (Amateur Radio Operator) who recently shared a very simple protection box that can be useful for keeping that sensitive front end functioning when connecting to unknown signal sources.

He uses it to help protect the input on his SIGLENT SDG1032X signal generator as well as his SSA3021X spectrum analyser:

 

And he has a pretty impressive setup:

 

And here are the details:

 

 

 

At some point, I hope to characterize this setup and provide S11, S21 information.. but, if your signal is unknown, this will add an additional layer of protection when measuring an unknown signal for the “first time”.

Testing Open Socket Communications Using PuTTY

Posted on: August 20th, 2021 by James

Many instruments include the ability to be controlled via a remote connection to a computer using an Ethernet connection. In many cases, these instruments require a special software library that can help establish and maintain the communications link between the instrument and controlling computer. This can be annoying for a few reasons… the software library is likely to occupy a large amount of space on the controlling computer and is also required on any computer that is being used to control the instrument. In a remote networking application where multiple user’s may want access to a test instrument, this can cause support and installation headaches.

Luckily, there are a few solutions that can help. In this application note, we are going to discuss using open socket communication techniques using an open source communication tool called PuTTY with a SIGLENT SSA3032X spectrum analyser.

What are open sockets and why use them?

Within the context of Ethernet/LAN connections, sockets are like mailboxes. If you want to deliver information to a specific place, you need to be sure that your information is delivered to the correct address.

In the context of test instrumentation, an open socket is a fixed address (or port number) on the Ethernet/LAN bus that is dedicated to process remote commands.

Open sockets allow remote computers to simply use existing raw Ethernet connections for communications without having to add additional libraries (VISA or similar) that require additional storage space and processing overhead.

Programs that utilize sockets for LAN communication tend to take up less memory and operate more quickly.

PuTTY

PuTTY is an open source software tool that provides a number of simple communication links (RAW, Telnet, SSSH, Serial, and others). It is available for free and there are a number of versions available for popular operating systems.

You can download as well as learn more here: https://www.putty.org/

In this example, we are using PuTTY to verify the raw LAN connection is working properly. It is quite a simple program that does not allow for very complex operation (sequences, converting data sets/strings, etc..). If you require more complex functionality, software platforms like Python, .NET, C#, LabVIEW, etc.. can be used to control the instrument using a similar open socket connection.

Configuration

In this test, we are using the most current revision of the SIGLENT SSA3032X Spectrum Analyzer firmware (Revision 01.02.08.02) which enables open socket communication.

This example also uses PuTTY version 0.67:

Steps

1. Install PuTTY for the OS you intend to use

2. Make sure your instrument and firmware revision can use open sockets

The SSA3032X revision 01.02.08.02 enables open socket communication.

To find the revision, press the System button > Sys Info.

Figure 1 below shows a sample system information screen from a SIGLENT SSA3000X analyzer:


Figure 1: Sample system information page from an SSA3000X.

Check the product page and firmware release notes for more information.

3. Connect the instrument to the local area using an Ethernet cable

4. Find the IP address for the instrument. This is typically located in the System Information menu. On the SIGLENT SSA3032X, press the System button on the front panel > Interface > LAN.

Figure 2 below shows a sample LAN setup page from a SIGLENT SSA3000X:


Figure 2: Sample LAN information page from an SSA3000X.

5. Open PuTTY

6. Select Raw as connection type

7. Enter the IP address in the Host Name field

8. Enter the port number. This should be provided in the users or programming guide for the instrument.

The SIGLENT SSA3000X uses port 5025.

Figure 3 below shows the PuTTY configuration for this example:


Figure 3: Example PuTTY configuration.

9. Press Open. This will open a terminal window as shown in below:

10. Using the computer keypad, enter *IDN? and press the Enter key on the keyboard to send the command.

This is the standard command string that is used to request the identification string from the instrument. As shown below, the instrument responds with the manufacture, product ID, Serial Number, and firmware revision.

Conclusion

PuTTY is an easy way to verify an operational LAN connection to instrumentation that can use open sockets.

Testing Intrinsic Safety Barrier fusing and circuitry using an Electronic Load

Posted on: August 20th, 2021 by James

From Wikipedia: Intrinsic safety (IS) is a protection technique for safe operation of electrical equipment in hazardous areas by limiting the energy, electrical and thermal, available for ignition.

The idea is to minimise the risk of fire or explosion by physically eliminating any potential source of ignition.

Many IS circuits utilise special fusing and elements that are designed to dissipate the available power below certain temperature thresholds. During a fault condition, no component within the design can exceed this temperature rating.

Testing the performance of this type of design is quite simple: Load the circuit to pull the maximum rated power and measure the temperature of all of the circuit elements (heat sinks, packaging, resistors, etc..).

In practice, you could use a power resistor network with proper heat sinking for the load but a more convenient solution is to use an electronic load like the SIGLENT SDL1000X series.

The SDL1000X is available in 200 and 300 W versions and features a Constant Power (CP) operation mode as well as Constant Resistance (CR), Constant Voltage (CV), as well as user-defined limits to ensure safe operation within the application test requirements.

  • Connect the Device-Under-Test (DUT)
  • Select Constant Power (CP) Mode
  • Set the current (I_range) and voltage (V_range) ranges for the test
  • Set the Power you wish the load to sink
  • Activate the load input

After the specified time limit for your test (see your device/environment specifics for details), you can measure the components/design temperature using a thermal camera or direct temperature measurements using thermocouples and DMM like SIGLENTs SDM3000X series. In fact, the SDM3055-SC and SDM3065X-SC products feature the ability to monitor temperature on up-to-twelve thermocouples to provide multi-point temperature readings from different points on your design.

Be sure to check heatsinks and components that are expected to dissipate the most power, but also other peripheral components and traces that may carry unexpected loads during a fault.

NOTE: In this picture, we show an open power supply with no shielding or case. For more accurate measurement, we recommend leaving as much of the original design (shielding/case/metalwork) in place to get the most representative measurement possible.

Products Mentioned In This Article:

  • SDL1000X Series please see HERE
  • SDM3000X Series please see HERE

Verification of a LAN connection using Telnet

Posted on: August 20th, 2021 by James

Automating a test can dramatically increase the productivity, throughput, and accuracy of a process. Automating a setup involves connecting a computer to the test instrumentation using a standard communications bus like USB or LAN and then utilising code entered via a software layer (like LabVIEW, .NET, Python, etc..) to sequence the specific instrument commands and process data.

This process normally goes quite smoothly, but if there are problems, there are some basic troubleshooting steps that can help get your test up-and-running quickly.

In this note, we are going to show how to use Telnet to test the communications connection between an instrument and a remote computer using a LAN connection to ensure that it is working properly. Once the connection is verified, you can begin to work on the control software.

Telnet provides a means of communicating over a LAN connection. The Telnet client, run on a LAN connected computer, will create a login session on the instrument.

NOTE: The Telnet connection requires open sockets on the instrumentation. At this time, not all SIGLENT products feature open sockets. Check the product page FAQs or with your local SIGLENT support office for more information.

A connection, established between the computer and instrument, generates a user interface display screen with SCPI> prompts on the command line.

Using the Telnet protocol to send commands to the instrument is similar to communicating with USB. You establish a connection with the instrument and then send or receive information using SCPI commands. Communication is interactive: one command at a time.

The Windows operating systems use a command prompt style interface for the Telnet client.

STEPS

1. Power on and connect the instrument to the network via LAN

2. Verify that the Gateway, Subnet Mask, and IP address of the instrument are valid for the network you wish to use. This information is typically located in the System Information or IO menu. See the specific instrument user’s guide for more information on LAN settings.

3. On the computer, click Start > All Programs > Accessories > Command Prompt.

4. At the command prompt, type in telnet.

5. Press the Enter key. The Telnet display screen will be displayed.

6. At the Telnet command line, type: open XXX.XXX.XXX.XXX 5024 where XXX.XXX.XXX.XXX is the instrument’s IP address and 5024 is the port. You should see a response similar to the following:

7. Now, you can enter any valid command for the specific instrument that you are controlling. See the specific programming guide for the instrument for more information.

This is especially helpful when you are planning a specific test sequence, the effect of delays/timing, or troubleshooting a command. You can send each command one-at-a-time and check the performance of the instrument.

*IDN? is a common identification string query (question or information request) that returns the information from the connected instrument

Open Socket LAN connection using Python

Posted on: August 20th, 2021 by James

Automating a test can dramatically increase the productivity, throughput, and accuracy of a process. Automating a setup involves connecting a computer to the test instrumentation using a standard communications bus like USB or LAN and then utilising code entered via a software layer (like LabVIEW, .NET, Python, etc..) to sequence the specific instrument commands and process data.

In this note, we are going to show how to use Python to create a communications link between an instrument and a remote computer using a LAN connection. Once the connection is verified, you can begin to work on the control software.

NOTE: This example requires open sockets on the instrumentation. At this time, not all SIGLENT products feature open sockets. Check the product page FAQs or with your local SIGLENT support office for more information.

Python is an interpreted programming language that lets you work quickly and is very portable. Python has a low-level networking module that provides access to the socket interface. Python scripts can be written for sockets to do a variety of test and measurements tasks.

Here is a short script that opens a socket, sends a query, and closes the socket. It does this loop for 10 times.

1. Power on and connect the instrument to the network via LAN

2. Verify that the Gateway, Subnet Mask, and IP address of the instrument are valid for the network you wish to use. This information is typically located in the System Information or IO menu. See the specific instrument user’s guide for more information on LAN settings.

3. Download python and your favourite python editor (I use IDLE):

https://www.python.org/

https://docs.python.org/2/library/idle.html

Start your python editor:

5. Open a new file by pressing File > New File.. and name the file

6. Copy and paste the code at the end of this note into the file editing window:

7. Change the IP address so that it matches the IP address of the instrument you wish to connect to:

Save the file:

8. To Run, select Run and Run Module:

#!/usr/bin/env python
#-*- coding:utf-8 –*-
#—————————————————————————–
# The short script is a example that open a socket, sends a query,
# print the return message and closes the socket.
#—————————————————————————–
import socket # for sockets
import sys # for exit
import time # for sleep
#—————————————————————————–
remote_ip = “192.168.0.17” # should match the instrument’s IP address
port = 5024 # the port number of the instrument service
count = 0

def SocketConnect():
try:
#create an AF_INET, STREAM socket (TCP)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error:
print (‘Failed to create socket.’)
sys.exit();
try:
#Connect to remote server
s.connect((remote_ip , port))
info = s.recv(4096)
print (info)
except socket.error:
print (‘failed to connect to ip ‘ + remote_ip)
return s

def SocketQuery(Sock, cmd):
try :
#Send cmd string
Sock.sendall(cmd)
time.sleep(1)
except socket.error:
#Send failed
print (‘Send failed’)
sys.exit()
reply = Sock.recv(4096)
return reply

def SocketClose(Sock):
#close the socket
Sock.close()
time.sleep(.300)

def main():
global remote_ip
global port
global count

# Body: send the SCPI commands *IDN? 10 times and print the return message
s = SocketConnect()
for i in range(10):
qStr = SocketQuery(s, b’*IDN?’)
print (str(count) + “:: ” + str(qStr))
count = count + 1
SocketClose(s)
input(‘Press “Enter” to exit’)

if __name__ == ‘__main__’:
proc = main()

Products Mentioned In This Article:

  • SPD3000X please see HERE

Programming Example: Controlling an SPD power supply via Sockets over LAN

Posted on: August 20th, 2021 by James

Here is a Python 3.6 example of using sockets to control an SPD power supply connected to a computer using LAN.

NOTE: The SPD uses VXI-11 protocol for LAN. On some systems, it is helpful to use the VXI-11 format for the IP address:

“TCPIP::ip.add.re.ss::INSTR”

Here is the program in full:

Products Mentioned In This Article:

Siglent SPD Power Supplies please see HERE