Skip to content

qmx-birdie-scanner is an experimental Python project designed to detect birdies in QMX and QMX+ transceiver

Notifications You must be signed in to change notification settings

gvelo/qmx-birdie-scanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

qmx-birdie-scanner

qmx-birdie-scanner is an experimental Python project designed to detect birdies in QMX and QMX+ transmitters manufactured by QRP Labs. The project consists of two scripts: one for capturing audio FFT data and another for analyzing it to identify narrowband energy peaks.

Scripts

fft_collector.py

This script performs a frequency scan over the transmitter, controlled via CAT over a serial port. For each frequency step, it records the audio output and computes an FFT, storing the results in an HDF5 (.h5) file for later analysis.

Usage:

usage: fft_collector.py [-h] [--serial-port SERIAL_PORT] start_freq end_freq output_file

QMX FFT Frequency Scanner

positional arguments:
  start_freq              Start frequency in Hz
  end_freq                End frequency in Hz
  output_file             Output H5 filename

options:
  -h, --help              Show this help message and exit
  --serial-port SERIAL_PORT
                          Serial port for CAT control (default: /dev/ttyACM0)

Example – Scan the 20-meter amateur band:

python3 fft_collector.py --serial-port /dev/ttyACM0 14000000 14350000 scan_20m.h5

This will scan from 14.000 MHz to 14.350 MHz and store the FFT results in scan_20m.h5.


birdie_detector.py

This script analyzes the .h5 file generated by fft_collector.py. It scans each FFT to detect birdies by identifying narrowband energy peaks that exceed the noise floor. It supports different plotting modes for analysis and debugging.

Usage:

usage: birdie_detector.py [-h] [--output-dir OUTPUT_DIR] [--plot-mode {none,birdie,all}] h5_file

QMX Birdie Detection Analysis

positional arguments:
  h5_file                 Input H5 file with FFT data to analyze

options:
  -h, --help              Show this help message and exit
  --output-dir OUTPUT_DIR
                          Output directory for FFT plots (default: current directory)
  --plot-mode {none,birdie,all}
                          Plot generation mode: none=no plots, birdie=only frequencies with birdies, 
                          all=all frequencies (WARNING: creates many files)

Examples:

Basic analysis (no plots):

python3 birdie_detector.py scan_20m.h5

Generate plots only for frequencies with detected birdies:

python3 birdie_detector.py --output-dir plots --plot-mode birdie scan_20m.h5

Generate plots for all frequencies (debugging):

python3 birdie_detector.py --output-dir plots --plot-mode all scan_20m.h5

Requirements

  • Python 3.7+
  • Python packages: numpy, matplotlib, h5py, scipy, sounddevice, argparse

Status

This is an experimental project

License

MIT

About

qmx-birdie-scanner is an experimental Python project designed to detect birdies in QMX and QMX+ transceiver

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages