Sunday, March 30, 2014

Scanning for Jupiter 2014-03-30 23z through 2014-03-31 06:15z

For my next attempt to scan for Jovian emissions I plan to use 1/2 second time scans by 10khz frequency bins over 2.7Mhz with 700Khz overlapping frequency ranges between 4 RTL dongles to compensate for the edges of the scan having less sensitivity.

Here are some details, and in a subsequent post to this one sometime after the scan has completed I will post the GNUPLOTTED results.


(First Results - not impressive)

Setting the z-range (set zrange[-55:-35]) basically 'filters' displayed results by chopping off the low-lows and the higher than average highs (spikes) so that your eye can see the most subtle patterns or weaker changes.

Unfiltered with the zrange (dbm range)

Tuesday, March 25, 2014

rtl_power (modified)

I've been working on rtl_power today and was able to accomplish the follow 3 things that are important in saving time when using GNUPLOT as well as improving rtl_power's accuracy in the resulting data it creates.

The issue is that when you run -i 1 this is a 1 second integration interval.  This means rtl_power will continue to rescan the bandwidth you specify with the -f option until the next internval and create an average based on that 1 second for each frequency it's scanned.

This average is nice if you don't really care about high resolution and can live with that.

But I want to be able to see things like Meteor Scatter on 55 Mhz TV stations in Mexico, or CW beacons rise and fall in ham radio bands, etc...

This means that we need sub-second data.  To do this I modified rtl_power as follows:

  • changed several items that relate to the 'interval' command like option so that you can now use -i .5 which is the same thing as saying do a scan every 500 milliseconds or 1/2 a minute from the time rtl_power starts.
  • added new command line option -u <upconverter frequency in hz> which will automatically 'down-convert' the frequencies being logged! (a big plus not to have to post-process for this!)
  • changed csv_dbm() so that it now only reports yyyy-mm-dd hh:ii:ss.s, freq in hz, dbm
  • changed csv_dbm() so that when a time changes it adds a blank line (required for direct import into gnuplot as 3D data.
  • These changes make is so that rtl_power is not dumping data at sub-second intervals and in a format that will directly import into GNUPLOT.  Which removes the rather complication and slow process of post-processing the old CSV style that rtl_power created.
Here is a 5 minute run of 28.0 to 28.4 Mhz at 50hz resolution and 1/2 second scans.  

NOTE: the title on this graph is incorrect (sorry) the actual data is 28.0 through 28.4 Mhz not as shown in the title 28.2 to 28.4 Mhz.

You can easily see morse code beacons around 28.2-28.25Mhz as well as SSB use between 28.3 and 28.4 Mhz and various other modes below 28.1 Mhz including PSK, and CW.

Monday, March 17, 2014

RTL SDR via MATLAB (first test)

This is just a simple test using matlab (bottom: black/yellow) to directly connect to an RTL dongle and generate a spectrum analysis.  I also ran HDSDR at the same time (blue screen) so that you could see what things look like there.  It's the same signal @ 50.074.194 on both displays.  They are sharing the same antenna.

This is just to show that matlab could possibly be used as a spectrum analyzer via an RTL dongle similarly to HDSDR (although of course in this example not nearly as nice).

"BDA" Sees Jupiter???

Sunday, March 9, 2014

Big Dongle Array - redo

Today I finally nailed down 99% of the layout on my RTL big dongle array box...Just a few tweaks to add like several small fans (because the dongles get quite warm when running 'rtl_power') and a 12v supply for those.  And I need to work out one more splitter setup for dongles #2 and #3.

Aside from that this is mostly locked down as is now...I may add more LNA's for specific frequencies soon.  I have them I just haven't added them in yet.

Here are two pix of what this looks like now. (click them to see larger views)

Below shows the BDA and below that case are the RTL server that runs 12 dongles and 
3 Hadoop Cluster Nodes

Thursday, March 6, 2014

Playing at creating COLORGRAM DATA (3 days)

HOUR is marked at X-axis
MIN OF HOUR is marked at Y-axis

This graph is showing 55.260 Mhz which from my location is Meteor and foEs distance from Mexican TV Ch 2.

This is recording the PEAK time and duration 

(Just experimental at this point)

BDA sees Mexican TV Channel 2 on Meteor Scatter

Wednesday, March 5, 2014

Big Dongle Array ~ See 50 Mhz (6 meter) CW beacons using RTL_POWER

Click on the image above for a larger view of it

This image was generated using GNUPLOT from data logged to a log file using RTL_POWER only.  All 'rtl_power' actually does is scan a frequency range and provide dBm measurements.  An example of the output of this data looks something like this....

2014-03-06, 01:00:30, 126300000, 129050000, 1342.77, 104, -56.21, -56.28, -58.03, -58.06, -58.60, -58.66, -58.82, -55.77, -56.88, -56.28, -5
3.70, -56.93, -58.22, -57.81, -56.06, -55.24, -58.70, -59.15, -58.71, -57.95, -57.31, -58.94, -56.00, -58.35, -58.11, -58.58, -59.05, -58.78

, -57.58, -54.52, -54.47, -57.93, -57.93, -58.52, -58.46, -59.00, -57.96, -53.85,.........

This then gets post-processed into something that looks more like this:

2014-03-06 00:00:29,1300000,-56.84
2014-03-06 00:00:29,1301342.77,-58.82
2014-03-06 00:00:29,1302685.54,-59.92
2014-03-06 00:00:29,1304028.31,-60.52
2014-03-06 00:00:29,1305371.08,-60.11
2014-03-06 00:00:29,1306713.85,-60.31
2014-03-06 00:00:29,1308056.62,-58.79

2014-03-06 00:00:29,1309399.39,-57.21...................

The result is that I end up with (date time,frequency_in_hz,dbm)

This is something that GNUPLOT can use EASILY!

Here the gnuplot script I used to create the above image:


load '/var/www/mufmon/bin/plot/default.plt'
set xlabel "Time" font "arial,8"
set ylabel "Frequency (MHz)" font "arial,8"
set zlabel "Gain (dBm)" font "arial,8"
set grid lc rgbcolor "#BBBBBB"
set timefmt '%Y-%m-%d %H:%M:%S'
set format y "%1.3f"
set format x "%H:%M"
set xdata time
set xrange ["2014-03-05 14:00:00":"2014-03-05 16:00:00"]
set zrange[-50:-25]
unset key

set datafile separator ","
set pm3d interpolate 5,5
set view 0,180,0.98
set pm3d map

set terminal pngcairo crop
set term png enhanced size 2000,1000 enhanced font 'Verdana,10'

reportdatetime = "`date +'%Y-%m-%d' -d '1 hours ago'`"
set title "6m HI RES ".reportdatetime
reportpng = '/var/www/mufmon/6m_hi_res.'.reportdatetime.'.png'
set output '/var/www/mufmon/6m_hi_res.'.reportdatetime.'.png'
print reportpng

splot '/tmp/3d_6m_hi_res.dat.3d' u 1:2:3 with pm3d

And that's it.  Easy-Peezie! (kinda) :-)

PS: here is how I run 'rtl_power' (more or less, I've written code wrappers around the actual command more on that another time)

/bin/bash -c while true; do /usr/local/bin/rtl_power -d 0 -f 125000000:180000000:1500 -i 30 -g 20.9 -p -29 -e 1h | /usr/sbin/rotatelogs /rtl_log/live/0.55000000.1356_34Hz.%Y-%m-%d.%H 3600; done&

Notice I'm using rotatelogs with this!  This makes managing the log data WAY WAY simpler.

Tuesday, March 4, 2014

WWV 14UTC 2014-03-04

Plot showing WWV signal strength over several hours

10m Ham Contest vs. Non-Contest Day/Hour

Second 3D GNUPLOT using the Big Dongle Array 0-55Mhz

Time is 18 UTC 3/3/2014 Chart says Frequency (Hz) but is actuall Frequency (Mhz)

First 3D GNUPLOT of Big Dongle Array Data

set xlabel "Time" font "arial,8"
set ylabel "Frequency (Hz)" font "arial,8"
set zlabel "Gain (dBm)" font "arial,8"

set grid lc rgbcolor "#BBBBBB"
set timefmt '%Y-%m-%d %H:%M:%S'
set format y "%f"

#set xrange[-180:180]
set yrange[28.000:29.000]
set zrange[-60:0]

unset key
set view 30,56,0.98
set format x "%H:%M"
set xdata time
set datafile separator ","

splot '/tmp/test.out' u 1:2:3 with pm3d

Monday, March 3, 2014

WX Sat spotted using the Big Dongle Array

GNUPLOT 4.6 of 27-30Mhz during a contest weekend.

The left most is 27Mhz the right most is 30 Mhz you can easily see where 10m or 28-29Mhz is and the when the contest ended abruptly.  Each black horizontal line marks 1 hour the more recent in time is at the bottom.