V8 Chapter 55

316 - Paradigm Shift 2014-10-21

While working on other things I ran across this example of a 'Paradigm Shift Without A Clutch' and thought you might be interested.

315 - Finding way out of rabbit hole 2014-10-03

I finally managed to get a set of SDRSharp source that compiles and have added the HackRF plug-in to it. Now I can start the port to Delphi and check its operation as I go against the SDRSharp version.

314 - Falling down the rabbit hole 2014-09-28

I *think* I finally may be on the right track. I need a simple program that will interface with the HackRF DLLs and can be understood by my minimal mind. After tweeting with Michael Ossmann (designer of HackRF) I understand that the best on is available on his GIT. Downloading that and reading the docs. I realize that his Tools require a build under Unix. He has provided a method to build under Windows but this requires the user of either Cygwin or MinGW.

Reading the docs for Cygwin and MinGW it appears that MinGW is the right choice for my project so Off I go.

I could never get this to work. I am sure its because of my lack of understanding of MinGW.

313 - Getting serious with HackRF One 2014-09-26

Alright enough screwing around. I have to be able to control HackRF from my SETI Control Panel. That means that I need to be able to access the HackRF DLL from Delphi. To start the DLL seems to be available from Zefie Git I say seems to because I need to try to work with it to make sure.

SDRSharp - The readme on Zefie's Git tells me where I can get SDR# source - but I know it has been remove by the author so I have to work with the old version I already have.

LibusbX - It tells me where I can get the library for this driver on source forge and that I should use release 1.0.15. I can get that but it seems I should already have a later version of that installed. We will see.

HackRF master - I downloaded the Zip from the Git into


On my developement machine and un-zipped it

(more to come)

312 - Playing with HackRF One 2014-09-14

With a lot of help from Jon Richards I am starting to get a handle on using HackRF with SDRSharp. This is a video capture of the GOES 13 satellite.


  • 10' Az/El mount steerable
  • Az: 121.25 El: 31.33
  • Band Pass Filter: out of the path
  • LNA in the path
  • Line Amp in the path


  • HackRF with 10 MHz disciplined external clock
  • Center frequency: as shown on the video
  • AM modulation
  • 20 Meg Samples / Second
  • Receiver LNA gain: 32 dB
  • No AGC or other filtering

312 - HackRF One 2014-08-31

I decided to make the HackRF One the base Software Defined Radio that I will work with. The main reason is that I can get it up and running under Windows using SDRSharp for control. This will allow me to baseline the radio operation as I build my own software. I ordered it from NooElec ($300) and after a few days wait it arrived.

To get it up and running

  • Install SDRSharp (SDR#)- Download the latest SDR# and installed on my B: drive (B:\SDRSharp\sdr-install\sdrsharp) and pull off a shortcut for my desktop.
  • Install HackRF One Driver - Find zadig in the SDR# folder and run it. Select HackRF and click install.
  • Start SDR# - Select HackRF as the receiver. It should come right up.
  • Select the Configure icon (the gear) - Bring up the LNA Gain and VGA Gain.
  • SDR# under the Radio menu - Select 'Correct IQ' to clean up the DC output spike in the FFT. Select WFM for Wide FM and select your local FM station for a test.

I wanted to see what bandwidth the radio and my computer would support so I stepped through the available settings in Configure. I found that I had to Reset the HackRF receiver on each change to get it running again. Fortunately the receiver has a Rest button where it is easily accessed.

  • 8 MSPS - 30% CPU usage (4 core AMD machine), 8 MHz bandwidth
  • 10 MSPS (default) - works fine 32%, 10 MHz bandwidth
  • 12.5 MSPS - still good, 32%, 12.5 MHz BW
  • 16 MSPS- Good, 43%, 16 MHz BW
  • 20 MSPS - Choppy, 51%, 20 MHz BW

The entire FM Band at 20 MSPS can be seen,

MDS One Last Time

I compared the Minimum Delectable Signal of my ICOM R7000 receiver and the RTL SDR in item 309 below. Now I compare the ICOM and the HackRF. Just about the same setup shown below.

With this setup the minimum signal that trips the ET detection logic on my R7000 is -125 dBm. The minimum signal that I can see in the IF spectrum display of the HackRF is - 115 dBm. That 10 dB difference is a bit of an improvement over the RTL-SDR.

311 - Software Defined Radio 2014-08-12

I would like to switch to a Software Defined Radio (SDR) from my current analog receiver - the venerable ICOM R7000 that I have had for so many years. The trouble is that I don't have a clear image in my mind how I would implement that change.

  • Do I run GNU Radio as is and try to find some way to build detection logic into it?
  • Do I run SDRSharp, or a fork of it, and build the detection logic into that?
  • Do I work with the driver software from Ettus and build my own user interface that can be later included in the SETI Net Control Panel
  • Do I switch to Ettus single card receiver (the USRP B200) - Kind of expensive
  • Do I attempt to use the HackRF board just coming out - Still $300 but new design (bugs and all)
  • I could use the BladeRF - Don't know much about it
  • What tool set do I need? I would like to stay with MS Visual Studio just because I have it and it was hard enough to learn without starting another tool learning curve
  • Do I bit the bullet and switch to Linux - (shudder)
  • Where do I put the detection logic?
  • and What About Naomi

All of these questions need answers. Right now I am simply floundering (eyes rolled to the same side of my head and I am laying in the mud).

310 - WTF is That ? 2014-08-08

Somehow this showed up in the output of the FFT with no input?

What have I done, what have I done?

I will work on this tomorrow.

<tomorrow> I still have no idea what caused that but I attributed it to the on-board audio system of Sagan's motherboard. I put in place a Sound Blaster audio card and that cleared it up.

309 - MDS Again 2014-08-05

I wasn't very happy with the results from the earlier MDS test (308 below) so I ordered two more of the RTL-SDR sticks in the hope that I had burned the first one out and that it really had a reasonable Minimal Detectable Signal (MDS).

This is the setup:

With this setup the output from the ICOM IC-R7000 looks like this:

Spectrum Analyzer running 32 K FFT


  • -48.15 dBm at splitter
  • -36 dB fixed attenuators
  • -70 dB HP step attenuator

-154 dBm MDS that reliably trips the SETI detection logic for the R7000 receiver

The RTL-SDR looks like this:

This is from SDR# set to 32K resolution, no AGC,no windowing and looking at the IF display. The input power is:

  • -52.00 at the splitter
  • -36 dB fixed attenuators
  • -30 dB HP step attenuator

-118 dBm MDS - the minimum I can input and still see the signal on the IF spectrum display.

RTL-SDR is the DVB-T+DAB+FM from Digital Video

308 - MDS 2014-07-29

While screwing around with the Total Power Receiver (below) I decided to measure the Minimum Detectable Signal (MDS) of the main SETI receiver a ICOM IC-R7000.

MDS has a mathematical definition:

MDS = 10*log_{10}(kT/1mW) ~ dBm~ + ~(noise~figure,~dB)~+~ 10\log_{10}(bandwidth,~Hz)~

but this is not really what I wanted to know. I wanted the actual, not theoretical MDS of the receiver so I had to test it.

This is the setup:

With the input power level measured (-33 dBm) and the attenuation shown (70 dB + 10 dB) the receiver produces a line on the waterfall that can just be seen. The SETI detection logic does see it as well and rings the alarm.

The R7000 MDS is therefore -33 + -70 + -10 or -113 dBm

The same setup but connected to a RTL-SDR returned a MDS of -60 dBm. Not very good.

307 - ToDo List 2014-07-23

Its time to make yet another todo list for the station.

  • SML - The way the schema works now variables are stored as doubles. This causes crazy stuff like: NoiseFigure="0.28999999165535"/> to show up. I think I have to re-brand the schema to text. I have decided that I have been looking at this all wrong. The database contains Singles not text.
  • Complete the total power receiver board when the new Op Amps come in. I give up on this. It works but I cannot see the Sun with it.
  • Fix Arduino code on the pixels so they can buffer a bunch of cosmic ray hits
  • Repair the original cosmic pixel from the ERGO project
  • Regularize the Bird database table. Add in the re-found hits from the Hits table