Conversation
- Added RDS methods for toggling the panel, handling messages, clearing data, and exporting logs in `rds.ts`. - Updated application state to include RDS properties in `state.ts`. - Enhanced DSP worker to process RDS signals and extract relevant data in `dsp-worker.ts`. - Introduced RDS panel in the UI with controls for clearing and exporting data in `index.html`. - Styled RDS components in `style.css` for better user experience. - Implemented RDS decoder logic in a new `rds.ts` file within the worker directory. - Updated backend to manage RDS decoder instances and handle RDS-related parameters in `backend.ts`. - Integrated RDS decoding into the RX stream processing in `rx-stream.ts`. - Updated types to include RDS message structure and decoder state in `types.ts`.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
browsdr | 802c3c3 | Commit Preview URL Branch Preview URL |
Mar 16 2026, 08:36 AM |
Owner
Author
|
Before I merge this, I would like to fix the lag issue that happens when we open up console |
Owner
Author
|
Does this work on the client side for a hosted HackRF? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Summary
This PR implements a full Radio Data System (RDS) decoding stack for WFM (Wideband FM) signals. It allows users to view station information such as Program Service (PS) name, RadioText (RT), Program Identification (PI) codes, and Program Type (PTY) directly within the web interface.
Key Changes
1. DSP & Decoding Logic
New
RDSDecoderclass: A high-performance TypeScript implementation of the RDS stack.Uses a Pilot PLL with phasor rotation (complex multiplication) for efficient 19 kHz locking without constant trigonometric calls.
Implements a 4th-order Butterworth low-pass filter for RDS baseband (I/Q) to ensure signal integrity.
Features a sync state machine for block synchronization and CRC error correction using standard RDS generator polynomials.
Worker Integration: The decoding is performed within the
dsp-workerto prevent UI thread blocking. It extracts the MPX signal and processes the 57 kHz subcarrier coherently.2. Frontend & UI
RDS Panel: Added a new split-view panel:
Station Cards (Left): Shows active station metadata (PS, Frequency, PI, PTY, and Traffic flags like TP/TA).
Live Log (Right): A scrollable history of received RDS groups/messages.
Export/Clear: Added functionality to clear the session log or export the RDS data as a
.txtfile with timestamps.Icons & Styling: Integrated a new RDS icon in the header and defined specific styles for RDS data types in
style.css.3. State Management
VfoParamsandVfoStateto track RDS toggle status and regional settings (EU vs. NA/RBDS).connectionandrx-streamlogic to bridge decoded messages from the worker back to the main application state.Technical Notes
How to Test