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!

Gpredict 1.0 beta 5 released

Ten days after the release of Gpredict 1.0 beta 4 we are now ready with a new release that fixes some minor bugs in the radio controller.

The significant changes in this release:

  • Fixed some bugs that caused the Doppler shift to be calculated incorrectly in some cases.
  • Fixed a bug that could cause the transponder frequency to “drift” away from the set frequencies.
  • Added new transponder files received from David VK5DG.
  • Minor enhancements in the user manual.

You can download the source code from the project page on SourceForge. Try it, test it, discuss it, and report the bugs you encounter!


Gpredict 1.0 beta 2 released

Finally, the Gpredict 1.0 beta 2 release has come together, featuring a completely rewritten radio controller / Doppler tuning algorithm. It became a bit more complicated than I originally anticipated, because the incoming requests for improvement of the original controller did not limit themselves to controlling the downlink and the uplink, but also called for using two different radios.

Given that there are very few full-duplex radios out there designed for satellite communications and that they are very expensive, I found this request to be very reasonable and decided to implement it. The resulting controller should be able to work using receivers, transmitters, half-duplex transceivers, and combination of those. Full-duplex has not been implemented, because I am not sure whether hamlib is able to do that properly. That will be implemented in one of the upcoming betas.

The new radio controller
The new radio control UI. See more screenshots.

Continue reading “Gpredict 1.0 beta 2 released”

Gpredict Updates

I just realized that the last time I have blogged about my pet project, Gpredict, was back in February 2007. Back then, the big news was the Sky at a Glance function and there has in fact been a lot of evolution since then despite the big silence in the Gpredict Developer Blog. Let me try to sum up the progress from last two years as well as what you can expect to happen in the weeks to come.

Continue reading “Gpredict Updates”

Networking Library for Gpredict

I have spent quite some time lately in trying to figure out how I should implement the automatic TLE update in Gpredict. The idea is that Gpredict should be able to fetch fresh TLE data from the internet, via HTTP or FTP, and update the contents of the local file.

Continue reading “Networking Library for Gpredict”