Panadapter for the Yaesu FT950 under Linux, using a FunCube Dongle,
Gnuradio and Hamlib
A different combination between toys in the shack
Hunting elusive signals was the very reason for which spectrum
analyzers were put on sale, typically to the military establishment and
at insane prices. No wonder that since my first experience of using
them in connection with receivers I found the feature incredibly useful.
Manufacturers of ham transceivers, led by Icom, have started in recent
years offering such feature incorporated into their midlle to top level
products, adding quite a lot to final price.
For my FT950 Yaesu offers a rather expensive standalone unit, also
designed for the FT2000.
However these days small SDR receivers have become very cheap and
everybody ha a pc providing the necessary computational horsepower.
So here is a how I recombined some ingredients already available in my
The FT950 and FT2000, being ready for the DMU2000,
have convenient connection points inside, where you can tap the first
IF at 69MHz by simply plugging in a coaxial cable.
Procedure is nicely shown on several web pages on the net and on the RFSpace IF2000 boarduser manual:
a nice converter designed to translate the 69MHz into a range any of
their nice HF SDRs can tune (es. SdrIQ).
Here are some pictures of how I installed it: you just need to put the
radio belly up and remove all screws apart from those holding the legs.
You'll then be able to lift the bottom cover.
With the connectors of the radio on your side, tap point is in the top
Existing jumper only terminates the IF tap point into a 50 ohm load:
simply disconnect it and plug in you extension.
I made mine from thin RG174 coax and the proper TMP plug.
Tap point is clearly marked "SCOPE" on the board.
With a bit of patience you can have the coax go through the circular
hole in the bottom right corner and the out from the ventilation grid.
No need to drill new holes.
Our Windows users colleagues have several excellent choices when it
comes to SDR software (SDR#
to name just one).
Linux users lack such shiny packages but on the other hand can put
their hands on the incredibly powerful GNURadio environment with as
little effort as pulling it from their repository (at least for the
By borrowing heavily pieces of code around, especially from G0HWW, I've
brewed the solution better suiting me.
The usage I've got in mind is mostly looking for signals in not so
crowded bands, namely 50 and 70 MHz.
No attempt is made to decode signals, which would proably be more
useful to dx hunters looking for the right split, but I'm not sure the
processing lag would allow it.
Clicking on a signal either in the waterfall or FFT will tune the
trasceiver to that frequency, while turning the vfo knob will update
the baseband indication at the bottom.
This is achieved through hamlib. You need to start it in demon mode
with a command like:
rigctld -m128 -s38400 -r/dev/ttyUSB0
where the first argument is the specific radio model, the second its
serial port speed and the third the serial port it's connected to.
Changing it to work with other trasnceivers with 1st IF upconversion
should be just matter of setting the right frequency.
The FT950 presents an inverted spectrum and these lines take care
of splitting the spectrum (thanks Alex OZ9AEC for the hint).
self.gr_float_to_complex_0 = gr.float_to_complex(1)
self.gr_complex_to_float_0 = gr.complex_to_float(1)
They may have to be bypassed for other radios.
Also adapting it to the cheap RTL dongles shouldn't be complex in
principle, but my first attempts revealed some serious intermod issues.
Using those dongles it's probably worth inserting some heavy decimation, because you
don't need to see 900kHz or more but rather more detail.
Since the exercise was almost trivial I then ported it to work with the Icom 910 and USRP + LFRX board, as we're talking 10MHz IF here.
Tapping the 910 IF is not as easy: requires soldering a coax onto a pcb trace and running the signal through a buffer amplifier. Here is the Python script showing how I "wired" the different SDR.
Being radio control via hamlib model-agnostic as long as you launch the
correct RIGCTLD server, there is no need to expand on it.