# SimDAQ

A simulated high-rate DAQ, no hardware needed

- Category: Data acquisition
- Capabilities: Streams, Assets, Entities
- Runs on: Linux x64, Linux ARM64, macOS Apple silicon, macOS Intel, Windows x64

Try a high-rate DAQ with no hardware. SimDAQ streams simulated multi-channel
waveforms at up to 1 MS/s per channel, in the same way a real DAQ card does.
Every channel is named `/simdaq/...`, so it is never mistaken for a
measurement.

## What you get

- **Streams data** — `channels` (default 8, up to 64) channels at
  `/simdaq/<device>/ch0` …, each an `f64` at `rate_hz` (default 100 000
  samples/s per channel). Data arrives in `chunk_hz` blocks per second
  (default 10, so 10 000-sample blocks at the default rate), like a real card.
- **Waveforms** — `mixed` (default) gives each channel its own shape (sine,
  ramp, square, noise, cycling) and its own frequency, stepped up from
  `signal_hz`. Or pick one shape for every channel. The same channel produces
  the same samples on every run.

## When to use it

- To demo 100 kS/s-class data (live tiles, replay, trellises) on a laptop.
- To size or soak-test a machine: run two inputs with different device names
  to simulate two cards, or raise `rate_hz` or `channels` to find its limit.

## If the machine falls behind

Like a real card, SimDAQ skips the samples it missed and never back-fills
them. The gap is logged and shows as a hole in the data.

## Supports

- No hardware required — generates simulated DAQ signals on this machine

## Connection fields

| Field | Type | Required | Notes |
|---|---|---|---|
| Device name | Text | No | Instance label — channels appear as /simdaq/<device>/ch0, ch1, … Run two instances with different names to simulate two cards. |
| Channels | Number | No | How many simulated analog inputs to stream. |
| Sample rate (Hz) | Number | No | Samples per second per channel. 100000 = the 100 kS/s a mid-range DAQ card acquires at. |
| Waveform | One of | No | `mixed` gives each channel a different shape and tone frequency, so a wall of tiles reads at a glance; the others put one shape on every channel. |
| Amplitude | Number | No | Peak value — every channel swings between -amplitude and +amplitude. |
| Signal frequency (Hz) | Number | No | Base tone frequency of channel 0; each further channel is offset upward from it so the tiles are visually distinct. |
| Frames per second | Number | No | How often a block of samples is put on the wire (10 at 100 kS/s = 10000 samples per channel per frame, the block size a real card delivers). |
| Clocks | Number | No | How many sample clocks the channels are split across, as a multi-task DAQ input runs one task per module: channel n is on clock n mod this. |
