Sunday, November 2, 2014

Mini-Project concept - HackRF One & Beaglebone Black, "Power Line noise drive test unit"

Yeah, so I've been wanting to do some drive testing in my area to see if I can accurately identify some local power poles which emit HUGE amounts of RF noise from time to time.  Pretty much anytime the winds are around 7mph or more the power lines start to sing.  Trouble is it's difficult to ID which ones are at fault because of the nature of what sets them off (winds).

Anyway...I've had this idea for quite a while.  When I used to work for a cell phone company we would do what we called "Drive Testing" in a particular cell area and record signal strengths as we drove around to then create a map of how well the Cell Site system was performing or not.  I'd like to use the same concept except use the HackRF One and a Beaglebone Black (equipped with an onboard GPS) to accurately record noise measurements as I drive around.

My primary concern is at 50 Mhz, however, I've learned from past experience that Power Line noise can 'sing' on many frequencies as some better than others.  So that adds another dimension to things  "Frequency-Hop" (very quickly!) while driving around (very slowly).

In the past I used a Laptop do do things like and an RTL SDR Dongle.  Which worked, but I had to stop, look at the noise level with my eye on the screen, look at my GPS to record it's location, change the VFO on the RTL, and repeat.  Trouble is this is extremely slow.  And you really don't get the same level of accuracy unless you can frequency-hop and record instantly say maybe 4-5 times PER SECOND.  THAT is what I'm intending to do with this project.

This is a VERY SIMPLE block diagram describing how I think this MIGHT work (just an alpha drawing at this point which I'm sure will need to be revised.


Fig 1.

So one of the nice things about this setup is that it appears VERY SIMPLE.

Really, the truth is, it would be even simpler to do some of this (from a hardware standpoint) to simply attach the HackRF One to an Android Phone and do everything in an Android App.  Since the app could use the GPS in the phone.  However, I'm not going to go that route mostly because I don't really like programming for Android.  And the Beaglebone Black has LINUX which is something I work with daily as a professional and THAT comes as second nature to me.  Plus the BeagleBone setup is REALLY CHEAP, so why dedicate my PHONE doing something utilitarian and fairly mundane?  Well anyway, I just don't feel like it :-)  Doing it in Android would mean that I'd have to deal a lot more with lower level areas related to SDR than I really want to.  

Doing this with Linux means I can write things quickly and use a TON of already built libraries in Python, GNURADIO, OsmoSDR etc....(read: why reinvent the wheel?)

So the next bit is just almost too simple...

  1. write some simple code to sample the onboard GPS (get time, and lat/long, Altitude)
  2. write some simple code to set the HackRF frequency to 50Mhz, 144Mhz, 222Mhz,432 Mhz (good choices for PLN)
  3. Sample the HackRF noise floor for .25 seconds on each frequency (and repeat until the end of the test)
  4. record to storage time, lat/log, frequency, noise floor measurement
And that basically the concept.  (minus a lot of logic steps and SDR mumbo-jumbo) [remember this is just high level talk at this point, but it's not much more difficult that this described.

It's also possible to use something called hackrf_transfer to record to a WAV file based on some command line parameters.  So I could have an extra step here where if the Noise floor reaches a particular level I could automatically start to record the audio (this would stop the loop mentioned above though, but it's a thought that might be interesting).

=====================================================================

Ok so now we return home from our leisurely drive test.  We can download the data we captured and format the data so we can MAP IT.  Then generate a map of all the samples using color coded overlays to highlight the strong, medium, and weak noise areas.

This might also be something we could incorporate into a small web-app built into the Beaglebone.  KML mapping with Google earth is pretty simple for one thing.  I've done that sort of thing before.  NOW this is where the WiFi ability would be cool.  We COULD use something like my SamSung Galaxy Note II to access the web-server running on the BeagleBone and use the 7" display on the Note II so see the map.  So this is something I'll be keeping in mind as this all progresses.

But the first steps are to just get the data first.  How and when it's ultimately displayed is the NEXT Phase of this.

BY THE WAY!  THIS DOESN'T REQUIRE THE HACKRF ONE.  This can easily be done just use the Beaglebone and an RTL SDR Dongle (which only costs about $10). I'm just wanting to use the HackRF One for this project to gain some experience with it.  I already have a HUGE amount of experience doing some really cool sampling  with the RTL SDR Dongles (review much earlier posts about things like Solar Flare HF blackouts, and spotting Jupiter) on this blog.