On Board Computer designed for Atlas Sat. Developed at DSO National Laboratories for R@YDSP
This repository features code used in the On Board Computer (OBC) of Atlas Sat. The OBC is responsible for managing the satellite's subsystems, and executing the satellite's mission. The OBC is built using the FreeRTOS real-time operating system and the CSP communication protocol. The OBC software is designed to be modular and extensible, allowing for easy integration of new features and subsystems.
For a detailed list of features, refer to the project report.
View Project Structure
└── obc/
├── docs
│ ├── Capture_obc.PNG
│ ├── Capture_subsys.PNG
│ ├── README.md
│ ├── _config.yml
│ └── wiring.jpg
├── obc
│ ├── FreeRTOS
│ │ ├── Demo
│ │ │ └── Common
│ │ └── Source
│ │ ├── include
│ │ ├── list.c
│ │ ├── portable
│ │ ├── queue.c
│ │ ├── tasks.c
│ │ └── timers.c
│ ├── FreeRTOSConfig.h
│ ├── libcsp
│ │ ├── CHANGELOG
│ │ ├── CONTRIBUTORS
│ │ ├── COPYING
│ │ ├── INSTALL.rst
│ │ ├── README.rst
│ │ ├── bindings
│ │ │ └── python
│ │ ├── doc
│ │ │ ├── example.rst
│ │ │ ├── history.rst
│ │ │ ├── interfaces.rst
│ │ │ ├── libcsp.rst
│ │ │ ├── memory.rst
│ │ │ ├── mtu.rst
│ │ │ ├── protocolstack.rst
│ │ │ ├── structure.rst
│ │ │ └── topology.rst
│ │ ├── include
│ │ │ └── csp
│ │ ├── src
│ │ │ ├── arch
│ │ │ ├── crypto
│ │ │ ├── csp_bridge.c
│ │ │ ├── csp_buffer.c
│ │ │ ├── csp_conn.c
│ │ │ ├── csp_crc32.c
│ │ │ ├── csp_debug.c
│ │ │ ├── csp_dedup.c
│ │ │ ├── csp_endian.c
│ │ │ ├── csp_iflist.c
│ │ │ ├── csp_io.c
│ │ │ ├── csp_port.c
│ │ │ ├── csp_promisc.c
│ │ │ ├── csp_qfifo.c
│ │ │ ├── csp_route.c
│ │ │ ├── csp_service_handler.c
│ │ │ ├── csp_services.c
│ │ │ ├── csp_sfp.c
│ │ │ ├── interfaces
│ │ │ ├── rtable
│ │ │ └── transport
│ │ ├── utils
│ │ │ ├── cfpsplit.py
│ │ │ └── cspsplit.py
│ │ ├── waf
│ │ └── wscript
│ ├── main.c
│ ├── obc.componentinfo.xml
│ ├── obc.cproj
│ └── project
│ ├── include
│ │ ├── conf_util.h
│ │ ├── driver_debug.h
│ │ ├── error.h
│ │ ├── packet.h
│ │ ├── protocol.h
│ │ ├── tasks.h
│ │ └── uart.h
│ └── src
│ ├── i2c.c
│ ├── packet.c
│ ├── protocol.c
│ ├── tasks.c
│ └── uart.c
└── obc.atslnBefore getting started with obc, ensure your runtime environment meets the following requirements:
- Programming Language: C
- IDE: Microchip Studio
- Download from Arduino Software.
- Choose the MSI installer.
- Go to
Tools > Board > Boards Managerand install Arduino AVR boards. - Check the installation path of Arduino IDE:
- Right-click on the Arduino IDE icon > Open File Location.
- Example:
C:\Users\johndoe\AppData\Local\Programs\Arduino IDE.
- Verify the existence of the folder:
- Example:
C:\Users\johndoe\AppData\Local\Arduino15.
- Example:
- Locate the
avrdude.exepath:- Example:
C:\Users\johndoe\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17\bin\avrdude.exe - Copy the path and save it.
- Example:
- Download Microchip Studio from the Microchip website.
- Open Microchip Studio.
- Go to
Tools > External Tools. - Click on
Add. - Fill in the following fields:
- Title:
COMx.- Example:
COM4.
- Example:
- Command:
avrdude.exepath.- Example:
C:\Users\johndoe\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17\bin\avrdude.exe - Arguments:
-Cpath toavrdude.conffile-v -patmega328p -carduino -PCOMx-b115200 -D -Uflash:w:"$(ProjectDir)Debug\$(TargetName).hex":i.- Example:
-C"C:\Users\johndoe\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17\etc\avrdude.conf" -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:"$(ProjectDir)Debug\$(TargetName).hex":i
- Title:
- Clone the obc repository:
❯ git clone https://github.com/atlas-sat/obc- Navigate to the project directory:
❯ cd obc- Open Microchip Studio.
- Go to
File > Open > Project/Solution. - Navigate to the project directory and open the
obc.atslnfile.
- Build the project by clicking on the
Buildbutton. - Verify that the project builds successfully.
- Go to
Tools > COMx. - Verify that the project flashes successfully.
This project is not protected under any license. You are free to use, modify, and distribute the software as you see fit.
- Caden's cat Clover.