Sunday, December 7, 2014

"Driveby" Project - Next Steps

A little background if you haven't been keeping up:

Currently the "Driveby" Project I've been working on (see earlier posts on this blog for more detail) uses a program named "rtl_power" to pull Noise Floor readings from 5 miniature radio receivers that come in the form of USB Dongles called "RTL"s (see: http://www.rtl-sdr.com/) for more detail about them.  

The idea behind this project is to be able to MAP real-world Geo-tagged noise floor readings.  This can be used for the primary purpose I intended for this application (mapping of problematic sources of RF Noise related to power lines in the area so that I can approach the local power company to resolve them) or any other sort of RF signal MAPPING.  Such as cellphone/cellsite coverage or FM broadcast coverage (and dead spots) among other things.

RTL dongles are CHEAP, and reliable, although not 100% stable (they drift a bit for the first 5 minutes of warm up) they can be used to measure changes in the RF Noise Floor (once warmed up).  While they don't really seem to be able to be calibrated to anything less than -87db all we're really looking for are relative changes to the noise floor while driving around a particular location (there is probably some complex math that could applied to these measurements that could be calibrated).  So for this project these inexpensive receivers are really just fine. 

These noise floor readings are logged to files over a NFS connection from the RTL's attached to the Parallella over to an Nvidia Jetson TK1 this TK1 has a 120Gb SSD attached to it via normal 4 pole power connector and Sata cabling.  (nothing special there really).  

The TK1 and the Parallella 16 are networked directly through a 1Gb Network Hub.

ANYWAY...this program named 'rtl_power' (see: here and code here) is something I've used for almost 2 years with various projects.  I've modified rtl_power in various ways in the past to suite my needs with really amazing results.  It's simple yet powerful when used correctly.

NEXT STEPS for Parallella within the Driveby project:

So I've been kicking around the idea of exploring the ability of Parallella to do the FFT's making full use of the Epiphany instead of doing them directly in a single thread as rtl_power currently does.  This is probably a bit advanced of my current knowledge and abilities, but seems like a good way to LEARN more (BTW if you are interested in getting involved with this migration to using the Epiphany to do RTL FFT's please let me know), and end up with something that takes full-advantage of the Parallella 16.  This was the actual real reason I bought this board.  

I also bought the Nvidia TK1 thinking at some point I could experiment with doing FFT's on it's 192 Cuda core processor (also currently beyond my abilities, but I intend to spend time learning).

Even without taking full advantage of these two boards, they provide enough Ram and core processors to run via USB a digital compass, a L10 GPS, and 5 RTL Dongles plus NFS, GPSD, virtualHub (required for the digital compass) and two Apache2 web servers all running at the same time.

NEXT STEPS for the Driveby project:

  • Explore doing FFT's  from data steaming out of the RTL dongles, using Epiphany on Parallella.
  • Improve the Web UI (so far it's just enough to get all the basic functionality required to control both servers (parallella and tk1) with all of it's ancillary attached hardware.
  • Make code publicly available (open source of course).
  • Provide detailed documentation of all hardware assembly and interconnections as well as code setup.
  • Provide real-world demonstrations of the results the Driveby system is capable of.

Examples of what I have working so far: