Skip to content

Commit 5d42b98

Browse files
committed
ADDS CCSDS tm
1 parent 79f74c2 commit 5d42b98

File tree

13 files changed

+513
-6
lines changed

13 files changed

+513
-6
lines changed

README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,31 @@ The designed camera payload is shown below:
364364
<img src="./payload/images/payload-complete.png" alt="Shadow flight OBC" />
365365

366366

367+
# Communication Protocol
368+
## CCSDS Telemetry(TM) Space Data Link Protocol
369+
This cubesat used a slightly modified version of the CCSDS space data link protocol for telemetry transmission. This section will introduce what it is and describe how this protocol is used for the cubesat.
370+
371+
### What is CCSDS Space Data Link Protocol
372+
373+
### CCSDS protocol data unit (PDU)
374+
The image below shows an illustration of the CCSDS space data link protocol with the field names and field sizes as described in the CCSDS standard.
375+
376+
377+
378+
### Field descriptions
379+
The following table contains the field descriptions of the CCSDS PDU.
380+
381+
### How it is implemented
382+
For more information on the specific implemetation, please refer to the following 2 files ```ccsds_tm.h``` and ```ccsds_tm.c``` in the ```Inc``` and ```Src``` folders of ```\firmware\OBC``` folder respectively.
383+
384+
Additionaly, there is a full video below that describes how this protocol was implemented from scratch.
385+
386+
### Interface with the ground station
387+
388+
### Data limits and known issues
389+
390+
391+
367392
## Related documents
368393
A list of related documents related to this project are provided below. They include diagrams, schematics,
369394
design source files, datasheets, 2D diagrams, 3D assembly diagrams, test information and logs etc.
4.64 KB
Binary file not shown.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
This file describes the Modified CCSDS packet
2+
3+
All the following data pointa/octets are contigous
4+
5+
HEADER:
6+
Transfer frame version NUmber TFVN
7+
Spacecraft identifier SCID
8+
Virtual channel identifier VCID
9+
10+
11+
PROTOCOL DATA UNIT:
12+
- TELEMETRY TRANSFER FRAME
13+
1.
14+
15+
16+
17+
18+
Frame length
19+
20+
21+
PACKET
22+
Packet Version Number (PVN)
23+
24+
Error checking
25+
Cyclic redundancy check
26+
27+
28+
The data unit has to be an octect-aligned data unit:
29+
- total length is a multiple of 8 bits
30+
each subfield starts at an octect boundary

firmware/onboard-computer/.cproject

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@
2424
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.1862683626" name="Floating-point ABI" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.value.hard" valueType="enumerated"/>
2525
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.1646277030" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="genericBoard" valueType="string"/>
2626
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.2041162568" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.6 || Debug || true || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32F401CCUx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Core/Inc | ../Drivers/STM32F4xx_HAL_Driver/Inc | ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy | ../Drivers/CMSIS/Device/ST/STM32F4xx/Include | ../Drivers/CMSIS/Include | ../Middlewares/Third_Party/FreeRTOS/Source/include | ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS | ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F || ../Core/Inc | ../Drivers/STM32F4xx_HAL_Driver/Inc | ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy | ../Middlewares/Third_Party/FreeRTOS/Source/include | ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS | ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F | ../Drivers/CMSIS/Device/ST/STM32F4xx/Include | ../Drivers/CMSIS/Include || || USE_HAL_DRIVER | STM32F401xC || || Drivers | Core/Startup | Middlewares | Core || || || ${workspace_loc:/${ProjName}/STM32F401CCUX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || || || " valueType="string"/>
27-
<option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.504047118" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="16" valueType="string"/>
27+
<option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.504047118" name="Cpu clock frequence" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="16" valueType="string"/>
2828
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.1584148622" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
2929
<builder buildPath="${workspace_loc:/shadow-flight-OBC}/Debug" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.379012298" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/>
3030
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.1720108823" name="MCU/MPU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler">
3131
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.520975615" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.value.g3" valueType="enumerated"/>
3232
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols.2102202208" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols" valueType="definedSymbols">
3333
<listOptionValue builtIn="false" value="DEBUG"/>
3434
</option>
35-
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.includepaths.804518969" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.includepaths" valueType="includePath">
35+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.includepaths.804518969" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.includepaths" valueType="includePath">
3636
<listOptionValue builtIn="false" value="../Core/Inc"/>
3737
<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc"/>
3838
<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy"/>
@@ -201,4 +201,17 @@
201201
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/>
202202
</scannerConfigBuildInfo>
203203
</storageModule>
204+
<storageModule moduleId="refreshScope" versionNumber="2">
205+
<configuration configurationName="Debug">
206+
<resource resourceType="PROJECT" workspacePath="/shadow-flight-OBC"/>
207+
</configuration>
208+
<configuration configurationName="Release">
209+
<resource resourceType="PROJECT" workspacePath="/shadow-flight-OBC"/>
210+
</configuration>
211+
</storageModule>
212+
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings">
213+
<doc-comment-owner id="org.eclipse.cdt.ui.doxygen">
214+
<path value=""/>
215+
</doc-comment-owner>
216+
</storageModule>
204217
</cproject>

firmware/onboard-computer/.settings/language.settings.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
66
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
77
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
8-
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1405856509463800852" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
8+
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1379047546566717012" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
99
<language-scope id="org.eclipse.cdt.core.gcc"/>
1010
<language-scope id="org.eclipse.cdt.core.g++"/>
1111
</provider>
@@ -16,7 +16,7 @@
1616
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
1717
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
1818
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
19-
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1405856509463800852" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
19+
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1379047546566717012" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
2020
<language-scope id="org.eclipse.cdt.core.gcc"/>
2121
<language-scope id="org.eclipse.cdt.core.g++"/>
2222
</provider>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
doxygen/doxygen_new_line_after_brief=true
2+
doxygen/doxygen_use_brief_tag=true
3+
doxygen/doxygen_use_javadoc_tags=true
4+
doxygen/doxygen_use_pre_tag=true
5+
doxygen/doxygen_use_structural_commands=true
6+
eclipse.preferences.version=1
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/*
2+
* ccsds_tm.h
3+
*
4+
* Created on: Oct 6, 2025
5+
* Author: eduh
6+
*/
7+
8+
#ifndef INC_CCSDS_TM_H_
9+
#define INC_CCSDS_TM_H_
10+
11+
12+
13+
#endif /* INC_CCSDS_TM_H_ */
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
*
3+
* @file ccsds_tm.c
4+
* @date Oct 6, 2025
5+
* @author Edwin
6+
*
7+
*/
8+
9+
10+

firmware/onboard-computer/Core/Src/main.c

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,46 @@
1313
* in the root directory of this software component.
1414
* If no LICENSE file comes with this software, it is provided AS-IS.
1515
*
16+
* 496e7370697265642062792041706f6c6c6f20383a
17+
*
18+
* 496e2074686520626567696e6e696e6720476f64206372656174656420
19+
* 7468652068656176656e20616e64207468652065617274682ea416e642074686520
20+
* 65617274682077617320776974686f757420666f726d2c20616e6420766f69643b20616e6420
21+
* 6461726b6e657373207761732075706f6e207468652066616365206f6620
22+
* 74686520646565702e20416e642074686520537069726974206f6620476f6420
23+
* 6d6f7665642075706f6e207468652066616365206f6620
24+
* 746865207761746572732ea416e6420476f6420736169642c204c657420
25+
* 7468657265206265206c696768743a20616e6420746865726520
26+
* 776173206c696768742ea416e6420476f64207361772074686520
27+
* 6c696768742c20746861742069742077617320676f6f643a20616e6420
28+
* 476f64206469766964656420746865206c696768742066726f6d2074686520
29+
* 6461726b6e6573732e
30+
*
31+
* 416e6420476f642063616c6c656420746865206c69676874204461792c20616e6420
32+
* 746865206461726b6e6573732068652063616c6c6564204e696768742e20416e6420
33+
* 746865206576656e696e6720616e6420746865206d6f726e696e67207765726520
34+
* 746865206669727374206461792ea416e6420476f6420736169642c204c657420
35+
* 74686572652062652061206669726d616d656e7420696e20746865206d6964737420
36+
* 6f6620746865207761746572732c20616e64206c65742069742064697669646520
37+
* 746865207761746572732066726f6d20746865207761746572732ea416e6420
38+
* 476f64206d61646520746865206669726d616d656e742c20616e64206469766964656420
39+
* 74686520776174657273207768696368207765726520756e6465722074686520
40+
* 6669726d616d656e742066726f6d207468652077617465727320776869636820
41+
* 776572652061626f766520746865206669726d616d656e743a20616e6420697420
42+
* 77617320736f2ea416e6420476f642063616c6c65642074686520
43+
* 6669726d616d656e742048656176656e2e20416e642074686520
44+
* 6576656e696e6720616e6420746865206d6f726e696e67207765726520
45+
* 746865207365636f6e64206461792e
46+
*
47+
* 416e6420476f6420736169642c204c6574207468652077617465727320
48+
* 756e646572207468652068656176656e20626520676174686572656420
49+
* 746f67657468657220756e746f206f6e6520706c6163652c20616e6420
50+
* 6c65742074686520647279206c616e64206170706561723a20616e6420
51+
* 69742077617320736f2ea416e6420476f642063616c6c65642074686520
52+
* 647279206c616e642045617274683b20616e642074686520676174686572696e6720
53+
* 746f676574686572206f6620746865207761746572732063616c6c656420686520
54+
* 536561733a20616e6420476f642073617720746861742069742077617320676f6f642e
55+
*
1656
******************************************************************************
1757
*/
1858
/* USER CODE END Header */

tools/apolo

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
496e2074686520626567696e6e696e6720476f64206372656174656420
2+
7468652068656176656e20616e64207468652065617274682ea416e642074686520
3+
65617274682077617320776974686f757420666f726d2c20616e6420766f69643b20616e6420
4+
6461726b6e657373207761732075706f6e207468652066616365206f6620
5+
74686520646565702e20416e642074686520537069726974206f6620476f6420
6+
6d6f7665642075706f6e207468652066616365206f6620
7+
746865207761746572732ea416e6420476f6420736169642c204c657420
8+
7468657265206265206c696768743a20616e6420746865726520
9+
776173206c696768742ea416e6420476f64207361772074686520
10+
6c696768742c20746861742069742077617320676f6f643a20616e6420
11+
476f64206469766964656420746865206c696768742066726f6d2074686520
12+
6461726b6e6573732e
13+
14+
416e6420476f642063616c6c656420746865206c69676874204461792c20616e6420
15+
746865206461726b6e6573732068652063616c6c6564204e696768742e20416e6420
16+
746865206576656e696e6720616e6420746865206d6f726e696e67207765726520
17+
746865206669727374206461792ea416e6420476f6420736169642c204c657420
18+
74686572652062652061206669726d616d656e7420696e20746865206d6964737420
19+
6f6620746865207761746572732c20616e64206c65742069742064697669646520
20+
746865207761746572732066726f6d20746865207761746572732ea416e6420
21+
476f64206d61646520746865206669726d616d656e742c20616e64206469766964656420
22+
74686520776174657273207768696368207765726520756e6465722074686520
23+
6669726d616d656e742066726f6d207468652077617465727320776869636820
24+
776572652061626f766520746865206669726d616d656e743a20616e6420697420
25+
77617320736f2ea416e6420476f642063616c6c65642074686520
26+
6669726d616d656e742048656176656e2e20416e642074686520
27+
6576656e696e6720616e6420746865206d6f726e696e67207765726520
28+
746865207365636f6e64206461792e
29+
30+
416e6420476f6420736169642c204c6574207468652077617465727320
31+
756e646572207468652068656176656e20626520676174686572656420
32+
746f67657468657220756e746f206f6e6520706c6163652c20616e6420
33+
6c65742074686520647279206c616e64206170706561723a20616e6420
34+
69742077617320736f2ea416e6420476f642063616c6c65642074686520
35+
647279206c616e642045617274683b20616e642074686520676174686572696e6720
36+
746f676574686572206f6620746865207761746572732063616c6c656420686520
37+
536561733a20616e6420476f642073617720746861742069742077617320676f6f642e
38+

0 commit comments

Comments
 (0)