NI Blog

Community Browser
Showing results for 
Search instead for 
Did you mean: 

Re: Designing LabVIEW NXG: SystemDesigner

Active Participant

In LabVIEW NXG, configuring and programming hardware is tightly integrated into the development environment at a level beyond what is offered with LabVIEW today. Historically, LabVIEW users have navigated a disparate experience of hardware configuration—using Measurement & Automation Explorer (MAX) to change device or channel settings and using LabVIEW Project to configure execution targets. We’ve heard feedback that this split is confusing, and the context switch required interrupts the main workflow related to automating measurements.


With LabVIEW NXG, we aim to eliminate that confusion and streamline the experience by bringing hardware management into LabVIEW NXG with SystemDesigner.


The Hub of Hardware Configuration



In LabVIEW NXG, every project includes a SystemDesigner document that serves as the hub of hardware configuration for that project. In designing this experience, we sought to support a few different scenarios. Sometimes you write code from scratch on your development system that has all the hardware. Sometimes you write code offline before you install the hardware. Sometimes you receive code from someone else that was written for different hardware than what you have. To support these different workflows, the primary hardware configuration interface, SystemDesigner, displays two views: Live and Design. Let’s talk a little about the differences between them and when you might use them.


Think of the Live view as a new and improved version of MAX that is integrated into the LabVIEW NXG editor. As its name implies, it shows you the state of local hardware plugged into your development computer as well as remote targets that are available to you. Configuration changes made in the Live view are immediately propagated to the hardware and changes in the physical hardware are immediately reflected in the Live view. If you unplug a USB device, it disappears from the Live view because it is no longer “live.”



The Live view is the perfect place to start when creating a new application because it directly reflects your hardware’s state. But remember, since the Live view reflects the hardware available on the development system, its settings are not saved in your LabVIEW NXG project. If you change your hardware’s configuration or take your project to a different machine, the Live view will always reflect the state of the computer’s hardware.


This is where the Design view comes into play. Unlike the Live view, the Design view is saved in the LabVIEW NXG project. It starts out as a blank canvas for documenting your application’s hardware requirements. You can create the Design view by dragging your system out of the Unplaced Live Hardware palette or creating a system using the catalog hardware palettes. The hardware on the Design view is a snapshot of the hardware configuration that you created. And LabVIEW NXG retains that configuration to serve as a record of what hardware your application needs. If you unplug a USB device, it will disappear from the Live view but remain on the Design view.





This is a critical difference between the Live view and the Design view. The Live view represents the “single source of truth” about what state your system’s hardware is in. And the Design view is a definition of hardware configuration that may or may not match the system’s Live state.


And finally, when collaborating on a project with other developers or when using code created by someone else, you can use SystemDesigner to manage the differences between the hardware requirements of the project and what hardware configuration your system currently has. It provides tools for identifying which devices in the Design view are matched and helps you resolve those differences. Each device in SystemDesigner Design view has a Matched Status that tells you if the device matches a piece of hardware in the Live view. You can also export reports containing the hardware configuration of either the Live view or the Design view for documentation or comparison.


With SystemDesigner, you no longer have to worry about jumping between multiple tools to view or configure your hardware. Everything you need is right there in LabVIEW NXG.

Active Participant

Question:  How does this handle different driver versions?  Will it automatically upgrade or downgrade the driver to match when I "apply" the design view?

Sam Taggart
CLA, CPI, LabVIEW Champion
DQMH Trusted Advisor
Active Participant
Question:  How does this handle different driver versions?  Will it automatically upgrade or downgrade the driver to match when I "apply" the design view?


When you apply the design view of system Designer, it checks the model number, geographical position and name of the device. As long as the system has a version of the driver that supports the device in your version of LabVIEW NXG, the device will work. 


For installing the appropriate version of drivers, we recommend using a new document that will be released in LabVIEW NXG 3.0. When sharing a project, there will be an easy way to capture the project's software package dependencies with version information (including drivers) in a document. When you open this document on a machine that has missing or incompatible dependencies, you will be able to install/upgrade the software easily. More on this will be shared in an upcoming blog! 




Salvador Santolucito


Hi Sam - Some more information on how to capture your project's software dependencies and versions, including drivers, can be found in my blog here - Designing LabVIEW NXG: Collaboration. I would love to hear your thoughts on whether this helps with the use case you were thinking of or not.





Sumedha Ganjoo | LabVIEW R&D