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

View on GitHub →

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

View on GitHub →

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.

View on GitHub →

SDKs

daqifi-core

C# / .NET

MIT

Cross-platform .NET SDK. Device discovery, streaming, OTA firmware updates. Published to NuGet.

View on GitHub →

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

View on GitHub →

SDKs

daqifi-python-core

Python

MIT

Pythonic property-based API. Real-time streaming, context managers, full type hints.

View on GitHub →

SDKs

daqifi-java-api

Java

MIT

Java SDK for enterprise and Android workflows. Protocol Buffers under the hood.

View on GitHub →

SDKs

daqifi-labview

LabVIEW

BSD-3-Clause

Native LabVIEW driver and VI library. Drop-in for existing T&M workflows.

View on GitHub →

SDKs

daqifi-node

Node.js / TypeScript

MIT

Node.js SDK plus Node-RED plugin. Build IoT and edge apps on a DAQiFi device.

View on GitHub →

Examples

daqifi-core-example-app

C# / .NET

MIT

Reference CLI demonstrating discovery, streaming, channel config, and firmware updates against daqifi-core.

View on GitHub →

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.

LayerDAQiFiNILabJackOmega
Firmwareopenclosedpartialclosed
Hardware (schematics)open (CERN OHL)closedclosedclosed
Desktop applicationopen (MIT)closedpartialclosed
C# / .NET SDKopen (MIT)closedopenclosed
Python SDKopen (MIT)closedopenclosed
Java SDKopen (MIT)closedclosedclosed
LabVIEW driveropen (BSD-3)(own)openclosed
Node.js / Node-REDopen (MIT)closedclosedclosed

“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.

Browse repos →

Pull requests

PRs welcome. Each repo has its own contributing guide; small fixes, new examples, and translations are great first contributions.

Browse repos →

Talk to us

Building something with a Nyquist? Stuck on integration? Use the contact form — engineers answer.

Contact us →