Changes

Jump to navigation Jump to search
2,611 bytes added ,  05:11, 20 September 2020
Add Workspace Setup
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
17

edits

Navigation menu