The aim of this Satellite Tracker project is to develop a handheld device that tracks satellites in real time using a GPS module. This device will display information about visible satellites, including their names, azimuth (horizontal direction), elevation (angle above the horizon), and position.
For this project, we use the IndusBoard Coin paired with the GPS module to scan for nearby satellites. The device collects data about these satellites and displays it on an LCD screen. Future enhancements could include adding functionality to track planetary positions. We also plan to launch an astronomical smartwatch with similar capabilities.
Bill of Materials (BOM)
The components used, including the IndusBoard, GPS module, and display, are compact and fit into a small 3 cm size, resulting in a compact and lightweight watch design.
Satellite Tracker Circuit Diagram
The LCD display uses SPI for communication, so an SPI peripheral is needed on the IndusBoard to control it. The IndusBoard supports multiple SPI interfaces, and its I/O pins are highly flexible, allowing any pin to be used for SPI. For displays with I2C touch drivers, code is provided for both SPI and touch configurations, enabling you to interact with the satellite data display via touch. The L89 GPS module communicates via USART serial peripherals, and any pin on the IndusBoard can be configured for serial communication.
For power, you can connect the components to a 3.3V battery via the 3V pin and GND pin. For testing purposes, you can also power the device through a USB-C connector on the board.
Fig 2: Circuit Diagram for Astronomical Watch
Code
To program the device, you’ll need the following libraries:
- TFT_eSPI Library for the display
- TinyGPS Library for the GPS module
You can install these libraries using the Library Manager in the Arduino IDE.
Start by defining the Serial pin for the GPS module and configuring the SPI pins in the TFT_eSPI configuration file (located in the Documents/Arduino folder). The code first checks the serial communication from the GPS module, extracts satellite data, and then displays it on the round display.
Upload the code by selecting the board as “ESP32S2 Dev Module” and the appropriate COM port for the IndusBoard.
Fig 3: Code Snippet
Testing
Power up the device and move to an open area to allow the GPS module to locate nearby satellites. Once the GPS communicates with these satellites, it will retrieve and display details such as satellite ID, azimuth, elevation, and more on the display screen.
Fig 4: Testing
Application Use Cases
- Educational Tool:
- Useful for learning about satellite orbits, tracking, and space navigation. Ideal for students and hobbyists to understand satellite movement and ground positions.
- Amateur Radio:
- Helps amateur radio enthusiasts track communication satellites, improving antenna direction for better signal reception.
- Astronomy:
- Assists astronomy enthusiasts in tracking scientific satellites and the International Space Station (ISS) for observational planning.
- Navigation and Surveying:
- Useful for verifying satellite positions and trajectories, aiding in applications that require precise location data.
What’s Next?
This is the first version of our satellite tracker watch. We are working on an advanced astronomical watch that will monitor stars and planets, providing updates on their relative positions and changes in the solar system.
Stay tuned for more updates!