"Revolutionizing the data collection experience with convenient, portable device connectivity."
The official Windows desktop application for DAQiFi hardware — real-time visualization, session logging, and firmware updates, all in one place.
daqifi.com · daqifi-core SDK · Issues
DAQiFi hardware is designed to get out of the way so you can focus on the data, not the collection process. DAQiFi Desktop is the application that makes that possible — connect a Nyquist device over WiFi or USB, configure your channels, start a logging session, and watch your data arrive in real time. No custom scripting required.
If you are building automated pipelines or integrating DAQiFi devices into your own software, the daqifi-core .NET SDK gives you programmatic access to the same hardware.
- Install the .NET 10.0 Desktop Runtime for Windows if you don't already have it.
- Download the latest
DAQifiDesktop_Setup.msifrom the Releases page. - Run the installer.
- Launch DAQiFi Desktop.
- Click Connect and let the app discover your Nyquist device on the local network, or enter its IP address manually.
- Enable the channels you want to log and press Start Logging.
- Space research — sensor data acquisition for moon regolith testing
- Medical R&D — prosthetic socket pressure monitoring
- Industrial monitoring — continuous analog and digital I/O logging
- Engineering education — hands-on data acquisition with SCPI-compliant hardware
| Layer | Repo | What it does |
|---|---|---|
| Hardware | Nyquist 1 / Nyquist 3 | Wireless DAQ devices (WiFi + USB, battery-powered) |
| SDK | daqifi-core | .NET library for device communication and data streaming |
| App | daqifi-desktop | GUI for device connection, visualization, logging, and firmware updates |
| User code | Your project | Custom dashboards, test rigs, or automated pipelines built on daqifi-core |
| Capability | What it means for you |
|---|---|
| Auto-discovery over WiFi (UDP, port 30303) | Devices appear automatically when they are on the same network |
| Manual IP connection | Connect directly to a known device address when broadcast discovery is not available |
| USB / Serial connection | Use USB as an alternative to WiFi — same data, no network configuration needed |
| Multiple simultaneous devices | Connect and log from more than one Nyquist at the same time |
| Real-time channel visualization | Analog and digital channels plotted live with a viewport-aware minimap for large datasets |
| Start / stop logging sessions | Record data to a local SQLite database; sessions are preserved between runs |
| Per-channel formula scaling | Apply a custom NCalc expression (e.g. x * 0.001 + 273.15) to convert raw values before display and logging |
| CSV export with optional averaging | Export one or more sessions to .csv; optionally downsample by averaging N consecutive samples |
| Named profiles | Save and restore device connections, active channels, and sampling rate — switch between setups without reconfiguring |
| Firmware update via USB HID | Update Nyquist firmware from within the app — no separate tool needed |
| Device | Analog inputs | Resolution | Input range | Digital I/O | Transport | Power |
|---|---|---|---|---|---|---|
| Nyquist 1 | 16 | 12-bit | 0 – 5 V | Yes | 802.11n WiFi + USB | Battery |
| Nyquist 3 | 8 | 18-bit | ±10 V | Yes | 802.11n WiFi + USB | Battery |
Both devices are SCPI-compliant and compatible with LabVIEW.
Requirements:
- Computer and DAQiFi device must be on the same subnet
- UDP port 30303 must be reachable (configured automatically when the app runs with administrator privileges)
- Virtual machines: use bridged networking, not NAT
Troubleshooting:
- Run DAQiFi Desktop as administrator so it can configure the firewall rule automatically.
- Confirm the computer and device are on the same WiFi network.
- Test reachability with
ping <device-ip>. - If discovery does not find the device, use Manual Connection and enter the IP address directly.
Port reference:
| Protocol | Port | Purpose |
|---|---|---|
| UDP | 30303 | Device discovery broadcasts |
| TCP | Device-specific (typically 9760) | Data streaming |
- OS: Windows 10 or later (x64)
- Runtime: .NET 10.0 Desktop Runtime for Windows (install separately before running the MSI)
- Privileges: Administrator rights recommended for automatic firewall configuration during initial setup
- Bug reports and feature requests: GitHub Issues
- Commercial inquiries and custom hardware: daqifi.com
Building and running the app requires Windows (the UI targets WPF / net10.0-windows) and the
.NET 10 SDK — the exact SDK version is pinned in
global.json.
git clone https://github.com/daqifi/daqifi-desktop.git
cd daqifi-desktop
dotnet build # restore + build the solution
dotnet run --project Daqifi.Desktop # launch the appRun the unit tests (no hardware required):
dotnet test --filter "TestCategory!=Ui&FullyQualifiedName!~WindowsFirewallWrapperTests"The DAQifiDesktop_Setup.msi installer is built from the Daqifi.Desktop.Setup project (WiX Toolset)
and is normally produced by CI on release. The WiX project harvests the app's published output, so
build it locally by publishing first, then building the setup project (mirroring CI):
dotnet publish Daqifi.Desktop/Daqifi.Desktop.csproj -c Release
dotnet build -c Release Daqifi.Desktop.SetupThe UI-automation test gate drives the real GUI against an attached device — see Daqifi.Desktop.UITest/README.md.
Please read the Contributing Guidelines before opening a pull request. See docs/architecture.md for the streaming data pipeline and system overview, and docs/design-philosophy.md for UI/UX principles. All PRs require a conventional commit title (feat:, fix:, docs:, deps:, chore:) and at least one approving review from a DAQiFi core member.
To cut a release: push a <major>.<minor>.<patch> tag (e.g. git tag 3.3.0 && git push origin 3.3.0). CI builds the MSI and creates a draft GitHub Release with the installer attached. Review and edit the auto-generated notes in the draft, then click Publish release — assets must be attached before publishing because the repo uses GitHub's Immutable Releases feature. The app version is set in Daqifi.Desktop/Daqifi.Desktop.csproj (<Version>). Follow semantic versioning; breaking changes should use the feat!: prefix in the PR title.
Unhandled exceptions are reported to Sentry. The DSN lives in
Daqifi.Desktop/App.config; like any Sentry client DSN it is write-only
— it can submit crash events but cannot read them back — so it is safe to commit and ship in the app,
and is not a leaked secret.