VeriStand Error 1003 When Deploying Custom Device

Updated Dec 22, 2023

Reported In

Software

  • VeriStand
  • ECU Measurement and Calibration Toolkit
  • LabVIEW Electric Motor Simulation Toolkit

Issue Details

I have a VeriStand project that contains a custom device in its System Definition File. When deploying the project to my target controller, I receive the following deployment error:
The VeriStand Gateway encountered an error while deploying the System Definition file.

Details:
Error 1003 occurred at Project Window.lvlib:Project Window.vi >> Project Window.lvlib:Command Loop.vi >> NI_VS Workspace ExecutionAPI.lvlib:NI VeriStand - Connect to System.vi

Error Message: LabVIEW: The VI is not executable. Most likely the VI is broken or one of its subVIs cannot be located. Select File»Open to open the VI and then verify that you are able to run it.

Solution

There are a few possible reasons for this error:
 

  1. Your target controller could be missing a software, driver, or API dependency of the custom device you are using.
  2. If the custom device deploys properly in a system definition file that does not contain any other custom devices, but fails to deploy alongside other custom devices, then the problem maybe a namespace collision.
    1. Consider prefixing the VI names in your custom device build for the VIs to be unique when loaded to memory
    2. Ensure the custom devices that are colliding have the same dependencies
  3. You may be running out of memory and cannot accommodate all the custom devices, models, and other components of your VeriStand project. If the dependencies are all loaded, verify that your device isn't running out of memory. Start by monitoring the system's memory usage. If the target looks like it's maxing out its memory capacity, you may want to minimize the number of components running on the device. If the target is still running out of memory with the minimized load, you may need to consider using a target with more RAM for your project.
  4. There is an issue with the source distribution/build specification of the custom device
    1. Make sure that any dependencies used by your custom device are installed on the target.

      Note: While some dependencies (NI device drivers, for example) can be installed through NI MAX, you may need to manually transfer any 3rd party libraries to the target.

      Some examples of NI-supported custom devices that might throw this error are included below:
    2. This issue is caused by settings in the Build Specification, specifically the Additional Exclusions. 
      1. Right click on the Source Distribution under Build Specification in the LabVIEW Project, and select Properties
      2. On the left hand side, select Additional Exclusions.
      3. Verify that Exclude files from vi.libExclude files from instr.lib and Exclude files from user.lib are unchecked.

Additional Information

Many custom devices used in NI VeriStand are dependent on additional software, drivers, and APIs that may not normally be installed on a computer or NI Real-Time target controller running the VeriStand engine. If one or more of these dependencies are missing from the target, error 1003 will be thrown when the custom device tries to initialize during deployment.

If you are using a custom device from the VeriStand Add-Ons Community or the VeriStand Open Source Add-Ons GitHub, refer to the Readme file of the custom device for a list of dependencies. In the case of name collisions during deployment, consider alerting the developer and submitting a fix.