📡 RDS RAW Decoder – Documentation v1.0
📡

RDS RAW Decoder

Client Application Documentation
HTML Client: rds-raw-decoder.html
JS Engine: rds-raw-decoder.js
Version: 1.0
v1.0

Table of Contents

1What is the RDS RAW Decoder?
2Operational Modes
2.1Live Mode (WebSocket)
2.2File Mode (CSV Analysis)
3Core Features
3.1Deep Scan Mode
3.2Browser-Based AI Predict Engine
3.3Memory Quick-Slots
4Understanding the User Interface
4.1The Main Summary Row
4.2The Realtime Decoder Log (Expanded View)
5Technical Details & Decoding Logic
5.1Error String Visualization
5.2Chimera Detection and Frame Locking
5.3Local IndexedDB Caching

1 · What is the RDS RAW Decoder?

The RDS RAW Decoder & AI Inspector is a standalone, client-side web application designed for FM-DXers to visualize, analyze, and diagnose raw RDS (Radio Data System) hexadecimal blocks. While traditional tools abstract the RDS stream into finished strings (like the station name or RadioText), this application allows you to peek under the hood and view the exact data packets your receiver is producing.

It is specifically built to help decode heavily corrupted signals retrieved during meteor scatter, tropospheric ducting, or Sporadic-E propagation, where complete RDS groups are rarely received intact.

Key Difference from the AI Server Plugin: The server-side AI Decoder acts as an invisible background filter that repairs data for the main web UI. The RAW Decoder is a frontend inspector. It is a debugging and analysis dashboard that provides deep insights into block error rates, corrupted bit groupings, and real-time AI logic.

2 · Operational Modes

The application supports two primary workflows, allowing both real-time observation and post-event forensics.

2.1 · Live Mode (WebSocket)

By entering the WebSocket URL of your FM-DX server (e.g., http://192.168.1.100:4080) into the top navigation bar and clicking Connect, the application establishes a direct line to your receiver hardware.

2.2 · File Mode (CSV Analysis)

If you have previously used the server-side RDS AI Plugin (v2.7+) to record a raw data stream, you can load the resulting CSV file into the RAW Decoder using the 📁 Load CSV button.

3 · Core Features

3.1 · Deep Scan Mode

Activated via the top toolbar, Deep Scan Mode enforces maximum strictness on incoming data. It is designed for environments with extreme noise where hardware CRC might hallucinate phantom PI codes.

3.2 · Browser-Based AI Predict Engine

Unlike the server plugin, the RAW Decoder implements a powerful, client-side AI prediction engine. By clicking AI Predict: ON, the browser takes over the prediction logic.

When a fragmented PS name is received (e.g., only the letters _N___N__), the engine queries the maps.fmdx.org API. It compares the decoded character pairs against known database frames. It evaluates "Perfect Frames" (where every decoded character aligns perfectly with the database) and "Chimeras" (where pairs might match, but not sequentially in the same variant). Based on this, it colors the prediction Green (Unambiguous), Orange (Ambiguous), or Red (Mismatch).

3.3 · Memory Quick-Slots

To facilitate fast switching between multiple receivers, the application features 10 memory buttons (MEM1 through MEM10).

4 · Understanding the User Interface

4.1 · The Main Summary Row

The primary table view collapses complex data streams into single, manageable rows per station. Key columns include:

4.2 · The Realtime Decoder Log (Expanded View)

Clicking any main row expands the Realtime Decoder Log. This is the heart of the raw analysis tool, displaying the last 100 valid data groups for that specific station.

Time Blk 1 Blk 2 Blk 3 Blk 4 Errs Group Decoding Action ─────────────────────────────────────────────────────────────────────────── 13:40:02 D3C3 0142 ---- ---- 0033 0A Group 0A (No PS decoded) 13:40:02 D3C3 0142 6664 5254 0000 0A PS Seg 1: 'RT' → [ __RT____ ] 13:40:03 D3C3 2034 ---- 4C20 0031 2A Radiotext Seg: 'L '

5 · Technical Details & Decoding Logic

5.1 · Error String Visualization

The TEF hardware passes an error string with every group. The RAW Decoder visualizes this string extensively:

Using the Hide Errors checkbox in the top menu filters out any row containing a '3' in the error string, giving you a clean log of only readable data.

5.2 · Chimera Detection and Frame Locking

When the AI Predict mode analyzes matching stations, it uses a sophisticated multi-pass algorithm:

  1. Extraction: It pulls all valid PS frames from the FMDX database for the given frequency and PI code.
  2. Perfect Fit: It checks if the currently decoded pairs (e.g., R and T at positions 0 and 1) fit perfectly into the variant (e.g., RTL_____).
  3. Chimera Check: If the signal is fading rapidly, the receiver might accidentally combine characters from a scrolling text frame with the static name frame. The algorithm verifies if every received pair can be found in at least one frame of the station. If so, it flags it as a "Chimera", indicating the station is correct, but the display buffer is currently mixed.

5.3 · Local IndexedDB Caching

To prevent overwhelming the FMDX servers and to ensure immediate UI responsiveness, the AI engine uses the browser's native IndexedDB to cache FMDX API responses.

When a frequency is polled (e.g., 104.6), the response is stored in fmdxAiPredictCacheDB. The cache is considered valid for 7 days. This allows the tool to rapidly iterate through hundreds of rows in a loaded CSV without sending a single external HTTP request after the initial load.