C2A-AOBC
is the flight software for the AOCS module developed by ISSL/UT, Seiren, and JAXA.- Support environments
- For real AOBC (Attitude On Board Computer)
- vMicro + Visual Studio 2019
- For SILS test
- Telemetry/Command interface
- For real AOBC (Attitude On Board Computer)
- How to use
The main developers
of the AOCS module directly use this repository to add new features and improve the module.General users
of the AOCS module do not need to use and edit this repository directly. They need to create a project-specific repository and define spacecraft-specific parameters within the repository.
- We use Semantic Versioning 2.0.0 as the versioning style
- Basic version format is
<major>.<minor>.<patch>
(like4.0.0
) - Public API is declared in the code itself (currently, there is no definitive list)
- Basic version format is
- All releases should be tagged as
v<semver>
(likev4.0.0
)
- Please refer c2a-aobc-example repository.
- Users can fork or copy of this example repository.
- We also have manuals to construct SILS test environment. Please visit the Google Drive to find the manuals.
- Sorry, but we only have manuals written in Japanese now. We need help to translate them.
- When general users add new features or remove this repository's bugs, please make upstream pull requests from a forked repository.
- Before making PRs, please carefully read the following
Development style
for main developers. - If you have any questions, please feel free to ask us.
- The term
body-fixed frame
in the codes and tlm/cmd database meansthe body-fixed frame of the AOCS module
. It does not necessarily coincide with the body-fixed frame of your satellite.
- This repository includes c2a-core and tlm-cmd-generator as the
git submodule
. Please use the following commands to construct the directory.$ git clone git@github.com:ut-issl/c2a-aobc.git $ cd c2a-aobc/ $ git submodule init $ git submodule update
- Or use the following commands to clone the repository.
$ git clone --recursive git@github.com:ut-issl/c2a-aobc.git
- After the clone, please execute the following script file for the local setting of git.
- Windows:
RUN_AFTER_CLONE.bat
- Mac:
RUN_AFTER_CLONE.command
- Windows:
-
Install Arduino IDE
- Install Arduino
- Launch Arduino project
- Add board setting
メニューバー>ファイル>環境設定
- Add the following description to the additional board manager's URL
- Install
ChipKIT
メニューバー>ツール>ボード>ボードマネージャ
- Click
Install
ofchipKIT
-
Add board definition file
- Open
C:\Users\^^^\AppData\Local\Arduino15\packages\chipKIT\hardware\pic32\2.1.0
directory- NOTE This directory name is changed by the PC environment
- Open
board.txt
, and move to the end of the line. - Open
c2a-aobc/settings/board.txt
- Copy all contents and paste them to the end of the
2.1.0\board.txt
. - Save and close the
2.1.0\board.txt
. - Copy
c2a-aobc/settings/MXL795
directory and paste to the\2.1.0\variants
directory
- Open
-
Install Visual Studio 2019 and vMicro
- TBW
-
Setting of
vMicro
- Open
C2A_AOBC.sln
- Select
拡張機能>vMicro
and set it as follows.- IDE: Arduino 1.6/1.8
- Board: PIC32MX795F512L(80MHz)
- Port: depends on your environment
- NOTE If you cannot include DTWI.h and DSPI.h and cannot build, add DTWI and DSPI from
Add Library>Current Platform
invMicro
settings.
- Open
- Edit TLM/CMD DB in
c2a-aobc/database/
- Please find detailed information on How to use TLM/CMD DB.
- Execute
tools/tlm_cmd_generator
and generate source codes.- How to use tlm-cmd-generator
- Just use the version specified in the submodule.
- It is set to read
tools/tlm_cmd_gen_config.json
as the config file.
-
Repository settings
- Branch structure
- main # The latest operation guaranteed codes for general users - develop # The latest buildable codes for S2E primary developers - feature/* # Developing codes - hotfix/* # Bug Fix codes
- Push to
main
anddevelop
is prohibited. All developers have to develop withfeature/*
orhotfix/*
branch and make a pull request.
- Branch structure
-
Flow of development
- Make a
feature/*
branch from thedevelop
branch.- To fix the small bugs in the latest release codes, please make
hotfix/*
branch from themain
branch.
- To fix the small bugs in the latest release codes, please make
- Edit, commit, and push in the branch.
- Please check the coding conventions and the
code format
in the next section.
- Please check the coding conventions and the
- Create a new pull request to the
develop
branch.- The target branch becomes the
main
branch for thehotfix/*
branches.
- The target branch becomes the
- A maintainer reviews the pull request. If some problems are found, the maintainer proposes modifications.
- According to the maintainer's proposal, the developer modifies the codes and goes back to 3.
- The maintainer merges the
feature/*
branch with thedevelop
branch. - The code owners decide to merge the
develop
branch to themain
branch and release a new version.
- Make a
-
Binary files
- Binary file commit is prohibited.
- Please write the link to such files, or make a script file to get the files.
- Exception
- Images for markdown document files are allowable when the file size is smaller than 200K Bytes.
- Please follow the Coding rule of c2a-core
- Please also care about the AOCS-specific rules as follows.
- Add unit information in the name of variables and functions
- Add frame information in the name of variables and functions
eci
: Earth Center Inertia framebody
: Body-fixed frame (body frame of AOBC module)compo
: Component frame
- For abbreviations, please see the ISSL internal document.
- When using
vMicro
, setting theVisual Studio
to display by folders instead of filters makes it easier to use. - For build errors when SILS test with
S2E
, try the following operations first.- Perform
git submodule update
. - Delete CMake cache of S2E.
- Perform
Project Name | Developer | Launch | Refs |
---|---|---|---|
SPHERE-1 EYE | Sony Group Corporation and ISSL, UT | 2023 | Sekine 2023 |
ONGLAISAT | ISSL, UT | - | Ikari 2022 |
- 21st Jan. 2021: Development started in a private repository at GitLab.
- 03rd Mar. 2023: Move to a private repository at GitHub to prepare to publish as OSS
- 14th Jul. 2023: Convert to a public repository.
- ISSL, UT
- Satoshi Ikari: 963 commits
- Ryo Suzumoto: 367 commits
- Takayuki Hosonuma: 352 commits
- Toshihiro Suzuki: 341 commits
- Hirotaka Sekine: 242 commits
- Toshio Imamura: 149 commits
- Masahiro Fujiwara: 129 commits
- Yutaro Ito: 55 commits
- Riki Nakamura: 14 commits
- Yoshinari Gyu: 13 commits
- ArkEdge Space Inc.
- sksat: 8 commits
- S. Ikari, and et al., "Development of Compact and Highly Capable Integrated AOCS Module for CubeSats", Journal of Evolving Space Activities, vol. 1, ID 63, 2023. Link
- H. Sekine, and et al., "Development of Software-In-the-Loop Simulator and Hardware-In-the-Loop Simulator of AOCS Module for CubeSats", 34th ISTS, Kurume, 2023. Link