Skip to content

[Feature Request] Add support for UDP data input #13

@kaedros

Description

@kaedros

Description

Currently, SerialAnalyzer only accepts real-time data through a serial (UART) port. This limits its use in wireless or mobile sensor scenarios—such as analyzing data from Wi-Fi/Bluetooth-enabled accelerometers, drones, or wearable devices—that transmit telemetry over UDP instead of a physical serial connection.

Solution

Add a UDP input mode alongside the existing serial option, allowing users to:

  • Switch between Serial and UDP as the data source.
  • Configure a listen IP address (e.g., 0.0.0.0) and port number.
  • Receive raw UDP packets and feed them into the same parsing/visualization pipeline used for serial data.
  • The rest of the app’s functionality (recording, protocol decoding, plotting, etc.) should remain unchanged—only the data source would differ.

The rest of the app’s functionality (recording, protocol decoding, plotting, etc.) should remain unchanged—only the data source would differ.

Additional context

UDP is widely used in embedded IoT systems due to its low overhead and suitability for time-sensitive, loss-tolerant sensor data (e.g., IMU readings). Supporting UDP would significantly expand the tool’s applicability in robotics, motion analysis, and field testing—while keeping its simple, focused UI intact.

Example use case:

An ESP32-based accelerometer sends 100 Hz sensor data over Wi-Fi to 192.168.1.100:5005. The user selects UDP mode, sets port 5005, and immediately sees live plots—just as they would with a USB-connected device.

I’d like to contribute!

I’m already working on an implementation and plan to open a pull request soon.
If you’re open to external contributions, I’d be glad to:

  • Help implement this feature.
  • Assist with other open issues.
  • Participate more actively in the project’s development.

As a small suggestion: enabling standard GitHub labels (enhancement, help wanted, etc.) would make community collaboration even smoother.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions