ATMEGA32A · DUAL-CHANNEL DDS · 40 kSa/s · ±7.58V SWING

Precision Embedded Waveform Synthesis & Oscilloscopy

WaveLink is an open-source dual-channel function generator and oscilloscope. Generate arbitrary waveforms, capture live signals, and drive the whole instrument from your browser, desktop, or phone.

KRAG WAVELINK WORKSTATION · REAL OSCILLOSCOPE INTERFACE (LIVE DEMO)
● LIVE SIMULATION Launch Web Studio ↗

One Hardware Engine. Three Native Interfaces.

Whether on a high-throughput lab workstation, a browser with zero installation, or a mobile smartphone in the field, WaveLink offers unified hardware control with responsive touch and gesture ergonomics.

BROWSER · ZERO INSTALL

Web Studio

Full instrument control from any Chromium browser, no install and no host software. Simulate waveforms at full fidelity, compile math expressions into signals, and drive the hardware over Web Bluetooth.

  • Real-time formula evaluator — type f(x), get a waveform
  • Draw arbitrary waveforms by hand and upload them live
  • Two-period oscilloscope view with measurement grid
  • Auto-reconnect and state sync on link drop
WIRELESS · NO HOST PC

Android App

Turn your phone into a wireless control head. Connect over Bluetooth Classic (HC-06) or BLE from across the bench — no cable, no laptop, no second machine running a server.

  • Bluetooth SPP & BLE pairing, connected in seconds
  • Native Jetpack Compose & Material 3 laboratory theme
  • Live Vico oscilloscope trace with pinch-to-zoom
  • Keeps your settings through a dropped link and restores them on reconnect

Engineered on Bare-Metal. Built for Precision.

Designed and verified against actual KiCad schematics and oscilloscope bench measurements. The ATmega32A microcontroller executes an unrolled DDS inner loop to drive discrete DAC networks and active analog signal conditioners.

01
ATMEGA32A @ 16 MHz

40 kSa/s DDS Synthesis Engine

32-bit phase accumulator driven by a fixed-period Timer2 interrupt. Supports 6 native waveform tables: Sine, Square, Triangle, Sawtooth, Haversine, and arbitrary 256-sample SRAM tables uploaded over BLE. Running both channels independently halves the rate to 20 kSa/s each.

40 kSa/sSample Rate
20 kHzMax Frequency
1 HzTuning Step
02
DAC16 R-2R · TL431

Dual 16-Bit Discrete DAC Ladders

Discrete R-2R resistor ladder networks fed by a daisy-chained 74HC595 shift-register array over 8 MHz hardware SPI, referenced to a TL431 shunt in the centering stage. Separate signal and offset ladders share the bus under strict ISR ownership rules.

16-BitResolution
±2.5 VDAC Raw Swing
2 µsWord Update
03
SALLEN-KEY · X9C POTS

Active Filter & Gain Conditioning

Channel 1 output is switchable in software between a Direct bypass and a Smooth path through a 2nd-order Sallen-Key low-pass filter. Cascaded X9C103/X9C104 digital potentiometers set attenuation and gain. The swing below is the gain network's design ceiling; the shipped app corrects the chain against bench measurements.

±7.58 VDesign Swing
3.03xPGA Max Gain
2nd-OrderReconstruction
04
16-BIT SAR · 10-BIT ADC

Dual-Path Oscilloscope Capture

Two capture paths share one input: the microcontroller's internal 10-bit ADC for fast coarse sweeps, and a 16-bit successive-approximation converter built from the signal R-2R ladder plus a comparator. Selectable bit-depth tiers trade resolution for conversion time.

16-BitSAR Resolution
~38 kSa/sInternal ADC
Relay K2/K3Fault Cutoff

Interactive SCADA HMI Signal Flow Architecture

WaveLink embeds a live JointJS Industrial SCADA HMI diagram inside the UI. Inspect physical relay contacts, track Sallen-Key low-pass filter paths, verify digital potentiometer attenuation (a) and gain (g), and monitor automated fault protections in real-time.

01

Dynamic Relay State Transitions

Visualize hardware relay energization states (K1–K5) as the system switches between Generator Only, Oscilloscope Only, and Dual DDS modes.

02

PGA Attenuation & Gain Readouts

Live calculation of transfer functions through the pre-attenuation wiper (X9C103) and post-gain wiper (X9C104) stages with saturation warnings.

03

Continuous Anomaly & Fault Guard

Automated rail saturation detector prevents op-amp clipping by suggesting safe frequency and amplitude combinations dynamically.

LIVE SCADA SCHEMATIC HMI RELAY K1: ENERGIZED
ATmega32A DDS 40kSa/s DAC16 R-2R ±2.5V Swing MUX X1 Sallen-Key LP PGA OUT ±7.58V max CH2 GEN Phase Shift RELAY K1 NO / NC Active SAR ADC (Scope) Real-Time Telemetry

Built for Real Lab Workflows. No Compromises.

WaveLink combines mathematical synthesis with hardware calibration and diagnostic telemetry to deliver an uncompromising instrumentation experience.

Arbitrary Math Formula Engine

Type mathematical formulas such as sin(2*pi*x) + 0.33*sin(6*pi*x), Gaussian bells, Ringdowns, or Sinc pulses to synthesize arbitrary signals on the fly.

Finger-Drawn Custom Waves

Draw custom arbitrary single-cycle shapes directly on your touchscreen or trackpad. The editor interpolates 256 samples and streams them to ATmega32A SRAM with CRC16 verification.

Phase-Locked Dual DDS Sync

Run Channel 1 and Channel 2 simultaneously with independent frequency tuning, duty cycle distortion (1%–99%), and calibrated phase shifts (0°–359°).

Hardware FM Modulation

Built-in frequency modulator with configurable carrier frequency, modulation frequency (1 to 500 Hz), deviation (10 to 2000 Hz), and modulating shapes (Sine, Square, Tri, Saw).

DuckDB Curve-Fitting Calibration

Automated calibration routine fits digital pot wiper resistance curves and DAC transfer functions, storing correction parameters in local DuckDB tables and hardware EEPROM.

Bluetooth LE & High-Throughput USB

Stream instrument telemetry over 115.2 kbps direct USB on desktop or ultra-low-latency Bluetooth LE on mobile, with sub-millisecond command execution and CRC16 validation.

Technical Specifications

Comprehensive hardware and firmware operating specifications for laboratory use.

SUBSYSTEM PARAMETER SPECIFICATION / VALUE NOTES
DDS Function Generator DDS Sample Rate 40 kSa/s (25 μs period) Fixed-period Timer2 ISR; 20 kSa/s per channel in dual-independent mode
Output Frequency Range 1 Hz – 20,000 Hz 1 Hz steps; ceiling drops to 10 kHz per channel when both run
DAC Resolution 16-Bit R-2R Ladder Network Dual discrete ladders, 74HC595 chain over 8 MHz SPI, TL431 reference
Waveform Shapes 6 Types Sine, Square, Triangle, Sawtooth, Haversine, SRAM
Max Output Swing ±7.58 V (15.16 Vpp) Gain-network design ceiling; dual X9C pots, corrected in software against bench data
Output Path Direct / Smooth Smooth routes through a 2nd-order Sallen-Key reconstruction filter
Amplitude Accuracy ±273 mV RMSE Held-out R² 0.9968 over 1,397 bench measurements; Direct 0.996, Smooth 0.998
Oscilloscope Frontend ADC Architecture 10-bit internal / 16-bit external SAR Internal microcontroller ADC, or successive approximation against the signal R-2R ladder
Capture Rate ~38 kSa/s (ADC) / ~4.6 kSa/s (SAR) SAR costs ~13.5 μs per bit; bit-depth tiers trade resolution for speed
Input Path DC, direct No on-board divider or compensated buffer; a 10x probe is used for calibration
Overcurrent Protection Firmware relay cutoff LM393 comparators flag the fault; firmware opens that channel's output relay (K2/K3)
Connectivity & Power Telemetry Throughput 115.2 kbps (~11.5 kB/s · <1 ms latency) Hardware serial interface carrying real-time telemetry and CRC16 payload transfers
Wireless Link Bluetooth Low Energy (BLE) Every command ACK-gated; CRC-16 on arbitrary-waveform uploads and binary bursts
Power Supply ±15 V / ±8 V / +5 V DC 78xx / 79xx linear regulators
GET STARTED & DOWNLOADS

Ready to Equip Your Lab?

Launch the Web Studio in your browser, download native desktop executables for Windows, macOS, and Linux, or install the Android APK.

Web Studio

Runs instantly in Chrome, Edge, Safari, and Firefox with Web Bluetooth.

Zero Install Web BLE 5.0
Launch Web App

Android Mobile

Two builds of the same instrument: a Capacitor shell around the web client, and a fully native Kotlin/Compose app.

Android 7.0+ BLE 4.0

GitHub Releases & Version History

Direct downloads for current and past laboratory instrumentation builds

View All on GitHub ↗