Skip to content

ka9q-python v3.0.0

Choose a tag to compare

@mijahauan mijahauan released this 01 Dec 14:09
· 184 commits to main since this release

ka9q-python v3.0.0 πŸŽ‰

Complete RadioD Feature Exposure

This major release provides comprehensive control over all ka9q-radio features through the Python interface. We've exposed 20 new control methods, covering everything from satellite tracking to spectrum analysis.

πŸš€ What's New

20 New Control Methods

Satellite & Advanced Tuning

  • πŸ›°οΈ set_doppler() - Real-time Doppler tracking for satellites
  • πŸ“‘ set_first_lo() - Direct hardware tuner control

Signal Processing

  • πŸ”„ set_pll() - Phase-locked loop for carrier tracking
  • πŸ”‡ set_squelch() - SNR-based squelch with hysteresis
  • πŸ“» set_envelope_detection() - AM envelope vs synchronous detection
  • 🎚️ set_independent_sideband() - ISB mode (USB/LSB to L/R)
  • πŸ“Ά set_fm_threshold_extension() - Weak FM signal improvement

Audio & Output

  • πŸ”Š set_output_channels() - Mono/stereo control
  • 🎡 set_output_encoding() - Format selection (PCM, Opus)
  • πŸ’Ώ set_opus_bitrate() - Opus quality control
  • πŸ“¦ set_packet_buffering() - Latency vs packet rate trade-off
  • 🌐 set_destination() - Dynamic output routing

Filtering & Analysis

  • πŸŽ›οΈ set_filter2() - Secondary filter for selectivity
  • πŸ“Š set_spectrum() - Spectrum analyzer configuration
  • 🎯 set_agc_threshold() - AGC activation tuning

System Control

  • βš™οΈ set_status_interval() - Status reporting rate
  • πŸ”€ set_demod_type() - Dynamic mode switching
  • πŸ“» set_rf_gain() / set_rf_attenuation() - RF hardware control
  • πŸ”¬ set_options() - Experimental features

πŸ“š Documentation

New Guides:

  • NEW_FEATURES.md - Detailed documentation with examples
  • QUICK_REFERENCE.md - Quick lookup guide
  • examples/advanced_features_demo.py - Working demo script

πŸ’‘ Example Use Cases

Satellite Tracking:

from ka9q import RadiodControl

control = RadiodControl("radiod.local")
control.set_doppler(
    ssrc=12345, 
    doppler_hz=-5000, 
    doppler_rate_hz_per_sec=100
)

Coherent AM Reception:

# Enable PLL for carrier tracking
control.set_pll(ssrc=12345, enable=True, bandwidth_hz=50)
control.set_envelope_detection(ssrc=12345, enable=False)

ISB Mode (USB & LSB simultaneously):

control.set_independent_sideband(ssrc=12345, enable=True)
control.set_output_channels(ssrc=12345, channels=2)

High-Quality Opus Streaming:

from ka9q.types import Encoding

control.set_output_encoding(ssrc=12345, encoding=Encoding.OPUS)
control.set_opus_bitrate(ssrc=12345, bitrate=128000)

Spectrum Analysis:

control.set_spectrum(
    ssrc=12345, 
    bin_bw_hz=100, 
    bin_count=512,
    kaiser_beta=6.0
)

βœ… Complete Feature Coverage

This release provides comprehensive coverage of radiod's TLV command set:

βœ… All 35+ radiod commands now supported
βœ… Doppler tracking for satellite reception
βœ… PLL carrier tracking
βœ… SNR squelch with hysteresis
βœ… Independent sideband mode
βœ… FM threshold extension
βœ… Secondary filtering
βœ… Spectrum analyzer
βœ… Output encoding control
βœ… RF hardware controls
βœ… Experimental options

πŸ”„ Backward Compatibility

100% backward compatible - All existing code continues to work without modification. All changes are additive.

πŸ“¦ Installation

pip install ka9q==3.0.0

Or upgrade:

pip install --upgrade ka9q

πŸ§ͺ Testing

Run the demo script to see all new features:

python3 examples/advanced_features_demo.py

πŸ“– Full Documentation

  • NEW_FEATURES.md - Complete feature documentation
  • QUICK_REFERENCE.md - Quick reference with examples
  • CHANGELOG.md - Detailed changelog
  • RADIOD_FEATURES_SUMMARY.md - Implementation details

πŸ™ Credits

Thanks to Phil Karn (KA9Q) for creating ka9q-radio and making its source code available for analysis.

πŸ› Issues & Feedback

Found a bug or have a feature request? Please open an issue on GitHub:
https://github.com/mijahauan/ka9q-python/issues


Full Changelog: https://github.com/mijahauan/ka9q-python/blob/main/CHANGELOG.md