<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Andrew Croissant, Author at DMC, Inc.</title>
	<atom:link href="https://static.dmcinfo.com/blog/author/andrewcr/feed/index.xml" rel="self" type="application/rss+xml" />
	<link></link>
	<description></description>
	<lastBuildDate>Wed, 02 Sep 2026 20:05:32 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>

<image>
	<url>https://static.dmcinfo.com/wp-content/uploads/2025/04/site-icon-150x150.png</url>
	<title>Andrew Croissant, Author at DMC, Inc.</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Automating RF Measurements Using LabVIEW for Keysight CXA, ENA, and EPM Instruments</title>
		<link>https://static.dmcinfo.com/blog/42297/automating-rf-measurements-using-labview/</link>
		
		<dc:creator><![CDATA[Andrew Croissant]]></dc:creator>
		<pubDate>Thu, 26 Mar 2026 13:00:00 +0000</pubDate>
				<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[Test and Measurement Automation]]></category>
		<category><![CDATA[Keysight]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/?p=42297</guid>

					<description><![CDATA[<p>Automating RF measurement systems can dramatically improve test efficiency, repeatability, and accuracy, especially in environments where multiple instruments must be configured and synchronized.&#160;DMC&#160;developed a LabVIEW-based application to automate measurements for three commonly used Keysight RF test instruments: an RF Spectrum Analyzer (RFSA), an RF Network Analyzer (RFNA), and an RF Power Meter (RFPM).&#160; The application [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/42297/automating-rf-measurements-using-labview/">Automating RF Measurements Using LabVIEW for Keysight CXA, ENA, and EPM Instruments</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Automating RF measurement systems can dramatically improve test efficiency, repeatability, and accuracy, especially in environments where multiple instruments must be configured and synchronized.&nbsp;DMC&nbsp;developed a LabVIEW-based application to automate measurements for three commonly used <a href="https://static.dmcinfo.com/about/partners/keysight-solutions-partner/" type="link" id="https://static.dmcinfo.com/about/partners/keysight-solutions-partner/">Keysight</a> RF test instruments: an RF Spectrum Analyzer (RFSA), an RF Network Analyzer (RFNA), and an RF Power Meter (RFPM).&nbsp;</p>



<p class="wp-block-paragraph">The application leverages the Keysight instrument driver library to handle communication and control, while providing a user-friendly graphical interface (GUI) for remote operation. We also integrated the system with NI TestStand, creating a reusable set of custom steps that simplify sequence development.</p>



<h2 id="h-system-overview" class="wp-block-heading">System Overview</h2>



<p class="wp-block-paragraph">The goal was to design a flexible, modular system that allows an engineer or technician to:</p>



<ul class="wp-block-list">
<li>Configure measurement parameters for each instrument, using either the LabVIEW GUI or the onboard GUI of each device.</li>



<li>Execute measurements automatically or under manual supervision.</li>



<li>Collect and log results for analysis.</li>



<li>Save and recall instrument states for repeatability.</li>



<li>Integrate the entire workflow into automated TestStand sequences.</li>
</ul>



<p class="wp-block-paragraph">The core of the system is a LabVIEW application that acts as both the user interface and the instrument control framework. Each instrument is managed by its own dedicated driver class, responsible for communication, configuration, and data acquisition. All devices are connected to a controller PC that runs the LabVIEW application via LAN interface.</p>



<h2 id="h-using-keysight-instrument-drivers" class="wp-block-heading">Using Keysight Instrument Drivers</h2>



<p class="wp-block-paragraph">Keysight provides certified LabVIEW drivers for many of its instruments. The libraries used in this application are as follows:</p>



<ul class="wp-block-list">
<li><strong>RFSA:</strong> Keysight XSAn library</li>



<li><strong>RFNA:</strong> Keysight NA library</li>



<li><strong>RFPM:</strong> Agilent E441X Series library</li>
</ul>



<p class="wp-block-paragraph">These drivers implement a consistent API structure and follow the VISA standard, making them ideal for this type of automation project.</p>



<p class="wp-block-paragraph">Our application created an Initialize, Calibrate, Configure, Acquire Data, Save/Recall Device State, and Close step for each device, using a parallel structure to the Keysight API for ease of integration. While these steps mirror the basic functionality of the VIs in the libraries, they allow the application to be more customizable by controlling only the settings we need to help streamline TestStand sequence development. The functions of each step are below:</p>



<ul class="wp-block-list">
<li><strong>Initialize:</strong> This step creates an instrument handle that will be used by all other Keysight drivers in the device’s lifecycle</li>



<li><strong>Calibrate:</strong> This step allows the user to perform calibration and zeroing steps on the device (only for RFPM)</li>



<li><strong>Configure: </strong>This step allows the user to select specific settings for the measurements and sends them to the device</li>



<li><strong>Acquire Data:</strong> This step will perform a measurement using the settings specified in the previous step and export the data to the application</li>



<li><strong>Save/Recall Device State:</strong> This step allows the user to save or recall all device settings as a configuration file locally on the device’s drive (Only for RFSA/RFNA)</li>



<li><strong>Close:</strong> This step closes the VISA resource for the device to prevent any memory issues when the app closes</li>
</ul>



<h2 id="h-application-design-and-architecture" class="wp-block-heading">Application Design and Architecture</h2>



<p class="wp-block-paragraph">The LabVIEW application uses an object-oriented approach, with each device having a widget class, an abstract class, a Keysight instrument class, and a simulated class. The widget class uses APIs from the abstract class to call the basic steps listed above. Each widget also contains the GUI for device control from the LabVIEW front-end.</p>



<p class="wp-block-paragraph">The Keysight instrument class contains device-specific drivers, and the simulated class generates random data when hardware is not available. If we replaced our devices with a non-Keysight model, we could easily add another class for that device’s drivers.</p>



<div class="wp-block-group alignfull wp-elements-3 has-global-padding is-layout-constrained wp-container-core-group-is-layout-869938a1 wp-block-group-is-layout-constrained" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40);padding-top:0;padding-right:0;padding-bottom:0;padding-left:0">
<div class="wp-block-group alignwide has-white-color has-custom-light-blue-background-color has-text-color has-background has-link-color wp-elements-4 has-global-padding is-layout-constrained wp-container-core-group-is-layout-b03e55dc wp-block-group-is-layout-constrained" style="border-radius:20px;margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60);padding-top:var(--wp--preset--spacing--60);padding-right:0;padding-bottom:var(--wp--preset--spacing--60);padding-left:0">
<p class="has-text-align-center wp-block-paragraph" id="h-for-more-information-on-dmc-s-labview-oo-philosophy-and-hardware-abstraction-layers-like-those-used-in-this-application-check-out-these-additional-blogs"><strong>For more information on DMC’s LabVIEW OO philosophy and hardware abstraction layers like those used in this application, check out these additional blogs:</strong></p>



<p class="has-text-align-center has-custom-primary-blue-color has-text-color has-link-color wp-elements-5 wp-block-paragraph"><a href="https://static.dmcinfo.com/blog/20433/a-simple-hardware-abstraction-using-labview-oop/" type="post" id="20433">A Simple Hardware Abstraction using LabVIEW OOP</a></p>



<p class="has-text-align-center has-custom-primary-blue-color has-text-color has-link-color wp-elements-6 wp-block-paragraph"><a href="https://static.dmcinfo.com/blog/36802/labview-oop-does-it-pay-off/" type="post" id="36802">LabVIEW OOP: Does it Pay Off?</a></p>
</div>
</div>



<h2 id="h-gui-module" class="wp-block-heading">GUI Module</h2>



<p class="wp-block-paragraph">The GUI for RFSA has 2 screens, with users able to control basic display settings or recall a state from the device’s settings on the first screen. More settings options are available on the second screen, which is accessible by selecting the “Configure” button. After the user selects their desired settings, they can conduct a measurement using the “Start” button, then set markers using the frequency control or the slider below. The positions of the markers automatically update, and their frequency and amplitude values are displayed below.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-0e47273b wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="594" height="618" src="https://static.dmcinfo.com/wp-content/uploads/2026/03/swept-SA-measurement.png" alt="main tab swept SA measurement" class="wp-image-42366" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/03/swept-SA-measurement.png 594w, https://static.dmcinfo.com/wp-content/uploads/2026/03/swept-SA-measurement-288x300.png 288w" sizes="(max-width: 594px) 100vw, 594px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="556" height="608" src="https://static.dmcinfo.com/wp-content/uploads/2026/03/RF-measurement-configuration.png" alt="configure tab RF measurement" class="wp-image-42367" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/03/RF-measurement-configuration.png 556w, https://static.dmcinfo.com/wp-content/uploads/2026/03/RF-measurement-configuration-274x300.png 274w" sizes="(max-width: 556px) 100vw, 556px" /></figure>
</div>
</div>



<p class="wp-block-paragraph">The RFNA has a similar GUI but requires fewer settings. It has one screen, allowing the user to control the frequency range and select the test type between Insertion Loss (S12) or VSWR (S11). Like the RFSA, users can recall a device state, start a measurement, and control the marker from this screen.</p>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="596" height="613" src="https://static.dmcinfo.com/wp-content/uploads/2026/03/vswr-measurement.png" alt="VSWR measurement" class="wp-image-42368" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/03/vswr-measurement.png 596w, https://static.dmcinfo.com/wp-content/uploads/2026/03/vswr-measurement-292x300.png 292w" sizes="(max-width: 596px) 100vw, 596px" /></figure>



<p class="wp-block-paragraph">The RFPM has a different GUI because it only conducts single-channel measurements, as opposed to frequency sweeps. This GUI allows the user to perform a calibration sequence by selecting the type (Calibrate, Zero, or Calibrate &amp; Zero). The user can then select the frequency at which to conduct the measurement and set the resolution for the measurements. When the user selects the “Measure” button, the device conducts a power measurement and displays it both on the device’s onboard GUI and the LabVIEW GUI.</p>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="604" height="291" src="https://static.dmcinfo.com/wp-content/uploads/2026/03/RF-measurement-calibration.png" alt="RF measurement calibration" class="wp-image-42369" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/03/RF-measurement-calibration.png 604w, https://static.dmcinfo.com/wp-content/uploads/2026/03/RF-measurement-calibration-300x145.png 300w" sizes="(max-width: 604px) 100vw, 604px" /></figure>



<h2 id="h-data-acquisition-and-storage" class="wp-block-heading">Data Acquisition and Storage</h2>



<p class="wp-block-paragraph">Measurements for each device can be conducted simultaneously, and the data from all three instruments can be automatically logged to local or network drives. For this application, the data is stored in a TDMS file format, but could easily be saved as a CSV or other format as well.</p>



<p class="wp-block-paragraph">DMC implemented a data tagging system that associates each measurement with metadata such as date, time, operator, device under test (DUT) ID, and test sequence name. This metadata improves traceability and simplifies post-test analysis.</p>



<h2 id="h-integration-with-ni-teststand" class="wp-block-heading">Integration with NI TestStand</h2>



<p class="wp-block-paragraph">DM added an additional layer of efficiency to the RF measurements by integrating them into NI TestStand sequences used across multiple test stations. To achieve this, we created custom TestStand steps that directly call the LabVIEW VIs controlling each instrument. Each step has a wrapper VI that is used to create a TestStand custom step. This allows the user to create sequences in TestStand the same way they would in LabVIEW, but without needing to understand the programming backend. When used in a sequence, the data plots appear in the report generated by TestStand, and the data can be used in pass/fail grading steps during the sequence itself.</p>



<p class="wp-block-paragraph">TestStand is the foundation of one of DMC’s core battery test platforms for the reasons above and can enhance the accessibility of automation when used in conjunction with well-encapsulated LabVIEW code.</p>



<h2 id="h-conclusion" class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">This project demonstrates how combining LabVIEW, Keysight instrument drivers, and NI TestStand creates a powerful and flexible RF measurement automation platform. By automating configuration, acquisition, and reporting for the three devices, we achieved significant gains in efficiency, repeatability, and scalability. The system meets current test requirements and lays the foundation for future automation initiatives. Because of the modular LabVIEW code, we can easily scale the system to add functions, GUI elements, and devices with minimal rework.</p>



<div class="wp-block-group alignwide has-custom-light-blue-background-color has-background is-layout-flow wp-container-core-group-is-layout-dbd34961 wp-block-group-is-layout-flow" style="border-radius:20px;margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--50);padding-right:0;padding-bottom:var(--wp--preset--spacing--50);padding-left:0">
<div class="wp-block-columns alignwide are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-43efaee5 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)">
<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:85%">
<h3 class="wp-block-heading has-text-align-left" id="h-have-an-upcoming-project-dmc-can-help-you-take-the-next-step">Turn Manual Testing Into Automated Results. </h3>



<p class="has-text-align-left wp-block-paragraph" id="h-need-help-turning-ideas-into-outcomes-automation-project-to-the-next-level-contact-us-today-to-learn-more-about-our-solutions-and-how-we-can-help-you-achieve-your-goals">Reduce manual effort and improve repeatability with <a href="https://static.dmcinfo.com/services/test-and-measurement-automation/" id="428">Test &amp; Measurement solutions</a> from DMC. Learn more about our capabilities with <a href="https://static.dmcinfo.com/our-work/category/service/test-measurement-automation/labview/" data-type="work_category" data-id="685">LabVIEW</a>, <a href="https://static.dmcinfo.com/our-work/test-data-centralization-standardization-and-storage-using-python-ni-systemlink-server/" data-type="our_work" data-id="15116">NI TestStand</a>, and <a href="https://static.dmcinfo.com/about/partners/keysight-solutions-partner/" data-type="page" data-id="42353">Keysight</a> RF Instruments today.</p>
</div>



<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<div class="wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-2236275c wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-base-contrast-color has-text-color has-link-color wp-element-button" href="https://static.dmcinfo.com/contact/">Contact Us</a></div>
</div>
</div>
</div>
</div>
<p>The post <a href="https://static.dmcinfo.com/blog/42297/automating-rf-measurements-using-labview/">Automating RF Measurements Using LabVIEW for Keysight CXA, ENA, and EPM Instruments</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Custom Oscilloscope Multiplexing for Differential Signals</title>
		<link>https://static.dmcinfo.com/blog/39895/custom-oscilloscope-multiplexing-for-differential-signals/</link>
		
		<dc:creator><![CDATA[Andrew Croissant]]></dc:creator>
		<pubDate>Mon, 01 Dec 2025 15:00:00 +0000</pubDate>
				<category><![CDATA[Test and Measurement Automation]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/?p=39895</guid>

					<description><![CDATA[<p>In many automated test environments, the ability to efficiently measure and analyze multiple differential signals is essential. Traditional oscilloscope setups often require manual cable changes, fixed signal routing, or multiple scopes or scope channels to accommodate extra signals. When the number of signals exceeds the oscilloscope’s available input channels, this approach quickly becomes inefficient and [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/39895/custom-oscilloscope-multiplexing-for-differential-signals/">Custom Oscilloscope Multiplexing for Differential Signals</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In many automated test environments, the ability to efficiently measure and analyze multiple differential signals is essential. Traditional oscilloscope setups often require manual cable changes, fixed signal routing, or multiple scopes or scope channels to accommodate extra signals. When the number of signals exceeds the oscilloscope’s available input channels, this approach quickly becomes inefficient and expensive.</p>



<p class="wp-block-paragraph">To overcome these limitations, our team designed a custom oscilloscope multiplexing system for differential signals, integrating PXIe switching hardware, custom cable harnesses, and a LabVIEW-based software interface. This solution enables users to route any of 12 differential signal pairs to a single oscilloscope for analysis while seamlessly passing the others through. The result is a flexible, automated, and low-noise measurement system tailored for differential signal measurements.</p>



<h2 id="h-the-challenge" class="wp-block-heading">The Challenge</h2>



<p class="wp-block-paragraph">Our test system needed to monitor 12 independent differential signals originating from a high-speed digital subsystem. Each signal pair carried sensitive timing and amplitude information, and all were required to maintain integrity during routing.</p>



<p class="wp-block-paragraph">The three primary challenges were:</p>



<ol class="wp-block-list">
<li><strong>Limited Oscilloscope Channels:</strong> The oscilloscope with the appropriate technical specification only supported two differential channels, far fewer than the 12 signals we needed to evaluate.</li>



<li><strong>Signal Integrity:</strong> Because the signals were differential, maintaining tight impedance matching and minimizing skew between the positive and negative legs was crucial.</li>



<li><strong>Automation Requirements:</strong> The test environment required fully automated control, eliminating manual reconnection of cables and ensuring repeatability across test runs.</li>
</ol>



<p class="wp-block-paragraph">This combination of constraints called for a custom, multiplexed routing solution—one that could dynamically connect any differential signal pair to the oscilloscope without degrading signal quality or requiring manual intervention.</p>



<h2 id="h-hardware-architecture" class="wp-block-heading">Hardware Architecture</h2>



<p class="wp-block-paragraph">The foundation of our system is built with an NI PXI Chassis, PXIe switching cards, and an oscilloscope. The switching cards from NI and Pickering each contained a matrix of DPDT relays that are controlled using our custom LabVIEW application. Using DPDT relays was crucial for the design because each relay would link the positive and negative lines of each signal, ensuring that each signal’s switching was synchronized.</p>



<figure class="wp-block-image size-full has-custom-border"><img decoding="async" width="757" height="630" src="https://static.dmcinfo.com/wp-content/uploads/2025/11/Scope-Routing-1.png" alt="Scope Routing" class="wp-image-39907" style="border-radius:20px" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/11/Scope-Routing-1.png 757w, https://static.dmcinfo.com/wp-content/uploads/2025/11/Scope-Routing-1-300x250.png 300w" sizes="(max-width: 757px) 100vw, 757px" /></figure>



<h3 id="h-signal-flow" class="wp-block-heading">Signal Flow</h3>



<ol class="wp-block-list">
<li><strong>Input Selection Tree:</strong> The twelve differential signals enter and exit our test fixture through the same custom harness connector. Each signal has one set of positive and negative lines for the input, and one set of positive and negative lines for the output, for 4 in total. The input lines of the desired signal enter the Pickering relay card and pass through a series of relays to route to the oscilloscope, creating a selection tree. The remaining eleven signals bypass the tree and go through the bypass path, which can then be optionally connected to a DMM, test fixture ground, or DUT (Device Under Test) ground as desired.</li>



<li><strong>Oscilloscope Measurement:</strong> The desired signal to measure passes through a 2 channel PXI Oscilloscope. The first oscilloscope channel would measure the positive signal line and ground, and the second channel would measure between the negative signal line and ground. This allows the user to view the components of the differential signal individually or view the total output by creating a math channel.</li>



<li><strong>Output Selection Tree:</strong> Just like the input side of the tree, the signal is routed from the oscilloscope to the output side of the custom harness connector. This allows the signal to be used elsewhere as opposed to terminating within the test fixture. The symmetry of the system is also critical for maintaining signal integrity.</li>
</ol>



<p class="wp-block-paragraph">Each relay closure is software-controlled, allowing instantaneous switching between signals without physically altering connections. The process is automated, so a user only needs to select a signal to route, and all the associated relay states will automatically change to reflect this, instead of manually setting relay states.</p>



<h2 id="h-custom-cable-harness-design" class="wp-block-heading">Custom Cable Harness Design</h2>



<p class="wp-block-paragraph">A significant part of the project involved developing the custom cable harnesses that interfaced the DUT signals with the PXI cards and oscilloscope.</p>



<p class="wp-block-paragraph">Because we were dealing with differential signals, cable symmetry and shielding were paramount. Each harness was constructed using shielded, twisted cables for each signal. This helped to reduce cross-talk between different signals in the harness. At the connection to the switch cards, several of the pins were shorted together, creating the paths among the different relays for the selection trees. Our harnesses also contained an internal resistor that could be used to terminate the signal after the oscilloscope, instead of routing it to the output. This could be used to simulate the presence of a different load on the output end if that hardware were not present.</p>



<h3 id="h-harness-concerns" class="wp-block-heading">Harness Concerns</h3>



<ol class="wp-block-list">
<li><strong>Input/Output Connectors: </strong>The harnesses utilized high signal integrity D38999 connectors for the signal input/output connectors to ensure the best possible signal integrity and compatibility without a DUT. The PXI connectors were 160-pin arrays that could connect all of the DPDT relay inputs and outputs, with plenty of space in the connector for internal pin-pin connections.</li>



<li><strong>Cable Routing:</strong> The cables were designed to minimize total length and bend as much as possible. Length and bending could have drastic effects on the signal integrity and could damage the internal wires.</li>



<li><strong>Shielding:</strong> All signals were routed using shielded, twisted cables. The shields were all tied together with a grounding screw to the shells of all connectors, where they would then make contact with the test fixture ground connection. This design ensured the most reliable signal integrity during later testing.</li>
</ol>



<p class="wp-block-paragraph">The result was a harness system that preserved the integrity of high-speed differential signals even through multiple routing layers.</p>



<h2 id="h-software-control-with-labview-and-pickering-drivers" class="wp-block-heading">Software Control with LabVIEW and Pickering Drivers</h2>



<p class="wp-block-paragraph">On the software side, we implemented the routing logic and user interface using a LabVIEW application. The app incorporates the Pickering pipx40 VISA driver library and the NI Switch library. Additionally, we created custom steps to be used in an automated TestStand sequence for automatic control within the LabVIEW application.</p>



<h3 id="h-signal-tree-ui" class="wp-block-heading">Signal Tree UI</h3>



<figure class="wp-block-image size-large is-resized has-custom-border"><img decoding="async" width="1024" height="671" src="https://static.dmcinfo.com/wp-content/uploads/2025/11/Selection-Tree-UI.drawio-1024x671.png" alt="Selection Tree UI" class="wp-image-39899" style="border-radius:20px;width:719px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/11/Selection-Tree-UI.drawio-1024x671.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2025/11/Selection-Tree-UI.drawio-300x197.png 300w, https://static.dmcinfo.com/wp-content/uploads/2025/11/Selection-Tree-UI.drawio-768x503.png 768w, https://static.dmcinfo.com/wp-content/uploads/2025/11/Selection-Tree-UI.drawio.png 1039w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">The UI for the selection tree shows all 12 signal inputs/outputs, as well as connector and PIN numbers. Using the “Signal Selection” and “Terminating Resistor On” controls will route the intended signal through the tree and can also add the harness’s built-in terminating resistor if desired. The UI also provides a visual representation to the user. For signals passing through the bypass path, the two busses in the middle allow the user to connect individual lines to the DMM leads or the different system grounds.</p>



<h3 id="h-safety-features" class="wp-block-heading">Safety Features</h3>



<p class="wp-block-paragraph">The UI also has built-in safety controls to prevent short circuits from damaging sensitive hardware. The UI does not allow multiple signal pairs to be routed through the oscilloscope simultaneously. If a user attempts to connect a second signal, the first signal will first be disconnected from the oscilloscope, and the UI will update to reflect this. Additionally, the bypass path busses in the middle do not allow multiple items to connect to the same bus, as this could also lead to shorting different signal lines together.</p>



<h2 id="h-maintaining-differential-signal-integrity" class="wp-block-heading">Maintaining Differential Signal Integrity</h2>



<p class="wp-block-paragraph">One of the most critical aspects of the design was ensuring differential signal integrity through the entire multiplexing path. Switching and routing introduce potential sources of error such as impedance mismatch, crosstalk, and common-mode noise.</p>



<p class="wp-block-paragraph">To minimize these effects, we implemented several design strategies:</p>



<ol class="wp-block-list">
<li><strong>Matched Differential Paths:</strong> Both legs of each differential pair were routed symmetrically, including through the PXIe switch card traces. When viewing the oscilloscope measurements with terminating resistors, the data was noticeably more distorted than when routing symmetrically.</li>



<li><strong>Connector Pinouts:</strong> When designing the harnesses, the component selection was not the only important factor in signal integrity. The pin locations on the input and output connectors had a large effect. Placing the positive and negative lines of a signal too far apart created more crosstalk between different signals, so it was vital to place the positive and negative pins of each signal on adjacent pins. Conversely, it was important to keep the input pins far from the output pins. This would tend to create more uniformity between the positive and negative signals.</li>



<li><strong>Short Routing Paths:</strong> The layout minimized total signal length and avoided cable bends as much as possible. This puts less strain on the cable and increases signal integrity.</li>



<li><strong>Relay Selection:</strong> Pickering’s DPDT relays were chosen for their low insertion loss, excellent channel-to-channel isolation, and consistent contact resistance.</li>
</ol>



<p class="wp-block-paragraph">After assembly, the system was validated using a custom LabVIEW application for measuring signal integrity, with more info on that found here: <a href="https://static.dmcinfo.com/blog/15780/creating-eye-diagrams-using-labview-jitter-analysis-toolkit/">Creating Eye Diagrams using LabVIEW Jitter Analysis</a>.</p>



<h2 id="h-results-and-performance" class="wp-block-heading">Results and Performance</h2>



<p class="wp-block-paragraph">The completed system successfully allowed any of the 12 differential signals to be routed to the oscilloscope in under 100 MS, with no measurable degradation in signal amplitude or timing. Signal skew between differential lines was consistently below 10 PS, and insertion loss was negligible across the frequency range of interest.</p>



<p class="wp-block-paragraph">Users reported significantly improved workflow efficiency, with no more manual re-cabling, reduced setup time, and fully automated test runs. The system has been integrated into both R&amp;D and production environments, where it continues to provide reliable, flexible differential signal monitoring.</p>



<h3 id="h-lessons-learned" class="wp-block-heading">Lessons Learned</h3>



<p class="wp-block-paragraph">Developing a multiplexed oscilloscope system for differential signals highlighted several key insights:</p>



<ol start="1" class="wp-block-list">
<li><strong>Signal Integrity Comes First</strong> – Hardware design decisions must prioritize impedance control and symmetry from the outset.</li>



<li><strong>Modular Design Simplifies Expansion –</strong> The PXI platform made it easy to expand from 8 to 12 channels by adding another matrix module.</li>



<li><strong>Software Flexibility Adds Value –</strong> The ability to automate and visualize routing in LabVIEW dramatically improved usability and test throughput.</li>
</ol>



<h2 id="h-conclusion" class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">By combining PXI hardware, precision cable design, and a LabVIEW control interface, we developed a custom oscilloscope multiplexing solution capable of routing 12 differential signals to a single measurement instrument. This approach preserved signal integrity, reduced manual intervention, and enabled fast and automated analysis of high-speed differential waveforms.</p>



<p class="wp-block-paragraph">The system demonstrates how thoughtful integration of modular hardware and flexible software can overcome real-world measurement challenges. Whether used in validation labs or automated test stands, custom multiplexing architectures like this can extend the capabilities of existing oscilloscopes and simplify complex signal analysis tasks.</p>



<div class="wp-block-group alignwide has-custom-light-blue-background-color has-background is-layout-flow wp-container-core-group-is-layout-dbd34961 wp-block-group-is-layout-flow" style="border-radius:20px;margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--50);padding-right:0;padding-bottom:var(--wp--preset--spacing--50);padding-left:0">
<div class="wp-block-columns alignwide are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-43efaee5 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)">
<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:85%">
<h3 class="wp-block-heading has-text-align-left" id="h-have-an-upcoming-project-dmc-can-help-you-take-the-next-step">Solve Complex Test Challenges, Meet Our Test &amp; Measurement Experts.</h3>



<p class="has-text-align-left wp-block-paragraph" id="h-need-help-turning-ideas-into-outcomes-automation-project-to-the-next-level-contact-us-today-to-learn-more-about-our-solutions-and-how-we-can-help-you-achieve-your-goals">From custom PXI systems and <a href="https://static.dmcinfo.com/services/test-and-measurement-automation/labview-programming/" data-type="page" data-id="584">LabVIEW</a> development to high-speed signal analysis, Explore how DMC&#8217;s <a href="https://static.dmcinfo.com/services/test-and-measurement-automation/" data-type="page" data-id="428">Test &amp; Measurement</a> experts can support your next project.</p>
</div>



<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<div class="wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-2236275c wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-base-contrast-color has-text-color has-link-color wp-element-button" href="https://static.dmcinfo.com/contact/">Contact Us</a></div>
</div>
</div>
</div>
</div>
<p>The post <a href="https://static.dmcinfo.com/blog/39895/custom-oscilloscope-multiplexing-for-differential-signals/">Custom Oscilloscope Multiplexing for Differential Signals</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Creating Eye Diagrams Using LabVIEW Jitter Analysis Toolkit</title>
		<link>https://static.dmcinfo.com/blog/15780/creating-eye-diagrams-using-labview-jitter-analysis-toolkit/</link>
		
		<dc:creator><![CDATA[Andrew Croissant]]></dc:creator>
		<pubDate>Wed, 18 Dec 2024 17:05:11 +0000</pubDate>
				<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[Test and Measurement Automation]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/?p=15780</guid>

					<description><![CDATA[<p>Eye diagrams are a method of evaluating the quality of a digital signal. They can be used to show how signals are distorted while passing through a system, which can help diagnose if a receiver is reading incorrect data. A good eye diagram will overlay multiple 3-bit sequences within a digital signal to produce a [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/15780/creating-eye-diagrams-using-labview-jitter-analysis-toolkit/">Creating Eye Diagrams Using LabVIEW Jitter Analysis Toolkit</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Eye diagrams are a method of evaluating the quality of a digital signal. They can be used to show how signals are distorted while passing through a system, which can help diagnose if a receiver is reading incorrect data. A good eye diagram will overlay multiple 3-bit sequences within a digital signal to produce a single image capturing every possible rising and falling edge.</p>



<h2 class="wp-block-heading" id="h-generating-a-proper-signal">Generating a Proper Signal</h2>



<p class="wp-block-paragraph">To create an eye diagram, a digital signal is required. Eye diagrams overlay multiple bit transitions on a single plot to show how the signal transitions between high and low bits. A good signal for eye diagrams will contain at least one occurrence of every possible 3-bit sequence (000, 001, 010,&#8230;). The easiest way to automate this process is to send a data signal of 0000 0101 0011 1001 0111 0111 continuously and measure the waveform with an oscilloscope. The datatypes available to use are DBL or I8. The waveform data can either be sent directly to the eye diagram generator or saved to a .csv or .tdms file and processed later into an eye diagram.</p>



<h2 class="wp-block-heading" id="h-creating-eye-diagrams-in-labview">Creating Eye Diagrams in LabVIEW</h2>



<p class="wp-block-paragraph">The first step in creating an eye diagram in LabVIEW is to install the LabVIEW Jitter Analysis Toolkit. Once that is installed, the necessary VI&#8217;s can be found by right-clicking, then Addons -> Jitter Analysis. Creating an eye diagram will use VI&#8217;s from the &#8220;Level&#8221;, &#8220;Timing&#8221;, &#8220;Clock Recovery&#8221;, and &#8220;Eye Diagram&#8221; groups to find the transitions, level crossings, and reference levels, then format into a diagram.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/VI-Block-Diagram.png" alt="VI Block Diagram"/></figure>



<h2 class="wp-block-heading" id="h-reference-levels">Reference Levels</h2>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Reference-Levels.png" alt="Reference Levels"/></figure>



<p class="wp-block-paragraph">The Reference Levels VI is the first data processing step. For this application, the &#8220;waveform in&#8221; option is used with the appropriate data type selected. This VI is used to determine the voltage of the HI and LO states (state levels), and the voltage at which it registers a transition (reference levels). The state-level settings and reference-level settings are not required, but they can be used to configure how the levels are detected. The state-level settings allow the user to configure if the HI and LO are determined by a histogram (default), which sorts waveform points into the upper and lower 40% to determine the state levels. The reference levels settings allow the user to configure whether the reference levels are determined by a percent of the state levels or by an absolute voltage. The state levels and reference levels determine where the waveform is segmented for state transitions.</p>



<h2 class="wp-block-heading" id="h-find-transitions">Find Transitions</h2>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Find-Transitions.png" alt=""/></figure>



<p class="wp-block-paragraph">The Find&nbsp;Transitions VI&nbsp;is used to find the transition points between states in the input waveform. Using the state levels and reference levels from the previous step alongside the waveform, it parses through the waveform data and finds the points at which the voltage crosses the high and low reference levels. The transitions output contains an array in which each element has a start index, stop index, and rising/falling edge indicator. The transitions output also contains duplicates of the state levels and reference levels to be used in future steps.</p>



<h2 class="wp-block-heading" id="h-level-crossings">Level Crossings</h2>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Level-Crossings.png" alt="Find Transitions"/></figure>



<p class="wp-block-paragraph">The Level Crossings VI is a polymorphic VI found in the &#8220;Timing&#8221; group of the Jitter Analysis Toolkit.&nbsp;For this application, the &#8220;transitions in&#8221; option is used with the appropriate data type selected. It is important to note that selecting the &#8220;levels in&#8221; option is possible and would combine the functionality of the Find Transitions and Level Crossings steps into one VI if desired. This VI finds the points at which the waveform crosses the specified crossing&nbsp;level. If no input is supplied, the mid reference level will be used instead. The level crossings output contains an array of all the indices at which the waveform crosses the crossing&nbsp;level and its slope.</p>



<h2 class="wp-block-heading" id="h-clock-recovery">Clock Recovery</h2>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Clock-Recovery.png" alt="Level Crossings"/></figure>



<p class="wp-block-paragraph">The Clock Recovery VI synchronizes the waveform to a recovered internal clock using a best fit of the reference to the level crossings. The ref level crossings output is the same data type as the level crossings output. Its indices array contains synchronized points at which the waveform crosses the mid reference level. The unit interval is also the best fit duration in seconds of one single bit of data in the waveform. Both the ref level crossings and unit interval are used in the next setup, creating the eye diagram data.</p>



<h2 class="wp-block-heading" id="h-eye-data-generation">Eye Data Generation</h2>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Eye-Data-Generation.png" alt="Clock Recovery"/></figure>



<p class="wp-block-paragraph">The Eye Data Generation VI creates the histogram that will be used to make the final diagram. The eye diagram data cluster contains a 2D array of histogram data, along with an array of the start and end indices of each segment on the plot. It also contains scaling information about the minimum and maximum time and voltages that will be used in the plot. The resolution control changes how many histogram bins will be dedicated to the time and voltage axes. This corresponds to the number of pixels that will be used in the x and y axes of the final plot. The default setting is 400&#215;200.</p>



<h2 class="wp-block-heading" id="h-eye-height-and-width">Eye Height and Width</h2>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Eye-Height-and-Width.png" alt="Eye Data Generation"/></figure>



<p class="wp-block-paragraph">The Eye Diagram Height and Width VI calculates the height at the location specified by the time input. The time input is the percent along the unit interval at which the measurement will be taken, with the default value being 0.5. The width is measured at the voltage specified by the level input. If the input is blank, the default value is the mid ref level from the Reference Levels VI. Both the height and width are calculated by finding the mean upper and lower bounds, 3 standard deviations from their means, and finding the difference between them. The height and width are both outputs of the vi, and also a part of the eye diagram data out cluster. This VI is not necessary in plotting the eye diagram, but important for determining quantitative results.</p>



<h2 class="wp-block-heading" id="h-eye-diagram-support">Eye Diagram Support</h2>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Eye-Diagram-Support.png" alt="Eye Height and Width"/></figure>



<p class="wp-block-paragraph">The Eye Diagram Support VI extracts the histogram data as a 2D array scaled from 0 to 1. Because the histogram is a 3D representation of data, the value of each element in the array represents the intensity of the signal integrity at that pixel of the final graph. This VI allows the user to plot the height/width as well. Enabling this will plot a cross centered at the center of the graph, with the height and width determined by the previous step. The better the signal integrity is, the bigger the cross will be. The VI also outputs the x and y scales, which are used to set the x and y axes of the resulting graph.</p>



<h2 class="wp-block-heading" id="h-eye-color-and-scale-generation">Eye Color and Scale Generation</h2>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Eye-Color-and-Scale-Generation.png" alt="Eye Diagram Support"/></figure>



<p class="wp-block-paragraph">The last jitter analysis step is the Eye Color and Scale Generation VI, which allows the user to adjust the color appearance of the graph. The color settings control allows the user to determine the color mapping type, hue, and background color. The default (shown in the example picture) is a single hue mapping type, with a dark blue hue (#0003b4) and a black background (#000000). This means that the lower-intensity histogram values appear in dark blue, and the higher-intensity values appear in white. Changing the mapping to rainbow hue will map the higher intensity values in the selected hue color, and the lower intensity values as far from the selected color as possible, resembling a heat map. The output marker values are an array of the colors that will be used based on the selected inputs. This will be used in the property node to control the final plot. It is important to also set the ignore array property to false, otherwise the colors selected will be overridden with the default instead.</p>
<p>The post <a href="https://static.dmcinfo.com/blog/15780/creating-eye-diagrams-using-labview-jitter-analysis-toolkit/">Creating Eye Diagrams Using LabVIEW Jitter Analysis Toolkit</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
