Society of Robots
Search and Index Search Here

 Parts List
 Robot Forum
 Member Pages
 Axon MCU
 Robot Books

 How To Build
  A Robot




 Robot Journals
 Robot Theory

    High Altitude Balloon Tutorial
    === GPS ===


    Introduction to GPS
    The two most critical systems of your balloon is the GPS and the transmitter system. If either fails, your chance of recovering your investment significantly drops.

    This article will cover all the issues and questions you'll have concerning GPS.

    Use Two GPS Units
    Never be cheap when choosing your GPS system - because if it fails, you're likely to lose everything if you can't recover it. And never rely on only one single GPS or transmitter system. You should also have two independent transmission systems, each with their own independent GPS units. Preferably use two different types of GPS units - in case one has issues specific to its own programming and design.

    Our team has flown 5 flights. The first flight SB1 had only one GPS-transmit system, and unfortunately took ~3 months to recover after an antenna failure. Flights SB2, SB3, and SB4 all had two GPS-transmit systems, and none took longer than 30 minutes to recover. SB3 and SB4 each had failures of one GPS system. SB5 had three GPS units, the third being a cell phone transmitter.

    How Does GPS Work?
    Up in the sky is a constellation of dozens of satellites - each transmitting their own coded signal with various information. Your little GPS receiver unit then:

    1) picks up these very weak signals
    2) decodes the information
    3) does a little math while comparing timing info and such
    4) outputs position data, etc., in serial text format

    You then connect that serial output to your microcontroller UART to be interpreted and used by your own software.

    From there you have the choice of directly transmitting this info into the APRS system, as described in the space transmitter tutorial, forwarding that info to your cell phone transmitter, and/or logging it to a microSD card or EEPROM.

    Receiving GPS String Data
    Your GPS unit is likely to be outputting its data non-stop between 1 and 4Hz, although you really don't need a reading more than once every 10 seconds or so to track your balloon accurately. It's usually at some slow baud rate, from 2400 to 9600bps. 4800bps is the typical standard, but not the rule. The datasheet for your GPS will be more specific.

    It's a very non-demanding signal. This means that if your microcontroller does not have enough UART ports, you can use a software-based UART without issue.

    The data will likely be in TTL format, or maybe RS-232 if it's an old unit. You store the string as an array, and then process that array looking for the variables you want. GPS strings are standardized, so you can likely find code for your favorite microcontroller online to copy/paste. I used WebbotLib software library with the Axon Mote microcontroller.

    It's best to get a GPS that outputs normal TTL so that it can be directly interfaced with a microcontroller. Avoid those that connect by RS-232 or USB, as they require the additional complication of adaptors.

    Does GPS have an altidue limit?
    Technically, no. However some specific GPS units are programmed/designed (intentionally or unintentionally) not to work if a certain set of conditions are met.

    The COCOM limit exists to prevent GPS units from being used on ICBMs (intercontinental ballistic missiles). Any GPS that violates the COCOM limit would be subject to ITAR regulations, making it a huge pain for any GPS manufacturer to sell their product abroad.

    The limit states GPS units cannot work if it exceeds above 18km AND travels faster than 515 m/s. GPS units are allowed to violate either limit, but not both simultaneously.

    Our balloons had a max speed of about ~50 m/s and a max altitude of ~36km, so it does not violate both COCOM limits.

    However some GPS units are programmed to shut down if either limit is violated anyway. It's important that you carefully read the datasheet and confirm with others who have already used that particular GPS unit that it will in fact work at your planned altitude.

    Some GPS units have what's called 'ground mode', 'aviation mode', 'high speed mode', etc. If, for example, your GPS is factory set for 'ground mode', it may have poor accuracy in terms of altitude and/or may not work above some particular altitude. You'd have to reconfigure the firmware for 'aviation mode'.

    The below image was obtained while testing our GPS unit using the GPS Viewer software.

    image: GPS locks as reported in software

    Does Altitude Affect GPS?
    To answer this question, we recorded the number of sat locks at every altitude. The chart below is a compilation of the number of sat locks over four separate balloon launches (SB2 to SB5). As you can see in the below chart, a maximum of 12 sat locks occurred at all altitudes - even at the maximum heights of the balloons of ~36km (118k ft).

    So the answer is 'yes': altitude does appear to increase GPS locks. I suspect this is because of two reasons:

    • less atmospheric attenuation of the signal (ie. stronger signal with thinner atmosphere)
    • access to additional satellites over the horizon as the horizon distance increases (horizon distance increases with altitude)

    What Else Affects Number of Sat Links?
    There are many various factors that will affect the number of sat links.

    The first and most obvious is the signal quality. Your antenna (type, length), obstructions to the signal (are you inside a building?), and air humidity (rain, clouds, fog, etc) all affect signal quality. Obviously don't launch your balloon in bad weather, and make sure your GPS unit antenna(s) are not obstructed by metal objects (batteries, wiring, etc) as they are packed into the launch capsule.

    Note that it might take minutes or longer after bootup of your GPS unit to get a good position fix - four satellite locks are required to get a position. The datasheet of your GPS will fully describe the cold boot and warm boot times required. Of course, it's not recommended to launch the system until you confirm it has at least 6 sat locks.

    As best demonstrated by this below animation I 'borrowed' from the wikipedia article on GPS, the number of detectable satellites fluctuates throughout the day:

    Determining Velocity and Acceleration Using GPS
    Your GPS unit will report velocity. You can then plot that over time, overlaid on altitude, to determine the velocity of the balloon as it ascends and descends.

    note: a Knot is 0.514 m/s

    What I find interesting about the above velocity data is that although the altitude is increasing at a rather steady rate, the velocity is still changing quite a bit. This would mean that vertical velocity is nearly constant, but horizontal velocity (ie. wind speed) varies quite a bit. This would mean that wind is generally horizontal throughout the vertical air column.

    You will see three general regions of maximum velocity. The first and last represent the jet stream. But what I don't really understand is at max altitude the velocity is also quite high - despite the very low air pressure! Interesting . . .

    Using the velocity data, we can get acceleration by using this equation:

      acceleration = (velocity_2 - velocity_1)/time_passed

    In the acceleration data you can see the two regions of highest acceleration is during the passing through the jet stream.

Get Your Ad Here

Has this site helped you with your robot? Give us credit - link back, and help others in the forums!
Society of Robots copyright 2005-2014
forum SMF post simple machines