Line 3: |
Line 3: |
| ==Onboarding== | | ==Onboarding== |
| ===Basics=== | | ===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. | + | 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. | | 2. Come to meetings Thursdays at 6:30 PST. |
Line 11: |
Line 11: |
| 4. Also message @langston and @moritz your Stanford email, so you can get added to the Google Drive. | | 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. | + | 5. Read [[Sequoia Software]] to get a broad understanding of our systems. Also, skim at [https://docs.google.com/presentation/d/1DwoCL9TMRcKcJKjmmA1fXvl3jTsyAJqPgZrezuWSQag/edit?usp=sharing the slides] from our preliminary design review to see the current state of our subsystems. |
| | | |
− | 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. | + | 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. |
| + | |
| + | 7. Setup your workspace (see below). Some tools are only required for certain projects, but some are required for almost everything, like Git and Pycharm. |
| | | |
| == Onboarding Projects == | | == Onboarding Projects == |
Line 32: |
Line 34: |
| | 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 | | | 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 |
| |} | | |} |
| + | |
| + | |
| + | == Workspace Setup == |
| + | === Git(Hub) === |
| + | Git is a tool for tracking revisions to a codebase, and GitHub is a central place to store these revisions. It's the most common version control system used in software development. |
| + | |
| + | '''Setup Steps''' |
| + | |
| + | 1. Create a Github account (http://www.github.com) |
| + | |
| + | 2. Message @moritz or @langston with your github username and ask to be added to the Github Team |
| + | |
| + | 3. Install either git on the command line, if you are comfortable with the terminal, or github desktop, if you prefer a GUI. These steps focus on using git from the terminal. |
| + | * Instructions to install Git: https://www.atlassian.com/git/tutorials/install-git |
| + | * Instructions to install the desktop GUI: https://desktop.github.com/ |
| + | |
| + | 4. Try checking out the codebase! Go [https://github.com/stanford-ssi/sequoia-software the repository] and press clone. In the terminal, run the following command (if you are using the CLI) |
| + | git clone https://github.com/stanford-ssi/sequoia-software.git |
| + | |
| + | 5. You should see the codebase downloaded to a local folder. |
| + | |
| + | If you've never used git before, check out [https://www.atlassian.com/git/tutorials this tutorial] for an introduction. |
| + | |
| + | === PyCharm === |
| + | PyCharm is an IDE that makes it easy to edit Python files. This will be used for development on both the PyCubed and RaspberryPi. You can download it from [https://www.jetbrains.com/pycharm/ here]. |
| + | |
| + | === Dataplicity === |
| + | Dataplicity is a tool we use to access the PyCubed remotely. It lets us login to a RaspberryPi that has the PyCubed mounted as a drive. You can copy files to the PyCubed and view the PyCubed output. |
| + | |
| + | 1. Create an account on dataplicity.com |
| + | |
| + | 2. Message @flynn (Sats lead) the email you used to sign up with, saying you need access to dataplicity |
| + | |
| + | 3. You should see two Raspberry Pi's. One of them has the PyCubed. |
| + | |
| + | 4. Dataplicity is basically like ssh, so you can access the command line of the Raspberry Pis from your browser. |
| + | |
| + | 5. The PyCubed files are stored at /mount/PYCUBED. Copy code to and from this to change what the PyCubed runs. |
| + | |
| + | 6. To see the PyCubed REPL, run the command |
| + | * screen /devices/ttyACM0 |
| + | |
| + | 7. Since dataplicity is slow, it's easier to edit files locally, push to a github branch, pull the github branch onto dataplicity, and copy them onto PyCubed if necessary |