Saturday, July 20, 2013

Hillbilly Tracking of Low Earth Orbit Satellites

An adventure of the Southern Appalachian Space Agency,
by Travis Goodspeed <travis at radiantmachines.com>,
as presented at Summercon 2013,
inspired by the lectures of Adam Laurie and Jim Geovedi,
with kind assistance from Skytee.

SASA

At Black Hat DC in 2008, I watched Adam Laurie present a tool for mapping Ku-band satellite downlinks, which he has since rewritten as Satmap. His technique involves using an DVB-S card in a Linux computer as a receiver through a 90cm Ku-band dish with fixed elevation and a DiSEqC motor for azimuth motion. It was among the most inspirational talks I'd ever seen, and I had a blast recreating his setup and scanning the friendly skies. However, such a rig is limited to geostationary satellites in a small region of the sky; I wanted to see the whole sky, especially the moving targets.

In this article, I'll demonstrate a method for modifying a naval telecommunications dish to track moving targets in the sky, such as those in Low Earth Orbit. My dish happily sits in Tennessee, while I direct it using my laptop or cellphone here in Europe. It can also run unattended, tracking moving targets and looking for downlink channels.

The Hardware

This is my dish, originally a Felcom 82B from Furuno, intended as a mobile earth station on maritime vessels. It would connect to one of the Inmarsat satellites in geostationary orbit, using mechanical gyroscopes to correct the dish against the ship's movements. My use case is the opposite, trying to track moving targets from a stationary ground position.

SASA

The first of several modifications was to place the motors under computer control. Rather than build dedicated electronics, I took the lazy route and wired an EiBotBoard into a BeagleBone for motor control. I wired things such that the first motor is Azimuth and the second motor is Elevation, with the Tilt motor disabled.

Stepper Motor EAD ZA23ECK-12T1

20130322_012

When testing the stepper motors, I found it handy to have a second EBB that was wired into standalone motors, so that my control software could run away from the dish. The EBB appears to its host computer as /dev/ttyACM0, and it's easy to test the motors by directly sending commands. To move both motors slowly forward 400 steps for three seconds, run echo "SM,3000,400,400" >>/dev/ttyACM0 on the BeagleBone. To do this from software, a control application can simply open /dev/ttyACM0 as a file and write the relevant commands into it.

In case the Azimuth or Elevation become lost, I really don't want to travel for two days just to lift the radome and recalibrate. For that reason, we painted the twelve hours of a clock inside of the radome and added a webcam. When lit by the Sun, the camera can be directed to twelve o'clock in order to ensure the dish itself is pointed nearly South. Finer calibration is performed by radio against geostationary targets.

SASA

Southern Appalachian Space Agency

For handling the radio input and controlling the motors, I have a BeagleBone wired into a USB hub. These are all mounted on the trunk of the assembly inside of the radome, sending data back to a server indoors. Unfortunately, I couldn't fit everything over the assembly's original ring connector, so an umbilical cord connects the dish to the outside world. To prevent this cord from tangling, software prevents the dish from spinning more than 360 degrees in azimuth.

Southern Appalachian Space Agency

Additionally, I wanted input from an Inertial Measurement Unit. While definitely a luxury rather than a necessity, this allows for direct measurement of the dish's elevation. In future rebuilds, I'll use a much cheaper accelerometer. The unit I chose was a VectorNav VN100, as its UART output could run directly to the BeagleBone without requiring another USB port.

The Daemons

In order to operate the dish, I wanted both a flashy GUI and concise scripting, but scripting was the higher priority. Toward that end, I constructed the software as a series of daemons that communicate through a PostgreSQL database on a server inside the house. For example, I can run SELECT * FROM sats WHERE el>0 to select the names and positions of all currently tracked satellites that are above the horizon. To begin tracking the International Space Station if it is in view, I run UPDATE target SET name='ISS';.

These daemons run on two machines, with everything computationally intensive on an AMD64 server and everything that needs to be locally within the radome on a BeagleBone.

For predicting satellite locations, I wrote a quick daemon using PyEphem that fetches satellite catalog data from CelesTrak. These positions are held in a database, with duplicates filtered out and positions constantly updated. PyEphem is sophisticated enough to predict in any number of formats, so it's easy to track many of the brighter stars as well as planets and deep-space probes, such as Voyagers 1 and 2.

In addition to knowing where the satellites are, it's also necessary to know where the dish is and how the dish is tilted. For this, I have one daemon to watch my IMU's input and a second daemon to control the motor. These two are both used to predict the position, as the motor daemon does dead reckoning to compare against the IMU daemon's values.

Finally, there are a few different daemons and clients for directing the targeting of the dish. Generally, I run one slow background process to retarget every fifteen minutes, so that I can take manual control of the dish using a GUI application.

The GUI

Once the daemons were running smoothly, I tossed together a GUI using Pygame and the same database library that the daemons use. The GUI is operated by keyboard and mouse commands, with a left-click targeting an object and a right-click targeting a position. Named stars can optionally be shown in the background and moving targets are tracked as they move.

SASA Commander, Polar View

In the screenshot above, the dish is aimed at GOES 3 and has just been ordered to aim at Voyager 1. Future enhancements to the GUI will show radial views and offer some control or visualization of the radio data.

Being written in Pygame, I can run the same exact code on both my laptop and my phones. Coding new features while bored on the Ubahn is a lot healthier than Angry Birds or Sudoku.

SASA Commander on the N900

The Radio

My initial build using an RTLSDR dongle. Data processing is done on my server, with the BeagleBone forwarding data from rtl_tcp. To avoid offending the FCC and ham radio operators everywhere, I disabled the dish's 1.5GHz transmitter and use only the 1.6GHz downlink antenna. If I can justify the extra weight, I'd like to drop the RTLSDR in favor of a USRP2 over Gigabit Ethernet in order to get greater bandwidth and sensitivity.

Recordings are stored either as raw I/Q data or as a simple signal strength indicator from the Power Spectral Density (PSD) function. In the near future, I hope to automatically adjust the aim of the dish in realtime based upon the signal quality feedback.

Next Steps

When time and travel allow, I plan to replace the old Low Noise Amplifier (LNA) with one that has wider bandwidth. I'm also hoping to add support for new radio bands either by swappable antennas or by adding more antennas to the collection.

Thank you kindly.

As a final note, I'd like to thank Skytee for trekking six timezones to help me out with this. Thanks are also due to my next-door neighbors for not panicking when they thought I was talking to aliens.

L Band

26 comments:

Eric Thayer said...

This is truly awesome. Congrats!

Eric Thayer said...
This comment has been removed by the author.
Tom Doyle - W9KE said...

VERY NICE !
Tom Doyle

adrian said...

Sweet project. I'm glad you upgraded to Beagle from MSP430.

Superkuh said...
This comment has been removed by the author.
Mark Hamilton said...

I spy an n900! Those are really handy pocket computers. I just used one for a bike motor controller.

DeKay said...

Impressive. Minor corrections though... When you say "I disabled the dish's 1.5GHz transmitter and use only the 1.6GHz downlink antenna", you have these two frequencies in reverse order (e.g. http://www.astrosurf.com/luxorion/qsl-satellites-reception.htm). Also, it isn't like you have a downlink and an uplink antenna. You have an antenna with a diplexer that enables transmit and receive functionality on the same antenna / feed.

Craig Markwardt said...

Very nice. Have you detected any satellites?

Sean Lynch said...

Have you tried comparing your results with the orbital elements NORAD publishes to see if there are any Ku-band satellites they aren't listing?

Zdenek said...

This is truly awesome. Congrats!

Zdenek said...

This is very nice! Congrats!

Michael Grebert said...

Damned cool project. Greetings from Mt Juliet, TN

jetara x said...

nice :)
7loll blogger

Mohamed Goneam said...

Your post is very nice, it helped me to gather some important and new information.You can visit this site: EgyptSat

http://www.egyptsat.com

Robert Former said...

Very nice! Need to build one up here in MI so we can start the Hillbilly VLA Radiotelescope!

--RF

bilalpress said...

Latest cars and vehicles, Latest Mazda Models, Racing Cars, International Sport Cars, Concept Cars, PS-Pod, Strange Vehicles, Nissan, Royce Corniche, Ford Concept Cars, Strange Vehicles, Mercedes and More Sport Cars and Vehicles with Pictures and Info
WorldLatestVehicles.com

Unknown said...

Congrats and great job! We need something to start tracking drone use in the United States!

Sven Nagel said...

Dear Travis,

since May 1999 me and my 12years old daughter Sonja (since 2005) & my son Tim (since his birth 2007) have local (Berlin-Germany) & worldwide (Europe,Asia,America, -every trip by air, car, train, ship) a problem with the satellite tracking device above (U.S. Patent 6,011,991 -Communication system and method including brain wave analysis and/or use of brain activity- U.S.Patent&Trademark Office). http://www.uspto.gov/)

All 5 seconds I must hear several so called acoustic triggers (only german language) permanently day and night via hypersonic transmission devices. The transmission system works probably binaural / heterodyne (you can hear it only, if two frequencies works together).
(since May 1999 me, my daughter Sonja since 2005 and my son Tim (6years old) since his birth 2007).

Maybe you can imagine how it disturbs, to life a live like a " living car-navigating-system".

Working in my occupation as an Environmental-Engineer is not possible, the social & financial consequences
for my family are indescribable.

After studying complete satellite lists (www.planet4589.org) I note that in the year 1999/2000 a lot of chinese satellites
go to orbit launched by the chinese casc-corporation.

I suppose maybe without the direct knowledge of the chinese by bought/rented capacities/frequenzies
of other foreign organizations specialized in dual-use-business.

Which devices I can use to find out who disturb my and my families life and enable me to track and finally stop/interrupt the transmission path?

My family and me would be happy, if you as an expert could give us an helpful advice what we could do to solve this problem.

Thank you very much forwardly for your help

Best Regards from Berlin-Germany


Sven & Family

Syed Kazim Ali said...

The Best Lol n Troll Network with the Name of Lols Gag... Troll Images, Prank Peoples, Funny Peoples, funny planet, funny facts, funny cartoons, funny movies pics, iphone funny, funny jokes, Prank Images, Fail Pictures, Epic Pictures, Lols and Gags, Lol Pictures, Funny Pictures, Lol is the Laugh out of Laugh where you can Fun Unlimited and Laughing Unlimited.
LolsGag.Blogspot.Com

Faheem Zia said...

For All Latest Hot Current Affairs
www.hotcurrentaffairs.com

Ahsan Afsar said...

World Most Popular and Top Amazing Speedy Cars
TopAmazingCars.BlogSpot.Com

Ahsan Afsar said...

Online Jobs of Data Entry and Copy Pasting with Jobz Corner
JobzCorner.com

Natsu Uaganda said...

Get Hourly profit for 200 hours on every hour without any risk and without any work, best business plans ever
AllTimeProfit.com

Syed Kazim Ali said...

Online Business with hourly profit, Just Invest and Rest
AllTimeProfit.com

Bharath shaji said...

Hi I am a Satellite Technology Student. Can you tell me the components needed to setup a LEO satellite tracker??

Ahsan Afsar said...

Find best business plan from home without any work, just invest $1 and get 120% Total Profit within a week
EarningsClub.Com