LmCast :: Stay tuned in

SDR–; open source SDR with a patchable signal graph, Rust DSP, web UI

Recorded: Sept. 14, 2026, 3:09 p.m.

Original Summarized

GitHub - Newspicel/sdrminusminus: modular, client–server software-defined radio · GitHub

Skip to content

Navigation MenuSign inAppearance settingsPlatformAI CODE CREATIONGitHub CopilotWrite better code with AIGitHub Copilot appDirect agents from issue to mergeMCP RegistryIntegrate external toolsDEVELOPER WORKFLOWSActionsAutomate any workflowCodespacesInstant dev environmentsIssuesPlan and track workCode ReviewManage code changesCode QualityEnforce quality at mergeAPPLICATION SECURITYGitHub Advanced SecurityFind and fix vulnerabilitiesCode securitySecure your code as you buildSecret protectionStop leaks before they startEXPLOREWhy GitHubDocumentationBlogChangelogMarketplaceView all featuresSolutionsBY COMPANY SIZEEnterprisesSmall and medium teamsStartupsNonprofitsBY USE CASEApp ModernizationDevSecOpsDevOpsCI/CDView all use casesBY INDUSTRYHealthcareFinancial servicesManufacturingGovernmentView all industriesView all solutionsResourcesEXPLORE BY TOPICAISoftware DevelopmentDevOpsSecurityView all topicsEXPLORE BY TYPECustomer storiesEvents & webinarsEbooks & reportsBusiness insightsGitHub SkillsSUPPORT & SERVICESDocumentationCustomer supportCommunity forumTrust centerPartnersView all resourcesOpen SourceCOMMUNITYGitHub SponsorsFund open source developersPROGRAMSSecurity LabMaintainer CommunityGitHub StarsArchive ProgramREPOSITORIESTopicsTrendingCollectionsEnterpriseENTERPRISE SOLUTIONSEnterprise platformAI-powered developer platformAVAILABLE ADD-ONSGitHub Advanced SecurityEnterprise-grade security featuresCopilot for BusinessEnterprise-grade AI featuresPremium SupportEnterprise-grade 24/7 supportPricingSearch/Sign inSign upAppearance settings

You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

Newspicel

/

sdrminusminus

Public

Notifications
You must be signed in to change notification settings

Fork
0

Star
14

Code

Issues
0

Pull requests
1

Actions

Security and quality
0

Insights

Additional navigation options

Code

Issues

Pull requests

Actions

Security and quality

Insights

mainBranchesTagsGo to fileCodeOpen more actions menuLatest commit History469 Commits469 CommitsFolders and filesNameNameLast commit messageLast commit date.cargo.cargo  .config.config  .github.github  appsapps  assetsassets  cratescrates  docsdocs  fixturesfixtures  packagingpackaging  scriptsscripts  webweb  xtaskxtask  .dockerignore.dockerignore  .gitignore.gitignore  AGENTS.mdAGENTS.md  CLAUDE.mdCLAUDE.md  CONTRIBUTING.mdCONTRIBUTING.md  Cargo.lockCargo.lock  Cargo.tomlCargo.toml  DockerfileDockerfile  FEATURES.mdFEATURES.md  LICENSELICENSE  README.mdREADME.md  THIRD_PARTY_NOTICES.mdTHIRD_PARTY_NOTICES.md  clippy.tomlclippy.toml  deny.tomldeny.toml  docker-compose.ymldocker-compose.yml  flake.lockflake.lock  flake.nixflake.nix  openapi.jsonopenapi.json  rust-toolchain.tomlrust-toolchain.toml  rustfmt.tomlrustfmt.toml  View all filesRepository files navigationREADMEContributingGPL-3.0 licenseMore items

sdr--
sdr-- is a software-defined radio application with a visual signal path. Connect devices,
decoders, displays, and recorders on a canvas, then pin the controls you use to a rack.
A Rust server handles the radio and signal processing. The React interface runs in a desktop
window or browser. You can run both on one computer, or leave the server beside the antenna and
connect over the network. A built-in signal generator lets you try it without an SDR.

Status
sdr-- is under active development. Most decoders have been tested with generated IQ fixtures;
only some have been verified on air. The channel catalog
lists the evidence for each mode and its limitations. Experimental modes may provide acquisition
or measurements without decoded audio or video.
What you can do

Listen to AM, NFM, broadcast FM with stereo and RDS, SSB, and supported digital voice modes.
Decode aircraft, ship, amateur, pager, sensor, and other radio traffic. See the
full channel list.
View spectrum, waterfalls, decoded messages, position maps, and received images.
Scan frequencies and save workspaces, presets, and bookmarks.
Record device IQ, channel baseband, or audio; replay IQ through the same decoders.
Use coherent receivers for direction finding, antenna combining, beamforming, and passive radar.
Export IQ over UDP or TCP and forward decoded events to webhooks, Matrix, or MQTT.
Control the running receiver through REST, WebSocket, or MCP.

Install
Download a desktop installer or portable server from
GitHub Releases.
Installation instructions
cover each package, Homebrew, Nix, and containers.
On macOS, install the desktop app with Homebrew:
brew tap newspicel/tap
brew install --cask sdrminusminus
For the headless server, use brew install sdrmm.
To run the server with Docker Compose on Linux:
git clone https://github.com/Newspicel/sdrminusminus.git
cd sdrminusminus
docker compose up -d
Open http://localhost:8080. The server has no authentication by default; see
configuration and security
when setting up network access.
Try a receiver

On the starter Device node, choose Signal Generator (virtual). The connected Scope
shows the generated signals.
Choose + Node and add an NFM channel.
Connect Device IQ to NFM IQ, then NFM audio to Speaker audio.
Set the channel to 300 kHz above the radio's centre and start audio on the Speaker. You should hear a 1 kHz tone.

Your first receiver
walks through the controls and switching to hardware.
Standard builds include native RTL-SDR, HackRF, SDRplay, and CR-8 drivers. SDRplay and CR-8 also
require their vendor libraries. Desktop installers and containers bundle SoapySDR modules for
Airspy/AirspyHF, bladeRF, LimeSDR, PlutoSDR, and SoapyRemote. See the
hardware guide for requirements.
Screenshots
These captures use the built-in signal generator or repository IQ fixtures. Regenerate them with
cargo xtask screenshots.

Spectrum and waterfall
Rack view

FT8 decoding
Signal identification

Aircraft positions
Ship positions

Slow-scan television
Amateur television

Pager messages
Broadcast FM

Build from source
You need the repository's pinned Rust toolchain, a C/C++ compiler, CMake, Node 26, pnpm 11, and
SoapySDR 0.8 development files. The build guide
lists platform prerequisites.
git clone https://github.com/Newspicel/sdrminusminus.git
cd sdrminusminus
pnpm --dir web install --frozen-lockfile
pnpm --dir web build
cargo run -p sdrmm
Open http://localhost:8080. For development, cargo xtask dev starts the server and a frontend
with hot reload at http://localhost:5173. Add --watch to restart the backend when its files
change.
To build with only virtual sources and network receivers:
cargo run -p sdrmm --no-default-features --features net-client
Development

Path
Purpose

apps/sdrmm
Headless server binary

apps/desktop
Tauri desktop shell

crates/dsp, crates/modem
Signal-processing primitives and reusable modem algorithms

crates/engine
Device and signal-processing orchestration

crates/channels
Demodulators and protocol decoders

crates/device-*
Native, SoapySDR, network, virtual, and array backends

crates/wire
Shared API, WebSocket, and settings types

crates/server
HTTP, WebSocket, MCP, persistence, and embedded frontend

web
React application

docs
mdBook documentation

Command
Purpose

cargo xtask check
Format, lint, type-check, build, and check generated-code drift

cargo xtask test
Run Rust and frontend tests without hardware

cargo xtask smoke
Run the browser test against the server

cargo xtask codegen
Regenerate OpenAPI and TypeScript API types

cargo xtask audit
Check dependencies with cargo-deny

See Contributing and the
development guide
for testing, generated files, and releases.
Documentation and API

User and developer guide
Swagger UI: /api/docs on a running server
OpenAPI: /api/openapi.json or the checked-in openapi.json

License
Copyright (C) 2026 sdr-- contributors.
sdr-- is licensed under the GNU General Public License, version 3 or later.
THIRD_PARTY_NOTICES.md lists distributed dependencies and bundled
hardware components. Their license texts are also available in the app's About panel.
Aboutmodular, client–server software-defined radionewspicel.github.io/sdrminusminus/Topicsdsphackrfham-radiortl-sdrrustsdrsoftware-defined-radioResourcesReadmeGPL-3.0 licenseContributingContributingActivityStars14 starsWatchers0 watchingForks0 forksReport repositoryReleasesPackagesUsed byContributorsLanguages

Footer

© 2026 GitHub, Inc.

Footer navigation

Terms

Privacy

Security

Status

Community

Docs

Contact

Manage cookies

Do not share my personal information

You can’t perform that action at this time.

The project sdr-- is a software-defined radio application designed to provide a visual signal path for connecting devices, decoders, displays, and recorders, with user controls mapped to a rack system. At its core, the system employs a Rust server to manage radio and signal processing, while the user interface is implemented using a React application that can run either in a desktop window or a web browser. The system is designed to operate either locally on a single computer or across a network, allowing the server to be situated near the antenna, enabling remote data handling. A built-in signal generator is included, facilitating testing without external Software-Defined Radio hardware.

The capabilities of sdr-- encompass a broad range of radio reception and signal analysis. Users can listen to various radio modes, including AM, NFM, broadcast FM with stereo and RDS, SSB, and supported digital voice modes. The system allows for decoding radio traffic from aircraft, ships, amateur communications, pagers, and sensors by viewing a comprehensive channel catalog. Furthermore, the application enables the visualization of the radio spectrum, signal waterfalls, decoded messages, position maps, and received images. It supports advanced signal processing functions, including the use of coherent receivers for direction finding, antenna combining, beamforming, and passive radar. Data captured from devices, such as IQ data or channel baseband signals, can be recorded and replayed through connected decoders. The system also supports exporting IQ data over UDP or TCP and forwarding decoded events via webhooks, Matrix, or MQTT protocols.

Installation and deployment methods are provided for various operating systems, including macOS via Homebrew, Linux using Nix, and Docker Compose for running the server. The system supports integration with various hardware interfaces, including native drivers for RTL-SDR, HackRF, SDRplay, and CR-8, noting that some require vendor libraries. The repository includes a detailed structure divided into applications, crates, and web components, indicating a modular design centered around signal-processing primitives and device orchestration.

The underlying architecture features distinct modules, such as apps/sdrmm for the headless server binary, apps/desktop for the desktop shell, and crates for signal-processing primitives, modem algorithms, device orchestration, channel decoders, and various hardware backends. The web interface handles user interaction, and the server component manages the core operations via protocols like HTTP, WebSocket, and MCP, alongside persistence mechanisms. The documentation and API structure are exposed through Swagger UI, providing access to the OpenAPI specification, which details the available endpoints. The project is licensed under the GNU General Public License, version 3 or later. The development process incorporates command-line tasks, such as cargo xtask, for automated checks, testing, code generation, and dependency audits, ensuring reproducible development and quality control.