Open Source
Every layer of the DAQiFi stack is open.
Firmware, hardware schematics, the cross-platform app, SDKs in five languages, and an MCP server for AI agents — all under permissive licenses. Audit, modify, integrate, or fork without paywalls.
10
Open-source projects
5
SDK languages
MIT / CERN OHL / BSD
Permissive licenses
The stack
Every layer is on GitHub — firmware on the chip, schematics on the bench, the app your team runs on desktop and mobile, SDKs in five languages, and a Model Context Protocol server that lets an AI agent drive the hardware. Open any card to read source, file issues, or contribute.
Firmware
Nyquist Firmware
C / FreeRTOS
Open
Real-time multi-channel acquisition firmware running on PIC32MZ. SCPI command set, USB / WiFi / SD streaming.
Used in Nyquist 1, 2, 3
Hardware
Nyquist Hardware
KiCad
CERN OHL v2
Schematics and PCB layouts for NQ1 / NQ2 / NQ3. Verify, repair, or fork the hardware itself.
Used in Nyquist 1, 2, 3
Applications
daqifi-avalonia
C# / .NET 10 · Avalonia UI
MIT
Cross-platform app for Windows, Linux, macOS, Android, and iOS from one codebase. Device discovery, streaming, channel configuration, and CSV recording.
SDKs
daqifi-core
C# / .NET
MIT
Cross-platform .NET SDK. Device discovery, streaming, OTA firmware updates. Published to NuGet.
AI agents
Daqifi.Mcp
C# / .NET
MIT
Model Context Protocol server that lets Claude, Cursor, Codex, or any MCP client discover, configure, and read a Nyquist. Lives in daqifi-core; published to NuGet and the MCP Registry.
Used in Nyquist 1, 2, 3
SDKs
daqifi-python-core
Python
MIT
Pythonic property-based API. Real-time streaming, context managers, full type hints.
SDKs
daqifi-java-api
Java
MIT
Java SDK for enterprise and Android workflows. Protocol Buffers under the hood.
SDKs
daqifi-labview
LabVIEW
BSD-3-Clause
Native LabVIEW driver and VI library. Drop-in for existing T&M workflows.
SDKs
daqifi-node
Node.js / TypeScript
MIT
Node.js SDK plus Node-RED plugin. Build IoT and edge apps on a DAQiFi device.
Examples
daqifi-core-example-app
C# / .NET
MIT
Reference 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.
Python
from daqifi import DAQiFiDevice
with DAQiFiDevice.discover_first() as dev:
dev.channels.ai0.enable()
for sample in dev.stream(rate_hz=1000):
print(sample)
C#
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);
Java
DAQiFiDevice device = DAQiFiDevice.discoverFirst();
device.connect();
device.channel("AI0").enable();
device.stream(1000).forEach(System.out::println);
LabVIEW
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.
See the full reference example app →
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, study the analog front end, respin a board for your own application, and manufacture it.
Get involved
Issues
Bug reports and feature requests live on each repository. The firmware, app, and SDK repos are the most active.
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.