gNB-EMC-dashboard

5G RAN Dashboard User Guide

ST Engineering Web Dashboard for Multi-Board gNB Systems


đź“‹ Table of Contents

🚀 Introduction

The 5G RAN Dashboard is a comprehensive web-based interface designed to visualize live status updates and manage multiple types of 5G RAN boards. This professional-grade dashboard provides network operators with powerful tools to configure, monitor, and maintain gNB systems efficiently across different hardware platforms.

Key Capabilities


📦 Installation & Setup

System Requirements

Frontend (Client Machine)

Backend (gNB RAN Board)


Frontend Setup (Client Machine)

Step 1: Download Release Files

  1. Navigate to the GitHub Releases page
  2. Download the latest release containing:
    • frontend.zip - Web dashboard application
    • webdashboard.zip - Backend services for gNB boards

Step 2: Extract Frontend

  1. Create a working directory (e.g., C:\ST-Engineering\Dashboard\)
  2. Extract frontend.zip to this directory
  3. You should see a frontend/ folder containing the web application

Step 3: Install Node.js

  1. Download Node.js from https://nodejs.org/
  2. Install the LTS version (18.x or higher)
  3. Verify installation by opening Command Prompt/Terminal:
    node --version
    npm --version
    

    âś… Both commands should return version numbers

Step 4: Install Dependencies

  1. Open Command Prompt/Terminal as Administrator
  2. Navigate to the frontend directory:
    cd C:\ST-Engineering\Dashboard\frontend
    
  3. Install all dependencies:
    npm install
    

    ⏳ This process may take 2-5 minutes depending on your internet connection

  4. Install Leaflet mapping library:
    npm install leaflet
    

Step 5: Start the Dashboard

  1. Start the development server:
    npm start
    
  2. âś… The dashboard will automatically open at http://localhost:3000
  3. You should see the ST Engineering dashboard homepage

đź’ˇ Pro Tip: Keep this terminal window open while using the dashboard. Closing it will stop the web server.


Backend Setup (gNB RAN Board)

Step 1: Prepare the Backend Files

  1. Extract webdashboard.zip from the GitHub release
  2. You should have:
    • WebDashboard.py - Main backend service with automatic dependency installation
    • backend/ folder - Contains all backend logic, board support, and dependencies

Step 2: Transfer to gNB Board

  1. Copy the entire extracted backend folder to your gNB RAN board
  2. Recommended location: /home/user/webdashboard/
  3. Ensure you have the following structure on the board:
    /home/user/webdashboard/
    ├── WebDashboard.py            # Main entry point with auto-setup
    ├── backend/
    │   ├── board_factory.py       # Multi-board support factory
    │   ├── config_manager.py      # Board-specific configuration management
    │   ├── Flask.py               # Flask web service
    │   ├── boards/                # Board-specific implementations
    │   │   ├── base_board.py      # Abstract base class
    │   │   ├── edgeq_board.py     # EdgeQ-specific implementation
    │   │   └── __init__.py
    │   ├── logic/                 # Board attributes and system logic
    │   │   ├── setupLogManager.py # Log Manager for setup logs
    │   │   ├── edgeq_attributes/
    │   │   └── shared_attributes/
    │   └── dependencies/          # Pre-packaged dependencies
    │       ├── flask_pkgs/        # Flask and web framework packages
    │       ├── pexpect_pkgs/      # Process automation packages
    │       └── pytest_pkgs/       # Testing framework packages
    

Step 3: Verify Python Installation

  1. SSH into your gNB RAN board
  2. Check Python version:
    python3 --version
    

    âś… Should return Python 3.9 or higher

The new WebDashboard.py includes automatic dependency management and board detection.

  1. Navigate to the webdashboard directory:
    cd /home/user/webdashboard
    
  2. Start with automatic setup (handles all dependencies):
    python3 WebDashboard.py
    
  3. âś… The system will automatically:
    • Check for existing dependencies
    • Install required packages from local wheel files if needed
    • Detect your board type (EdgeQ or others)
    • Initialize board-specific configurations
    • Start the Flask backend service
  4. Success Indicators: ``` ============================================================ gNB Dashboard - Multi-Board Support ============================================================ Board type: auto-detect (defaults to EdgeQ) Available boards: edgeq For help: python3 WebDashboard.py –help ———————————————————— All required dependencies are already installed. Starting Flask application… Board system initialized successfully Dependencies verified Access the dashboard at: http://localhost:5000 ============================================================
    • Running on all addresses (0.0.0.0)
    • Running on http://127.0.0.1:5000
    • Running on http://[your-ip]:5000 ```

Step 5: Manual Setup (If Needed)

If automatic setup fails, you can install dependencies manually:

  1. Install Flask dependencies:
    cd backend/dependencies/flask_pkgs
    pip3 install *.whl --no-deps
    
  2. Install pexpect dependencies:
    cd ../pexpect_pkgs
    pip3 install *.whl --no-deps
    
  3. Install pytest dependencies:
    cd ../pytest_pkgs
    pip3 install *.whl --no-deps
    
  4. Return to main directory and start:
    cd /home/user/webdashboard
    python3 WebDashboard.py
    

Step 6: Board-Specific Options

The dashboard now supports multiple board types with command-line options:

# Auto-detect board type (default behavior)
python3 WebDashboard.py

# Explicitly specify EdgeQ board
python3 WebDashboard.py --edgeq

# View help and available options
python3 WebDashboard.py --help

Available Board Types:

đź”’ Security Note: The backend runs on port 5000. Ensure this port is accessible from your client machine but secured from unauthorized access.


Verification

Test Frontend-Backend Connection

  1. Open the dashboard at http://localhost:3000
  2. In the sidebar, add a node using the IP address of your gNB board
  3. Click “ADD” - the node should appear in the sidebar
  4. âś… Success: Node status updates to show current state (RUNNING/INITIALIZING/OFF)
  5. ❌ Failure: Node shows as “DISCONNECTED” - check network connectivity and backend service

Network Connectivity Checklist

Board Detection Verification

  1. Check the startup messages for board detection:
    Board type: auto-detect (defaults to EdgeQ)
    Available boards: edgeq
    
  2. For EdgeQ boards, verify these paths exist:
    • /opt/ste/bin/gnb_commission
    • /opt/ste/active/commissioning/configs/

🎯 Getting Started

Once both frontend and backend are successfully installed and running, follow these steps to start monitoring your gNB nodes:

Adding Your First Node

  1. Open the Dashboard: Navigate to http://localhost:3000 in your web browser
  2. Locate the Sidebar: Find the “Add Node” section in the left sidebar
  3. Enter Node Information:
    • Input the IP address of your gNB RAN board
    • Example: 192.168.1.100
  4. Add the Node: Click the “ADD” button or press Enter
  5. Verify Connection: The node should appear in the sidebar with its current status

Understanding Node Status


đź”§ Core Features


Node Status Monitoring


1. View All Nodes

The homepage displays a grid of status cards showing all configured nodes with their current status.

How to use:

2. Node Details

View detailed metrics and information about a specific node.

How to use:

3. Node GPS Tracking

View the current position and any additional information of the attached mesh radio (Manet) with link quality

How to use:

Node Management


1. Network Scanning & Discovery

Automatically scan the network to discover available gNB and MANET devices.

How it works:

How to use:

  1. Configure Subnet: In the sidebar, enter the network subnet to scan (e.g., 192.168.1)
  2. Start Scan: Click the scan button to manually trigger network discovery
  3. View Results: Discovered devices appear in the “Scanned Nodes” section
  4. Add Devices:
    • For gNB nodes: Click the âž• icon to add directly to your saved nodes
    • For MANET devices: Click the âž• icon to assign the MANET IP to an existing saved node

Device Types:

Features:

2. Add Node (Manual)

Add a new node manually by entering its IP address.

How to use:

3. Add Node (From Discovery)

Add discovered nodes directly from the network scan results.

How to use:

4. Remove Node

Remove a node from the dashboard monitoring.

How to use:

5. Start/Stop Node

Control the operational state of a node remotely.

How to use:

If command fails or times out:

6. MANET Assignment

Assign discovered MANET devices to existing gNB nodes for mesh networking.

How to use:

  1. Discover MANET: Network scan identifies MANET devices on the network
  2. Open Assignment: Click the âž• icon next to a discovered MANET device
  3. Select Node: Choose which saved gNB node to attach the MANET to
  4. Confirm Assignment: The MANET IP is automatically configured for the selected node

Requirements:

GPS & Network Mapping


1. Interactive Map View

Visualize node locations and network topology with real-time updates.

Features:

How to use:

Link Quality Indicators:


Real-time Dashboard


1. Performance Monitoring

Monitor system performance with live updating charts and metrics.

CPU Usage Monitoring:

RAM Usage Tracking:

Disk Space Management:

How to use:


Configuration Management


1. View Configuration

View the current configuration settings for the gNB node.

How to use:

2. Edit Configuration

Modify configuration parameters for the gNB node.

How to use:

Features:


Logs & Troubleshooting


1. Real-time Log Monitoring

Access system logs for troubleshooting and monitoring.

How to use:

Features:

2. System Diagnostics

Advanced troubleshooting tools and diagnostics.

How to use:


🚀 Advanced Features

API Documentation & Developer Resources

Multi-Board Architecture

Enhanced Configuration Management

Dependency Management

Multi-Node Operations

Performance Analytics

Security & Access Control


🎯 Board Support

The dashboard now supports multiple 5G RAN board types through an extensible architecture:

Currently Supported Boards

EdgeQ Boards

Features:

Detection Criteria:

Command Line Usage:

# Auto-detect EdgeQ board
python3 WebDashboard.py

# Explicitly specify EdgeQ
python3 WebDashboard.py --edgeq

Future Board Support

The architecture is designed to easily support additional board types

Board-Specific Features

Configuration Management

Each board type has its own:

Attribute Monitoring

Board-specific attributes include:

Commissioning & Setup


🛠️ Troubleshooting

Common Issues

Dashboard Won’t Start

Symptoms: npm start fails or dashboard doesn’t load Solutions:

  1. Verify Node.js version: node --version (should be 18.x+)
  2. Clear npm cache: npm cache clean --force
  3. Delete node_modules and reinstall: rm -rf node_modules && npm install
  4. Check for port conflicts (default: 3000)

Node Shows as DISCONNECTED

Symptoms: Node appears in sidebar but status shows as disconnected Solutions:

  1. Verify network connectivity: ping [node-ip]
  2. Check backend service is running on port 5000
  3. Verify firewall settings allow port 5000
  4. Restart backend service: python3 WebDashboard.py
  5. Check board detection messages in startup output

Backend Service Fails to Start

Symptoms: python3 WebDashboard.py returns errors Solutions:

  1. Check Python version: python3 --version (should be 3.9+)
  2. Check automatic dependency installation output for errors
  3. Try manual dependency installation if automatic fails
  4. Check port 5000 availability: netstat -ln | grep 5000
  5. Review backend logs for specific error messages
  6. Verify board detection is working properly

Board Detection Issues

Symptoms: Wrong board type detected or detection fails Solutions:

  1. Check startup messages for detection criteria
  2. For EdgeQ: Verify /opt/ste/bin/gnb_commission exists
  3. For EdgeQ: Verify /opt/ste/active/commissioning/configs/ exists
  4. Use explicit board selection: python3 WebDashboard.py --edgeq
  5. Check file permissions on detection paths

Dependency Installation Fails

Symptoms: Automatic dependency installation reports errors Solutions:

  1. Check available disk space on the board
  2. Verify pip3 is installed and working: pip3 --version
  3. Try manual installation from backend/dependencies/*/
  4. Check Python module paths and permissions
  5. Ensure no conflicting package versions are installed

Configuration File Issues

Symptoms: Config file generation fails or node won’t start Solutions:

  1. For EdgeQ: Check /opt/ste/bin/gnb_commission is executable
  2. Verify commission automation triggers in board configuration
  3. Check log files in /opt/webdashboard/logdump/ for commissioning errors
  4. Manually run commissioning if automation fails
  5. Verify configuration file permissions and format

Performance Issues

Symptoms: Slow dashboard response or high resource usage Solutions:

  1. Reduce polling frequency in settings
  2. Limit number of historical data points
  3. Close unused browser tabs
  4. Check system resources on client machine
  5. Verify board-specific timeouts are appropriate

Board-Specific Troubleshooting

EdgeQ Boards

Common EdgeQ Issues:

Getting Help


âť“ FAQ

General Questions

Q: How does the dashboard detect my board type? A: The detection is specified by the user that runs the backend. You may refer to board support for the instruction of detection.

Q: What board types are currently supported? A: Currently, the dashboard supports EdgeQ-based gNB platforms with automatic detection. The architecture is designed to easily support additional board types in the future.

Q: Can I force a specific board type? A: Yes, use command-line arguments: python3 WebDashboard.py --edgeq for EdgeQ boards. Use python3 WebDashboard.py --help to see all available options.

Q: How frequently does the dashboard update node status? A: The dashboard updates node attributes and status every 5 second while node and manet scanning every 20 seconds.

Q: Do I need to manually install dependencies? A: No, the new WebDashboard.py automatically checks and installs all required dependencies from pre-packaged wheel files. This works even on boards without internet access.

Q: What does each node status color indicate? A:

Q: Can I add a node that’s currently offline? A: Yes, you can add any node by IP address. If the node is unreachable, it will be added to the dashboard but shown as disconnected until it becomes available.

Q: How many nodes can the dashboard support? A: The dashboard is designed to support 20 or more nodes simultaneously, though performance may vary based on your hardware resources.

Installation & Setup

Q: The automatic dependency installation failed. What should I do? A: If automatic installation fails, you can install dependencies manually from the backend/dependencies/ folders. Navigate to each package folder (flask_pkgs, pexpect_pkgs, pytest_pkgs) and run pip3 install *.whl --no-deps.

Q: How do I know if my board type was detected correctly? A: Check the startup messages when running python3 WebDashboard.py. You’ll see output like “Board type: auto-detect (defaults to EdgeQ)” and “Available boards: edgeq”. The system will also show board-specific initialization messages.

Q: Can I add support for a custom board type? A: Yes, the architecture is extensible. You’ll need to create a new board class inheriting from BaseBoard, implement the required methods, and add it to the BoardFactory. Contact support for guidance on custom board implementations or refer to developer guide for more instructions.

Q: What browsers are supported? A: The dashboard works best with modern browsers: Chrome, Firefox, Safari, and Edge (latest versions). Internet Explorer is not supported.

Q: Do I need special permissions to install the dashboard? A: You may need administrator privileges to install Node.js and modify system settings. The dashboard itself can run with standard user permissions.

Q: Can I run the dashboard on a different port? A: Yes, you can modify the port in the package.json file or use environment variables. The default ports are 3000 (frontend) and 5000 (backend).

Operation & Usage

Q: My EdgeQ board won’t generate a configuration file. What’s wrong? A: Ensure that /opt/ste/bin/gnb_commission exists and is executable. The EdgeQ commissioning process requires proper EdgeQ software installation. Check the commissioning logs in /opt/webdashboard/logdump/ for detailed error information.

Q: Can I use the dashboard with multiple different board types simultaneously? A: Yes, the frontend can connect to multiple backend instances running on different board types. The frontend calls the backend via REST APIs through the flask server. The backend handles the difference in board types

Q: How do I troubleshoot a node that won’t start? A:

  1. Navigate to the node’s dashboard
  2. Check the logs for error messages
  3. Ensure the node is reachable on the network
  4. Try restarting using “Turn Off” followed by “Turn On”. Make sure a physical hard reset is done.
  5. Contact support if issues persist

Q: Is my node configuration saved if I close the browser? A: Yes, node configurations are stored in the browser’s localStorage, so your configured nodes will persist when you reopen the dashboard in the same browser.

Q: Can I access the dashboard remotely? A: Yes, if properly configured with appropriate network access and security measures. Ensure proper firewall and security settings are in place.

Performance & Monitoring

Q: Why are my performance charts not updating? A: Check that:

Q: How much historical data is stored? A: The dashboard maintains approximately 200 data points for performance charts. Older data is automatically rotated to maintain performance.

Board-Specific Questions

Q: What EdgeQ-specific features are supported? A: The dashboard supports EdgeQ’s commissioning automation, gnb_ctl control interface, EdgeQ-specific attribute monitoring (SoC temperature, radio parameters), and automatic configuration file generation and enhancement.

Q: How does EdgeQ commissioning automation work? A: The system automatically runs gnb_commission -g and handles the interactive commissioning process, including filename customization and profile selection. The generated configuration is automatically enhanced with board-specific settings.

Q: What happens if EdgeQ commissioning fails? A: The system will log detailed error information and fall back to manual configuration. Check the commissioning logs and ensure EdgeQ software is properly installed. You can also try running commissioning manually and then restarting the dashboard.


📚 Glossary

Technical Terms

Board Factory A software design pattern used to create board-specific instances based on detected or specified board type, enabling support for multiple hardware platforms.

Multi-Board Architecture The dashboard’s extensible design that supports multiple types of 5G gNB hardware platforms through a common interface.

gNB (5G Node B) The base station in a 5G network that provides radio coverage and connects user equipment to the core network.

RAN (Radio Access Network) The part of a mobile network that connects user equipment to the core network through radio technology.

PCI (Physical Cell ID) A unique identifier assigned to a cell in a mobile network, used to distinguish between different cells.

SNR (Signal-to-Noise Ratio) A measure of signal quality, indicating the level of desired signal relative to background noise.

MANET (Mobile Ad Hoc Network) A continuously self-configuring, infrastructure-less network of mobile devices connected wirelessly.

Board Types

EdgeQ Board A 5G gNodeB platform using EdgeQ chipsets and software, with specific commissioning procedures and attribute monitoring.

Base Board The abstract foundation class that defines the common interface all board types must implement.

Board-Specific Configuration Configuration parameters, file paths, and settings that are unique to each supported board type.

Dashboard Status Types

RUNNING Node is fully operational and functioning normally. All systems are active and responsive.

INITIALIZING Node is starting up and configuring systems. This is a temporary state during boot-up or restart.

OFF Node is powered down or not operational. No services are running.

DISCONNECTED Node is unreachable from the dashboard. This may indicate network issues, backend problems, or node failure.

System Components

BoardFactory The central component responsible for detecting board types and creating appropriate board instances.

ConfigManager Manages board-specific configurations and user overrides, supporting different configuration formats and paths.

Commissioning Automation The automated process of generating configuration files through board-specific commissioning procedures.

Frontend The web-based user interface that runs in your browser, providing the dashboard visualization and controls.

Backend The Python-based service running on the gNB board that provides APIs and interfaces with the hardware.

WebDashboard.py The main Python script that starts the backend service and handles communication between the dashboard and gNB systems.

Node A single gNB RAN board or system being monitored by the dashboard.


📞 Support & Contact

For technical support, bug reports, or feature requests:

ST Engineering Technical Support

Developer Resources

When contacting support, please include:


This guide covers version 1.1 of the 5G RAN Dashboard. For the latest updates and additional resources, please visit the project repository.