Understanding what Nominal Instrumentation is for, where it’s applicable, and where it’s not
Nominal Instrumentation is designed to accelerate test equipment automation and simplify integration with Nominal’s platform. This page helps you understand when this library is the right tool for your needs and what responsibilities remain with you as the engineer.
Nominal Instrumentation is primarily used for scripting and automating test equipment. It provides:
Unified interfaces and code reusability across different vendors and models of the same equipment type
Built-in publishers that stream measurements to Nominal Core and Nominal Connect
The library consolidates many software features into one package, making it easier to work with test equipment while maintaining flexibility.
This library is designed for scripting and automation workflows, not for tight control applications with strict real-time requirements. For applications that require precise timing control, choose instruments that provide hardware-level guarantees (such as hardware triggers or dedicated hardware clocks) and use this library to configure those capabilities.
Nominal Instrumentation strives to provide the same behavior and user experience across devices within the same type that share the same features. For example, if you have a data acquisition system from National Instruments or LabJack, the library provides a consistent API so your code can work with either vendor by changing a configuration parameter.
The library has intentional boundaries that preserve your engineering judgment and the capabilities of your chosen hardware:
Does not replace equipment selection: The library does not absolve the need for you to choose the right equipment for your specific application. You remain responsible for selecting hardware that meets your requirements.
Does not add hardware capabilities: If a piece of equipment doesn’t inherently have a feature or capability, this library cannot add it. The library works within the bounds of what your hardware can do.
Does not guarantee identical performance: While the library provides consistent interfaces, it leans on each device to deliver its own performance characteristics. A low-cost DAQ and a high-precision DAQ will have the same programming interface, but they will not have the same measurement accuracy or sample rates.
Does not validate all configurations: Except for tactical exceptions, the library relies on the instrument itself to determine if a setting or feature request is valid. The library generally does not guard against all possible configuration or usage errors. It trusts the hardware to report issues.
Does not provide tight control: This library is not designed for applications requiring strict real-time control or deterministic timing. It is intended for scripting and automation workflows, not for tight control loops with critical timing requirements.
Nominal Instrumentation is not a requirement for using hardware with Nominal Core or Nominal Connect. You can always interface with your instruments using manufacturer-provided SDKs and send data to Nominal products through their APIs.
Collapsing multiple concerns into one: Instead of separately managing instrument communication, data formatting, and transmission to Nominal products, the library handles all of this in an integrated way.
Making data transmission transparent: When using publishers, sending data to Nominal Core or Connect becomes part of programming the hardware itself, not a separate API call. Configure your instrument, start acquisition, and data flows to Nominal automatically.
Enabling hardware portability: Write your test once, and swap between supported vendors without rewriting code.
Nominal wants you to use all the features of your instruments. If this library doesn’t expose a feature you need:
Don’t hesitate to reach out: Contact Nominal to request the feature be added.
Don’t hesitate to go direct: You are not beholden to this library. Use the instrument’s native interfaces directly if that better serves your needs.
A missing feature in this library should never block your work. Your success with your test equipment is more important than using any particular abstraction layer.
You are expected to operate equipment within its manufacturer’s design specifications. The library does not prevent you from attempting configurations outside these bounds, and it cannot compensate for misuse.
As with any test system, you should validate that your configuration produces the expected results. The library aims to simplify correct usage, but it’s your responsibility to ensure your test setup meets your measurement requirements.
Nominal Instrumentation prioritizes performance and reliability by leveraging compiled binaries where possible:
Compiled drivers: Where available, instrument drivers use compiled binaries provided by instrument manufacturers rather than pure Python implementations. This approach provides better performance and reliability for instrument communication.
Compiled publishers: Publishers that handle data transmission to Nominal Core and Connect similarly use compiled libraries when available, ensuring efficient data handling and network communication.
Python for orchestration: While the core drivers and publishers use compiled code, the Python layer provides the high-level orchestration and abstraction that makes the library easy to use and extend.
This hybrid approach balances performance with developer accessibility. You program in Python, while the heavy lifting happens in optimized compiled code.
Nominal Instrumentation is a tool designed to make your work with test equipment easier and more integrated with Nominal’s platform. It’s built on the principle that you, the engineer, know your requirements best. The library provides convenience and consistency while leaving you free to work directly with hardware when needed. Use it where it helps, skip it where it doesn’t, and tell Nominal how to make it better.