ADS-B DIY Antenna

Status
Not open for further replies.

xforce30164

Active Member
Just finished building the 2nd U-bend spiderfranklin, mounted in on my modified triangle-radials, I.E. soldered connections at end so it is somewhat like bowtie-antenna radials.
On the left is the original U-bend with normal radials, on the right is the U-bend with triangleradials:
spiders.png


currently they are both up a bit around 200-250msg/sec @ ~40planes
 

jepolch

Active Member
Big day here. I retired my primary feeder Pi B+ (and lost all its stats) and put all my feeder clients on a Pi 2. Everything is working great. Tomorrow I'll probably install connectd and start graphing my data collection. Eventually I will retired the second B+ and have two of them for other projects, leaving the one Pi 2 do do all the ADS-B stuff. My other Pi 2 is running motionPie as my home brew security system. Not that I really need a security system, but it's nice to be able to look out that side of the house without having to walk across the house to look out the window. :D
 

ab cd

Senior Member
Wire Collinears - So many varieties!

Franklin Spider.PNG . ads-b-1.jpg . adsb2.gif . adsb-3.jpg . adsb-4-rev.JPG

All are wire collinears, but the difference is in Phasing arrangement - all have Coils of different dia and number of turns, while my design has Stub.

Accuracy in both the design and construction are very important for collinear to give good performance.

Few mm error in design or few mm error in construction knocks down collinear from excellent to poor.

For both the design & the construction, it is much easier to be accurate with stub than with the coil.
 
Last edited:

xforce30164

Active Member
Wire Collinears - So many varieties!

View attachment 1620 . View attachment 1617 . View attachment 1618 . View attachment 1619 . View attachment 1621

All are wire collinears, but the difference is in Phasing arrangement - all have Coils of different dia and number of turns, while my design has Stub.

Accuracy in both the design and construction are very important for collinear to give good performance.

Few mm error in design or few mm error in construction knocks down collinear from excellent to poor.

For both the design & the construction, it is much easier to be accurate with stub than with the coil.
I might try and make one of those colinear antenna's but the loops are tricky to get right, your stub design is easier to build ;)
 

xforce30164

Active Member
Currently working on a rewrite/rebuild of the UI based on require.js and openlayers 3. This should allow me the flexibility to eventually get the same type of views as you have with some the flightaware views (which i personally think are quite nice!)
Also implementing a more robust configuration setup/core that uses localStorage of your browser to store the settings you configured and if it cannot find those fall back to the default settings.
It will take some time though to get it all working ;).

ETA:
Last night I also got an idea which is pretty cool and pretty useless at the same time.
As I own an Oculus Rift DK2, I was thinking of making a program that based on your current position calculates the positions of the planes and the horizontal and vertical angle compared to where you are standing. the program then uses this data to make a kind of "planetarium" but with planes instead of planets. Then you could use the rift to look around freely and see the virtual planes fly over your head withouth all the buildings :p.

A possibly easier to achieve half-way goal would be to make a program that runs on an android phone that does the same calculations and uses the build-in accelerometer to calculate the angle of your phone (and thus your screen) and display the correct airplanes on it that you should be able to see if you were looking "through" your phone. I'd really like to add the functionality that you'd be able to overlay this onto a live camera feed but I dont know how difficult that is to achieve. I do know that that aswell will take quite a lot of time. So dont expect anything working anytime soon, it was just more of an idea/heads-up of what I came up with ;)

here's a screenshot of what flight-aware radar map view looks like. I want to create a similar view for my ui (among others).
faw_radar.png

faw_radar2.png
 
Last edited:

jepolch

Active Member
Anyone using collectd to graph their dump stats? Can you give me some tips to get it going? I have installed collectd and downloaded @obj's scripts, but I'm not sure where to put them.
 

jepolch

Active Member
Currently working on a rewrite/rebuild of the UI based on require.js and openlayers 3. This should allow me the flexibility to eventually get the same type of views as you have with some the flightaware views (which i personally think are quite nice!)
Also implementing a more robust configuration setup/core that uses localStorage of your browser to store the settings you configured and if it cannot find those fall back to the default settings.
It will take some time though to get it all working ;).

here's a screenshot of what flight-aware radar map view looks like. I want to create a similar view for my ui (among others).
View attachment 1627
View attachment 1628
Very nice! What's the link to your experimental fork? I want to get a new copy of your scripts.
 

xforce30164

Active Member
Very nice! What's the link to your experimental fork? I want to get a new copy of your scripts.
currently not yet hosting the code as it is non-functional right now compared to dump1090-muta. this is what I'm currently experimenting with (the map part, it's hosted on my web-server). But I'll definately let you/everyone here know if I have releasable code and where you can find it ;)
 

ab cd

Senior Member
Anyone using collectd to graph their dump stats? Can you give me some tips to get it going? I have installed collectd and downloaded @obj's scripts, but I'm not sure where to put them.
I would like to know as well! (sorry for high-jacking your post @jepolch) :rolleyes:
Me too!
I have asked this question in flightaware forum, and obj gave me link to collected main web page. I browsed it, and found 2 more pages of interest. Still not able to install "collected", as I am NOT Linux expert! Need instructions for Linux newbie!


Here are links to all three pages:

Start Page (link given by obj): https://collectd.org/

Download Page: https://collectd.org/download.shtml

RRTools page: http://oss.oetiker.ch/rrdtool/


.
 

kucengemok

Member
Wire Collinears - So many varieties!

View attachment 1620 . View attachment 1617 . View attachment 1618 . View attachment 1619 . View attachment 1621

All are wire collinears, but the difference is in Phasing arrangement - all have Coils of different dia and number of turns, while my design has Stub.

Accuracy in both the design and construction are very important for collinear to give good performance.

Few mm error in design or few mm error in construction knocks down collinear from excellent to poor.

For both the design & the construction, it is much easier to be accurate with stub than with the coil.
hi,there...
 

kucengemok

Member
Wire Collinears - So many varieties!

View attachment 1620 . View attachment 1617 . View attachment 1618 . View attachment 1619 . View attachment 1621

All are wire collinears, but the difference is in Phasing arrangement - all have Coils of different dia and number of turns, while my design has Stub.

Accuracy in both the design and construction are very important for collinear to give good performance.

Few mm error in design or few mm error in construction knocks down collinear from excellent to poor.

For both the design & the construction, it is much easier to be accurate with stub than with the coil.
is this called stub too?
 

caius

Member
I have collectd running using obj's scripts, but it was a bit of a fiddle (not his fault, just my unfamiliarity with it).

Install collectd and start it, and see if you are getting output in the /var/lib/collectd/rrd directory from the default collectd.conf. If so, you know that it is installed and working OK.

You need to then edit collectd.conf to point it towards the dump1090 data. You can either add the sections shown in obj's example file, or if you aren't bothered about collecting other system data just copy the example to /etc/collectd/collectd.conf

You need to set the hostname appropriately and make sure it refers to the right places - you need to check the path to the python module, the URL for dump1090 and the path to Typesdb.

If everything is correct you should start to see output from dump1090 in /var/lib/collectd/rrd/<hostname>. Mine looks like:

Code:
dump1090_aircraft-recent.rrd            dump1090_messages-local_accepted_1.rrd   dump1090_messages-remote_accepted.rrd
dump1090_cpu-background.rrd             dump1090_messages-local_accepted_2.rrd   dump1090_messages-strong_signals.rrd
dump1090_cpu-demod.rrd                  dump1090_messages-local_accepted.rrd     dump1090_range-max_range.rrd
dump1090_cpu-reader.rrd                 dump1090_messages-positions.rrd          dump1090_tracks-all.rrd
dump1090_dbfs-peak_signal.rrd           dump1090_messages-remote_accepted_0.rrd  dump1090_tracks-single_message.rrd
dump1090_dbfs-signal.rrd                dump1090_messages-remote_accepted_1.rrd
dump1090_messages-local_accepted_0.rrd  dump1090_messages-remote_accepted_2.rrd
If you have this, you then need to modify the make-collectd-graphs.sh script so that it points to the above data. The example is set up to generate graphs for 2 receivers, so you can edit it to remove the second. The bits to edits are at the bottom:

Code:
common_graphs() {
  aircraft_graph /var/www/collectd/dump1090-$2-acs-$4.png /var/lib/collectd/rrd/$1/dump1090-$2 "$3" "$4" "$5"
  cpu_graph /var/www/collectd/dump1090-$2-cpu-$4.png /var/lib/collectd/rrd/$1/dump1090-$2 "$3" "$4" "$5"
  tracks_graph /var/www/collectd/dump1090-$2-tracks-$4.png /var/lib/collectd/rrd/$1/dump1090-$2 "$3" "$4" "$5"
}

# receiver_graphs host shortname longname period step
receiver_graphs() {
  common_graphs "$1" "$2" "$3" "$4" "$5"
  signal_graph /var/www/collectd/dump1090-$2-signal-$4.png /var/lib/collectd/rrd/$1/dump1090-$2 "$3" "$4" "$5"
  local_rate_graph /var/www/collectd/dump1090-$2-rate-$4.png /var/lib/collectd/rrd/$1/dump1090-$2 "$3" "$4" "$5"
}

hub_graphs() {
  common_graphs "$1" "$2" "$3" "$4" "$5"
  remote_rate_graph /var/www/collectd/dump1090-$2-rate-$4.png /var/lib/collectd/rrd/$1/dump1090-$2 "$3" "$4" "$5"
}

period="$1"
step="$2"

receiver_graphs rpi.lxi northwest "Northwest antenna" "$period" "$step"
receiver_graphs twopi.lxi southeast "Southeast antenna" "$period" "$step"
hub_graphs rpi.lxi hub "Hub" "$period" "$step"
machine_cpu_graph /var/www/collectd/machine-cpu-rpi-$period.png /var/lib/collectd/rrd/rpi.lxi/cpu-0 "rpi" "$period" "$step"
You need to check that /var/www/collectd is the directory where you want the graphs to be generated. the hub_graphs() section is relevant if you are feeding data from one instance of dump1090 to another. If not you can delete this bit.

The bits at the bottom should be edited to match the hostname that appears in /var/lib/collectd/rrd/<hostname> that contains the rrd data. You can delete the second receiver_graphs and the hub_graphs line if you only have one receiver.

Mine looks like this:

Code:
common_graphs() {
  aircraft_graph /var/www/collectd/dump1090-$2-acs-$4.png /var/lib/collectd/rrd/$1/dump1090-$2 "$3" "$4" "$5"
  cpu_graph /var/www/collectd/dump1090-$2-cpu-$4.png /var/lib/collectd/rrd/$1/dump1090-$2 "$3" "$4" "$5"
  tracks_graph /var/www/collectd/dump1090-$2-tracks-$4.png /var/lib/collectd/rrd/$1/dump1090-$2 "$3" "$4" "$5"
}

# receiver_graphs host shortname longname period step
receiver_graphs() {
  common_graphs "$1" "$2" "$3" "$4" "$5"
  signal_graph /var/www/collectd/dump1090-$2-signal-$4.png /var/lib/collectd/rrd/$1/dump1090-$2 "$3" "$4" "$5"
  local_rate_graph /var/www/collectd/dump1090-$2-rate-$4.png /var/lib/collectd/rrd/$1/dump1090-$2 "$3" "$4" "$5"
}

hub_graphs() {
  common_graphs "$1" "$2" "$3" "$4" "$5"
  remote_rate_graph /var/www/collectd/dump1090-$2-rate-$4.png /var/lib/collectd/rrd/$1/dump1090-$2 "$3" "$4" "$5"
}

period="$1"
step="$2"

receiver_graphs localhost dump1090 "ADS-B" "$period" "$step"
#hub_graphs localhost hub "Hub" "$period" "$step"
#machine_cpu_graph /var/www/collectd/machine-cpu-rpi-$period.png /var/lib/collectd/rrd/localhost/cpu-0 "localhost" "$period" "$step"



You will need to run the script as a user with permissions to write to /var/www. You need to set up a crontab or similar to execute the script periodically to generate the graphs automatically. The example in the repo seems to produce some odd output, so I modified it to leave the last number off each command. Mine looks like:

Code:
2,12,22,32,42,52 * * * *        /home/pi/dump1090-tools/collectd/make-collectd-graphs.sh 24h >/dev/null
4,24,44 * * * *                 /home/pi/dump1090-tools/collectd/make-collectd-graphs.sh 7d >/dev/null
6 * * * *                       /home/pi/dump1090-tools/collectd/make-collectd-graphs.sh 30d >/dev/null
8 */12 * * *                    /home/pi/dump1090-tools/collectd/make-collectd-graphs.sh 365d >/dev/null
I used the example day.html file to make a page for each time period and put them in the /var/www/collectd directory so they are served by lighttpd.

There are other ways to produce graphs as there are tons of tools to generate them from rrd data, but this is probably the lightest way as it doesn't require any extra services running.
 
Last edited:
Status
Not open for further replies.
Top