<?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>Jeremy Green, Author at DMC, Inc.</title>
	<atom:link href="https://static.dmcinfo.com/blog/author/jeremyg/feed/index.xml" rel="self" type="application/rss+xml" />
	<link></link>
	<description></description>
	<lastBuildDate>Thu, 09 Jul 2026 14:28:39 +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>Jeremy Green, Author at DMC, Inc.</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>NI LabVIEW Part 2: Synchronized Data Acquisition across Distributed FPGA Chassis</title>
		<link>https://static.dmcinfo.com/blog/23836/ni-labview-part-2-synchronized-data-acquisition-across-distributed-fpga-chassis/</link>
		
		<dc:creator><![CDATA[Jeremy Green]]></dc:creator>
		<pubDate>Tue, 10 Oct 2017 09:26:52 +0000</pubDate>
				<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[Test and Measurement Automation]]></category>
		<category><![CDATA[LabVIEW for Real-Time and FPGA]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/23836/ni-labview-part-2-synchronized-data-acquisition-across-distributed-fpga-chassis/</guid>

					<description><![CDATA[<p>In this section, we&apos;ll discuss data acquisition using the multiple FPGA chassis architecture outlined in the previous section,&#160;NI LabVIEW Part 1: Building Distributed and Synchronized FPGA Applications with Multiple C Series Chassis.&#160;If you haven&#8217;t already, refer to Part 1 of 3 for Distributed FPGA Chassis Time synchronization. We use LabVIEW DMA FIFOs for typical FPGA [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/23836/ni-labview-part-2-synchronized-data-acquisition-across-distributed-fpga-chassis/">NI LabVIEW Part 2: Synchronized Data Acquisition across Distributed FPGA Chassis</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">In this section, we&apos;ll discuss data acquisition using the multiple FPGA chassis architecture outlined in the previous section,&nbsp;<a href="https://static.dmcinfo.com/latest-thinking/blog/id/9322/ni-labview-building-distributed-and-synchronized-fpga-applications-with-multiple-c-series-chassis">NI LabVIEW Part 1: Building Distributed and Synchronized FPGA Applications with Multiple C Series Chassis</a>.&nbsp;If you haven&rsquo;t already, refer to Part 1 of 3 for Distributed FPGA Chassis Time synchronization.</p>

<p class="wp-block-paragraph">We use LabVIEW DMA FIFOs for typical FPGA applications that acquire data to be sent to an RT target(Host). There are a lot of ways to use FIFOs for transporting data from the FPGA to the RT target. We will outline several of these options and present a generalized data transfer mechanism for synchronized DAQ on multiple chassis.</p>

<p class="wp-block-paragraph">Let&apos;s start by outlining our requirements and then build then up a solution which considers several different options for transferring data from the FPGA to the host.</p>

<ol class="wp-block-list" start="1">
</ol>

<h2 class="wp-block-heading">Outlining the Requirements</h2>

<p class="wp-block-paragraph">Requirements:</p>

<ol class="wp-block-list">
 <li>The system has a high channel count.</li>
 <br />
 <li>There are a variety of different data types in the channels being acquired.</li>
 <br />
 <li>Channels may be acquired from different loops that execute at different loop rates.</li>
 <br />
 <li>Channel data acquisition times must be synchronized across multiple chasses.</li>
</ol>

<h2 class="wp-block-heading">Schemes for Transferring Data</h2>

<p class="wp-block-paragraph">The <strong>DMA FIFO</strong> is the fundamental block for lossless transfer of data between an&nbsp;FPGA application and the host.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/NI-LabVIEW-Part-2-Picture-1.jpg"  /></figure>

<p class="wp-block-paragraph">Using this building block, let&rsquo;s discuss the progression of a generalized DAQ architecture starting with a single chassis implementation.</p>

<h2 class="wp-block-heading">Single Channel Data Transfer</h2>

<p class="wp-block-paragraph">The simplest scheme for transferring channel data is when you&rsquo;re acquiring data for a single channel.</p>

<p class="wp-block-paragraph">In this scenario, you can write the data into the FIFO as it&rsquo;s being acquired. As the host is acquiring data from the FPGA, it is guaranteed to be a sequential, ordered series of samples for that channel.</p>

<h2 class="wp-block-heading">Multi-Channel Data Transfer</h2>

<p class="wp-block-paragraph">In most instances, we will want to acquire more than (1) channel of data, so the natural <strong>next step for this is to interleave the data</strong> that is being written to the FIFO. For a fixed channel list, this interleaved ordering can be pre-defined. That data can then be decimated using that ordering when it is&nbsp;read from the host.</p>

<p class="wp-block-paragraph"><strong>Example FIFO ordering:<span id="cke_bm_1090C" style="display: none;">&nbsp;</span></strong></p>

<p class="wp-block-paragraph">[channel 1 &ndash; sample 1, channel 2-sample 1, ch3-s1, &hellip; , chN-s1],</p>

<p class="wp-block-paragraph">[channel 1 &ndash; sample 2, channel 2-sample 2, ch3-s2, &hellip; , chN-s2],</p>

<p class="wp-block-paragraph">&hellip; ,</p>

<p class="wp-block-paragraph">[channel 1-sample N, channel 2-sample N, ch3-sN, &hellip;, chN-sN]</p>

<h2 class="wp-block-heading">Differing Acquisition Rates</h2>

<p class="wp-block-paragraph">In the most generalized approach, it is not guaranteed that every channel will be acquired at the same rate. If you only have a few different acquisition rates, you could potentially use a separate FPGA-to-Host FIFO for each acquisition loop/rate.</p>

<p class="wp-block-paragraph">If you can only use a single FIFO for transferring data or have more DAQ loop rates than FIFO channels, we would like to be able to use a single FIFO for acquiring data from all of the different sources/loops in our application.</p>

<p class="wp-block-paragraph">In the example shown below, we have a 1Khz control loop that may contain some output channels or internal calculated channels that we would like to acquire as well as a more standard DAQ loop running at 5Khz.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/NI-LabVIEW-Part-2-Picture-2.jpg"  /></figure>

<h2 class="wp-block-heading">Including Additional Information</h2>

<p class="wp-block-paragraph">We can no longer assume what the ordering of the channels written to the FIFO will be, so we need to include additional information along with each channel&rsquo;s sample value to identify it on the Host. By setting the FIFO data type to be u64, we can pack additional information to be included with each channel.</p>

<p class="wp-block-paragraph">In the example below, we can include a channel ID in addition to the channel data&rsquo;s value&nbsp;so the Host can parse which value is associated with which channel ID.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/NI-LabVIEW-Part-2-Picture-3-Smaller.jpg"  /></figure>

<h2 class="wp-block-heading">What About Timing?</h2>

<p class="wp-block-paragraph"><strong>With the single channel acquisition or interleaved approach</strong>, we can infer the time delta between each sample. When capturing channels throughout a general FPGA application, we should have a strategy for capturing timing information with the samples we&rsquo;re acquiring. One way to achieve this is to <strong>include a base clock value that is packed along with the channel ID and channel value</strong>:</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/NI-LabVIEW-Part-2-Picture-4-Smaller.jpg"  /></figure>

<p class="wp-block-paragraph">Another option, <strong>if your application can tolerate less resolution per channel,</strong> would be to periodically <strong>send a special timestamp channel value at a regular interval</strong>. This unique timing channel can be used on the host side for determining when to aggregate a set of channel data. It can attach a single timestamp to all of the channel values received since the last timestamp value was received through the FIFO.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/NI-LabVIEW-Part-2-Picture-5.jpg"  /></figure>

<h2 class="wp-block-heading">Considering Scale</h2>

<p class="wp-block-paragraph">The final step for this architecture is to consider how it scales with multiple FPGA chassis. In the previous section, we were able to generate a synchronized base clock value across all chassis. By using this synchronized base clock as the time stamp included with the channel values, we can achieve synchronized data acquisition across multiple chassis.</p>

<p class="wp-block-paragraph">In the diagram below, you can see what this architecture might look like on the RT/Host side. Multiple parallel loops will be used for acquiring data from the FIFOs, Scaling the data, and then aggregating the data to be disseminated throughout the RT-Host application.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/NI-LabVIEW-Part-2-Picture-6.jpg"  /></figure>

<p class="wp-block-paragraph">The last part of the architecture considers how to share data between chassis without involving the RT.</p>

<p class="wp-block-paragraph">Stay tuned for synchronous data sharing between FPGA chassis using NI 9853 CAN module!</p>

<p class="wp-block-paragraph"><strong><a href="https://static.dmcinfo.com/services/test-and-measurement-automation/labview-programming-for-real-time-and-fpga">Learn more about DMC&apos;s FPGA programming expertise.</a></strong></p>
<p>The post <a href="https://static.dmcinfo.com/blog/23836/ni-labview-part-2-synchronized-data-acquisition-across-distributed-fpga-chassis/">NI LabVIEW Part 2: Synchronized Data Acquisition across Distributed FPGA Chassis</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>NI LabVIEW Part 1: Building Distributed and Synchronized FPGA Applications with Multiple C Series Chassis</title>
		<link>https://static.dmcinfo.com/blog/24977/ni-labview-part-1-building-distributed-and-synchronized-fpga-applications-with-multiple-c-series-chassis/</link>
		
		<dc:creator><![CDATA[Jeremy Green]]></dc:creator>
		<pubDate>Tue, 01 Nov 2016 13:57:30 +0000</pubDate>
				<category><![CDATA[Test and Measurement Automation]]></category>
		<category><![CDATA[LabVIEW for Real-Time and FPGA]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/24977/ni-labview-part-1-building-distributed-and-synchronized-fpga-applications-with-multiple-c-series-chassis/</guid>

					<description><![CDATA[<p>This blog series will examine applications requiring multiple C Series FPGA chassis. You may need multiple chassis because of a high channel count requiring more modules than&#160;which can fit in a single chassis. Or, you may have a large amount of FPGA logic that can&#8217;t fit on a single FPGA chip. If needed, the generalized [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/24977/ni-labview-part-1-building-distributed-and-synchronized-fpga-applications-with-multiple-c-series-chassis/">NI LabVIEW Part 1: Building Distributed and Synchronized FPGA Applications with Multiple C Series Chassis</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">This blog series will examine applications requiring multiple C Series <a href="https://static.dmcinfo.com/services/test-and-measurement-automation/labview-programming-for-real-time-and-fpga">FPGA</a> chassis. You may need multiple chassis because of a high channel count requiring more modules than&nbsp;which can fit in a single chassis. Or, you may have a large amount of FPGA logic that can&rsquo;t fit on a single FPGA chip. If needed, the generalized architecture presented here may provide ideas for how to achieve tight synchronization between FPGA code running on these different chassis.&nbsp;</p>

<p class="wp-block-paragraph">As a quick overview of what we&rsquo;ll discuss, we&rsquo;ll be working towards an architecture shown below. Part 1 of this series will review how to achieve timing synchronization between the FPGA chassis using National Instruments&nbsp;9469 time sync modules. <a href="https://static.dmcinfo.com/latest-thinking/blog/id/9513/ni-labview-part-2-synchronized-data-acquisition-across-distributed-fpga-chassis">Part 2</a> will look at how to integrate synchronized data acquisition with an RT host application. Part 3 will review how to achieve data sharing between FPGA chassis using NI 9853 CAN modules.</p>

<p class="wp-block-paragraph"><figure class="wp-block-image"><img decoding="async" alt="Diagram of distributed and synchronized FPGA applications" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Distributed-and-Synchronized-FPGA-applications.jpg"  /></figure><br />
&nbsp;<br />
Our goal is simple:</p>

<p class="wp-block-paragraph"><figure class="wp-block-image"><img decoding="async" alt="Diagram of distributed and synchronized FPGA applications using C-series chassis" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/FPGA-applications-with-C-series-chassis.jpg"  /></figure>&nbsp;</p>

<p class="wp-block-paragraph">Unfortunately, National Instruments&nbsp;hasn&rsquo;t released the 60-slot mega chassis yet, so we&rsquo;ll strive to achieve similar function and capabilities using multiple chassis with timing synchronization and data sharing.&nbsp;</p>

<h2 class="wp-block-heading">Part 1 of 3: Distributed FPGA Chassis Time Synchronization Using NI 9469 C Series Module</h2>

<p class="wp-block-paragraph">The first step to building up this architecture is to synchronize the clocks between the different FPGA chassis. We&rsquo;ll achieve this using the NI 9469 time sync module that was designed specifically for synchronization requirements like this.&nbsp;</p>

<p class="wp-block-paragraph">The NI 9469 synchronization module is essentially a high-speed digital I/O module that encapsulates the underlying digital signals to provide a simple API for synchronization functionality.</p>

<figure class="wp-block-image"><img decoding="async" alt="The NI 9469 synchronization module provides API for synchronization functionality" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/NI-9469-synchronization-module.jpg"  /></figure>

<p class="wp-block-paragraph">In general, you configure the 9469 module to operate as a node in one of several &ldquo;Single Master, Multiple Slave&rdquo; topologies. Every chassis that you use will have one of these 9469 modules. A few of these different topologies are shown here:</p>

<figure class="wp-block-image"><img decoding="async" alt="The NI 9469 module can be configured in a tree topology" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/tree-topology.jpg"  /></figure>

<figure class="wp-block-image"><img decoding="async" alt="The NI 9469 module can be configured in a star topology" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/star-topology.jpg"  /></figure>

<p class="wp-block-paragraph"><figure class="wp-block-image"><img decoding="async" alt="The NI 9469 module can be configured in a daisychain topology" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/daisychain-topology.jpg"  /></figure>In our own application, it made sense to use the daisychain topology, but that could change depending on your own requirements.&nbsp;</p>

<p class="wp-block-paragraph">The master chassis in this configuration can send a trigger (digital pulse) to one or more slaves, which upon receiving the triggers can perform some action(s) synchronously.</p>

<p class="wp-block-paragraph">The API for the 9469 module includes two invoke nodes that are used in your FPGA code.</p>

<p class="wp-block-paragraph">For Sending Triggers from a Master:<br />
<figure class="wp-block-image"><img decoding="async" alt="NI 9469 module invoke node for sending triggers from a master" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/NI-9469-send-triggers-from-a-master.jpg"  /></figure><br />
And for Receiving Triggers at a Slave or Master (Master can receive its own trigger &ndash; useful for synchronizing functions on both a master and slave):<br />
<figure class="wp-block-image"><img decoding="async" alt="NI 9469 module invoke node for receiving triggers" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/NI-9469-receive-triggers.jpg"  /></figure><br />
To generate a clock that is synchronized across all of your FPGA chassis, you can use a loop on the master chassis that is timed to send a trigger at a particular frequency. In the example below, we&rsquo;re sending a trigger every 400 ticks. For a 40 MHz FPGA clock, that will equate to a 100Khz trigger send frequency. The frequency at which we send triggers to all FPGA chassis will become our base clock frequency. We&rsquo;ve also added a trigger enable register so that we can control when to send triggers from the host application.</p>

<p class="wp-block-paragraph"><figure class="wp-block-image"><img decoding="async" alt="Generate a clock that is synchronized across all of your FPGA chassis" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/clock-synchronized-FPGA-chassis.jpg"  /></figure>&nbsp;<br />
For receiving triggers, we can have the &ldquo;Wait On Trigger&rdquo; node in a while loop as well. This loop will be solely dedicated to receiving triggers which will then set an occurrence. That base clock occurrence can then be divided into other rates for use throughout the FPGA application.</p>

<figure class="wp-block-image"><img decoding="async" alt="Divide the base clock occurrence into other rates for the FPGA application" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Divide-base-clock-occurrence-rates-in-FPGA.jpg"  /></figure>

<p class="wp-block-paragraph">An example of this is shown below. Here, the base clock is divided into multiple different clock rates that are used throughout the FPGA application. The event divider VI counts the number of iterations it is called and outputs true on an interval that is wired into its input. Here, a divider of 1 yields the same frequency, 100 KHz. A divider of 20 yields 5Khz, etc. If we have multiple loops that will run at a particular frequency, then we can set multiple occurrences as in the 5Khz clock in this example.&nbsp;</p>

<p class="wp-block-paragraph"><figure class="wp-block-image"><img decoding="async" alt="The base clock is divided into multiple different clock rates that are used throughout the FPGA application" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/FPGA-base-clock-rates-divided.jpg"  /></figure>&nbsp;</p>

<p class="wp-block-paragraph">In addition to driving different loop rates, we will also be incrementing a base clock register. This base clock register can then be used for time stamping channel values, which will be described in Part 2: Synchronized Data Acquisition Across Distributed FPGA Chassis.</p>

<p class="wp-block-paragraph">Since each chassis has its own copy of the base clock register, they are all incrementing off the same triggers from the master chassis. The base clock register values will always be the same across all chassis.</p>

<p class="wp-block-paragraph">On initialization of the FPGA chassis, it is helpful to sync up the base clock registers via a procedure on RT. In general, a routine from the host application that follows the following steps will sync up the base clock registers on startup:</p>

<ol class="wp-block-list">
 <li>Disable all triggers</li>
 <li>Reset base clock register to 0 on all chassis</li>
 <li>Enable &ldquo;Wait on Trigger&rdquo; loops on all slave chassis</li>
 <li>Enable &ldquo;Send Triggers&rdquo; loop on master chassis</li>
</ol>

<p class="wp-block-paragraph">We&rsquo;ve now completed reviewing the core components of timing synchronization between chassis. In addition to what we&rsquo;ve reviewed here, you can augment these components with additional fault handling:</p>

<ol class="wp-block-list">
 <li>If a chassis is missing trigger pulses, we need to make sure this is detected and that loops will continue to execute in absence of triggers being received from the master. You would need to switch to using the local clock in this scenario.</li>
 <li>Use an additional trigger line for verifying the base clock trigger line. For example, if you send a trigger on the second trigger line once for every 1,000 triggers on your base clock trigger line, then you can count and ensure you&rsquo;re always receiving 1,000 triggers between triggers you receive on that second trigger line.</li>
</ol>

<p class="wp-block-paragraph">That wraps it up for Part 1, stay tuned for Part 2: Synchronized Data Acquisition Across Distributed FPGA Chassis!</p>

<p class="wp-block-paragraph"><strong><a href="https://static.dmcinfo.com/services/test-and-measurement-automation/labview-programming-for-real-time-and-fpga">Learn more about DMC&apos;s FPGA programming expertise.</a></strong></p>
<p>The post <a href="https://static.dmcinfo.com/blog/24977/ni-labview-part-1-building-distributed-and-synchronized-fpga-applications-with-multiple-c-series-chassis/">NI LabVIEW Part 1: Building Distributed and Synchronized FPGA Applications with Multiple C Series Chassis</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Chicagoland LabVIEW User Group Meeting at DMC</title>
		<link>https://static.dmcinfo.com/blog/26272/chicagoland-labview-user-group-meeting-at-dmc/</link>
		
		<dc:creator><![CDATA[Jeremy Green]]></dc:creator>
		<pubDate>Mon, 05 Oct 2015 10:58:11 +0000</pubDate>
				<category><![CDATA[Chicago]]></category>
		<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[Special Events]]></category>
		<category><![CDATA[Test and Measurement Automation]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/26272/chicagoland-labview-user-group-meeting-at-dmc/</guid>

					<description><![CDATA[<p>DMC hosted the Chicagoland LabVIEW User&#8217;s Group meeting at our office last month. It was another great turnout with over 30 local LabVIEW users and National Instruments present as well, with Kalin Taskov and Al Rudnick joining to participate. After several years of being a part of a great user group, Chicago brought home the [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/26272/chicagoland-labview-user-group-meeting-at-dmc/">Chicagoland LabVIEW User Group Meeting at DMC</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">DMC hosted the <a href="https://decibel.ni.com/content/groups/chicagougm" target="_blank">Chicagoland LabVIEW User&rsquo;s Group</a> meeting at our office last month. <span style="line-height: 20.8px;">It was another great turnout with over 30 local LabVIEW users and National Instruments present as well, with Kalin Taskov and Al Rudnick joining to participate.</span></p>

<p class="wp-block-paragraph">After several years of being a part of a great user group, Chicago brought home the hardware for the best user group of the year at <a href="/latest-thinking/blog/id/9070/niweek-2015-recap">NIWeek 2015</a>&nbsp;for the second consecutive year!&nbsp;</p>

<p class="wp-block-paragraph"><figure class="wp-block-image"><img decoding="async" alt="Chicago Brings Home the Lugnut Award for Best LabVIEW User Group" class="MobileImage" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/chicagoland-lugnut-award.jpg"  /></figure><br />
&nbsp;<br />
<a href="/latest-thinking/blog/id/9069/dmc-hosts-chicago-labview-user-group-meeting-on-august-20">This meeting</a>&apos;s topic, LabVIEW User Interface Design, included presentations and hands-on exercises that can be found on the <a href="https://decibel.ni.com/content/docs/DOC-43849" target="_blank">user community board</a>. Topics ranged from creating better controls and indicators, screen navigation, and dialog pop-up best practices to specific technical considerations and style tips and tricks. It was a great discussion, where we broke down all the challenges and techniques of turning a user interface like this:</p>

<p class="wp-block-paragraph"><figure class="wp-block-image"><img decoding="async" alt="Example of an Outdated User Interface in LabVIEW" class="MobileImage" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/chicagoland-ni-user-group-01.png"  /></figure><br />
&nbsp;<br />
Into something like this:&nbsp;</p>

<figure class="wp-block-image"><img decoding="async" alt="Example of a Clean, Sleek User Interface in LabVIEW" class="MobileImage" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/chicagoland-ni-user-group-02.png"  /></figure>

<p class="wp-block-paragraph">Of course, you can&rsquo;t have a Chicagoland User Group meeting at DMC without some sunshine, cold beers, and food on our rooftop! It was a great opportunity to socialize and get to know the diverse group of LabVIEW users from all around Chicago.</p>

<p class="wp-block-paragraph"><a href="/services/test-and-measurement-automation/labview-programming">Learn more about DMC&apos;s LabVIEW Programming services.</a></p>
<p>The post <a href="https://static.dmcinfo.com/blog/26272/chicagoland-labview-user-group-meeting-at-dmc/">Chicagoland LabVIEW User Group Meeting at DMC</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>NI Week 2013 Recap</title>
		<link>https://static.dmcinfo.com/blog/28153/ni-week-2013-recap/</link>
		
		<dc:creator><![CDATA[Jeremy Green]]></dc:creator>
		<pubDate>Mon, 12 Aug 2013 13:58:45 +0000</pubDate>
				<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[Special Events]]></category>
		<category><![CDATA[Test and Measurement Automation]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/28153/ni-week-2013-recap/</guid>

					<description><![CDATA[<p>I&apos;ve just finished attending my first NI Week, and I&apos;ve definitely picked up a bunch of useful skills! Having started with LabVIEW less than a year ago, I took advantage of learning the latest technologies, best practices, and tried and true architectures during my stay in Austin. Getting to hear from LabVIEW and Test Automation [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/28153/ni-week-2013-recap/">NI Week 2013 Recap</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">I&apos;ve just finished attending my first <a href="http://www.ni.com/niweek/" target="_blank">NI Week</a>, and I&apos;ve definitely picked up a bunch of useful skills! Having started with <a href="http://www.ni.com/labview/" target="_blank">LabVIEW</a> less than a year ago, I took advantage of learning the latest technologies, best practices, and tried and true architectures during my stay in Austin. Getting to hear from LabVIEW and Test Automation experts or NI staff was particularly useful. Many of them had 10-15 years experience in the field or developing tools at NI. Additionally, some great team building activities with other DMCers such as paddle boarding made this trip a lot of fun! Trekking a mile and a half through 105 degree Texas heat to sample the legendary <a href="http://www.torchystacos.com/" target="_blank">Torchy&apos;s Tacos</a> on our last day was pretty memorable as well.</p>

<p class="wp-block-paragraph">Some of my favorite parts of the technical sessions involved picking up the latest tips, tricks, and best practices. Learning the &quot;why&quot; behind design choices depending on the situation was useful to hear from other Alliance Members outside of DMC. From an in-depth discussion of designing applications with the Queued Message Handler architecture to the new capabilities of <a href="http://www.ni.com/labview/whatsnew/" target="_blank">user events for 2013</a>, there have been many additions to my tool box for solving problems using LabVIEW. The opportunity to interact with the NI developers that created many of the tools and APIs that are available was interesting as well.</p>

<p class="wp-block-paragraph">One of NI&apos;s Technologies that was particularly interesting for standardizing test applications was <a href="http://www.ni.com/teststand/" target="_blank">TestStand</a>. During a hands on session I used TestStand with a PXI controller, and I was able to get a good feel for its capabilities. Applications requiring test sequencing and scheduling, customized report generation, and data logging could potentially take advantage of this software and speed up development time. We&apos;ll definitely be on the lookout for future projects that could take advantage of this tool!</p>

<p class="wp-block-paragraph">Overall, NI Week was a success, and I can&apos;t wait to try out what I&apos;ve learned on my next LabVIEW project!</p>

<p class="wp-block-paragraph"><strong>Check out other NI Week 2013 blog posts:</strong></p>

<p class="wp-block-paragraph"><a href="/latest-thinking/blog/articletype/articleview/articleid/8594/dmc-at-ni-week-2013" target="blank">DMC at NI Week 2013</a></p>

<p class="wp-block-paragraph"><a href="/latest-thinking/blog/articletype/articleview/articleid/8597/new-fpga-tools-from-ni-and-xilinx-at-ni-week-2013" target="blank">New FPGA Tools from NI and Xilinx at NI Week 2013</a></p>
<p>The post <a href="https://static.dmcinfo.com/blog/28153/ni-week-2013-recap/">NI Week 2013 Recap</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
