General FAQ
The questions that come up first
29 answers about openDAQ, the open-source data acquisition (DAQ) SDK: what it is, how it works technically, what compatibility and certification mean and what any of it costs. Anything specific to your kind of business is answered on the company-type pages.
29 questions
The basics
What is openDAQ?
An open-source SDK that gives the DAQ industry a universal language. It is one way for devices and measurement software to describe themselves and exchange data regardless of who made them. Compatible DAQ devices and software can be discovered, configured and streamed through one shared model and one API.
What problem does it actually solve?
Every measurement software vendor builds its own adapter layer (an OPC UA adapter, an MQTT adapter, native device drivers) and maintains it alone. The devices never change and the same work is repeated by every vendor. openDAQ is that layer written once. A device is mapped one time and every compatible application reads it through the same model and API.
Is it an SDK, a standard or a product?
It is an SDK and the common technical foundation built around it. It is not a finished end-user measurement application and openDAQ does not sell hardware. Products become compatible by implementing the model either through a device module written by their vendor or through a shared protocol integration where the product already speaks a supported protocol.
How is it licensed and what does it cost?
The SDK is open source under the Apache 2.0 licence and costs nothing. You can build a commercial product on it, ship it and sell it without paying anyone or telling us. The licence also grants a patent licence from every contributor for their contributions. Membership, services and certification exist for companies that want support, testing or engineering. None of them is payment for the right to use the SDK.
Which languages and platforms are supported?
The SDK is written in C++ and the API is also available through supported bindings for Python, C#, C and Delphi. It runs on Windows, Linux and macOS. Constrained devices running a real-time operating system (RTOS) use openDAQ LT, a set of plain C stacks.
Who is behind it and will it still be here in five years?
openDAQ is developed by openDAQ d.o.o., a separate company with goals of its own. Dewesoft and HBK founded it as a joint venture and are its shareholders. The company measures its success by how many products from how many vendors work together and not by the sales of any single manufacturer. The SDK is public under Apache 2.0 so your ability to keep using what you built does not rest on anyone's continued goodwill.
Could Dewesoft or HBK take control of the standard?
The structure is designed to prevent that. The SDK is public under Apache 2.0 so anyone may use, change and fork it whatever any company decides. openDAQ d.o.o. succeeds only when products from many vendors adopt the standard and favouring its shareholders would work against that goal. The compliance lab applies the same checks to every product whoever makes it.
How it works
What are Discovery, Configuration and Streaming?
The three things every compatible product exposes. Discovery finds devices on the network over mDNS on IPv4 and IPv6 and reports the connection and streaming capabilities each one offers. Configuration is self-description. A device publishes its own structure and parameters and each carries metadata for its current value, valid range or selection, unit, default and whether it can be written. Streaming moves synchronous and asynchronous measurement data with an explicit domain (time) signal so that samples stay interpretable.
What is a device module?
The compatibility implementation a vendor creates to map a DAQ device into the openDAQ model. It is not a separate product type sitting alongside those things. It is the work that makes an existing product interoperable. It can run on the device itself or on a PC beside it so it can often be added without redesigning firmware.
What are protocol integrations and when do they remove the need for a device module?
A protocol integration maps a supported protocol and profile such as OPC UA or ASAM CMP into the same common device and signal model. Where a product already implements the required protocol and profile that shared mapping can make it compatible without a product-specific device module. The condition matters. The required protocol, profile and capability have to be identified and verified per product. Implementing a named protocol does not by itself guarantee full compatibility.
What are function blocks and where do they run?
A function block accepts input signals, calculates or analyses data and publishes output signals inside a full openDAQ SDK instance. That instance can be the device itself so the device delivers processed results such as statistics or an FFT alongside its raw signals. It can also be the application or a gateway that reads the device. Blocks chain into reusable processing pipelines for scaling, filtering, statistics and FFT independent of which vendor produced the device underneath. Outputs are ordinary signals so the next block or the application consumes them the same way. Function blocks are a processing layer. They are not a protocol and not a device-compatibility mechanism.
What is openDAQ LT?
openDAQ LT (light-wise) is a collection of straightforward C stacks, each covering one feature, built to integrate into a real-time operating system (RTOS). It brings openDAQ to constrained devices that cannot host the full C++ SDK. openDAQ Streaming LT is its streaming stack. It carries signal data and its descriptors but not configuration, so an LT product cannot have its properties read or written remotely. It handles one-dimensional numeric synchronous signals. This gives small devices a route into compatible applications with a much smaller implementation footprint.
How does openDAQ relate to OPC UA and MQTT?
openDAQ carries OPC UA and MQTT rather than replacing them. OPC UA is one of its three client and server protocols and handles configuration, alongside Native for configuration and streaming and LT for streaming only. MQTT is supported through a protocol integration that streams openDAQ data to and from systems built around a broker. A device that already speaks either protocol can join through a shared protocol integration without a device module of its own.
How do devices from different vendors share a time base?
Data carries an explicit domain signal so timestamps travel with the samples rather than being inferred afterwards. Devices declare their synchronisation source, mode and lock state (for example when participating in PTP) so a shared time base is something an integrator verifies rather than assumes.
Which industry standards does openDAQ use?
openDAQ builds on established standards rather than replacing them. Devices announce themselves over mDNS. Configuration runs over the openDAQ Native protocol or over OPC UA with the openDAQ information model, and data streams over Native or openDAQ Streaming LT. Devices can share a time base through IEEE 1588 (PTP). Protocol integrations bring in further standards such as MQTT and ASAM CMP, depending on the product.
Compatibility
What does “compatible” actually mean?
A compatible product works through the openDAQ model and declares honestly which capabilities it offers. Some are discoverable and stream without configurable properties. Others expose the full property model and take part in a shared time base. Testing in the openDAQ compliance lab checks those declarations, which is exactly what you want to know before planning a system around a product.
How does certification work?
Products are tested by openDAQ engineers in the compliance lab against four checks for their track on the latest openDAQ SDK version. Testing is included in the Advanced (one product), Premium (up to 10 products) and Diamond (unlimited) memberships. Additional products cost €1,000 each for Advanced and €800 for Premium members. Products that pass may carry the openDAQ sticker.
What can be certified?
There are two product categories. These are DAQ devices and software applications. A device module is not a third category. It is tested as the compatibility implementation within the product it makes interoperable.
Where is the compliance lab?
The compliance lab is at openDAQ's headquarters in Trbovlje, Slovenia. Hardware is sent there for testing. Software is installed in the lab and run against openDAQ devices.
How stable is the API and how are upgrades handled?
The API is stable. Breaking changes are exceptional. When one is unavoidable the release notes highlight it and explain what product teams need to do to mitigate it. There are typically two to three releases a year. New applications are designed to work with older openDAQ devices and keeping an application current is what lets it also reach newer devices and modules.
Membership & services
How do membership and services relate to using the SDK?
They are separate from it entirely. The SDK is free and always will be. Membership adds guidance, product testing, priority maintenance and dedicated engineering in a yearly package. Services such as software support and training can be added to any membership level. None of them grants permission to use openDAQ because none is needed.
Do we have to be a member?
No. Community membership is free and academic users, open-source projects and personal projects use the SDK and documentation freely. Paid membership suits companies that want guidance, product testing in the compliance lab or dedicated engineering.
How is a membership paid?
openDAQ issues an invoice once the membership contract is signed and the membership becomes valid when the payment is received. A paid membership runs for one year from the start date and can be renewed each year. Community membership is free.
What does membership cost?
Community membership is free. Advanced membership costs €10,000 and Premium membership €25,000 per year. Diamond membership includes 1 FTE of dedicated engineering and its fee is set in advance for each year by the Board of Directors.
What happens if membership lapses?
You keep the SDK, anything built for you and any certificate already issued. Your company stays listed as using openDAQ for as long as you agree to it.
Getting started
How can an organisation validate a use case?
Start with a free technical discovery call. Bring a device, an application or a mixed-vendor system and we will state whether openDAQ fits and what the smallest useful first step is. From there a guided proof of concept or a workshop can be bought individually or combined into one offer.
How long does a first implementation take?
It is estimated during a prototype and a basic prototype can typically be built in a few days. That prototype exposes enough device structure to establish discovery and basic streaming and this is what makes a credible estimate of the full implementation possible.
Where do we start today without talking to anyone?
Install the Python package and list what is already reachable on your network. Then connect to a simulated device and read a signal. It takes about ten minutes, needs no account and costs nothing.
Can I contribute to openDAQ?
Anyone can contribute. The SDK and its modules are public on GitHub, where you can open issues, propose changes and publish modules of your own. Projects built with openDAQ can be featured on Awesome openDAQ. Contributed intellectual property becomes publicly accessible, as one of the five community principles states.
Still looking
Questions specific to your business
Each company-type page ends with an FAQ written for that role. It covers implementation effort for hardware vendors, driver-matrix questions for software vendors and delivery risk for integrators.
Commercial questions are answered where the offers are
No wrong questions
If it is not answered here then ask
A technical discovery call costs nothing and frequently ends with us telling someone they do not need us yet. That is a useful answer too.
Prefer to read first? See how openDAQ works