Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update README.md #126

Merged
merged 4 commits into from
Jan 31, 2025
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 20 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ If you have just received a clean PROVES Board, ensure you have loaded the lates
You can cleanly load new software by doing the following:
1. Clone the branch you wish to put on your board to your local machine.
2. Connect to the target board so it mounts as an external drive.
3. If many files have changed, the target board using a serial terminal and run the following code in the REPL to erase all of the existing code:
3. If many files have changed, connect to the target board using a serial terminal and run the following code in the REPL to erase all of the existing code:
```py
import storage
storage.erase_filesystem()
Expand All @@ -27,23 +27,31 @@ __For Flight Controller Board__
```py
from pysquared import cubesat as c
```
__For Battery Board__
> NOTE: Battery Board Support will be deprecated in PROVES Kit V2.
```py
from pysquared_eps import cubesat as c
```
# Development Getting Started
We welcome contributions so please feel free to join us. If you have any questions about contributing please open an issue or a discussion.
We welcome contributions, so please feel free to join us. If you have any questions about contributing please open an issue or a discussion.

You can find our Getting Started Guide [here](docs/dev-guide.md).

## General Structure:
- **boot.py** This is the code that runs on boot and initializes the stack limit
- **main.py** This code tasks all the functions the satellite should do in a semi-asynchronous manner utilizing the asyncio library
- **payload.py** This code implements any desired payload. On the Pleiades missions, the payload has been the BNO055 IMU. Since the use of a stemmaQT connector allows multiple devices on the same bus, a BNO IMU could be used in conjunction with several other sensors if desired.
- **safemode.py** This code is unimplemented pending new firmware releases that allow the microconrtoller to perform a routine when in safemode
## lib
This software contains all of the libraries required to operate the sensors, pysquared board, and radio module.
### pysquared lib
This software library contains all of the libraries required to operate the sensors, PySquared board, and radio module.
- **Big_Data.py** This is a class developed to obtain data from the sensors on the 5 solar faces. Since all the faces maintain all the same sensors, this class handles the individual face sensors and returns them all to the main code.
Mikefly123 marked this conversation as resolved.
Show resolved Hide resolved
- **flag.py** This is code that allows for some registers within the microcontroller to be written to and saved through power cycles
- **debugcolor.py** This is code that allows for easier debugging and is used by individual classes. Each class utilizes a different color and makes debugging substantially easier
- **Field.py** This is code that implements the radio module for sending and listening
- **functions.py** This is a library of functions utilized by the satellite to obtain data, detumble, run the battery heater
- **pysquared.py** This is a library that initializes and maintains all the main functions for the pysquared architecture
- **adafruit_rfm.py** This is a library that implements all the radio hardware. This code is a modified version of the pycubed_rfm9x which is a modified version of the adafruit_rfm9x file.
- **cdh.py** This is the code that handles all the commands. A majority of this code is pulled from the cdh file developed by Max Holliday at Stanford.
- **detumble.py** This code implements the B-dot algorithm and returns outputs that allow the system to do a controlled detumble with the satellite's embedded magnetourquer coils
- **payload.py** This code implements any desired payload. On the Pleiades missions, the payload has been the BNO055 IMU. Since the use of a stemmaQT connector allows multiple devices on the same bus, a BNO IMU could be used in conjunction with several other sensors if desired.
- **logger.py** This class emulates the logging abilities of mainline Python and creates .json format logs for all of the satellite activities.
- **config.json** This file is used to configure the system variables for the satelite software.
Mikefly123 marked this conversation as resolved.
Show resolved Hide resolved
## Adafruit Libraires
These are open source software libraries that are pull from Adafruit. They don't ship by default anymore in our repo, instead they are installed by our package manager when you run the `make` toolchain.
- **asyncio** This is the library responsible for scheduling tasks in the main code
- **adafruit_bno055.py** This is the library that is responsible for obtaining data from the BNO055 IMU
- **adafruit_drv2605.mpy** This is the pre-compiled library that is responsible for driving the magnetorquer coils using the drv2605 motor driver
Expand All @@ -53,18 +61,9 @@ This software contains all of the libraries required to operate the sensors, pys
- **adafruit_tca9548a.mpy** This is the pre-compiled library that multiplexes the I2C line to each satellite face using the tca9548a I2C Multiplexer
- **adafruit_veml7700.py** This is the library that is responsible for obtaining data from the veml7700 Light Sensor
- **adafruit_vl6180.py** This is the library that is responsible for obtaining data from the vl6180 LiDAR sensor
- **Big_Data.py** This is a class developed to obtain data from the sensors on the 5 solar faces. Since all the faces maintain all the same sensors, this class handles the individual face sensors and returns them all to the main code.
- **flag.py** This is code that allows for some registers within the microcontroller to be written to and saved through power cycles
- **debugcolor.py** This is code that allows for easier debugging and is used by individual classes. Each class utilizes a different color and makes debugging substantially easier
- **Field.py** This is code that implements the radio module for sending and listening
- **functions.py** This is a library of functions utilized by the satellite to obtain data, detumble, run the battery heater
- **pysquared.py** This is a library that initializes and maintains all the main functions for the pysquared architecture
- **pysquared_rfm9x.py** This is a library that implements all the radio hardware. This code is a modified version of the pycubed_rfm9x which is a modified version of the adafruit_rfm9x file.
- **cdh.py** This is the code that handles all the commands. A majority of this code is pulled from the cdh file developed by Max Holliday at Stanford.
- **detumble.py** This code implements the B-dot algorithm and returns outputs that allow the system to do a controlled detumble with the satellite's embedded magnetourquer coils

## tests
This software is used for performing tests on the satellite
This software is used for performing tests on the satellite. Currently this is seperated into `repl` (tests that are meant to be run from the REPL enviroment on the board) and `unit` (tests that can be run independently of the hardware).
- **radio_test.py** This is an omnibus radio testing script that will allow you to send, receive, and command boards running the PySquared library.

## Testing setup

Expand Down