SDR–; 开源SDR软件,具有可视化可修补信号图,使用Rust进行数字信号处理,并配备web UI

Hacker News Top 工具

摘要

sdr--是一个开源软件定义无线电应用,具有可视化可修补信号图,使用Rust构建用于数字信号处理,并配备web UI以供控制和可视化。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/09/14 14:48

Newspicel/sdrminusminus 源码:https://github.com/Newspicel/sdrminusminus

sdr–

sdr– 是一个具有可视化信号路径的软件定义无线电应用程序。你可以在画布上连接设备、解码器、显示器和记录器,然后将常用控件固定到机架上。Rust 服务器负责处理无线电和信号处理。React 界面可以在桌面窗口或浏览器中运行。你可以在一台计算机上同时运行两者,或者将服务器放在天线旁边通过网络连接。内置的信号发生器让你无需 SDR 设备也能进行尝试。

状态

sdr– 正在积极开发中。大多数解码器已通过生成的 IQ 测试套件进行测试;只有部分已在实际接收中验证。频道目录(https://newspicel.github.io/sdrminusminus/user-guide/channels.html#channel-catalog)列出了每种模式的验证证据及其限制。实验模式可能提供数据获取或测量功能,但无法解码音频或视频。

功能

  • 接收 AM、NFM、立体声及 RDS 广播 FM、SSB 和支持的数字语音模式。
  • 解码航空器、船舶、业余无线电、寻呼机、传感器等无线电通信。查看完整频道列表(https://newspicel.github.io/sdrminusminus/user-guide/channels.html)。
  • 查看频谱、瀑布图、解码消息、位置地图和接收图像。
  • 扫描频率并保存工作区、预设和书签。
  • 录制设备 IQ、信道基带或音频;通过相同解码器重放 IQ 数据。
  • 使用相干接收器进行测向、天线组合、波束成形和无源雷达。
  • 通过 UDP 或 TCP 导出 IQ 数据,并将解码事件转发到 Webhook、Matrix 或 MQTT。
  • 通过 REST、WebSocket 或 MCP 控制运行中的接收器。

安装

从 GitHub Releases(https://github.com/Newspicel/sdrminusminus/releases)下载桌面安装程序或便携式服务器。安装说明(https://newspicel.github.io/sdrminusminus/getting-started/install.html)涵盖了各软件包、Homebrew、Nix 和容器的安装方法。 在 macOS 上,使用 Homebrew 安装桌面应用:

brew tap newspicel/tap
brew install --cask sdrminusminus

对于无头服务器,使用 brew install sdrmm。 在 Linux 上使用 Docker Compose 运行服务器:

git clone https://github.com/Newspicel/sdrminusminus.git
cd sdrminusminus
docker compose up -d

打开 http://localhost:8080/。服务器默认无身份验证;设置网络访问时请参阅配置和安全文档(https://newspicel.github.io/sdrminusminus/server/configuration.html)。

尝试接收器

  1. 在初始 Device 节点中,选择 Signal Generator (virtual)。已连接的 Scope 将显示生成的信号。
  2. 选择 + Node 并添加一个 NFM 信道。
  3. 将 Device 的 IQ 连接到 NFM 的 IQ,然后将 NFM 的 audio 连接到 Speaker 的 audio。
  4. 将信道频率设置为收音机中心频率上方 300 kHz,并在 Speaker 上启动音频。你应该能听到 1 kHz 的音调。 你的第一个接收器(https://newspicel.github.io/sdrminusminus/getting-started/first-receiver.html)将引导你了解控件以及如何切换到硬件设备。标准版本包含原生 RTL-SDR、HackRF、SDRplay 和 CR-8 驱动。SDRplay 和 CR-8 还需要其供应商库。桌面安装程序和容器捆绑了支持 Airspy/AirspyHF、bladeRF、LimeSDR、PlutoSDR 和 SoapyRemote 的 SoapySDR 模块。有关要求,请参阅硬件指南(https://newspicel.github.io/sdrminusminus/hardware.html)。

截图

这些截图使用了内置信号发生器或仓库中的 IQ 测试套件。可以使用 cargo xtask screenshots 重新生成。

频谱与瀑布图机架视图
频谱图(已标记调谐的信道)机架中的三个接收器
FT8 解码信号识别
——
来自录制的 20 米 FT8 时隙的解码消息信号测量和候选协议
航空器位置船舶位置
——
ADS-B 航空器和解码器日志汉堡港的 AIS 位置
慢扫描电视业余电视
——
Robot 36 SSTV 图片625 线 ATV 测试图像
寻呼机消息广播 FM
——
带 Webhook 输出的 POCSAG 消息RDS 电台名称、文本和备用频率

从源码构建

你需要仓库指定的 Rust 工具链、C/C++ 编译器、CMake、Node 26、pnpm 11 和 SoapySDR 0.8 开发文件。构建指南(https://newspicel.github.io/sdrminusminus/development/building.html)列出了各平台的先决条件。

git clone https://github.com/Newspicel/sdrminusminus.git
cd sdrminusminus
pnpm --dir web install --frozen-lockfile
pnpm --dir web build
cargo run -p sdrmm

打开 http://localhost:8080/。在开发模式下,cargo xtask dev 会启动服务器和前端,并支持 http://localhost:5173/ 的热重载。添加 --watch 可在后端文件更改时自动重启。 若仅使用虚拟源和网络接收器构建:

cargo run -p sdrmm --no-default-features --features net-client

开发

路径用途
apps/sdrmm无头服务器二进制文件
apps/desktopTauri 桌面外壳
crates/dsp, crates/modem信号处理原语和可复用的调制解调算法
crates/engine设备和信号处理编排
crates/channels解调器和协议解码器
crates/device-*原生、SoapySDR、网络、虚拟和阵列后端
crates/wire共享 API、WebSocket 和设置类型
crates/serverHTTP、WebSocket、MCP、持久化和嵌入式前端
webReact 应用程序
docsmdBook 文档
命令用途
cargo xtask check格式化、代码检查、类型检查、构建并检查生成代码的漂移
cargo xtask test无需硬件即可运行 Rust 和前端测试
cargo xtask smoke针对服务器运行浏览器测试
cargo xtask codegen重新生成 OpenAPI 和 TypeScript API 类型
cargo xtask audit使用 cargo-deny 检查依赖项

有关测试、生成文件和发布的详细信息,请参阅贡献指南和开发指南(https://newspicel.github.io/sdrminusminus/development/building.html)。

文档与 API

  • 用户和开发者指南(https://newspicel.github.io/sdrminusminus/)
  • Swagger UI:在运行的服务器上访问 /api/docs
  • OpenAPI:/api/openapi.json 或仓库中的 openapi.json

许可证

版权所有 (C) 2026 sdr– 贡献者。 sdr– 根据 GNU 通用公共许可证第 3 版或更高版本 授权。THIRD_PARTY_NOTICES.md 列出了分发的依赖项和捆绑的硬件组件。它们的许可证文本也可在应用的“关于”面板中找到。

相似文章

rustdesk/rustdesk

GitHub Trending (daily)

RustDesk 是一款用 Rust 编写的开源远程桌面解决方案,开箱即用,支持自托管,让用户完全掌控自己的数据。

Xirp

Product Hunt

Xirp 是 Spotify 构建的智能体开发环境,已在 Product Hunt 上展示。

ds4 webui

Reddit r/LocalLLaMA

一款专为配备至少 128GB 内存的 Apple Silicon Mac 设计的 ds4 推理服务器的极简开源 Web UI 已发布。

Signal Shot:使用 Lean 验证 Signal 协议及其 Rust 实现的项目

Lobsters Hottest

Signal Shot 是一项重大的形式化验证项目,旨在使用 Lean 验证 Signal 协议及其 Rust 实现。该项目结合了 Rust 到 Lean 的转换(Aeneas)、数学基础(Mathlib/CSLib)、自动化策略(grind/SymM)以及 AI 辅助形式化等方面的最新进展。这是对 Lean 能否从纯数学扩展到已部署的现实世界软件系统的一次重大考验。