Project · April 2026 · working

Oscilloscope & signal generator (FPGA + MCU + LabVIEW)

A full-stack instrument for DTU 30082: an ATmega2560 samples analog waveforms and streams them to a LabVIEW GUI over a framed UART protocol, while the same link commands a Basys 2 FPGA signal generator over SPI to synthesise waveforms through PWM and an active filter.

C / firmwareVHDLFPGAUARTSPILabVIEWCoursework
LabVIEW oscilloscope display showing a captured sine wave with the generator signal overlaid
The LabVIEW front end plotting a sine wave captured by the MCU (blue), with the FPGA generator's PWM activity overlaid (red) — the whole loop in one view.

What it is

A complete little oscilloscope-plus-signal-generator system built for DTU’s 30082 Projektarbejde i Digitalteknik, spanning three devices that talk to each other:

The MCU is the hub: it streams sampled data up to LabVIEW over UART, receives waveform settings (shape, frequency, amplitude) back down, and forwards them to the FPGA over SPI. The FPGA synthesises the waveform via PWM, which an active low-pass filter turns back into a clean analog output.

A group project spanning the MCU firmware, the FPGA VHDL, the protocol, and the analog output filter.

How it fits together

The hard parts

Results

An end-to-end instrument: capture a signal on the MCU, watch it live in LabVIEW, dial in a new waveform, and have the FPGA generate it back out as clean analog — with the protocol, filter design, and verification documented in the project report.

Tools & skills demonstrated

Cross-device embedded integration (C on the ATmega2560, VHDL on the Basys 2, LabVIEW on the PC), robust serial protocol design (framed UART + SPI), interrupt-driven firmware, and active-filter design verified in LTspice/Maple.


← All projects

Available for Jan 2027 Praktik