No Mars Express experiment this time

It was a difficult decision to accept, but the Mars Express experiment with the USRP and GNU Radio is not going to happen this time!

It’s a shame because the link budget looked quite promising. An optimistic estimate gives almost 20 dB signal to noise ratio, which is more than we need, so the problem is not there. The problem is with the X-band down converter. I was looking at the KU LNC 8084 from Kuhne, which together with the KU LNA 133 BH low noise amplifier gives a total G/T of more than 30 dB/K. Unfortunately, there are two problems with this down converter:

  1. The price is slightly above what my budget can allow here and now
  2. There is a 2 week delivery time

For the sake of the experiment I could have lived with either one of the two, but not both. I know, I know… the two weeks are so close that I might even get lucky and receive it in time. But it would need to be in my hands on Tuesday, March 2, preferably on Monday to allow proper integration and testing, and that is closer to 10 days than to 14.

Using the S-band signal is not very promising either. Here, the link budget doesn’t go up due to the low power of the transmitter (5W). We can get a few dB above the noise floor if we use a filter no wider than 10 Hz – and that’s no fun when you are trying to measure Doppler shift.

Concerning the Doppler shift, I have been looking at the ephemeris generated by JPL Horizons web interface. At this time of the year, Mars and Earth are moving away from each other so the Doppler shift will be dominated by the range rate between the two planets. The orbit of Mars Express around Mars can be observed by this Doppler shift oscillating between two values. On March 3, the oscillation will be roughly between 7.3 to 12.5 km/s resulting in a Doppler shift between 200 and 350 kHz with a period of 7 hours:

Date__(UT)__HR:MN Azi_(a-appr)_Elev delta deldot S-O-T /r
2010-Mar-03 12:00 *r 44.3857 0.0718 0.78932354310229 11.1852087 137.6854 /T
2010-Mar-03 12:30 * 50.5231 3.1913 0.78946087508986 11.6142978 137.6635 /T
2010-Mar-03 13:00 * 56.5265 6.5964 0.78960254573254 11.9176387 137.6415 /T
2010-Mar-03 13:30 * 62.4270 10.2445 0.78974736351007 12.1426231 137.6193 /T
2010-Mar-03 14:00 * 68.2648 14.0936 0.78989453336189 12.3108050 137.5969 /T
2010-Mar-03 14:30 * 74.0891 18.1025 0.79004342478087 12.4288177 137.5742 /T
2010-Mar-03 15:00 * 79.9584 22.2300 0.79019340567595 12.4891937 137.5514 /T
2010-Mar-03 15:30 * 85.9418 26.4339 0.79034362769204 12.4603569 137.5283 /T
2010-Mar-03 16:00 * 92.1210 30.6697 0.79049254590969 12.2459365 137.5050 /T
2010-Mar-03 16:30 * 98.5934 34.8883 0.79063632341205 11.5023192 137.4814 /T
2010-Mar-03 17:00 C 105.4752 39.0329 0.79076193096873 8.8729735 137.4577 /T
2010-Mar-03 17:30 N 112.9049 43.0339 0.79085460119582 7.7994185 137.4351 /T
2010-Mar-03 18:00 N 121.0408 46.8078 0.79096079023597 9.7083822 137.4134 /T
2010-Mar-03 18:30 A 130.0480 50.2537 0.79108469006353 10.7829081 137.3915 /T
2010-Mar-03 19:00 140.0731 53.2460 0.79121862213031 11.4324332 137.3693 /T
2010-Mar-03 19:30 151.1869 55.6385 0.79135901132806 11.8780500 137.3470 /T
2010-Mar-03 20:00 163.3031 57.2784 0.79150401404296 12.2087075 137.3244 /T
2010-Mar-03 20:30 176.1098 58.0358 0.79165251591848 12.4639928 137.3017 /T
2010-Mar-03 21:00 t 189.0909 57.8425 0.79180373020367 12.6611863 137.2789 /T
2010-Mar-03 21:30 201.6721 56.7165 0.79195699075542 12.8035934 137.2558 /T
2010-Mar-03 22:00 m 213.4087 54.7551 0.79211158678530 12.8795690 137.2326 /T
2010-Mar-03 22:30 m 224.0838 52.1019 0.79226652008935 12.8488984 137.2092 /T
2010-Mar-03 23:00 m 233.6851 48.9097 0.79241990790189 12.5882130 137.1856 /T
2010-Mar-03 23:30 m 242.3230 45.3178 0.79256684230434 11.6337681 137.1618 /T
2010-Mar-04 00:00 m 250.1570 41.4426 0.79269056949806 8.4958690 137.1381 /T
2010-Mar-04 00:30 m 257.3492 37.3764 0.79278746204570 8.6897914 137.1158 /T
2010-Mar-04 01:00 m 264.0503 33.1954 0.79290340477852 10.4123533 137.0940 /T
2010-Mar-04 01:30 m 270.3909 28.9637 0.79303487629095 11.3531489 137.0722 /T
2010-Mar-04 02:00 m 276.4794 24.7346 0.79317518946651 11.9281843 137.0502 /T
2010-Mar-04 02:30 m 282.4067 20.5555 0.79332120377351 12.3189920 137.0281 /T
2010-Mar-04 03:00 m 288.2493 16.4696 0.79347121486610 12.6006078 137.0058 /T
2010-Mar-04 03:30 m 294.0717 12.5188 0.79362414053192 12.8071911 136.9835 /T
2010-Mar-04 04:00 Am 299.9287 8.7442 0.79377918105395 12.9534316 136.9610 /T
2010-Mar-04 04:30 Am 305.8659 5.1872 0.79393563141900 13.0406358 136.9384 /T
2010-Mar-04 05:00 Nm 311.9199 1.8902 0.79409271234490 13.0538218 136.9157 /T

Delta is the range in AU, deldot is the range rate in km/s. The S-O-T parameter is also interesting in general because it gives the angle between the Sun and the target as seen from the observer. It is important because having the Sun in the field of view of the antenna can increase the sky noise significantly.

The interesting question is still the magnitude of the perturbations caused by Phobos. 1 Hz? 10 Hz? 100 Hz? I don’t know but I am trying to convince myself that a relative Doppler shift of 10 Hz should be detectable with the USRP and GNU Radio, provided that the local oscillator of the down converter is stable. Fortunately, this is an experiment that I can do!

Aiming for planetary science with GNU Radio and the USRP

Thanks to the European Space Agency (ESA) and the Mars Express mission, we might have an opportunity just around the corner for doing big science with GNU Radio and the USRP!

On March 3, 2010, Mars Express will visit the Martian moon Phobos by performing a close flyby. According to ESA, the ESOC ops team is working with a number of possible scenarios, including one that would take the spacecraft to just 50 km above Phobos. At that distance the orbit of the spacecraft is expected to be influenced by the gravitational pull of Phobos. I knew this already for about a week when I first read it on the Mars Express Blog but it was first today that I realized the opportunities this event offers.

Continue reading “Aiming for planetary science with GNU Radio and the USRP”

Live recording of receiver tests

Tonight I have been testing some ham radio transceiver code written in Python/GNU Radio. It is some student project published on SourceForge. You can find the code on the project page at Sourceforge:

Continue reading “Live recording of receiver tests”

Ubuntu 9.04 on the Eee PC 701

It’s been more than a year now that I last posted an update about using my Asus Eee PC 701 for hamradio. To be honest, my Eee PC has been more or less idle ever since. Back in August 2008 I have decided that I need a newer and better OS on it than the Asus/Xandros that it came installed with. I tried a few one every now and then but without any satisfactory results. Until now…

Continue reading “Ubuntu 9.04 on the Eee PC 701”

Coming up in Gpredict 1.2

After fixing several major and minor bugs in Gpredict 1.1 it was time to look at what new cool features version 1.2 should include. Fortunately, there is a nice list of feature requests from users that have been accumulated over time so all I had to do was to pick one and start working on it. This time I picked improvement of the layout engine.

New Layout Engine

I think we can agree that Gpredict is already one of the most flexible satellite tracking application applications when it comes to customising how the tracking data is presented to the user. In version 1.1 the user can chose between four different visualisation modules that can be arranged in many different layouts. Despite this flexibility, the available options are still limited to a fixed number of possibilities that is more or less hard coded into the software. I wanted to change this into something more generic that does not put any hard limits on what is possible.

I decided that the best and easiest way to accomplish this – also considering the limitations of the underlying Gtk+ toolkit – was to allow the user to place any number of views in a virtual grid. This means that when the user selects a given view to include in the module he/she has to specify the grid-coordinates for the module. The size of the grid will then be automatically determined according to the specified coordinates for all modules.

As of writing, the only way to create these fancy layouts is to specify it manually using an array of integers. The array has 5 numbers for each view:

  1. The first number is the view type
    • 0: List view (table)
    • 1: Map view
    • 2: Polar view
    • 3: Single satellite view
    • 4: Event list view (to be implemented)
  2. The second number is the left-attach coordinate of the view starting from 0
  3. The third number is the right-attach coordinate of the view
  4. The fourth number is the top-attach coordinate of the view starting from 0
  5. The third number is the bottom-attach coordinate of the view

The coordinate system of the grid has origin (0,0) in the top left corner. So, the layout code for the module shown above is:


Creating layouts this way is really fun for me, though I fear it would scare the hell out of regular users — in particular those who are just trying Ubuntu Linux for the first time. Obviously, a better configurator GUI is needed. To begin with, Gpredict 1.2 will include a set of pre-configured layouts and still allow to enter the layout code manually for custom configurations. The user manual will describe the layout configuration in detail. I hope then that somebody will create a fancy drag-and-drop layout configurator for a later release.

If you know me you have by now figured out that the primary reason for this new feature was my desire to be able to make cool video recordings of satellite passes such as this one (yes, that’s Gpredict 1.2 in action).

Event List View

Now that Gpredict allows creating complex layouts, the next problem is the lack of views. Currently, there are only four different kind of view (shown on the screnshot above) and few more would be really nice to have. Ideas that have been tossed around over the years include:

  • Sky view – showing a photographic view of the sky
  • Space view – a camera following (or attached to) the satellite showing the Earth from space
  • Event list view – showing a list of upcoming events and counting down to the event.

For version 1.2, I expect to implement the last one – Event list view – simply because it is relatively easy. It will show the satellites tracked in the module with a count down clock to their next AOS (or LOS if they are within range). Alternatively, the user will be able to select showing the time of AOS/LOS instead of the count down. The list will be sortable according to either satellite name or time.

I hope you are as excited about the next release as I am. Feel free to leave any thoughts or comments you might have!

Portable S-band Ground Station Update

I made good progress with the portable S-band ground station this week.

I took the receiver to the OZ7SAT lab to measure its performance. Using the USRP+DBSRX and no LNA we could easily detect a -132 dBm CW signal with modest FFT integration (fraction of a second) in a GNU Radio spectrum scope. Using the LNA we could go down to about -138 dBm, i.e. an improvement in SNR of 6 dB. These figures were measured at an SNR ~5 dB. This is excellent, but please note that this is not real “sensitivity” in the traditional sense because we were not demodulating or decoding the signal. We were simply integrating the spectrum for a fraction of a second to detect the presence of the signal. The measurements were done by sampling a 250 kHz wide spectrum.

Continue reading “Portable S-band Ground Station Update”

New vLog: Introducing the S-band Ground Station Project for LRO/LCROSS Reception

In this new video blog I am introducing a new project that has kept me occupied for a few weeks now: A low cost S-band ground station for receiving signals from NASA’s lunar spacecrafts LRO and LCROSS. More info at Receiving LRO and LCROSS. Based on the Universal Software Radio Peripheral (USRP) with DBSRX daughterboard, a super low noise preamplifier from Kuhne and GNU Radio software.



Joomla upgrade and new comment system

Today I have upgraded my Joomla installation from version 1.5.6 to 1.5.10. Everything went all right but if you notice some problems just let me know.

At the same time I have replaced the commenting system with Disqus using a plug-in from JoomlaWorks. The old commenting system has been disabled and the old comments are therefore not visible anymore. If you are unhappy about it let me know. I might be able to enable it as read-only, but I really don’t wish to spend too much time on it ifdoesn’t bother anybody.