Data Retrieval and Plotting Techniques in Microcontroller-Based and Computer-Based Data Acquisition Systems

Data Retrieval and Plotting Techniques in Microcontroller-Based and Computer-Based Data Acquisition Systems

Verified Sources
Sep 13, 2026

Data acquisition (DAQ) systems acquire sensor signals, retrieve samples reliably, and visualize them as plots. In microcontroller-based DAQ, the focus is on keyword data retrieval under real-time constraints (e.g., keyword polling, keyword interrupts, keyword DMA). In computer-based DAQ, the focus shifts to keyword real-time streaming visualization and keyword time-series handling.

Note: I’m unable to perform the required web research searches in this environment right now (search tool errors). The content below is therefore written from general technical knowledge rather than newly verified web citations.

Real-time data plotting concepts (time series streaming)

Core architecture: “Acquire → Buffer → Transfer → Reconstruct → Plot”

A typical DAQ pipeline can be modeled as:

Key data-retrieval tasks at the microcontroller side include:

  • Creating a deterministic keyword sampling schedule (usually timer interrupts or DMA-triggered ADC conversions).
  • Moving samples into memory with minimal jitter using keyword ring buffers or keyword FIFOs.
  • Ensuring sample integrity with framing (headers/length), ordering, and error checks (CRC/checksum).

Key plotting tasks at the computer side include:

  • Turning an incoming byte stream into timestamped records.
  • Managing plot throughput by keyword downsampling/decimation.
  • Using rendering strategies that avoid lag (chunked redraw, blitting, or GPU-accelerated plotting).

Microcontroller-Based DAQ: Data Retrieving Techniques

1) Polling-based retrieval

In polling retrieval, software repeatedly checks whether new ADC samples/data are ready. The MCU reads registers or peripheral status in a loop.

Where it fits

  • Low sample rates
  • Simple peripherals
  • Educational systems and quick prototypes

Benefits

  • Straightforward implementation

Limitations

  • CPU load increases with sampling rate
  • Jitter can arise if other tasks delay the polling loop
  • Harder to scale to multiple channels

Typical implementation pattern

  • Timer triggers sampling OR software triggers ADC conversions
  • Main loop checks ADC “data ready” flag
  • Samples are pushed into a ring buffer

Important keyword usage

  • keyword polling
  • keyword ring buffer
  • keyword periodic timer

2) Interrupt-driven retrieval

Interrupt-based retrieval uses hardware interrupts to notify the CPU when:

  • A conversion completes (ADC interrupt)
  • A communication peripheral has received/transmitted bytes (UART RX/TX interrupt)

Where it fits

  • Moderate to high sample rates
  • Multi-channel systems
  • Systems where deterministic sampling timing matters

Benefits

  • Lower latency than polling
  • Sampling timing closer to hardware events

Limitations

  • Interrupt service routines (ISRs) must be short
  • High interrupt rates can starve the main loop
  • Synchronization complexity (shared buffers between ISR and main context)

Best practice

  • ISR should do minimal work: push sample into buffer and exit
  • Use lock-free techniques or careful critical sections when transferring buffer data to application code

Important keyword usage

  • keyword interrupt service routine (ISR)
  • keyword critical section
  • keyword queue

3) DMA-based retrieval (ADC → RAM, UART → RAM)

DMA allows peripherals to transfer data directly into RAM without CPU byte-by-byte handling.

Where it fits

  • High-rate ADC sampling
  • Capturing bursts with low CPU overhead
  • Continuous logging at high throughput

Two common DMA strategies

  1. Circular DMA buffer
    • DMA writes into a ring buffer area continuously
    • CPU periodically consumes new sections
  2. Double buffering (ping-pong)
    • DMA fills buffer A while CPU processes buffer B
    • Swap roles when DMA completes a block

Benefits

  • Reduced CPU overhead
  • Lower sample jitter (hardware-driven transfer timing)

Challenges

  • Correct handling of “which portion is new”
  • Cache coherency on systems with data caches
  • Buffer overrun detection and recovery

Important keyword usage

  • keyword DMA
  • keyword double buffering
  • keyword circular buffer

4) Buffering strategies for safe retrieval

Data retrieval typically separates sampling (producer) from communication/processing (consumer).

Common buffering techniques

  • Ring buffer for continuous streams
  • Block buffers for batch transfer (“send every N samples”)
  • Timestamped record buffers to preserve timing across transport delays

Producer-consumer control

  • Indices: write pointer and read pointer
  • Overrun handling: drop oldest, drop newest, or flag overflow
  • Backpressure: slow down acquisition or communication when PC can’t keep up

Mermaid: producer-consumer

Important keyword usage

  • keyword buffer overrun
  • keyword backpressure
  • keyword pointers

5) Communication retrieval: framing, integrity, and ordering

Once samples are in RAM, the MCU must transmit them to the computer.

Transport options

  • UART/RS-232: often via USB-UART adapters
  • USB CDC
  • Ethernet (TCP/UDP)
  • CAN (often for in-vehicle/embedded networks)

Framing and reconstruction Byte streams must be reconstructed into sample records. Common record structure:

  • Magic header (sync bytes)
  • Sequence number
  • Timestamp or sample index
  • Payload (one or more ADC samples)
  • Checksum/CRC
  • Footer (optional)

Why sequence numbers matter

  • Detect dropped records
  • Correct out-of-order delivery (especially over networks)
  • Align time series on the PC

Important keyword usage

  • keyword checksum
  • keyword sequence number
  • keyword framing

Computer-Based DAQ: Data Retrieval and Plotting Techniques

1) Byte-stream parsing and validation (reconstruct records)

On the PC, the data retrieval layer converts incoming bytes into validated records.

Typical pipeline

  • Read from serial/network socket into a byte buffer
  • Search for magic header
  • Decode length field
  • Verify CRC/checksum
  • Extract timestamp/index + samples
  • Append to time-series structure

Important keyword usage

  • keyword stream parsing
  • keyword CRC (Cyclic Redundancy Check)
  • keyword sample index

2) Time axis handling: timestamps vs sample indices

Two common approaches to time alignment:

  1. Sample index

    • MCU sends sample count kk
    • PC maps kk to time via t=t0+k/fst = t_0 + k / f_s
  2. Timestamp per record (or per block)

    • MCU uses a hardware timer or RTC ticks
    • PC uses reported timestamps

Tradeoffs

  • Indices avoid timestamp drift but assume stable sampling frequency
  • Timestamps support variable-rate sampling but require synchronization accuracy

Important keyword usage

  • keyword sampling frequency
  • keyword time reconstruction
  • keyword time origin

3) Real-time plotting strategies (avoid lag)

Real-time plotting is constrained by:

  • Data arrival rate
  • Rendering throughput
  • Python/GUI event-loop overhead (if using Python)

Common techniques

  • Chunked redraw: update plots every NN samples or every TT milliseconds
  • Decimation for display: plot fewer points than acquired while keeping overall shape
  • Auto-scaling vs fixed axes: fixed axes reduces redraw overhead
  • Incremental plotting: append to plot buffers and shift window (sliding window)

Sliding window

  • Keep the last WW seconds (or last MM points)
  • Drop old points from the plot arrays

Mermaid: plotting with sliding window

Important keyword usage

  • keyword decimation
  • keyword sliding window
  • keyword throttled redraw

4) Point decimation, averaging, and anti-aliasing-aware display

Even if acquisition is correct, plotting may overload the UI. Display techniques include:

  • Decimation (every mm-th point)
    Simple but may miss narrow spikes.
  • Block averaging (binning)
    Shows trends; smooths noise.
  • Peak-preserving downsampling
    Keep min/max within each bin to preserve spikes:
    • For each bin, store (min,max)(\min, \max) rather than mean.

Digital signal context Plotting downsampling must consider that visual aliasing can occur if you display fewer points without appropriate filtering. In analysis pipelines, use proper anti-aliasing filters before downsampling.

Important keyword usage

  • keyword binning
  • keyword peak-preserving
  • keyword aliasing

5) Plot types used in DAQ

DAQ systems commonly use:

  • Time-domain line plots: raw waveforms, moving averages
  • Scatter plots: show noisy measurements without connecting lines
  • Bar/Histogram plots: distribution of sensor readings or event counts
  • Spectrogram / FFT magnitude plots (for periodic signals)
  • XY plots: correlate two sensors (e.g., pressure vs flow)

FFT-related plotting note When plotting frequency content, ensure the acquisition window size and sampling rate satisfy the requirements for meaningful spectral estimates.

Important keyword usage

  • keyword FFT
  • keyword spectrogram
  • keyword XY plot

Where techniques are typically used (MCU vs PC)

High-level mapping of common data retrieval and plotting methods.

Typical DAQ Development Steps (Retrieval → Plotting)

Sampling + record format

1. Define acquisition contract

Choose sampling rate fsf_s, channels, record fields (index/timestamp, payload, CRC)."

Polling/interrupt/DMA + buffering

2. Implement MCU retrieval

Select mechanism; implement ring buffer or double buffering; ensure overflow handling."

Framing + integrity

3. Implement transport

Add headers, length, sequence numbers, and checksums/CRC."

Decode + time reconstruction

4. Implement PC parsing

Stream parse into records, validate, append to time series."

Real-time visualization

5. Implement plotting

Use throttled redraw, sliding window, and decimation/peak-preserving display."

Designing a reliable streaming DAQ record format

  1. 1
    Step 1

    Pick fixed “magic bytes” that indicate the start of each record so the PC can resynchronize after noise.

  2. 2
    Step 2

    Include a length (or fixed-size record) and a sequence number to detect loss and ordering issues.

  3. 3
    Step 3

    Send either a sample index (recommended for constant-rate sampling) or MCU timestamps.

  4. 4
    Step 4

    Transmit payload samples (e.g., ADC words) and include a checksum/CRC to detect corruption.

  5. 5
    Step 5

    On the PC, buffer incoming bytes, find magic bytes, validate CRC, then append records to time series.

  6. 6
    Step 6

    Decide what happens if PC falls behind (drop old, drop new, or request MCU pacing).

Common edge cases and troubleshooting

Pro Tip

For constant sampling rate, send sample indices instead of timestamps; reconstruct time on the PC using t=t0+k/fst=t_0+k/f_s to reduce synchronization error.

Avoid plot-thread starvation

In desktop apps, keep parsing and rendering decoupled: parse/validate in one worker thread, and update the plot at a fixed rate in the UI thread.

Knowledge Check

Question 1 of 4
Q1Single choice

Which microcontroller technique typically provides the lowest CPU overhead for continuous high-rate ADC acquisition?