Satellite Software

From Stanford SSI Wiki
Revision as of 01:23, 16 September 2020 by Lnashold (talk | contribs)
Jump to navigation Jump to search

Satellites software is responsible for writing the code to operate our satellite-related projects. Currently, the team is working on writing the flight software and payload code for Sequoia (see Sequoia Software).

Onboarding

Basics

1. Join the SSI slack, and the #satellites and #satellites-software channels. Joining #satellites-systems is optional, if you want to receive info on systems level discussions.

2. Come to meetings Thursdays at 6:30 PST.

3. Create a github account (www.github.com) and DM @langston and @moritz (the software co-leads) your username

4. Also message @langston and @moritz your Stanford email, so you can get added to the Google Drive.

5. Read Sequoia Software to get a broad understanding of our systems. Don't worry if you can't understand it all.

6. Take a look at the projects below, and see which ones interest you. Message @langston and @moritz which one you want to do, or if you have any questions.

Onboarding Projects

Wondering how to start getting involved? You came to the right spot! Take a look at the on-boarding projects here and then contact your software team leads for details. These projects are meant both as a way to learn about the technical workings of Sequoia and a fun way to get to know the team, so never hesitate to ask for help!

Choose a Project! Background Difficulty Skills/Knowledge Involved
Connect sensors to flight computer Our sensors (sun sensors, altitude sensors, etc.) are connected to the board with various hardware mechanisms (like I2C). Some of them need to be configured to be able to use them with our software. You will be writing the code to interact with these sensors. Medium Circuitpython, PyCharm, Terminal, Hardware
Practice creating a PR using GitHub Github is how we add code to our codebase. This project will practice making a small change to the codebase, then adding it to our code repository so you can get familiar with Git. Easy Git, Github, Terminal.
Experiment with existing code base The current setup includes the Raspberry Pi as well as our PyCubed flight controller. This task is about looking at our existing software, actually running it on our hardware and playing around with it to get a better sense of what direction you want to take this project. This task will involve lots of close contact with the existing team members, who will help you get set up and explain any open questions. Medium Python, CircuitPython, Redis, Microservices, PyCharm, SSH, Terminal
Machine Learning Model The main mission of the satellite is to run ML models while in flight. This project will have you create a basic prototype model designed to be used on the satellite. We have a tutorial and dataset for cloud detection, although other applications are allowed. Click here for specification. Difficult Python, Data Science, Image Processing, Machine Learning
Create simulated sensors for testing and development Since the creation of the hardware of our satellite takes time, we need to develop software for hardware that does not even exist yet. To make this task easier, a critical and helpful tool are small pieces of code that can simulate the behavior of an actual sensor or other device. For example, you could model a thermometer by investigating how the temperature of the satellite should change in a simplified scenario and then use that information to code a simple class that our main software can interact with to get simulated temperature readings. Medium Python, MicroPython, Object Oriented Programming, PyCharm, Terminal, Physics