Open Source
Every layer of the DAQiFi stack is open.
Firmware, hardware schematics, desktop app, and SDKs in five languages — all under permissive licenses. Audit, modify, integrate, or fork without paywalls.
- 9 Active repos
- 5 SDK languages
- MIT / CERN OHL / BSD Permissive licenses
The stack
Nine actively maintained repositories spanning every layer — firmware on the chip, schematics on the bench, the desktop client your team runs, and SDKs in five languages. Click any card to read source, file issues, or contribute.
-
Firmware
Nyquist Firmware
C / FreeRTOS OpenReal-time multi-channel acquisition firmware running on PIC32MZ. SCPI command set, USB / WiFi / SD streaming.
-
Hardware
Nyquist Hardware
KiCad CERN OHL v2Schematics and PCB layouts for NQ1 / NQ2 / NQ3. Verify, repair, or fork the hardware itself.
-
Applications
DAQiFi Desktop
C# / .NET 10 MITWindows desktop app for real-time visualization, logging, and device control. WPF + OxyPlot.
-
SDKs
daqifi-core
C# / .NET MITCross-platform .NET SDK. Device discovery, streaming, OTA firmware updates. Published to NuGet.
-
SDKs
daqifi-python-core
Python MITPythonic property-based API. Real-time streaming, context managers, full type hints.
-
SDKs
daqifi-java-api
Java MITJava SDK for enterprise and Android workflows. Protocol Buffers under the hood.
-
SDKs
daqifi-labview
LabVIEW BSD-3-ClauseNative LabVIEW driver and VI library. Drop-in for existing T&M workflows.
-
SDKs
daqifi-node
Node.js / TypeScript MITNode.js SDK plus Node-RED plugin. Build IoT and edge apps on a DAQiFi device.
Last refresh 2022 — modernization in progress
-
Examples
daqifi-core-example-app
C# / .NET MITReference CLI demonstrating discovery, streaming, channel config, and firmware updates against daqifi-core.
Why open matters
-
Audit
Read every line that runs on your data path. Compliance and security teams can verify firmware behavior end-to-end.
-
Modify
Patch firmware for an edge case. Tweak the desktop client. The fork is yours.
-
Integrate
No licensing fees, no per-seat costs, no SDK paywalls. Embed DAQiFi inside your product or test rig.
-
Fork
CERN OHL hardware lets you produce a derivative board for a custom application. Not theoretical — this is licensed for it.
Compared to closed alternatives
How DAQiFi’s stack compares to NI, LabJack, and Omega across each layer customers actually need to read or change.
| Layer | DAQiFi | NI | LabJack | Omega |
|---|---|---|---|---|
| Firmware | open | closed | partial | closed |
| Hardware (schematics) | open (CERN OHL) | closed | closed | closed |
| Desktop application | open (MIT) | closed | partial | closed |
| C# / .NET SDK | open (MIT) | closed | open | closed |
| Python SDK | open (MIT) | closed | open | closed |
| Java SDK | open (MIT) | closed | closed | closed |
| LabVIEW driver | open (BSD-3) | (own) | open | closed |
| Node.js / Node-RED | open (MIT) | closed | closed | closed |
“Partial” = some components open, others closed. “(own)” = vendor-specific platform; not a third-party SDK.
Get started in five lines
Discover a device, configure a channel, stream samples. Pick your language.
from daqifi import DAQiFiDevice
with DAQiFiDevice.discover_first() as dev:
dev.channels.ai0.enable()
for sample in dev.stream(rate_hz=1000):
print(sample)
using DAQiFi.Core;
var device = await DAQiFiDevice.DiscoverFirstAsync();
await device.ConnectAsync();
device.Channels["AI0"].Enable();
await foreach (var sample in device.StreamAsync(rateHz: 1000))
Console.WriteLine(sample);
DAQiFiDevice device = DAQiFiDevice.discoverFirst();
device.connect();
device.channel("AI0").enable();
device.stream(1000).forEach(System.out::println);
Drop the DAQiFi.lvlib palette into your block diagram.
Wire DAQiFi Open VI → Configure Channel VI → Read Stream VI.
Full example VIs in the daqifi-labview repo.
CERN OHL hardware — rare in commercial DAQ
Most DAQ vendors will sell you a black box. Nyquist hardware is published under the CERN Open Hardware License v2 (Weakly Reciprocal). You can read every schematic, see the bill of materials, and produce your own derivative board for a custom application — all permitted by the license.
Browse daqifi-nyquist-hardware →Get involved
-
Issues
Bug reports and feature requests live on each repository. The firmware, desktop, and SDK repos are the most active.
Browse repos → -
Pull requests
PRs welcome. Each repo has its own contributing guide; small fixes, new examples, and translations are great first contributions.
-
Talk to us
Building something with a Nyquist? Stuck on integration? Use the contact form — engineers answer.
Contact us →