Skip to content

About

Native Java SDR decoder infrastructure and spectrum analyser/recorder for Pluto/PlutoPlus

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

10 Commits

Folders and files

Repository files navigation

Banner

JSatDecode is a Java-based framework for the capture, decoding, and data distribution of satellite signals, based around jradio and a limited set of dependencies. Designed for flexibility and extensibility, it provides a complete pipeline from signal acquisition through processing to output, supporting both real-time and file-based workflows. The framework features a modular architecture that cleanly separates signal sources, decoders, and distribution outputs, enabling seamless integration of new components. Built on Java SE with no native dependencies, JSatDecode delivers cross-platform compatibility while maintaining high performance through efficient buffer management and non-blocking I/O. It supports standard formats including WAV, CF32, and CS16 for file-based processing, and provides real-time acquisition from supported hardware. The distribution system implements a ZMQ-based protocol for interoperability with other decoding and processing tools.

Capabilities

JSatDecode provides deterministic file acquisition, live hardware source support, decoder management, ZMQ-based distribution, and optional spectrum and constellation monitoring. JSatInspector offers a standalone spectrum analyzer with waterfall display and IQ recording for PlutoPlus devices, supporting both CF32 and CS16 formats.

Screenshots

JSatDecode

JSatDecode

JSatInspector

JSatInspector

Build

See Distribution and Output for complete build and configuration instructions.

# Build the project
mvn verify

# Build only core module
mvn -pl core verify

The four Java artifacts are explicit Java Platform Module System (JPMS) modules. See Java modules for their names, exported APIs, service-provider registration and module-path commands.

Examples

Build and extract the stand-alone distribution, which includes the mission decoders and runtime dependencies. Run these examples from the extracted directory on Windows; on Linux/macOS, use ./bin/jsatdecoder.sh and ./bin/jsatinspector.sh instead of the .bat launchers.

Launch JSatDecode CLI

# Show help
bin/jsatdecoder.bat --help

# List available sources
bin/jsatdecoder.bat --list-sources

# List available decoders
bin/jsatdecoder.bat --list-decoders

# Run a decoder with configuration file
bin/jsatdecoder.bat --config myconfig.properties

# Run with file source and headless mode
bin/jsatdecoder.bat --config examples/decoder_hinode/hinode-wav.properties --set source.file=C:/recordings/Hinode_90secs.wav --headless

Launch JSatInspector

# Start the spectrum analyzer and recorder
bin/jsatinspector.bat

# Show help
bin/jsatinspector.bat --help

Documentation

Mission Decoders

Available example decoders for satellite missions:


License

This project is licensed under the GNU General Public License version 2 with the Classpath Exception.

See the LICENSE file for the full license text.

The Classpath Exception allows linking this library with independent modules to produce an executable, regardless of the license terms of those independent modules.

About

Native Java SDR decoder infrastructure and spectrum analyser/recorder for Pluto/PlutoPlus

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages