Skip to content

CySat-1 Software and Applications for Onboard Firmware and Ground Station

License

Notifications You must be signed in to change notification settings

M2I-CySat/CySat-1-Main

Repository files navigation

CySat 1 - Make to Innovate at Iowa State University

Onboard Computer (OBC) firmware, Satellite Systems, and Ground Station Software - CySat M2I

Instructions

  1. Navigate to the CySat-1 CyBox folder and read the documents under /About CySat-1: README! to gain a basic understanding of the CySat-1 mission, objectives, and project structure
  2. Continue reading this README to know basic files, instructions, and applications for each subsystem
  3. Reference subsystem-specific setup instructions, guides, and data sheets to gain an understanding of your specific tasks found in the CySat 1 box folder under Subsystems -> [Subsystem]

ADCS - Attitude Determination and Control System

ADCS Testing Spreadsheets now in Box: Subsystems/ADCS/Tests

  • CubeADCS - Commissioning Manual [V3.06] - This document describes the activities related to the commissioning of a CubeSpace ADCS module in flight.
  • CubeADCS - Health Check [V3.15] - This document will provide the instructions and results of the health check of the CubeADCS unit. The instructions provided must be followed exactly and the observed results must be indicated as is.
  • CubeADCS - ICD [V3.08] - This document describes the characteristics of the CubeADCS unit as well as the mechanical and electrical interfaces to the bundle. CubeADCS units can be configured with different sensor and actuators for different mission requirements. This document covers all ADCS configurations and readers are to use their discretion in determining which parts are relevant to their various bundle configurations.
  • CubeADCS - Option Sheet (Y-Momentum) [V3.02]\_TGT - This document include the complete ADCS solution for Y-momentum control. A momentum wheel (in various sizes) is included in the solution and can be mounted either on the bundle or separately from the bundle, depending on the size of the wheel. CubeSpace’s fine sun and nadir sensor module, CubeSense, can also be added to the solution if more accurate attitude control is required.
  • CubeADCS - Reference Manual [V3.10] - This document serves as source of information to refer to when using the User Manual, Commissioning Manual, and other CubeADCS documentation. The document contains complete listings of TCs and TLMs, communications examples, and other reference examples to assist in designing a system which will interface with the ADCS.
  • CubeADCS - User Manual [V3.07] - This document provide the user with instructions of completing the initial setup of the CubeADCS unit for the health check, instructions for connecting the unit to an OBC, a guide to mounting sensors inside a satellite and calculating mounting transforms, a functional description of the control modes that the CubeADCS unit is capable of executing, general usage instructions for all major functionality, and an overview of the hardware included in this bundle and their performance.

CloneComm Ground Station

Command Manifest

See the full list of commands in CyBox

  • Place commands under their respective type
  • "#" marks the beginning of a subtype
  • cmd_id:com_desc:data_payload(1=True,0=False):gs_sendable(1=True,0=False)

10:OBC

0:Ping Response:1:0 1:Ping Request:0:1 2:Disable Beacon Response:1:0 3:Disable Beacon Request:0:1 4:Basic Health Check Response:1:0 5:Basic Health Check Request:0:1 6:Main Operating Response:0:0 7:Main Operating Request:0:1

30:EPS

0:Voltage Response:1:0 1:Voltage Request:0:1

40:SDR

0:Power Status Response:0:0 1:Power Status Request:0:1 2:Time Set Response:0:0 3:Time Set Request:1:1 4:Set RF Bandwidth Response:1:0 5:Set RF Bandwidth Request:1:1 6:Set Calibration 1 Response:0:0 7:Set Calibration 1 Request:1:1 8:Set Calibration 2 Response:0:0 9:Set Calibration 2 Request:1:1 10:Set DC Gain Response:0:0 11:Set DC Gain Request:1:1 12:Set fftsize Response:0:0 13:Set fftsize Request:1:1 14:Set Frequency Response:0:0 15:Set Frequency Request:1:1 16:Set Integral Response:0:0 17:Set Integral Request:1:1 18:Set Sample Rate Response:0:0 19:Set Sample Rate Request:1:1 20:Set spavg Response:0:0 21:Set spavg Request:1:1 22:Reset SDR to Default Values Response:1:0 23:Reset SDR to Default Values Request:0:1 24:SDR Values Response:1:0 25:SDR Values Request:0:1 26:Take Measurement Response:1:0 27:Take Measurement Request:1:1 28:Start Transfer Response:1:0 29:Start Transfer Request:1:1 30:File Finished Response:1:0

EPS - Electrical Power System

  • In this folder is all known versions of EnduroSat EPS documentation.
  • Some of the documents contain inaccuracies: discrepancies in the diagrams and tables, but the ones at the root level are mostly correct
  • The files in the Flash Drive folder are the ones that came directly from EnduroSat when the EPS was purchased, but there appear to be some inaccuracies here too, especially with the I2C manual
  • The folder labelled inaccurate documents is kept for the sake of posterity

OBC - Onboard Computer

The EnduroSat Onboard Computer Type II (Indicated as Type I on the OBC in the lab) includes the STM32F4x Microcontroller, various communication interfaces, peripheral I/O devices, a prototyping area, and a PC-104 stack connector. EnduroSat provides an Open Software SDK which is included in this repository in addition to the main CySat 1 mission program.

Environment Setup

  1. Dowloand GitHub Desktop from the web and clone the CySat-1-Main repository within the app
  2. Download and install STM32CubeIDE:
  • Go to: https://www.st.com/en/development-tools/stm32cubeide.html
  • Select "Get Software" for the version that corresponds to your computer’s operating system
  • Accept license agreement
  • Enter first and last name, email, and check "I have read and understood the Sales Terms & Conditions, Terms of Use and Privacy Policy"
  • Click "Download"
  • Check email and click "Download now" on email, redirecting you to the website
  • It might automatically start downloading. If it doesn’t, select "Get Software" again and it should start downloading
  1. Open the installer and follow the installation steps
  2. Launch STM32Cube and select a workspace folder that is NOT your GitHub repo location (the default location should be sufficient)
  3. Open the cloned repo: File > Open Project from File System > Directory > *navigate to repo location* > Make sure all folders are selected > Finish
  4. Update Software by going to Help > Check for Updates
  5. Build the project by clicking the "Hammer" icon on the toolbar at the top
  6. Happy Programming!

Debug/Run Code on the OBC

The following items are required to debug, run, and deploy a program on the OBC (see CySat inventory)

  1. Use the following:
  • Pumpkin Board (or equivalent test bed equipped with a PC-104 stack connector + interface)
  • Power Supply + barrell power cable for PSU (the OBC does NOT recieve power via its onboard USB interface, this is used for other purposes)
  • ST-LINK v2 In-circuit Debugger + SWD cable (OBC <-> ST-LINK) + Mini-USB cable (ST-LINK <-> Dev computer)
  1. Ensure the power supply is set to 7.8 V and connected as shown in the image. Simply launch STM32Cube and debug away!

OBC-Pumpkin-Setup

Then, in the STM IDE

  1. Ensure you have the OBC_SDK project selected and click the "Run" (play) button, that's it!
  2. For troubleshooting purposes, in debug/run configurations -> Debugger tab, make sure the ST-LINK S/N is filled in, the interface is set to SWD, and the reset behavior type is "Connect under reset"

Use PuTTY to debug OBC

The UART module on the OBC allows debug messages to be received using Serial protocol from a PuTTY terminal via use of the following function

debug_printf("Your message goes here", [variables]); // This function can be used exactly like printf(); from the C <stdio> library

Then, to receive messages, perform the following:

  1. Open and install PuTTY
  2. Configure settings under Session according to the below image. IMPORTANT: Look in device manager to determine which COM port is in use by the OBC

image

  1. Configure settings under Terminal according to the below image:

image

  1. Configure settings under Serial according to the below image:

image

  1. Save and load a custom CySat configuration for later use and click Open
  2. Start the program and observe debug messages!

Use Onboard LEDs to debug OBC

Set the green and amber LEDs to different states depending on the state of the program

debug_led_green(count, period); // Green light: Set the number of times the LED should flash (count)
                                // and the speed of the flash (period)
debug_led_amber(count, period); // Amber light

Payload SDR - Scientific Instrument + Radiometer Communication Device

UHF/Antenna

  • Antenna deployment tester Rev 1.2pdf - User manual designed to detail the antenna deployment tester. Can be useful for developing and testing I2C communications for the UHF antenna.
  • ES_UHF_Module_TestReport_0318TU211104.docx - Shows the tested values at certain temperature, humidity and power supply voltage.
  • UHF type_II_ESTTC_Protocol_Rev_4.pdf - This lists the commands we can supply to the uhf to receive the wanted values. Critical importance as they will be used for sending information out the antenna.
  • UHF_Antenna_II_User_Manual_data_interface_Rev_2.3.pdf - User manual for the antenna specifically I2C communications
  • UHF_Antenna_II_User_Manual_Rev1.4_23112018.pdf - General overview of the antenna. This lists its features and hardware layout in clear precise ways. (UHF band for communications is 435-438 MHz)
  • UHF_Antenna_III_Datasheet_Rev1.pdf - Very similar to the user manual listed above. however this is for the Antenna III instead of Antenna II.
  • UHF_type_II_Datasheet_Rev_1.6.pdf - Lists the features, Morse code is among them, as well as how to test this component on the earth and how it connects to the OBC and antenna.
  • UHF_type_II_UserManual_Rev_1.5_21112018.pdf - Explains the connections and the features exactly like the previous document. This may just be an older copy of the datasheet above.
  • PuttyLogs - This is the folder I have listed tests for. Working commands displayed in log files.

Documentation Discrepancies

  • In the EPS Datasheet, there are some extra pins such as the V_RTC and EPS_Reset which we do not believe we have for our hardware
  • In the Manual version 1.1, the LUP 5v says it is on pin H1-48, but we have measured it as swapped with LUP 3.3v. To clarify, LUP 5v is on pin H1-51 and LUP 3.3v is on H1-48
  • In the I2C manual version 2, there are diagrams showing hardware we do not have on our device.

Releases

No releases published

Packages

No packages published

Languages