Skip to content

teamignitionvitc/Glance

Glance Logo

Professional Real-Time Telemetry Visualization Platform

License Python Version PySide6 Platform

Data visualization dashboard for monitoring real-time sensor data, telemetry streams, and system metrics

FeaturesInstallationQuick StartDocumentationContributing


Team Ignition Logo

Developed by Team Ignition Software Department
Official Model Rocketry Team of Vellore Institute of Technology, Chennai


About

Glance is a real-time telemetry visualization platform designed for rockets, drones, embedded systems, and advanced data-acquisition applications. Built with PySide6 (Qt6), it offers a modular, widget-based dashboard that adapts to diverse telemetry needs.

With multi-source connectivity, advanced signal filtering, powerful data logging, and professional UI/UX, Glance empowers engineers, researchers, and operators to gain actionable insights at a glance.

Core Capabilities

  • Real-time multi-channel visualization
  • Serial, TCP, UDP connectivity
  • Advanced signal filtering (Kalman, Moving Average, Low-pass, Median)
  • 7+ customizable widget types
  • CSV & JSON data logging
  • Professional dark theme UI
  • Project save/load system
  • Raw telemetry monitoring

Features

📊 Visualization & Display

Interactive Graphs

  • Multi-parameter time-series plotting
  • Zoom, pan, and crosshair inspection
  • Auto-scaling with manual override
  • Color-coded parameter traces
  • Real-time legend updates

Status Displays

  • Large-format instant value displays with alarm states
  • Circular gauges with threshold zones
  • LED indicators with color-coded status
  • Statistical histograms for distribution analysis

Data Tables & GPS

  • Searchable log tables with highlighting
  • Timestamped data entries
  • Multi-parameter comparison
  • GPS mapping with satellite imagery
  • Real-time location tracking
  • Interactive map controls

Advanced Features

  • Crosshair cursor with value readout
  • Mouse-click data point selection
  • Widget floating and docking
  • Multi-tab dashboard support
  • Undo/Redo functionality for widget operations
  • Standalone raw telemetry viewer

🎛️ Signal Processing

Available Filters

Kalman Filter
Optimal estimation for noisy signals with configurable process and measurement variance. Ideal for tracking applications and sensor fusion.
Moving Average Filter
Simple smoothing over configurable window size (2-100 samples). Effective for reducing random noise.
Low-Pass Filter
Exponential smoothing with adjustable alpha (0.01-1.0). Fast response with controllable lag.
Median Filter
Outlier rejection using median of N samples. Excellent for spike removal while preserving edges.

Filter Management

  • Per-parameter filter chains
  • Enable/disable filters without restart
  • Real-time filter parameter adjustment
  • Filter state reset capability
  • Visual filter status indicators
  • Import/export filter configurations

Processing Features

  • Apply filters to any parameter
  • Chain multiple filters per parameter
  • Raw and filtered data logging
  • Zero-lag display options
  • Configurable buffer management

🔌 Connectivity & Data Sources

Serial Communication

  • RS232, RS485, USB-Serial support
  • Auto-detection of available ports
  • Configurable baudrate (300-10M)
  • Manual refresh of port list
  • Timeout configuration

Network Protocols

  • TCP client connections
  • UDP listener mode
  • Configurable host and port
  • Connection status monitoring
  • Automatic reconnection

Data Format Support

  • JSON array parsing
  • CSV delimited data
  • Raw binary bytes
  • Binary struct (with type definitions)
  • Bit-level data extraction
  • Custom format definitions
  • Little/big endian support
  • Configurable channel count (1-1024)

Simulation Mode

  • Built-in dummy data generator
  • No hardware required for testing
  • Configurable sine wave patterns
  • Random noise injection

💾 Data Logging & Export

Logging Features

  • CSV and JSON format support
  • Parameter-selective logging
  • Configurable buffer sizes (10-1000)
  • Auto-generated timestamped filenames
  • Manual buffer flush controls
  • Organized logs directory structure

Data Management

  • Raw and filtered value storage
  • Millisecond-precision timestamps
  • Elapsed time tracking
  • Incremental file writing
  • Low memory footprint

Export Options

  • Standard CSV for Excel/MATLAB
  • JSON Lines format for programming
  • Human-readable timestamps
  • Parameter metadata inclusion
  • Configurable write frequency

PDF Report Generation

  • Automated summary reports from logged data
  • Statistical analysis (min, max, average)
  • Session metadata and duration
  • Professional formatting with charts
  • Generate via Ctrl+Shift+R or Data Logging → Generate Summary Report

Performance

  • Buffered I/O for efficiency
  • Configurable flush intervals
  • Background writing
  • No dropped packets during logging
  • Minimal CPU overhead

🔍 Monitoring & Debugging

Raw Telemetry Monitor

  • Decimal, hexadecimal, ASCII, binary, and mixed display modes
  • Real-time packet inspection
  • Packet statistics (count, rate, bytes)
  • Pause and resume capability
  • Search and highlight functionality
  • Screenshot capture
  • Save to file

VS Code-like Status Bar

  • Segmented layout for clear information hierarchy
  • Live clock display
  • Connection status with interactive button
  • Packet count and data received metrics
  • Active parameters and widget count
  • UI update rate (FPS)
  • Data logging indicator
  • Quick access to Raw Telemetry viewer

Debug Tools

  • Connection diagnostics
  • Data format validation
  • Parameter mapping verification
  • Real-time packet rate monitoring
  • Error message display
  • Connection retry logic

Advanced Telemetry

  • Multiple display format switching
  • Packet numbering
  • Timestamp display options
  • Byte rate calculation
  • Error counting
  • Custom search filters

🎨 User Interface

Modern Design

  • Professional "Apple-like" dark theme
  • High-contrast elements with SF Pro typography
  • Custom styled widgets with glassmorphism effects
  • Smooth animations and transitions
  • Gradient accents and refined color palettes
  • Responsive layout with segmented controls

Dashboard Management

  • 4-phase creation wizard
  • Professional Welcome Screen with system icons
  • Setup wizard with validation
  • Widget pre-configuration
  • Live dashboard phase

Layout Control

  • Drag-and-drop widget positioning
  • Floating and docked modes
  • Multi-tab support with rename
  • Tile evenly function
  • Right-click context menus
  • Widget resize and minimize
  • Customizable dashboard titles

Workflow

  • Project save/load system
  • Unsaved changes tracking
  • Configuration validation
  • Error prevention dialogs
  • Comprehensive keyboard shortcut support
  • Command pattern for undo/redo operations

⚙️ Technical Architecture

Backend Core

  • Threaded Acquisition: DataSimulator runs in a dedicated QThread, ensuring the UI remains responsive even at high data rates (100Hz+).
  • Abstraction Layer: DataReader provides a unified interface for Serial, TCP, UDP, and Dummy sources, handling low-level socket/port management and error recovery with automatic reconnection.
  • Binary Parsing: Uses Python's struct module for high-performance parsing of binary packets. Supports mixed data types (int8/16/32, uint8/16/32, float32/64) and binary struct definitions via parameter configuration.

Data Flow

  1. Source: Hardware/Network sends data packet.
  2. Acquisition: DataReader reads bytes/string.
  3. Parsing: Data is converted to a normalized list[float].
  4. Distribution: DataSimulator emits newData Qt Signal.
  5. Processing: Main thread applies active filters (Kalman/MA).
  6. Visualization: Widgets update via optimized paint events.

Data Logging Internals

  • Buffered I/O: DataLogger accumulates data in memory (default 100 samples) before performing a bulk write to disk. This minimizes filesystem overhead and prevents write-latency from affecting the acquisition loop.
  • Formats:
    • CSV: Optimized for import into Excel/MATLAB with timestamp and elapsed time columns.
    • JSON Lines: Stream-friendly format for programmatic analysis with ISO timestamp formatting.
  • Report Generation: PDF reports generated using reportlab library, analyzing logged CSV/JSON data to produce statistical summaries and visualizations.

Signal Processing

  • Filter Chain: Filters are implemented as independent objects inheriting from SignalFilter base class.
  • State Management: Filters maintain their own internal state (buffers, covariance matrices) which persists across updates but can be reset dynamically.
  • Real-time: All filtering occurs in the main event loop, designed for low-latency (<1ms) processing per packet.
  • Filter Management: FilterManager handles per-parameter filter chains, enabling/disabling filters without restart, and serialization for project save/load.

Screenshots

Welcome Screen

Modern welcome screen with quick-start options

Connection Settings

Flexible data source configuration

Parameter Management

Parameter configuration with array index mapping

Data Logging

Comprehensive data logging with format selection

Dashboard View

Real-time multi-widget dashboard layout


System Requirements

Minimum

ComponentRequirement
Operating SystemWindows 10/11
Linux (Ubuntu 20.04+)
macOS 10.15+
Python3.8 or higher
RAM4 GB
Display1280x720
Storage500 MB free

Recommended

ComponentRequirement
Operating SystemWindows 11
Linux (Ubuntu 22.04+)
macOS 12+
Python3.10 or higher
RAM8 GB or more
Display1920x1080 or higher
Storage1 GB+ for logging

Installation

Method 1: Download & Run (Recommended)

The easiest way to use Glance is to download the standalone executable for your system. No Python installation required.

Platform Download Release Notes
Windows Windows v1.0.0-alpha.1
Linux Linux v1.0.0-alpha.1
Linux (AppImage) Linux v1.0.0-alpha.1

📘 Full Documentation: For detailed setup guides and troubleshooting, see the Official Documentation.

Method 2: Build from Source (Developers)

Standard Installation

# Clone the repository
git clone https://github.com/teamignitionvitc/Glance.git
cd Glance

# Install dependencies
pip install -r requirements.txt

# Launch application
python main.py

Virtual Environment (Recommended)

# Clone repository
git clone https://github.com/teamignitionvitc/Glance.git
cd Glance

# Create virtual environment
python -m venv venv

# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On Linux/macOS:
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Launch application
python main.py

Dependencies

Required

PySide6>=6.4.0          # Qt6 UI framework
pyqtgraph>=0.13.0       # High-performance plotting
numpy>=1.21.0           # Numerical computing
pyserial>=3.5           # Serial communication

Optional

PySide6-WebEngine       # GPS map widgets
reportlab               # PDF report generation

Installation:

pip install PySide6-WebEngine reportlab

Quick Start

1. Launch Application

python main.py

2. Choose Your Path

First-Time Users

  1. Click "Create New Dashboard"
  2. Follow the 4-phase wizard:
    • Setup: Configure connection
    • Parameters: Define data channels
    • Widgets: Pre-configure displays
    • Dashboard: Live monitoring

Returning Users

  1. Click "Load Project..."
  2. Select your .json configuration
  3. Dashboard loads with:
    • Previous layout
    • Connection settings
    • Filter configurations
    • Logging preferences

3. Configure Connection

Mode Configuration
Dummy (Testing)
Connection Mode: dummy
Data Format: json_array
Channel Count: 32

No hardware required

Serial
Connection Mode: serial
Serial Port: COM4 (auto-detected)
Baudrate: 115200
Data Format: json_array
Channel Count: 32

Use Refresh button to update port list

TCP/UDP
Connection Mode: tcp (or udp)
Host: 192.168.1.100
Port: 9000
Data Format: json_array
Channel Count: 32

Verify firewall settings

4. Define Parameters

Navigate to Edit → Manage Parameters or press Ctrl+P

Property Description Example
ID Unique identifier (no spaces) temp_sensor
Name Display name Temperature
Array Index Position in data packet (0-based) 0
Sensor Group Category Environmental
Unit Measurement unit °C
Thresholds Alarm levels (ascending order) Low Crit: -10
Low Warn: 0
High Warn: 80
High Crit: 100

Key Concept: Array Index maps each parameter to a position in your incoming data array.

Example: If device sends [23.5, 65.2, 1013.25, ...]:

  • Index 0 = Temperature (23.5)
  • Index 1 = Humidity (65.2)
  • Index 2 = Pressure (1013.25)

5. Add Signal Filters (Optional)

Navigate to Filters → Add Filter to Parameter

Filter Type Use Case Configuration
Moving Average General smoothing Window Size: 5-20
Low Pass Fast response smoothing Alpha: 0.3 (lower = smoother)
Kalman Optimal estimation Process Var: 0.01
Measurement Var: 0.1
Median Outlier rejection Window Size: 5-11 (odd)

Filters can be chained and toggled without restarting.

6. Add Widgets

Click "Add Widget..." or press Ctrl+W

Widget Type Parameters Best For
Instant Value 1+ Large display of current value(s)
Time Graph 1+ Trend analysis
Gauge 1 Visual range indication
Histogram 1 Distribution analysis
LED Indicator 1+ Multi-status monitoring with per-parameter thresholds
Log Table 1+ Detailed inspection
Map 2 (Lat, Lon) GPS tracking

Widget Management:

  • Right-click for context menu
  • Rename, Float/Dock, Close options
  • Tile Evenly for auto-arrangement

7. Start Data Logging

Navigate to Data Logging → Configure Logging... or press Ctrl+L

Setting Options Recommendation
Format CSV, JSON CSV for Excel/MATLAB
JSON for programming
Parameters Select from list Choose relevant parameters only
Buffer Size 10-1000 100 for most applications
File Path Auto or custom Auto-generated in logs/ folder

Start logging with Ctrl+Shift+L, stop with Ctrl+Alt+L

8. Generate PDF Reports

After logging data, generate professional PDF summary reports:

Navigate to Data Logging → Generate Summary Report... or press Ctrl+Shift+R

Report Features:

  • Session metadata (duration, sample count, file size)
  • Statistical summary for each parameter (min, max, average)
  • Visual charts and graphs
  • Professional formatting
  • Export to PDF format

Requirements:

  • Requires reportlab library (install with pip install reportlab)
  • Must have logged data available

9. Monitor Raw Data

Open View → Raw Telemetry Monitor or press Ctrl+M

Display Mode Format Use Case
Decimal `[12, 255, 0]` Standard byte values
Hex `0C FF 00` Protocol debugging
ASCII `...` Text-based protocols
Binary `00001100 ...` Bit-level analysis

Keyboard Shortcuts

Boost your productivity with these keyboard shortcuts:

Category Action Shortcut
File Operations New Dashboard Ctrl + N
Load Project Ctrl + O
Save Project Ctrl + S
Save Project As Ctrl + Shift + S
Connection Settings Ctrl + Shift + C
Exit Application Ctrl + Q
Edit Manage Parameters Ctrl + P
Add Widget Ctrl + W
Remove Widget Ctrl + Shift + W
View & Navigation Add New Tab Ctrl + T
Rename Current Tab Ctrl + R
Float/Dock Current Tab Ctrl + Shift + F
Raw Telemetry Monitor Ctrl + M
Toggle Fullscreen F11
Stream Control Pause/Resume Stream Spacebar
Exit Fullscreen ESC
Data & Filters Configure Logging Ctrl + L
Start Data Logging Ctrl + Shift + L
Stop Data Logging Ctrl + Alt + L
Generate Summary Report Ctrl + Shift + R
Manage Filters Ctrl + F
Undo/Redo Undo Ctrl + Z
Redo Ctrl + Shift + Z or Ctrl + Y
Help Show Keyboard Shortcuts F1

Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the GNU General Public License v3.0. See LICENSE for more information.


Copyright © 2025 Team Ignition Software Department

About

Glance is a next-generation data visualization dashboard, built with PySide6 (Qt6), designed for seamless monitoring and analysis of real-time sensor data, system metrics, and telemetry streams. Developed by the Software Department of Team Ignition

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors