Skip to content

A modular Satellite/Celestrial body rotator and tracker to communicate with satellites or simply increasing the efficiency of solar panels

License

Notifications You must be signed in to change notification settings

Ahmad138/SatRot

Repository files navigation

SatRot - Taking Everyone to Space πŸ“‘ 🌍 πŸŒ™ πŸ”­ πŸ‘Ύ 🌠 πŸš€

Build Status Version GitHub issues GitHub closed issues GitHub closed pull requests GitHub forks GitHub stars GitHub license GitHub code size in bytes GitHub repo size Twitter Follow

SatRot Logo

Table of Contents πŸ“’

Motivation πŸ’ͺ πŸ”₯

There has being alot of interest buzzing around ever since the space race started in 1955. Equipments and materials to communicate with satellites especially low earth orbit (LEO) satellites have being expensive and inaccessible. These satellites (both natural and artificial) move really fast across the sky. Hand tracking becomes tedious and tiring. Solar panels also need to follow the sun across the sky for 90Β° incident rays so as to increase it's efficiency.

This is where satRot comes in. SatRot takes everyone interested into the domain of the amateur satellite observation or communication community.

What is SatRot? ✨

SatRot is a very cheap, modular and smart satellite rotator. It has the ability to automatically and manually control a load device such as an antenna for satellite communications, solar panel to track sun, telescope to observe patch of the night sky and others. The construction materials are so cheap and easy to build that high school students can DIY build the system.

The GUI has 2 main modes. A manual mode that a user can use to manually track a celestrial body using a mouse on the system. this provides a solid flexiblity for serach and observation of the sky. The second mode is the automatic mode. This mode allows the user to set a satellite to track whenever the satellite comes into view. This can be used to automatically transmit or receive information from satellite when it rises and before setting. This uses a kernal interrupt so as not to monopolize CPU resources. Ability to search and predict which and when satellites are coming over your location anywhere on earth.

How SatRot works πŸ”§

Applications/Usefulness

  • Can be used to track fast moving satellites. Especially those in LEO with short fly by times.
  • Solar panel can be mounted to track the sun and increase its efficiency
  • Can be used as a teaching aid for young students about satellite technologies
  • Telescope can be mounted on it and used to track a celestrial body in the sky
  • Tracking the ISS and the activities on-board becomes possible
  • When Starlink becomes fully operational, SatRot could be used to gain internet access anywhere in the world.

Who is SatRot for? 😍

SatRot is for anyone interested in the realm of satellite technology, telecommunications, amateur radio, application of raspberry pi. In short, anyone is free to join, use and participate in the SatRot project.

Requirements πŸ‘€

Mechanical πŸ”©

The mechanical requirements are not much. Most of the parts will be printed using a 3D printer and few fastening bolts, nuts and screws. (N.B: due to the covid-19 issue the world is facing, we cannot access the workshops to complete the mechanical parts). Bellow are the few items required at the moment.

  • Access to 3D printing
  • M2.5 bolts and nuts
  • Brass or plastic spaces
  • Tripod stand

see wiki for full mechanical requirements.

Electrical and Electronics πŸ“Ÿ

We wanted to make satrot modular, portable and completely standalone. This required some components that need to provide adequate power and control. Below are some requirements.

  • A4988 stepper driver chips
  • MPU-9250
  • Nema17 2A stepper motors
  • 12V batteries

see wiki for full EE reequirements. A soldering skill and basic circuit knowledge is also required.

Software πŸ’»

The main coding language is C/C++ and as such, a basic understanding of C/C++ is required. The software engineering heavily relies on a GUI development. Qt development package is the ideal package for a project like this.

Dependencies and Packages

# C++14

- sudo apt-get install -qq g++-6
- sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 90
- sudo apt-get --yes install qt5-default qt514-meta-full qt514tools qt514webengine qt514base qt514imageformats qt514svg libqt5webkit5-dev qt514charts-no-lgpl qt514xmlpatterns
- sudo apt-get install zlib1g-dev g++ cmake doxygen graphviz libboost-all-dev libssl-dev
# only on the raspberry pi
- sudo apt-get install wiringpi 

Proceed to the software development section on wiki for more info.

Device and Operating System

The device used for the project is a raspberry pi 3 B with the raspbian (GNU/Linux) operating system installed on it.

Telecom πŸ“‘

This section requires majorly:

  • Custom antenna
  • RTL-SDR
  • RG58 50ohm cable
  • SMA connectors

more on wiki

How to ...

Build and install

git clone https://github.com/Ahmad138/SatRot.git

# To install main-GUI on ubuntu
cd satrot/Software/SatRot-GUI
mkdir build && cd build
qmake ..
make

sudo make install
cd GUI-Main
./GUI-Main

# To install RotorDriver-GUI on raspberrypi 3
cd satrot/Software/RotorDriver-GUI
mkdir build && cd build
qmake ..
make

sudo make install
cd RotorDriver
./RotorDriver

# To run tests, cd into each module test you want to perform and run it. for example:
cd build/apiTest
make check

NB: If you are facing issues building using 'make', look at this issue and see if it applies to you. if not, open a new issue and ask for help.

Use

Maintain

Project maintenance will be performed by the creators and contributors. Anyone is free to join us in maintaining and growing this project.

Screenshots

Examples and Videos

For videos and demonstrations, visit our YouTube channel

Documentation

A detailed documentation is outlined in the wiki section of the repository. Files, documents, construction materials, instructions, costs and others are all listed and defined over in the wiki section.

For the newbee nerds out there, checkout our Doxygen docummentation for the software.

Issue Tracking

If there is any issue or suggestions (including spelling/grammatical errors) to the development of the project, feel free to open an 'issue' on the issue tab and properly define the issue. The problem will be rectified as soon as possible by the community.

Social Media @sat_rot

Like, Follow, Share to stay updated and help us grow the community.

Authors

Ahmad Muhammad πŸ™ˆ πŸ€“ πŸ€– Github | 🐦 Twitter | 🀑 Facebook

Mohamed Salih πŸ™‰ 😎 πŸ€– Github

Mohamed Salim πŸ™ˆ 😊 πŸ€– Github

See who did what here

Support Us

You can support us by sending us a thank you note or bringing someone into the vast world of satellite technology. Your support gives us boost to continue maintaining this project. Also give us a shout out whenever possible.

License

The MIT License

Copyright (c) 2020 - SatRot

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.