Skip to content

Possible QMX+ source #1734

@kalehmann

Description

@kalehmann

Feature proposal

This feature request proposes to provide a new source for SDR++, that sets a QMX+ transceiver automatically in IQ mode, syncs the frequency with the device via CAT commands and mutes audio during transmit.

Background

I own a QMX+ QRP radio which is an SDR device and has support for IQ output via USB audio. Since the device has no spectrum display, I want to use SDR++ (which is great software btw, thanks so much) as a panadapter.

This is already possible with the SDR++ audio source:

Image

For this to work, the QMX+ has to be only set to IQ mode, which can be done via the CAT-command w Q91 or the serial interface.

Next I can also start a rigctld instance and use the rigctl_client module of SDR++ to to sync the frequency of with the device via

 rigctld
     --model=2057 \
     --rig-file=/dev/serial/by-id/usb-QRP_Labs_QMX_Transceiver-if00 \
     --serial-speed=115200 \
     --listen-addr=127.0.0.1 \
     --port=4532

Now the problem with that is, that the IQ data from the QMX+ is shifted by 12 kHz. Unfortunately, the Offset mode setting seems to have no effect for the audio source of SDR++.
I therefore wrote a small Python script, that acts as a proxy to rigctld and automatically adapts the frequency with

freq_change = re.compile(rb"^F \d+\.\d+\n$")
while (request := client_socket.recv(1024)):
    if freq_change.match(request) is not None:
        freq = float(request[2:-1])
        freq += 12_000
        request = f"F {freq:.6f}\n".encode()
    
    # Next line passes request to rigctld
    proxy_resp = rigctld.proxy(request)    
    client_socket.send(proxy_resp)

Now I only have to make sure, that the VFO in SDR++ is always positioned on three quarters of the spectrum and I change frequency in SDR++ by dragging the band left and right.

Finally when I key up the QMX+, the IQ data pauses as it is, which causes a weird screeching sound from SDR++, so I mute my laptop every time before I hit PTT and unmute afterwards.

While that setup works for me, it is really hacky. A real QMX+ source in SDR++, that works out of the box would be so much appreciated. I expect it to be technically not that challenging as the audio source already works, hamlib could be used to sync the frequency with the QMX+ (including the 12 kHz offset) and read the PTT state from the QMX+ to mute the audio output during transmit. However I am fully aware, that the developer of SDR++

  1. most likely does not own that device
  2. does not welcome pull requests with code changes

Now my question is, would there be any practical way to realize this?

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions