The ISS Orbit Tracker (ISSOT) is an Android Things experiment that keeps track of the International Space Station. It calculates and displays the azimuth and elevation during the ISS orbits. This relatively simple device will give you a visual indication of the location of the Space Station, even if you can't see it.
The ISS conducts operations in the low earth orbit (LEO) about 400 km above the earth's surface. It travels from west to east on an orbital inclination of 51.6 degrees. Each orbit takes 90-93 minutes, depending on the exact altitude of the ISS. Its location in the sky can be determined by using two “look angles” called, Azimuth & Elevation.
Azimuth (ψ) is the angle measured in the plane parallel to the horizon from the polar north going clockwise. This angle has a value between 0° and 360°.
ψ = atan2((sin Δλ ⋅ cos φ₂), (cos φ₁ ⋅ sin φ₂ − sin φ₁ ⋅ cos φ₂ ⋅ cos Δλ))
Elevation (El) is the angle measured in the plane perpendicular to the horizon going up towards to the ISS. This angle has a value between –90° and +90° such that the horizontal direction is 0°. A vertically upwards is +90° and vertically downwards is –90°. The figure below shows the addtional vectors and angles needed to calculate the elevation angle.
- rS is the vector from the center of the earth to the ISS
- rE is the vector from the center of the earth to the earth station (the tracker)
- d is the vector from the tracker to the ISS.
- γ is the central angle measured between rE and rS
- ψ is the angle measured from rE to d
Built using a Raspberry Pi 3b and the Android Things embedded OS platform, ISSOT utilizes tracking information and motors to point at the space station. To do so, it uses the WTIA REST API in conjuction with the Volley library to grab JSON objects containing the position of the ISS. The motors are driven by a DC & Stepper Motor HAT; which connects to the Raspberry Pi. The stepper motor (geared down with a chain drive) controls the azimuth and the servo controls the elevation. A three wires slip-ring is installed in the bottom of the 6" tube to prevent the cables from getting tangled and allow pulse modulation continuity through the rotating shaft. The Rainbow HAT display shows the azimuth degrees and the LED strip indicates the proximity level of the ISS passing near or above the tracker location.
The device requires to be initialized at true north at the moment of powering it up. After that, it goes through a quick range-of-motion routine before starting to point at the ISS.
- WiFi and Internet access.
- Android Studio 3.0+.
- Flash Android Things on the Raspberry Pi 3 (instructions here).
- The following individual components:
Part | Qty |
---|---|
Raspberry Pi 3 Model B |
1 |
DC & Stepper Motor HAT |
1 |
Pimoroni Rainbow HAT |
1 |
5V 4A Power Supply or similar |
1 |
Slip Ring - 3 Wire (10A) |
1 |
Stepper Motor |
1 |
HS-322HD Servo |
1 |
Lightweight HUB Horn |
1 |
Set Screw Hub - 5mm Bore |
1 |
5/16" – 3/8" Rubber End Cap |
1 |
1" Bore, Face Tapped Clamping HUB, 1.50" Pattern |
1 |
1" Stainless Steel Tubing length: 6.00" |
1 |
Standard Servo Plate C |
1 |
0.250" Chain (5 Feet) |
1 |
3.85" (11 hole) Aluminum Beams (2 PACK) |
1 |
1" Bore 0.250" Pitch Aluminum HUB Sprocket # of teeth: 40T |
1 |
1/2" Bore 0.250" Pitch Aluminum HUB Sprocket # of teeth: 16T |
1 |
90° Single Angle Pattern Bracket |
1 |
90° Single Angle Short Pattern Bracket |
2 |
1" Bore Bottom Tapped Clamping Mount |
2 |
1" Bore Side Tapped Pillow Block |
2 |
Large Square Screw Plate |
3 |
Flat Dual Pattern Bracket |
3 |
Actobotics® Hardware Pack A (optional, but recommended) |
1 |
Splitter Power Adapter Cable 5.5 x 2.1mm (optional) |
1 |
Wood Rectangle Plaque (optional) |
1 |
Chain Breaker Tool (optional) |
1 |
- ISS orbital parameters, NASA Human spaceflight
- OREKIT (ORbits Extrapolation KIT), C.-S.
- Earth Orientation Center, OBSPM
- Satellite and Flare Tracking
- Space Station Orbit Tutorial
- Orbital Coordinate Systems
- Google Developers Codelabs
Special thanks to G. Hillhouse for suggesting the Actobotics® hardware to build the tracker aluminum structural.
Copyright 2018 Al Bencomo
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.