Flight Track On Line – Autumn 2015 Update

FTOLUIFlight Track On Line (FTOL) has matured since my last update.  I include a screen shot of the interface with this post.  Clearly, it is a functional interface (that means I haven’t styled it yet).

FTOL is an application to support high altitude balloon hobbyists in tracking their payload.  In that sense, I log only those packets containing the balloon symbol (/O) in the APRS packet.  In my testing (one of the funnest parts of this port), I have found that FTOL logs up to 9000 packets per day.  I thought that was interesting so I include it and other metadata on the Flight Track Metrics page.

FTOL supports a search of the database.  If the call sign or object is located, FTOL loads the flight information and presents the path on Google Maps.  Alternatively, the Active and Inactive Flights page lists all of the active flights as links (I’ve seen up to 25 active flights on this page).  Click on a link and FTOL starts tracking the flight in real time (I’ve tracked five flights at a time just by clicking on links from this page).  While the link includes “Inactive Flights”, the final implementation is not complete.

FTOL would not be complete without real time flight path prediction.  That idea has not been lost in the multiple database schema and stored procedures changes, performance considerations, and data surprises that have found their way into this journey.  I have ported the algorithm and placed the path on Google maps once just to verify the concept.  There is still a bit of work on that.

A Lesson in Every Flight

A friend of mine helped plan and launch a payload about a month back.  I was saddened to learn they had not recovered the payload yet.  They are hopeful that as the soybean and corn fields of Ohio enter the harvest season, or as the leaves follow their autumnal cycle, the payload will reveal itself.  I wanted to help so I offered to review their data.

As with my flights and perhaps some of your flights, I think there are humbling moments that guide us towards better experiences.  Upon one of my successful recoveries, I noted the antenna cable nearly twisted itself off.  On another, a lift calculation error made for a slow ascent and a long, long day.  Like I said, humbling moments that helped me design better payloads and fly better flights.

For their flight, they decided to use the Spot Tracker as the primary means of following the payload.  I’m a fan of Spot and have seen it reliably used as a back-up, and used to locate a payload after APRS packets stop arriving.  However, in this case, the Spot separated from the payload mid-flight and was recovered from a corn field a few days later.  The payload was not found.

Their Spot logged 21 data points and the first six or seven were pre-flight (that is, on the ground).  They also had the KML from the flight path prediction.  I was able to piece together a likely flight path using the Spot data and prediction data.  However, the resulting landing area was still tens of square miles.  I could game the flight path by changing ascent rate, descent rate, or maximum altitude but gaming would not make up for a lack of key data.

Ascent Rate
The ascent rate would have helped to determine the altitude of the last Spot data point (the Spot does not provide altitude so I had to guess).  I’ve followed many flights (I enjoy following flights and they are great tests for my MapPoint Add-In and Flight Track On Line) and guessed a rate between 750 and 1150 ft/min.  I could employ the gas laws to make a better guess but did not have the volume of helium they used.  In addition to altitude, ascent rate has some impact on the final landing site.  In this case, a higher ascent rate moves the landing site north.

Descent Rate
The descent rate would have helped create a better flight path during payload descent.  In this case, a longer descent placed the landing site farther south.  However, it works better when the maximum altitude is known.

Maximum Altitude
The predicted flight path had a westward course above 65,000 ft.  The payload would travel west until burst.  The amount of travel impacts the landing site bringing it westward almost proportionally.

I was drawn into this hobby because of the engineering challenge.  It also allows me to explore software development and testing in ways usually not possible in a large IT department.  In turn, I believe it has helped improve how I develop and certainly how I test software.  Every flight becomes a story, and stories help make GPSL enjoyable as well as educational.

If they find the payload, I’ll return to this post.  Using just 14 data points during ascent with key pieces of information to predict a landing site may qualify for some sort of record.  Amusing but I didn’t do it for a record.  I’m happy to add an opinion that may assist in locating a lost payload.  I’m most interested in the story from the payload itself.  What will it provide that will make the next flight better?

Lastly, there are lessons above (no pun intended).  It is not for me to point out right or wrong since I continue to be a student in the adventure of flying self-built or team-built payloads on the end of a balloon to the edge of space.

What was your best lesson?

New Flight Track Update – Mid-Winter Status

Soon after I published my plans to upgrade Flight Track through a port to Java, I received one or two suggestions from our community.  One exchange inspired a Skype session where we discussed the possibilities of various platforms – desktop and web application.

One of my primary reasons for the port was the cost of maintaining Visual Studio.  Within weeks of my post, Microsoft released Visual Studio Community 2013.  After downloading and evaluating it, I decided I could use it to upgrade Flight Track and confidently support it through future upgrades of the IDE and my laptop.  This was an advantage for since I can use existing Flight Track code in the upgrade.  When I couple this decision with my platform conversation, I started the development of Flight Track On Line.

When I started the original Flight Track, I experimented with parsing APRS packets and displaying a location in MapPoint.  Having already proved this to myself with the combination of HTML and Google Maps, I thought a better goal was to process the near real-time data from APRS-IS.  In these experiments, a connection to the APRS-IS server was required – similar to how Flight Track operates today (Flight Track can monitor a radio or an APRS-IS server feed).  However, when I deployed this to my website, my host was “cautious” about having an open socket connection on their server.  It seems shared hosting is risk averse.
I thought I might be able to use a different source of APRS-IS data so I contacted administrators at aprs.fi and findu.com.  While I came away without a solution, I have greater respect and appreciation for what they do and how they do it.  I also received a suggestion to host my own solution.

Hosting a website on my personal computer was both intriguing and concerning.  Dedicating the same computer for Flight Track On Line and high school homework would probably have an impact on both, and I had security concerns.  About this time, my son had received his Raspberry Pi and, in addition to commandeering our television for his personal monitor, was talking about downloading a Linux distro.
After a couple of hours of setting up his Pi, we saw a GUI and some applications.  He spent much of that evening building a Mindcraft world.  Something in the set up caught my attention.  In the midst of downloads, setting passwords, and learning Linux commands, there was an installation of Apache.  There was also a picture of the default web page declaring “It works!”

I was familiar enough with Apache to investigate the Pi as a web server.  Multiple code examples and methods of accessing it from the internet prompted an experiment.  After a few days, my son and I found we could access the Pi in our living room from my website.  At this point, you may be ahead of my story.
Yes indeed, I purchased my own Pi and started developing prototypes in Eclipse.  The prototypes ported easily to the Pi and they even executed successfully.  During a very geek-filled holiday break, I combined REST libraries, Tomcat, and MySQL to receive and store data from an APRS-IS server feed.  In short, I believe I had the ability to monitor balloon flights in near real-time.

I have not put together enough code to follow a flight.  All the parts are there waiting for a snowy weekend to be integrated and tested.  Stay tuned!