CTS-SAT-1-OBC-Firmware
Loading...
Searching...
No Matches
Telecommands and Configuration Variables

This is an auto-generated reference of all telecommands and configuration variables supported by the CTS-SAT-1 OBC firmware. It is generated by the build_tcmd_and_config_docs.py script.

Source data downloaded from the CTS-SAT-1-Ground-Support repository's bundled data files.

Table of Contents

  • TelecommandsTelecommands
  • Readiness LevelsReadiness Levels
  • Summary TableSummary Table
  • Telecommand DetailsTelecommand Details
  • Configuration VariablesConfiguration Variables
  • Summary TableSummary Table
  • Integer Configuration Variable DetailsInteger Configuration Variable Details
  • String Configuration Variable DetailsString Configuration Variable Details

Telecommands

There are 242 telecommands defined.

Readiness Levels

Telecommand readiness levels indicate the operational risk of a telecommand. The TCMD_READINESS_LEVEL_ prefix is stripped in tables below.

Readiness Level Count
FLIGHT_TESTING 12
FOR_OPERATION 213
FOR_RECOVERY_OR_EXPERT 8
GROUND_USAGE_ONLY 1
HIGH_RISK_AND_UNSAFE 8

Summary Table

# Name Args Readiness Level
1 `adcs_ack`adcs_ack 0 FOR_OPERATION
2 `adcs_acp_execution_state`adcs_acp_execution_state 0 FOR_OPERATION
3 `adcs_attitude_control_mode`adcs_attitude_control_mode 2 FOR_OPERATION
4 `adcs_attitude_estimation_mode`adcs_attitude_estimation_mode 1 FOR_OPERATION
5 `adcs_bootloader_clear_errors`adcs_bootloader_clear_errors 0 FOR_OPERATION
6 `adcs_clear_errors`adcs_clear_errors 0 FOR_OPERATION
7 `adcs_commanded_wheel_speed`adcs_commanded_wheel_speed 0 FOR_OPERATION
8 `adcs_communication_status`adcs_communication_status 0 FOR_OPERATION
9 `adcs_convert_to_jpg_by_checksum`adcs_convert_to_jpg_by_checksum 3 FOR_OPERATION
10 `adcs_convert_to_jpg_by_index`adcs_convert_to_jpg_by_index 3 FOR_OPERATION
11 `adcs_cubecontrol_current`adcs_cubecontrol_current 0 FOR_OPERATION
12 `adcs_deploy_magnetometer`adcs_deploy_magnetometer 1 FOR_OPERATION
13 `adcs_download_index_file`adcs_download_index_file 2 FOR_OPERATION
14 `adcs_download_sd_file_by_checksum`adcs_download_sd_file_by_checksum 1 FOR_OPERATION
15 `adcs_download_sd_file_by_index`adcs_download_sd_file_by_index 1 FOR_OPERATION
16 `adcs_enter_low_power_mode`adcs_enter_low_power_mode 1 FOR_OPERATION
17 `adcs_erase_sd_file_by_checksum`adcs_erase_sd_file_by_checksum 1 FOR_OPERATION
18 `adcs_erase_sd_file_by_index`adcs_erase_sd_file_by_index 1 FOR_OPERATION
19 `adcs_estimate_angular_rates`adcs_estimate_angular_rates 0 FOR_OPERATION
20 `adcs_estimate_fine_angular_rates`adcs_estimate_fine_angular_rates 0 FOR_OPERATION
21 `adcs_estimated_attitude_angles`adcs_estimated_attitude_angles 0 FOR_OPERATION
22 `adcs_estimated_gyro_bias`adcs_estimated_gyro_bias 0 FOR_OPERATION
23 `adcs_estimation_innovation_vector`adcs_estimation_innovation_vector 0 FOR_OPERATION
24 `adcs_exit_bootloader`adcs_exit_bootloader 0 FOR_OPERATION
25 `adcs_fine_sun_vector`adcs_fine_sun_vector 0 FOR_OPERATION
26 `adcs_format_sd`adcs_format_sd 0 FOR_OPERATION
27 `adcs_generic_bootloader_command`adcs_generic_bootloader_command 2 FOR_OPERATION
28 `adcs_generic_command`adcs_generic_command 2 FOR_OPERATION
29 `adcs_generic_telemetry_request`adcs_generic_telemetry_request 2 FOR_OPERATION
30 `adcs_get_augmented_sgp4_params`adcs_get_augmented_sgp4_params 0 FOR_OPERATION
31 `adcs_get_commanded_attitude_angles`adcs_get_commanded_attitude_angles 0 FOR_OPERATION
32 `adcs_get_cubesense_currents`adcs_get_cubesense_currents 0 FOR_OPERATION
33 `adcs_get_current_state_1`adcs_get_current_state_1 0 FOR_OPERATION
34 `adcs_get_current_unix_time`adcs_get_current_unix_time 0 FOR_OPERATION
35 `adcs_get_estimation_params`adcs_get_estimation_params 0 FOR_OPERATION
36 `adcs_get_llh_position`adcs_get_llh_position 0 FOR_OPERATION
37 `adcs_get_magnetometer_config`adcs_get_magnetometer_config 0 FOR_OPERATION
38 `adcs_get_magnetorquer_command`adcs_get_magnetorquer_command 0 FOR_OPERATION
39 `adcs_get_misc_currents`adcs_get_misc_currents 0 FOR_OPERATION
40 `adcs_get_power_control`adcs_get_power_control 0 FOR_OPERATION
41 `adcs_get_rate_gyro_config`adcs_get_rate_gyro_config 0 FOR_OPERATION
42 `adcs_get_raw_magnetometer_values`adcs_get_raw_magnetometer_values 0 FOR_OPERATION
43 `adcs_get_sd_log_config`adcs_get_sd_log_config 1 FOR_OPERATION
44 `adcs_get_sgp4_orbit_params`adcs_get_sgp4_orbit_params 0 FOR_OPERATION
45 `adcs_get_tracking_controller_target_reference`adcs_get_tracking_controller_target_reference 0 FOR_OPERATION
46 `adcs_get_unix_time_save_mode`adcs_get_unix_time_save_mode 0 FOR_OPERATION
47 `adcs_get_wheel_currents`adcs_get_wheel_currents 0 FOR_OPERATION
48 `adcs_get_wheel_speed`adcs_get_wheel_speed 0 FOR_OPERATION
49 `adcs_identification`adcs_identification 0 FOR_OPERATION
50 `adcs_igrf_magnetic_field_vector`adcs_igrf_magnetic_field_vector 0 FOR_OPERATION
51 `adcs_magnetic_field_vector`adcs_magnetic_field_vector 0 FOR_OPERATION
52 `adcs_measurements`adcs_measurements 0 FOR_OPERATION
53 `adcs_nadir_vector`adcs_nadir_vector 0 FOR_OPERATION
54 `adcs_program_status`adcs_program_status 0 FOR_OPERATION
55 `adcs_quaternion_error_vector`adcs_quaternion_error_vector 0 FOR_OPERATION
56 `adcs_rate_sensor_rates`adcs_rate_sensor_rates 0 FOR_OPERATION
57 `adcs_raw_cam1_sensor`adcs_raw_cam1_sensor 0 FOR_OPERATION
58 `adcs_raw_cam2_sensor`adcs_raw_cam2_sensor 0 FOR_OPERATION
59 `adcs_raw_coarse_sun_sensor_1_to_6`adcs_raw_coarse_sun_sensor_1_to_6 0 FOR_OPERATION
60 `adcs_raw_coarse_sun_sensor_7_to_10`adcs_raw_coarse_sun_sensor_7_to_10 0 FOR_OPERATION
61 `adcs_request_commissioning_telemetry`adcs_request_commissioning_telemetry 3 FOR_OPERATION
62 `adcs_reset`adcs_reset 0 FOR_OPERATION
63 `adcs_run_once`adcs_run_once 0 FOR_OPERATION
64 `adcs_save_config`adcs_save_config 0 FOR_OPERATION
65 `adcs_save_image_to_sd`adcs_save_image_to_sd 2 FOR_OPERATION
66 `adcs_save_orbit_params`adcs_save_orbit_params 0 FOR_OPERATION
67 `adcs_set_augmented_sgp4_params`adcs_set_augmented_sgp4_params 17 FOR_OPERATION
68 `adcs_set_commanded_attitude_angles`adcs_set_commanded_attitude_angles 3 FOR_OPERATION
69 `adcs_set_commissioning_modes`adcs_set_commissioning_modes 2 FOR_OPERATION
70 `adcs_set_estimation_params`adcs_set_estimation_params 17 FOR_OPERATION
71 `adcs_set_magnetometer_config`adcs_set_magnetometer_config 15 FOR_OPERATION
72 `adcs_set_magnetometer_mode`adcs_set_magnetometer_mode 1 FOR_OPERATION
73 `adcs_set_magnetorquer_output`adcs_set_magnetorquer_output 3 FOR_OPERATION
74 `adcs_set_power_control`adcs_set_power_control 10 FOR_OPERATION
75 `adcs_set_rate_gyro_config`adcs_set_rate_gyro_config 7 FOR_OPERATION
76 `adcs_set_run_mode`adcs_set_run_mode 1 FOR_OPERATION
77 `adcs_set_sd_log_config`adcs_set_sd_log_config 4 FOR_OPERATION
78 `adcs_set_sgp4_orbit_params`adcs_set_sgp4_orbit_params 8 FOR_OPERATION
79 `adcs_set_tracking_controller_target_reference`adcs_set_tracking_controller_target_reference 3 FOR_OPERATION
80 `adcs_set_unix_time_save_mode`adcs_set_unix_time_save_mode 4 FOR_OPERATION
81 `adcs_set_wheel_speed`adcs_set_wheel_speed 3 FOR_OPERATION
82 `adcs_synchronize_unix_time`adcs_synchronize_unix_time 0 FOR_OPERATION
83 `adcs_track_sun`adcs_track_sun 0 FOR_OPERATION
84 `agenda_delete_all`agenda_delete_all 0 FOR_OPERATION
85 `agenda_delete_by_name`agenda_delete_by_name 1 FOR_OPERATION
86 `agenda_delete_by_tssent`agenda_delete_by_tssent 1 FOR_OPERATION
87 `agenda_enqueue_from_file`agenda_enqueue_from_file 3 FOR_OPERATION
88 `agenda_fetch_json_grouped`agenda_fetch_json_grouped 0 FOR_OPERATION
89 `agenda_fetch_logged_jsonl`agenda_fetch_logged_jsonl 0 FOR_OPERATION
90 `ant_arm_antenna_system`ant_arm_antenna_system 1 FOR_OPERATION
91 `ant_cancel_deployment_system_activation`ant_cancel_deployment_system_activation 1 FOR_OPERATION
92 `ant_deploy_antenna`ant_deploy_antenna 3 FOR_OPERATION
93 `ant_deploy_antenna_with_override`ant_deploy_antenna_with_override 3 FOR_OPERATION
94 `ant_disarm_antenna_system`ant_disarm_antenna_system 1 FOR_OPERATION
95 `ant_measure_temp`ant_measure_temp 1 FOR_OPERATION
96 `ant_report_antenna_deployment_activation_count`ant_report_antenna_deployment_activation_count 2 FOR_OPERATION
97 `ant_report_antenna_deployment_activation_time`ant_report_antenna_deployment_activation_time 2 FOR_OPERATION
98 `ant_report_deployment_status`ant_report_deployment_status 1 FOR_OPERATION
99 `ant_reset`ant_reset 1 FOR_OPERATION
100 `ant_start_automated_antenna_deployment`ant_start_automated_antenna_deployment 2 FOR_OPERATION
101 `available_telecommands`available_telecommands 0 FOR_OPERATION
102 `boom_deploy_timed`boom_deploy_timed 2 FOR_RECOVERY_OR_EXPERT
103 `boom_self_check`boom_self_check 0 FOR_OPERATION
104 `bulkup16`bulkup16 1 FOR_OPERATION
105 `bulkup64`bulkup64 1 FOR_OPERATION
106 `camera_capture`camera_capture 2 FOR_OPERATION
107 `camera_change_baud_rate`camera_change_baud_rate 1 FOR_RECOVERY_OR_EXPERT
108 `camera_setup`camera_setup 0 FOR_OPERATION
109 `camera_test`camera_test 0 FOR_RECOVERY_OR_EXPERT
110 `comms_bulk_file_downlink_pause`comms_bulk_file_downlink_pause 0 FOR_OPERATION
111 `comms_bulk_file_downlink_resume`comms_bulk_file_downlink_resume 0 FOR_OPERATION
112 `comms_bulk_file_downlink_start`comms_bulk_file_downlink_start 3 FOR_OPERATION
113 `comms_bulk_uplink_close_file`comms_bulk_uplink_close_file 0 FOR_OPERATION
114 `comms_bulk_uplink_open_file`comms_bulk_uplink_open_file 2 FOR_OPERATION
115 `comms_bulk_uplink_seek`comms_bulk_uplink_seek 1 FOR_OPERATION
116 `comms_bulk_uplink_write_bytes_base64`comms_bulk_uplink_write_bytes_base64 1 FOR_OPERATION
117 `comms_bulk_uplink_write_bytes_hex`comms_bulk_uplink_write_bytes_hex 1 FOR_OPERATION
118 `comms_get_rf_switch_info`comms_get_rf_switch_info 0 FOR_OPERATION
119 `comms_set_rf_switch_control_mode`comms_set_rf_switch_control_mode 1 FLIGHT_TESTING
120 `config_get_all_int_vars_json`config_get_all_int_vars_json 0 FOR_OPERATION
121 `config_get_all_vars_jsonl`config_get_all_vars_jsonl 0 FOR_OPERATION
122 `config_get_int_var_json`config_get_int_var_json 1 FOR_OPERATION
123 `config_get_str_var_json`config_get_str_var_json 1 FOR_OPERATION
124 `config_set_int_var`config_set_int_var 2 FOR_OPERATION
125 `config_set_str_var`config_set_str_var 2 FOR_OPERATION
126 `core_system_stats`core_system_stats 0 FOR_OPERATION
127 `correct_system_time`correct_system_time 1 FOR_OPERATION
128 `demo_blocking_delay`demo_blocking_delay 1 FLIGHT_TESTING
129 `demo_os_delay`demo_os_delay 1 FLIGHT_TESTING
130 `echo_back_args`echo_back_args 1 FOR_OPERATION
131 `echo_back_uint32_args`echo_back_uint32_args 3 FOR_OPERATION
132 `eps_cancel_operation`eps_cancel_operation 0 FOR_OPERATION
133 `eps_get_current_battery_percent`eps_get_current_battery_percent 0 FOR_OPERATION
134 `eps_get_enabled_channels_json`eps_get_enabled_channels_json 0 FOR_OPERATION
135 `eps_get_pbu_abf_placed_state_json`eps_get_pbu_abf_placed_state_json 0 FOR_OPERATION
136 `eps_get_pbu_housekeeping_data_eng_json`eps_get_pbu_housekeeping_data_eng_json 0 FOR_OPERATION
137 `eps_get_pbu_housekeeping_data_run_avg_json`eps_get_pbu_housekeeping_data_run_avg_json 0 FOR_OPERATION
138 `eps_get_pcu_housekeeping_data_eng_json`eps_get_pcu_housekeeping_data_eng_json 0 FOR_OPERATION
139 `eps_get_pcu_housekeeping_data_run_avg_json`eps_get_pcu_housekeeping_data_run_avg_json 0 FOR_OPERATION
140 `eps_get_pdu_active_channels_data_json`eps_get_pdu_active_channels_data_json 0 FOR_OPERATION
141 `eps_get_pdu_active_channels_data_run_avg_json`eps_get_pdu_active_channels_data_run_avg_json 0 FOR_OPERATION
142 `eps_get_pdu_data_for_channel_json`eps_get_pdu_data_for_channel_json 1 FOR_OPERATION
143 `eps_get_pdu_housekeeping_data_eng_json`eps_get_pdu_housekeeping_data_eng_json 0 FOR_OPERATION
144 `eps_get_pdu_housekeeping_data_run_avg_json`eps_get_pdu_housekeeping_data_run_avg_json 0 FOR_OPERATION
145 `eps_get_pdu_overcurrent_fault_state_json`eps_get_pdu_overcurrent_fault_state_json 0 FOR_OPERATION
146 `eps_get_piu_housekeeping_data_eng_json`eps_get_piu_housekeeping_data_eng_json 0 FOR_OPERATION
147 `eps_get_piu_housekeeping_data_run_avg_json`eps_get_piu_housekeeping_data_run_avg_json 0 FOR_OPERATION
148 `eps_get_system_status_json`eps_get_system_status_json 0 FOR_OPERATION
149 `eps_no_operation`eps_no_operation 0 FOR_OPERATION
150 `eps_power_management_set_current_threshold`eps_power_management_set_current_threshold 2 FOR_OPERATION
151 `eps_set_channel_enabled`eps_set_channel_enabled 2 FOR_OPERATION
152 `eps_switch_to_mode`eps_switch_to_mode 1 FOR_OPERATION
153 `eps_system_reset`eps_system_reset 0 FOR_RECOVERY_OR_EXPERT
154 `eps_watchdog`eps_watchdog 0 FOR_OPERATION
155 `exec_blob_from_fs`exec_blob_from_fs 3 FOR_RECOVERY_OR_EXPERT
156 `flash_activate_each_cs`flash_activate_each_cs 0 FLIGHT_TESTING
157 `flash_benchmark_erase_write_read`flash_benchmark_erase_write_read 3 FLIGHT_TESTING
158 `flash_each_is_reachable`flash_each_is_reachable 0 FOR_OPERATION
159 `flash_erase`flash_erase 2 FLIGHT_TESTING
160 `flash_force_corrupt_filesystem`flash_force_corrupt_filesystem 1 HIGH_RISK_AND_UNSAFE
161 `flash_read_hex`flash_read_hex 3 FOR_OPERATION
162 `flash_read_status_register`flash_read_status_register 1 FOR_OPERATION
163 `flash_reset`flash_reset 1 FLIGHT_TESTING
164 `flash_write_hex`flash_write_hex 3 FLIGHT_TESTING
165 `freertos_demo_stack_usage`freertos_demo_stack_usage 1 FLIGHT_TESTING
166 `freetos_list_tasks_jsonl`freetos_list_tasks_jsonl 0 FOR_OPERATION
167 `fs_benchmark_write_read`fs_benchmark_write_read 2 FLIGHT_TESTING
168 `fs_compress_file_with_heatshrink`fs_compress_file_with_heatshrink 4 FOR_OPERATION
169 `fs_count_hex_occurrences`fs_count_hex_occurrences 2 FOR_OPERATION
170 `fs_count_str_occurrences`fs_count_str_occurrences 2 FOR_OPERATION
171 `fs_delete_dir`fs_delete_dir 1 FOR_OPERATION
172 `fs_delete_file`fs_delete_file 1 FOR_OPERATION
173 `fs_demo_write_random_data`fs_demo_write_random_data 3 FLIGHT_TESTING
174 `fs_demo_write_then_read`fs_demo_write_then_read 1 FLIGHT_TESTING
175 `fs_find_nth_hex_occurrence`fs_find_nth_hex_occurrence 3 FOR_OPERATION
176 `fs_find_nth_str_occurrence`fs_find_nth_str_occurrence 3 FOR_OPERATION
177 `fs_format_storage`fs_format_storage 0 FOR_RECOVERY_OR_EXPERT
178 `fs_get_filesystem_stats_json`fs_get_filesystem_stats_json 0 FOR_OPERATION
179 `fs_list_directory`fs_list_directory 3 FOR_OPERATION
180 `fs_list_directory_json`fs_list_directory_json 3 FOR_OPERATION
181 `fs_make_directory`fs_make_directory 1 FOR_OPERATION
182 `fs_mount`fs_mount 0 FOR_OPERATION
183 `fs_read_file_hex`fs_read_file_hex 3 FOR_OPERATION
184 `fs_read_file_sha256_hash_json`fs_read_file_sha256_hash_json 3 FOR_OPERATION
185 `fs_read_text_file`fs_read_text_file 3 FOR_OPERATION
186 `fs_unmount`fs_unmount 0 FOR_OPERATION
187 `fs_write_file_hex`fs_write_file_hex 3 FOR_OPERATION
188 `fs_write_file_str`fs_write_file_str 2 FOR_OPERATION
189 `get_all_system_thermal_info`get_all_system_thermal_info 0 FOR_OPERATION
190 `get_system_time`get_system_time 0 FOR_OPERATION
191 `gnss_disable_firehose_storage_mode`gnss_disable_firehose_storage_mode 0 FOR_OPERATION
192 `gnss_enable_firehose_storage_mode`gnss_enable_firehose_storage_mode 1 FOR_OPERATION
193 `gnss_send_cmd_ascii`gnss_send_cmd_ascii 1 FOR_OPERATION
194 `gnss_send_cmd_ascii_get_response_hex`gnss_send_cmd_ascii_get_response_hex 1 FOR_OPERATION
195 `hello_world`hello_world 0 FOR_OPERATION
196 `log_report_all_sink_enabled_states`log_report_all_sink_enabled_states 0 FOR_OPERATION
197 `log_report_all_system_file_logging_states`log_report_all_system_file_logging_states 0 FOR_OPERATION
198 `log_report_messages_from_memory`log_report_messages_from_memory 2 FOR_OPERATION
199 `log_report_n_latest_messages_from_memory`log_report_n_latest_messages_from_memory 1 FOR_OPERATION
200 `log_set_sink_debugging_messages_state`log_set_sink_debugging_messages_state 2 FOR_OPERATION
201 `log_set_sink_enabled_state`log_set_sink_enabled_state 2 FOR_OPERATION
202 `log_set_system_debugging_messages_state`log_set_system_debugging_messages_state 2 FOR_OPERATION
203 `log_set_system_file_logging_enabled_state`log_set_system_file_logging_enabled_state 2 FOR_OPERATION
204 `log_set_system_severity_mask`log_set_system_severity_mask 2 FOR_OPERATION
205 `mpi_demo_tx_to_mpi`mpi_demo_tx_to_mpi 0 GROUND_USAGE_ONLY
206 `mpi_disable_active_mode`mpi_disable_active_mode 0 FOR_OPERATION
207 `mpi_enable_active_mode`mpi_enable_active_mode 1 FOR_OPERATION
208 `mpi_send_command_get_response_hex`mpi_send_command_get_response_hex 1 FOR_OPERATION
209 `mpi_set_transceiver_mode`mpi_set_transceiver_mode 1 FOR_OPERATION
210 `obc_adc_read_vbat_voltage`obc_adc_read_vbat_voltage 0 FOR_OPERATION
211 `obc_firmware_version`obc_firmware_version 0 FOR_OPERATION
212 `obc_get_rbf_state`obc_get_rbf_state 0 FOR_OPERATION
213 `obc_read_temperature`obc_read_temperature 0 FOR_OPERATION
214 `obc_read_temperature_complex`obc_read_temperature_complex 1 FOR_OPERATION
215 `obc_set_stm32_sysclk_to_hse`obc_set_stm32_sysclk_to_hse 0 FOR_OPERATION
216 `reboot`reboot 0 FOR_OPERATION
217 `run_all_unit_tests`run_all_unit_tests 0 FOR_OPERATION
218 `scan_i2c_bus`scan_i2c_bus 1 FOR_OPERATION
219 `scan_i2c_bus_verbose`scan_i2c_bus_verbose 1 FOR_OPERATION
220 `set_eps_time_based_on_obc_time`set_eps_time_based_on_obc_time 0 FOR_OPERATION
221 `set_obc_time_based_on_eps_time`set_obc_time_based_on_eps_time 0 FOR_OPERATION
222 `set_obc_time_based_on_gnss_pps`set_obc_time_based_on_gnss_pps 0 FOR_OPERATION
223 `set_obc_time_based_on_gnss_time`set_obc_time_based_on_gnss_time 0 FOR_OPERATION
224 `set_system_time`set_system_time 1 FOR_OPERATION
225 `set_system_time_approx`set_system_time_approx 1 FOR_OPERATION
226 `stm32_internal_flash_bank_erase`stm32_internal_flash_bank_erase 1 HIGH_RISK_AND_UNSAFE
227 `stm32_internal_flash_calculate_sha256`stm32_internal_flash_calculate_sha256 2 FOR_RECOVERY_OR_EXPERT
228 `stm32_internal_flash_get_active_flash_bank`stm32_internal_flash_get_active_flash_bank 0 HIGH_RISK_AND_UNSAFE
229 `stm32_internal_flash_get_option_bytes`stm32_internal_flash_get_option_bytes 0 HIGH_RISK_AND_UNSAFE
230 `stm32_internal_flash_page_erase`stm32_internal_flash_page_erase 3 HIGH_RISK_AND_UNSAFE
231 `stm32_internal_flash_read`stm32_internal_flash_read 2 FOR_RECOVERY_OR_EXPERT
232 `stm32_internal_flash_set_active_flash_bank`stm32_internal_flash_set_active_flash_bank 1 HIGH_RISK_AND_UNSAFE
233 `stm32_internal_flash_write`stm32_internal_flash_write 2 HIGH_RISK_AND_UNSAFE
234 `stm32_internal_flash_write_file_to_internal_flash`stm32_internal_flash_write_file_to_internal_flash 4 HIGH_RISK_AND_UNSAFE
235 `system_self_check_as_json`system_self_check_as_json 0 FOR_OPERATION
236 `system_self_check_failures_as_json`system_self_check_failures_as_json 0 FOR_OPERATION
237 `uart_get_errors_json`uart_get_errors_json 0 FOR_OPERATION
238 `uart_get_last_rx_times_json`uart_get_last_rx_times_json 0 FOR_OPERATION
239 `uart_send_hex`uart_send_hex 2 FOR_OPERATION
240 `uart_send_hex_get_response_hex`uart_send_hex_get_response_hex 2 FOR_OPERATION
241 `uart_send_str`uart_send_str 2 FOR_OPERATION
242 `uart_set_baud_rate`uart_set_baud_rate 2 FOR_OPERATION

Telecommand Details

adcs_ack

Field Value
Function TCMDEXEC_adcs_ack
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_acp_execution_state

Field Value
Function TCMDEXEC_adcs_acp_execution_state
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_attitude_control_mode

Field Value
Function TCMDEXEC_adcs_attitude_control_mode
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. Control mode to set (Table 77 in Firmware Manual)
  2. Timeout to set control mode

Full docstring:

@brief Telecommand: Set the attitude control mode of the ADCS; needs Power Control to be set before working
@param args_str
- Arg 0: Control mode to set (Table 77 in Firmware Manual)
- Arg 1: Timeout to set control mode
@return 0 on success, >0 on error
@details ADCS_control_mode_enum_t
ADCS_CONTROL_MODE_NONE = 0,
ADCS_CONTROL_MODE_DETUMBLING = 1,
ADCS_CONTROL_MODE_Y_THOMSON_SPIN = 2,
ADCS_CONTROL_MODE_Y_WHEEL_MOMENTUM_STABILIZED_INITIAL_PITCH_ACQUISITION = 3,
ADCS_CONTROL_MODE_Y_WHEEL_MOMENTUM_STABILIZED_STEADY_STATE = 4,
ADCS_CONTROL_MODE_XYZ_WHEEL = 5,
ADCS_CONTROL_MODE_RWHEEL_SUN_TRACKING = 6,
ADCS_CONTROL_MODE_RWHEEL_TARGET_TRACKING = 7,
ADCS_CONTROL_MODE_VERY_FAST_SPIN_DETUMBLING = 8,
ADCS_CONTROL_MODE_FAST_SPIN_DETUMBLING = 9,
ADCS_CONTROL_MODE_USER_SPECIFIC_1 = 10,
ADCS_CONTROL_MODE_USER_SPECIFIC_2 = 11,
ADCS_CONTROL_MODE_STOP_R_WHEELS = 12,
ADCS_CONTROL_MODE_USER_CODED = 13,
ADCS_CONTROL_MODE_SUN_TRACKING_YAW_OR_ROLL_ONLY_WHEEL = 14,
ADCS_CONTROL_MODE_TARGET_TRACKING_YAW_ONLY_WHEEL = 15

adcs_attitude_estimation_mode

Field Value
Function TCMDEXEC_adcs_attitude_estimation_mode
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. Attitude estimation mode to set (Table 79 in Firmware Manual)

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- Arg 0: Attitude estimation mode to set (Table 79 in Firmware Manual)
@return 0 on success, >0 on error
@details ADCS_estimation_mode_enum_t
ADCS_ESTIMATION_MODE_NONE = 0,
ADCS_ESTIMATION_MODE_MEMS_RATE_SENSING = 1,
ADCS_ESTIMATION_MODE_MAGNETOMETER_RATE_FILTER = 2,
ADCS_ESTIMATION_MODE_MAGNETOMETER_RATE_FILTER_WITH_PITCH_ESTIMATION = 3,
ADCS_ESTIMATION_MODE_MAGNETOMETER_AND_FINE_SUN_TRIAD_ALGORITHM = 4,
ADCS_ESTIMATION_MODE_FULL_STATE_EXTENDED_KALMAN_FILTER = 5,
ADCS_ESTIMATION_MODE_MEMS_GYRO_EXTENDED_KALMAN_FILTER = 6,
ADCS_ESTIMATION_MODE_USER_CODED_ESTIMATION_MODE = 7

adcs_bootloader_clear_errors

Field Value
Function TCMDEXEC_adcs_bootloader_clear_errors
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_clear_errors

Field Value
Function TCMDEXEC_adcs_clear_errors
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_commanded_wheel_speed

Field Value
Function TCMDEXEC_adcs_commanded_wheel_speed
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_communication_status

Field Value
Function TCMDEXEC_adcs_communication_status
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_convert_to_jpg_by_checksum

Field Value
Function TCMDEXEC_adcs_convert_to_jpg_by_checksum
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. The CRC16 checksum of the file as two hex bytes in order (e.g. pass checksum 0x07f1 as "07 f1")
  2. Quality factor (1 is the most compressed and lossy, 100 is the least)
  3. White balance

Full docstring:

@brief Telecommand: Instruct the ADCS to convert an SD card file to JPG format
@param args_str
- Arg 0: The CRC16 checksum of the file as two hex bytes in order (e.g. pass checksum 0x07f1 as "07 f1")
- Arg 1: Quality factor (1 is the most compressed and lossy, 100 is the least)
- Arg 2: White balance
@return 0 on success, >0 on error

adcs_convert_to_jpg_by_index

Field Value
Function TCMDEXEC_adcs_convert_to_jpg_by_index
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. Index of the file to convert
  2. Quality factor (1 is the most compressed and lossy, 100 is the least)
  3. White balance

Full docstring:

@brief Telecommand: Instruct the ADCS to convert an SD card file to JPG format
@param args_str
- Arg 0: Index of the file to convert
- Arg 1: Quality factor (1 is the most compressed and lossy, 100 is the least)
- Arg 2: White balance
@return 0 on success, >0 on error

adcs_cubecontrol_current

Field Value
Function TCMDEXEC_adcs_cubecontrol_current
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_deploy_magnetometer

Field Value
Function TCMDEXEC_adcs_deploy_magnetometer
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. timeout for deployment [seconds]

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- Arg 0: timeout for deployment [seconds]
@return 0 on success, >0 on error

adcs_download_index_file

Field Value
Function TCMDEXEC_adcs_download_index_file
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. Offset: The offset index to start reading (starts at 0).
  2. Length: The number of files to get (limited to 32). 0 to request the max.

Full docstring:

@brief Telecommand: Get the list of downloadable files from the ADCS SD card as log messages.
@param args_str
- Arg 0: Offset: The offset index to start reading (starts at 0).
- Arg 1: Length: The number of files to get (limited to 32). 0 to request the max.
@return 0 on success, >0 on error
@note Despite its name, this telecommand does not download any files nor write to LittleFS.

adcs_download_sd_file_by_checksum

Field Value
Function TCMDEXEC_adcs_download_sd_file_by_checksum
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. The CRC16 checksum of the file as two hex bytes in order (e.g. pass checksum 0x07f1 as "07 f1")

Full docstring:

@brief Telecommand: Download a specific file from the ADCS SD card by its checksum.
@param args_str
- Arg 0: The CRC16 checksum of the file as two hex bytes in order (e.g. pass checksum 0x07f1 as "07 f1")
@return 0 on success, >0 on error
@example For checksum 0x07f1, the telecommand is: CTS1+adcs_download_sd_file_by_checksum(07 f1)
and the file will be downloaded as: `ADCS/log_07f1.TLM` (if it's a telemetry file).
@details This command writes a file to LittleFS in the `/ADCS/` directory, identified
by the file's checksum. For example, "ADCS/log_%x.TLM", "ADCS/img_%x.jpg", "ADCS/img_%x.bmp",
where %x is the file's CRC16 checksum in lowercase hex.

adcs_download_sd_file_by_index

Field Value
Function TCMDEXEC_adcs_download_sd_file_by_index
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. The index of the file to download

Full docstring:

@brief Telecommand: Download a specific file from the ADCS SD card by its index
@param args_str
- Arg 0: The index of the file to download
@return 0 on success, >0 on error
@details This command writes a file to LittleFS in the `/ADCS/` directory, identified
by the file's checksum. For example, "ADCS/log_%x.TLM", "ADCS/img_%x.jpg", "ADCS/img_%x.bmp",
where %x is the file's CRC16 checksum in lowercase hex.

adcs_enter_low_power_mode

Field Value
Function TCMDEXEC_adcs_enter_low_power_mode
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. Enable stable attitude mode. 1 to keep the attitude of the satellite stable (costs average 250 mW, maximum 1 W extra), 0 to disable control entirely (satellite will slowly start to tumble).

Full docstring:

@brief Telecommand: Put the ADCS in low-power mode, with only essential component power.
@param args_str
- Arg 0: Enable stable attitude mode. 1 to keep the attitude of the satellite stable (costs average 250 mW, maximum 1 W extra), 0 to disable control entirely (satellite will slowly start to tumble).
@return 0 on success, >0 on error

adcs_erase_sd_file_by_checksum

Field Value
Function TCMDEXEC_adcs_erase_sd_file_by_checksum
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. CRC16 checksum of the file as two hex bytes in order (e.g. pass checksum 0x07f1 as "07 f1")

Full docstring:

@brief Telecommand: Instruct the ADCS to erase a file from the SD card
@param args_str
- Arg 0: CRC16 checksum of the file as two hex bytes in order (e.g. pass checksum 0x07f1 as "07 f1")
@return 0 on success, >0 on error

adcs_erase_sd_file_by_index

Field Value
Function TCMDEXEC_adcs_erase_sd_file_by_index
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. Index of the file to erase

Full docstring:

@brief Telecommand: Instruct the ADCS to erase a file from the SD card
@param args_str
- Arg 0: Index of the file to erase
@return 0 on success, >0 on error

adcs_estimate_angular_rates

Field Value
Function TCMDEXEC_adcs_estimate_angular_rates
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_estimate_fine_angular_rates

Field Value
Function TCMDEXEC_adcs_estimate_fine_angular_rates
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_estimated_attitude_angles

Field Value
Function TCMDEXEC_adcs_estimated_attitude_angles
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_estimated_gyro_bias

Field Value
Function TCMDEXEC_adcs_estimated_gyro_bias
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_estimation_innovation_vector

Field Value
Function TCMDEXEC_adcs_estimation_innovation_vector
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_exit_bootloader

Field Value
Function TCMDEXEC_adcs_exit_bootloader
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: If the ADCS is currently stuck in the bootloader, run the internal flash program (CubeACP) to exit the bootloader
@note This command will do nothing if not in the bootloader
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_fine_sun_vector

Field Value
Function TCMDEXEC_adcs_fine_sun_vector
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_format_sd

Field Value
Function TCMDEXEC_adcs_format_sd
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Instruct the ADCS to format the SD card
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_generic_bootloader_command

Field Value
Function TCMDEXEC_adcs_generic_bootloader_command
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. ID of the telecommand to send (see Firmware Reference Manual)
  2. hex array of data bytes of length up to 504 (longest command is almost ADCS Configuration (ID 26/204) at 504 bytes)

Full docstring:

@brief Telecommand: execute a generic command on the ADCS bootloader
@param args_str
- Arg 0: ID of the telecommand to send (see Firmware Reference Manual)
- Arg 1: hex array of data bytes of length up to 504 (longest command is almost ADCS Configuration (ID 26/204) at 504 bytes)
@note All hex bytes must be two-digit (e.g. 00 instead of 0); for zero-parameter commands, use 00
@return 0 on success, >0 on error

adcs_generic_command

Field Value
Function TCMDEXEC_adcs_generic_command
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. ID of the telecommand to send (see Firmware Reference Manual)
  2. hex array of data bytes of length up to 504 (longest command is almost ADCS Configuration (ID 26/204) at 504 bytes)

Full docstring:

@brief Telecommand: execute a generic command on the ADCS
@param args_str
- Arg 0: ID of the telecommand to send (see Firmware Reference Manual)
- Arg 1: hex array of data bytes of length up to 504 (longest command is almost ADCS Configuration (ID 26/204) at 504 bytes)
@note All hex bytes must be two-digit (e.g. 00 instead of 0); for zero-parameter commands, use 00
@return 0 on success, >0 on error

adcs_generic_telemetry_request

Field Value
Function TCMDEXEC_adcs_generic_telemetry_request
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. ID of the telemetry request to send (see Firmware Reference Manual)
  2. number of data bytes expected to receive from the ADCS (also see Firmware Reference Manual, up to 504)

Full docstring:

@brief Telecommand: obtain generic telemetry from the ADCS
@param args_str
- Arg 0: ID of the telemetry request to send (see Firmware Reference Manual)
- Arg 1: number of data bytes expected to receive from the ADCS (also see Firmware Reference Manual, up to 504)
@return 0 on success, >0 on error

adcs_get_augmented_sgp4_params

Field Value
Function TCMDEXEC_adcs_get_augmented_sgp4_params
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_get_commanded_attitude_angles

Field Value
Function TCMDEXEC_adcs_get_commanded_attitude_angles
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_get_cubesense_currents

Field Value
Function TCMDEXEC_adcs_get_cubesense_currents
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the CubeSense current values from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_get_current_state_1

Field Value
Function TCMDEXEC_adcs_get_current_state_1
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_get_current_unix_time

Field Value
Function TCMDEXEC_adcs_get_current_unix_time
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Retrieve the current ADCS Unix epoch time
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_get_estimation_params

Field Value
Function TCMDEXEC_adcs_get_estimation_params
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_get_llh_position

Field Value
Function TCMDEXEC_adcs_get_llh_position
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_get_magnetometer_config

Field Value
Function TCMDEXEC_adcs_get_magnetometer_config
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_get_magnetorquer_command

Field Value
Function TCMDEXEC_adcs_get_magnetorquer_command
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_get_misc_currents

Field Value
Function TCMDEXEC_adcs_get_misc_currents
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the CubeStar (unused) and magnetorquer current values as well as the microcontroller temperature value from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_get_power_control

Field Value
Function TCMDEXEC_adcs_get_power_control
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_get_rate_gyro_config

Field Value
Function TCMDEXEC_adcs_get_rate_gyro_config
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_get_raw_magnetometer_values

Field Value
Function TCMDEXEC_adcs_get_raw_magnetometer_values
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the raw magnetometer values from the ADCS.
@note Values are given as raw ADC values; use adcs_get_magnetic_field_vector for calibrated values
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_get_sd_log_config

Field Value
Function TCMDEXEC_adcs_get_sd_log_config
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. which log to retrieve the configuration for (1 or 2)

Full docstring:

@brief Telecommand: Retrieve the current ADCS SD log configuration
@param args_str
- Arg 0: which log to retrieve the configuration for (1 or 2)
@return 0 on success, >0 on error

adcs_get_sgp4_orbit_params

Field Value
Function TCMDEXEC_adcs_get_sgp4_orbit_params
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_get_tracking_controller_target_reference

Field Value
Function TCMDEXEC_adcs_get_tracking_controller_target_reference
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_get_unix_time_save_mode

Field Value
Function TCMDEXEC_adcs_get_unix_time_save_mode
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_get_wheel_currents

Field Value
Function TCMDEXEC_adcs_get_wheel_currents
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the reaction wheel current values from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_get_wheel_speed

Field Value
Function TCMDEXEC_adcs_get_wheel_speed
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_identification

Field Value
Function TCMDEXEC_adcs_identification
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_igrf_magnetic_field_vector

Field Value
Function TCMDEXEC_adcs_igrf_magnetic_field_vector
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_magnetic_field_vector

Field Value
Function TCMDEXEC_adcs_magnetic_field_vector
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_measurements

Field Value
Function TCMDEXEC_adcs_measurements
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_nadir_vector

Field Value
Function TCMDEXEC_adcs_nadir_vector
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_program_status

Field Value
Function TCMDEXEC_adcs_program_status
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_quaternion_error_vector

Field Value
Function TCMDEXEC_adcs_quaternion_error_vector
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_rate_sensor_rates

Field Value
Function TCMDEXEC_adcs_rate_sensor_rates
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_raw_cam1_sensor

Field Value
Function TCMDEXEC_adcs_raw_cam1_sensor
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_raw_cam2_sensor

Field Value
Function TCMDEXEC_adcs_raw_cam2_sensor
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_raw_coarse_sun_sensor_1_to_6

Field Value
Function TCMDEXEC_adcs_raw_coarse_sun_sensor_1_to_6
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_raw_coarse_sun_sensor_7_to_10

Field Value
Function TCMDEXEC_adcs_raw_coarse_sun_sensor_7_to_10
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_request_commissioning_telemetry

Field Value
Function TCMDEXEC_adcs_request_commissioning_telemetry
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. Which commissioning step to request telemetry for (1-18)
  2. Log number (1 or 2)
  3. Destination SD card (0 = primary, 1 = secondary)

Full docstring:

@brief Telecommand: Request commissioning telemetry from the ADCS and save it to the onboard SD card
@param args_str
- Arg 0: Which commissioning step to request telemetry for (1-18)
- Arg 1: Log number (1 or 2)
- Arg 2: Destination SD card (0 = primary, 1 = secondary)
@return 0 on success, >0 on error

adcs_reset

Field Value
Function TCMDEXEC_adcs_reset
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@note The ADCS will become unresponsive after sending this command for at least 15 seconds.
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_run_once

Field Value
Function TCMDEXEC_adcs_run_once
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: If ADCS run mode is Triggered, run the ADCS sensor loop
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_save_config

Field Value
Function TCMDEXEC_adcs_save_config
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_save_image_to_sd

Field Value
Function TCMDEXEC_adcs_save_image_to_sd
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. (int) Which camera to save the image from; can be Camera 1 (0), Camera 2 (1), or Star (2)
  2. (int) Resolution of the image to save; can be 1024x1024 (0), 512x512 (1), 256x256 (2), 128x128 (3), or 64x64 (4)

Full docstring:

@brief Telecommand: Save an image to the ADCS onboard SD card
@param args_str
- Arg 0: (int) Which camera to save the image from; can be Camera 1 (0), Camera 2 (1), or Star (2)
- Arg 1: (int) Resolution of the image to save; can be 1024x1024 (0), 512x512 (1), 256x256 (2), 128x128 (3), or 64x64 (4)
@return 0 on success, >0 on error

adcs_save_orbit_params

Field Value
Function TCMDEXEC_adcs_save_orbit_params
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_set_augmented_sgp4_params

Field Value
Function TCMDEXEC_adcs_set_augmented_sgp4_params
Number of Arguments 17
Readiness Level FOR_OPERATION

Arguments:

  1. incl_coefficient (set inclination filter coefficient) (double)
  2. raan_coefficient (set RAAN filter coefficient) (double)
  3. ecc_coefficient (set eccentricity filter coefficient) (double)
  4. aop_coefficient (set argument of perigee filter coefficient) (double)
  5. time_coefficient (set time filter coefficient) (double)
  6. pos_coefficient (set position filter coefficient) (double)
  7. maximum_position_error (maximum position error for Augmented_SGP4 to continue working) (double)
  8. augmented_sgp4_filter (The type of filter being used (enum))
  9. xp_coefficient (polar coefficient xdouble; p) (double)
  10. yp_coefficient (polar coefficient ydouble; p) (double)
  11. gps_roll_over (GPS roll over number)
  12. position_sd (maximum position standard deviation for Augmented_SGP4 to continue working) (double)
  13. velocity_sd (maximum velocity standard deviation for Augmented_SGP4 to continue working) (double)
  14. min_satellites (Minimum satellites required for Augmented_SGP4 to continue working)
  15. time_gain (time offset compensation gain) (double)
  16. max_lag (maximum lagged timestamp measurements to incorporate) (double)
  17. min_samples (Minimum samples to use to get Augmented_SGP4)

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- Arg 0: incl_coefficient (set inclination filter coefficient) (double)
- Arg 1: raan_coefficient (set RAAN filter coefficient) (double)
- Arg 2: ecc_coefficient (set eccentricity filter coefficient) (double)
- Arg 3: aop_coefficient (set argument of perigee filter coefficient) (double)
- Arg 4: time_coefficient (set time filter coefficient) (double)
- Arg 5: pos_coefficient (set position filter coefficient) (double)
- Arg 6: maximum_position_error (maximum position error for Augmented_SGP4 to continue working) (double)
- Arg 7: augmented_sgp4_filter (The type of filter being used (enum))
- Arg 8: xp_coefficient (polar coefficient xdouble; p) (double)
- Arg 9: yp_coefficient (polar coefficient ydouble; p) (double)
- Arg 10: gps_roll_over (GPS roll over number)
- Arg 11: position_sd (maximum position standard deviation for Augmented_SGP4 to continue working) (double)
- Arg 12: velocity_sd (maximum velocity standard deviation for Augmented_SGP4 to continue working) (double)
- Arg 13: min_satellites (Minimum satellites required for Augmented_SGP4 to continue working)
- Arg 14: time_gain (time offset compensation gain) (double)
- Arg 15: max_lag (maximum lagged timestamp measurements to incorporate) (double)
- Arg 16: min_samples (Minimum samples to use to get Augmented_SGP4)
@return 0 on success, >0 on error

adcs_set_commanded_attitude_angles

Field Value
Function TCMDEXEC_adcs_set_commanded_attitude_angles
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. x attitude angle (double)
  2. y attitude angle (double)
  3. z attitude angle (double)

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- Arg 0: x attitude angle (double)
- Arg 1: y attitude angle (double)
- Arg 2: z attitude angle (double)
@return 0 on success, >0 on error

adcs_set_commissioning_modes

Field Value
Function TCMDEXEC_adcs_set_commissioning_modes
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. Which commissioning step to set the modes for (1-18)
  2. Timeout in seconds before reverting to no control (0 = indefinite)

Full docstring:

@brief Telecommand: Set the run, power control, estimation, and control parameters for a given commissioning step
@note If a commissioning step requires other steps such as estimation parameters or TLMs, those must be supplied separately.
@param args_str
- Arg 0: Which commissioning step to set the modes for (1-18)
- Arg 1: Timeout in seconds before reverting to no control (0 = indefinite)
@return 0 on success, >0 on error

adcs_set_estimation_params

Field Value
Function TCMDEXEC_adcs_set_estimation_params
Number of Arguments 17
Readiness Level FOR_OPERATION

Arguments:

  1. magnetometer_rate_filter_system_noise (float; magnetometer rate filter system noise covariance parameter)
  2. extended_kalman_filter_system_noise (float; extended kalman filter system noise covariance parameter)
  3. coarse_sun_sensor_measurement_noise (float; CSS measurement noise covariance parameter)
  4. sun_sensor_measurement_noise (float; sun sensor measurement noise covariance parameter)
  5. nadir_sensor_measurement_noise (float; nadir sensor measurement noise covariance parameter)
  6. magnetometer_measurement_noise (float; magnetometer measurement noise covariance parameter)
  7. star_tracker_measurement_noise (float; star tracker measurement noise covariance parameter)
  8. use_sun_sensor (bool; whether or not to use the sun sensor measurement in extended_kalman_filter)
  9. use_nadir_sensor (bool; whether or not to use the nadir sensor measurement in extended_kalman_filter)
  10. use_css (bool; whether or not to use the CSS measurement in extended_kalman_filter)
  11. use_star_tracker (bool; whether or not to use the star tracker measurement in extended_kalman_filter)
  12. nadir_sensor_terminator_test (bool; select to ignore nadir sensor measurements when terminator is in FOV)
  13. automatic_magnetometer_recovery (bool; select whether automatic switch to redundant magnetometer should occur in case of failure)
  14. magnetometer_mode (enum; select magnetometer mode for estimation and control)
  15. magnetometer_selection_for_raw_magnetometer_telemetry (enum; select magnetometer mode for the second raw telemetry frame)
  16. automatic_estimation_transition_due_to_rate_sensor_errors (bool; enable/disable automatic transition from MEMS rate estimation mode to RKF in case of rate sensor error)
  17. error_counter_reset_period_min (uint8; period after which a node's power cycle reset counter is cleared if no errors occurred)

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- Arg 0: magnetometer_rate_filter_system_noise (float; magnetometer rate filter system noise covariance parameter)
- Arg 1: extended_kalman_filter_system_noise (float; extended kalman filter system noise covariance parameter)
- Arg 2: coarse_sun_sensor_measurement_noise (float; CSS measurement noise covariance parameter)
- Arg 3: sun_sensor_measurement_noise (float; sun sensor measurement noise covariance parameter)
- Arg 4: nadir_sensor_measurement_noise (float; nadir sensor measurement noise covariance parameter)
- Arg 5: magnetometer_measurement_noise (float; magnetometer measurement noise covariance parameter)
- Arg 6: star_tracker_measurement_noise (float; star tracker measurement noise covariance parameter)
- Arg 7: use_sun_sensor (bool; whether or not to use the sun sensor measurement in extended_kalman_filter)
- Arg 8: use_nadir_sensor (bool; whether or not to use the nadir sensor measurement in extended_kalman_filter)
- Arg 9: use_css (bool; whether or not to use the CSS measurement in extended_kalman_filter)
- Arg 10: use_star_tracker (bool; whether or not to use the star tracker measurement in extended_kalman_filter)
- Arg 11: nadir_sensor_terminator_test (bool; select to ignore nadir sensor measurements when terminator is in FOV)
- Arg 12: automatic_magnetometer_recovery (bool; select whether automatic switch to redundant magnetometer should occur in case of failure)
- Arg 13: magnetometer_mode (enum; select magnetometer mode for estimation and control)
- Arg 14: magnetometer_selection_for_raw_magnetometer_telemetry (enum; select magnetometer mode for the second raw telemetry frame)
- Arg 15: automatic_estimation_transition_due_to_rate_sensor_errors (bool; enable/disable automatic transition from MEMS rate estimation mode to RKF in case of rate sensor error)
- Arg 16: error_counter_reset_period_min (uint8; period after which a node's power cycle reset counter is cleared if no errors occurred)
@return 0 on success, >0 on error

adcs_set_magnetometer_config

Field Value
Function TCMDEXEC_adcs_set_magnetometer_config
Number of Arguments 15
Readiness Level FOR_OPERATION

Arguments:

  1. Mounting transform alpha angle [deg] (double)
  2. Mounting transform beta angle [deg] (double)
  3. Mounting transform gamma angle [deg] (double)
  4. Channel 1 offset value (double)
  5. Channel 2 offset value (double)
  6. Channel 3 offset value (double)
  7. Value (1, 1) of the magnetometer sensitivity matrix (double)
  8. Value (2, 2) of the magnetometer sensitivity matrix (double)
  9. Value (3, 3) of the magnetometer sensitivity matrix (double)
  10. Value (1, 2) of the magnetometer sensitivity matrix (double)
  11. Value (1, 3) of the magnetometer sensitivity matrix (double)
  12. Value (2, 1) of the magnetometer sensitivity matrix (double)
  13. Value (2, 3) of the magnetometer sensitivity matrix (double)
  14. Value (3, 1) of the magnetometer sensitivity matrix (double)
  15. Value (3, 2) of the magnetometer sensitivity matrix (double)

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- Arg 0: Mounting transform alpha angle [deg] (double)
- Arg 1: Mounting transform beta angle [deg] (double)
- Arg 2: Mounting transform gamma angle [deg] (double)
- Arg 3: Channel 1 offset value (double)
- Arg 4: Channel 2 offset value (double)
- Arg 5: Channel 3 offset value (double)
- Arg 6: Value (1, 1) of the magnetometer sensitivity matrix (double)
- Arg 7: Value (2, 2) of the magnetometer sensitivity matrix (double)
- Arg 8: Value (3, 3) of the magnetometer sensitivity matrix (double)
- Arg 9: Value (1, 2) of the magnetometer sensitivity matrix (double)
- Arg 10: Value (1, 3) of the magnetometer sensitivity matrix (double)
- Arg 11: Value (2, 1) of the magnetometer sensitivity matrix (double)
- Arg 12: Value (2, 3) of the magnetometer sensitivity matrix (double)
- Arg 13: Value (3, 1) of the magnetometer sensitivity matrix (double)
- Arg 14: Value (3, 2) of the magnetometer sensitivity matrix (double)
@return 0 on success, >0 on error

adcs_set_magnetometer_mode

Field Value
Function TCMDEXEC_adcs_set_magnetometer_mode
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. magnetometer mode to set (0 = main sampled by Signal MCU, 1 = redundant sampled by Signal MCU, 2 = main sampled by Motor MCU, 3 = none)

Full docstring:

@brief Telecommand: Set the magnetometer mode of the ADCS
@param args_str
- Arg 0: magnetometer mode to set (0 = main sampled by Signal MCU, 1 = redundant sampled by Signal MCU, 2 = main sampled by Motor MCU, 3 = none)
@return 0 on success, >0 on error

adcs_set_magnetorquer_output

Field Value
Function TCMDEXEC_adcs_set_magnetorquer_output
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. magnetorquer x duty cycle (double)
  2. magnetorquer y duty cycle (double)
  3. magnetorquer z duty cycle (double)

Full docstring:

@brief Telecommand: Set the magnetorquer output values
@param args_str
- Arg 0: magnetorquer x duty cycle (double)
- Arg 1: magnetorquer y duty cycle (double)
- Arg 2: magnetorquer z duty cycle (double)
@return 0 on success, >0 on error

adcs_set_power_control

Field Value
Function TCMDEXEC_adcs_set_power_control
Number of Arguments 10
Readiness Level FOR_OPERATION

Arguments:

  1. CubeControl signal power control mode
  2. CubeControl motor power control mode
  3. CubeSense 1 power control mode
  4. CubeSense 2 power control mode
  5. CubeStar power control mode
  6. CubeWheel 1 power control mode
  7. CubeWheel 2 power control mode
  8. CubeWheel 3 power control mode
  9. Motor power control mode
  10. GPS power control mode

Full docstring:

@brief Telecommand: Set the power control mode of each component of the ADCS; for each, 0 turns the component off, 1 turns it on, and 2 keeps it the same as previously.
@param args_str
- Arg 0: CubeControl signal power control mode
- Arg 1: CubeControl motor power control mode
- Arg 2: CubeSense 1 power control mode
- Arg 3: CubeSense 2 power control mode
- Arg 4: CubeStar power control mode
- Arg 5: CubeWheel 1 power control mode
- Arg 6: CubeWheel 2 power control mode
- Arg 7: CubeWheel 3 power control mode
- Arg 8: Motor power control mode
- Arg 9: GPS power control mode
@return 0 on success, >0 on error

adcs_set_rate_gyro_config

Field Value
Function TCMDEXEC_adcs_set_rate_gyro_config
Number of Arguments 7
Readiness Level FOR_OPERATION

Arguments:

  1. gyro1 (Axis for Gyro #1; enum, options are pos/neg x, pos/neg y, pos/neg z)
  2. gyro2 (Axis for Gyro #2; enum, options are pos/neg x, pos/neg y, pos/neg z)
  3. gyro3 (Axis for Gyro #3; enum, options are pos/neg x, pos/neg y, pos/neg z)
  4. x_rate_offset (x-rate sensor offset) (double)
  5. y_rate_offset (y-rate sensor offset) (double)
  6. z_rate_offset (z-rate sensor offset) (double)
  7. rate_sensor_mult (multiplier of rate sensor measurement)

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- Arg 0: gyro1 (Axis for Gyro #1; enum, options are pos/neg x, pos/neg y, pos/neg z)
- Arg 1: gyro2 (Axis for Gyro #2; enum, options are pos/neg x, pos/neg y, pos/neg z)
- Arg 2: gyro3 (Axis for Gyro #3; enum, options are pos/neg x, pos/neg y, pos/neg z)
- Arg 3: x_rate_offset (x-rate sensor offset) (double)
- Arg 4: y_rate_offset (y-rate sensor offset) (double)
- Arg 5: z_rate_offset (z-rate sensor offset) (double)
- Arg 6: rate_sensor_mult (multiplier of rate sensor measurement)
@return 0 on success, >0 on error

adcs_set_run_mode

Field Value
Function TCMDEXEC_adcs_set_run_mode
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. run mode to set; can be can be off (0), enabled (1), triggered (2), or simulation (3)

Full docstring:

@brief Telecommand: Request the given telemetry data from the ADCS
@param args_str
- Arg 0: run mode to set; can be can be off (0), enabled (1), triggered (2), or simulation (3)
@return 0 on success, >0 on error

adcs_set_sd_log_config

Field Value
Function TCMDEXEC_adcs_set_sd_log_config
Number of Arguments 4
Readiness Level FOR_OPERATION

Arguments:

  1. which_log; 1 or 2; which specific log number to log to the SD card
  2. log_array; Hex array of bitmasks for log config (10 hex bytes)
  3. log_period; Period to log data to the SD card; if zero, then disable logging
  4. which_sd; Which SD card to log to, 0 for primary, 1 for secondary

Full docstring:

@brief Telecommand: Repeatedly log given data from an SD card
@param args_str
- Arg 0: which_log; 1 or 2; which specific log number to log to the SD card
- Arg 1: log_array; Hex array of bitmasks for log config (10 hex bytes)
- Arg 2: log_period; Period to log data to the SD card; if zero, then disable logging
- Arg 3: which_sd; Which SD card to log to, 0 for primary, 1 for secondary
@return 0 on success, >0 on error

adcs_set_sgp4_orbit_params

Field Value
Function TCMDEXEC_adcs_set_sgp4_orbit_params
Number of Arguments 8
Readiness Level FOR_OPERATION

Arguments:

  1. inclination (degrees) (double)
  2. eccentricity (dimensionless) (double)
  3. right ascension of the ascending node (degrees) (double)
  4. argument of perigee (degrees) (double)
  5. b-star drag term (dimensionless) (double)
  6. mean motion (orbits per day) (double)
  7. mean anomaly (degrees) (double)
  8. epoch (integer component is year, decimal component is day) (double)

Full docstring:

@brief Telecommand: Set the ADCS Simplified General Perturbations (SGP4) orbit parameters
@param args_str
- Arg 0: inclination (degrees) (double)
- Arg 1: eccentricity (dimensionless) (double)
- Arg 2: right ascension of the ascending node (degrees) (double)
- Arg 3: argument of perigee (degrees) (double)
- Arg 4: b-star drag term (dimensionless) (double)
- Arg 5: mean motion (orbits per day) (double)
- Arg 6: mean anomaly (degrees) (double)
- Arg 7: epoch (integer component is year, decimal component is day) (double)
@return 0 on success, >0 on error

adcs_set_tracking_controller_target_reference

Field Value
Function TCMDEXEC_adcs_set_tracking_controller_target_reference
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. longitude (double)
  2. latitude (double)
  3. altitude (double)

Full docstring:

@brief Telecommand: Set the ADCS tracking controller target reference (location on Earth to point towards)
@param args_str
- Arg 0: longitude (double)
- Arg 1: latitude (double)
- Arg 2: altitude (double)
@return 0 on success, >0 on error

adcs_set_unix_time_save_mode

Field Value
Function TCMDEXEC_adcs_set_unix_time_save_mode
Number of Arguments 4
Readiness Level FOR_OPERATION

Arguments:

  1. whether to save the current Unix time immediately (bool passed as int; 1 = save immediately, 0 = don't save immediately)
  2. whether to save the current Unix time whenever a command is used to update it (bool passed as int; 1 = save on command, 0 = don't)
  3. whether to save the current Unix time periodically (bool passed as int; 1 = save periodically, 0 = don't)
  4. the period of saving the current Unix time (in seconds)

Full docstring:

@brief Telecommand: Choose the circumstances to save the current Unix time
@param args_str
- Arg 0: whether to save the current Unix time immediately (bool passed as int; 1 = save immediately, 0 = don't save immediately)
- Arg 1: whether to save the current Unix time whenever a command is used to update it (bool passed as int; 1 = save on command, 0 = don't)
- Arg 2: whether to save the current Unix time periodically (bool passed as int; 1 = save periodically, 0 = don't)
- Arg 3: the period of saving the current Unix time (in seconds)
@return 0 on success, >0 on error

adcs_set_wheel_speed

Field Value
Function TCMDEXEC_adcs_set_wheel_speed
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. wheel speed x value
  2. wheel speed y value
  3. wheel speed z value

Full docstring:

@brief Telecommand: Set the wheel speed of the ADCS
@param args_str
- Arg 0: wheel speed x value
- Arg 1: wheel speed y value
- Arg 2: wheel speed z value
@return 0 on success, >0 on error

adcs_synchronize_unix_time

Field Value
Function TCMDEXEC_adcs_synchronize_unix_time
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Synchronize the current ADCS Unix epoch time
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

adcs_track_sun

Field Value
Function TCMDEXEC_adcs_track_sun
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Automatically track the sun with the ADCS.
@note The satellite must be already in Y-Momentum mode (i.e. stable attitude) to do this successfully. Rate Gyro Offsets must be set.
@param args_str
- No arguments for this command
@return 0 on success, >0 on error

agenda_delete_all

Field Value
Function TCMDEXEC_agenda_delete_all
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Delete all agenda entries.
@param args_str No arguments needed
@param response_output_buf The buffer to write the response to
@param response_output_buf_len The maximum length of the response_output_buf (its size)
@return 0 on success

agenda_delete_by_name

Field Value
Function TCMDEXEC_agenda_delete_by_name
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. telecommand name (string) - The name of the telecommand function in the agenda to delete. (e.g, hello_world)

Full docstring:

@brief Telecommand: Delete all agenda entries with a given telecommand name.
@param args_str
- Arg 0: telecommand name (string) - The name of the telecommand function in the agenda to delete. (e.g, hello_world)
@param response_output_buf The buffer to write the response to
@param response_output_buf_len The maximum length of the response_output_buf (its size)
@return 0 on success, > 0 on error

agenda_delete_by_tssent

Field Value
Function TCMDEXEC_agenda_delete_by_tssent
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. Timestamp sent (uint64_t) - The tssent timestamp of the agenda entry to delete.

Full docstring:

@brief Telecommand: Delete agenda entry by tssent timestamp
@param args_str
- Arg 0: Timestamp sent (uint64_t) - The tssent timestamp of the agenda entry to delete.
@param response_output_buf The buffer to write the response to
@param response_output_buf_len The maximum length of the response_output_buf (its size)
@return 0 on success, >0 on error

agenda_enqueue_from_file

Field Value
Function TCMDEXEC_agenda_enqueue_from_file
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. File name (string) - The name of the file to enqueue telecommands from.
  2. min_tsexec_inclusive (u64) - Filter to @tsexec >= value (nominal: 0)
  3. max_tsexec_exclusive (u64) - Filter to @tsexec < value (set to 0 for no filter)

Full docstring:

@brief Telecommand: Enqueue telecommands from a file.
@param args_str
- Arg 0: File name (string) - The name of the file to enqueue telecommands from.
- Arg 1: min_tsexec_inclusive (u64) - Filter to @tsexec >= value (nominal: 0)
- Arg 2: max_tsexec_exclusive (u64) - Filter to @tsexec < value (set to 0 for no filter)
@return 0 on success, > 0 on error

agenda_fetch_json_grouped

Field Value
Function TCMDEXEC_agenda_fetch_json_grouped
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Fetches the active agendas and writes a minified JSON dict-of-lists to the response buffer.
@param args_str No arguments.
@param response_output_buf Buffer to write the JSON output to.
@param response_output_buf_size Size of the response buffer.
@return 0 on success, 1 if there are no pending entries, 2 if the buffer was too small (agenda too long).

agenda_fetch_logged_jsonl

Field Value
Function TCMDEXEC_agenda_fetch_logged_jsonl
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Fetch all pending agenda items, and log them each as JSONL
@param args_str No arguments.
@return 0 on success, 1 if there are no active pending agenda items.

ant_arm_antenna_system

Field Value
Function TCMDEXEC_ant_arm_antenna_system
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. specifies which mcu on the antenna deployment system to transmit to, and which i2c bus to use. Pass either "A" or "B"

Full docstring:

@brief Telecommand: Arm the antenna deploy system
@param args_str
- Arg 0: specifies which mcu on the antenna deployment system to transmit to, and which i2c bus to use. Pass either "A" or "B"
@return 0 on success, >0 on error

ant_cancel_deployment_system_activation

Field Value
Function TCMDEXEC_ant_cancel_deployment_system_activation
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. specifies which mcu on the antenna deployment system to transmit to, and which i2c bus to use. Pass either "A" or "B"

Full docstring:

@brief Cancels any active attempts to deploy an antenna
@param args_str
- Arg 0: specifies which mcu on the antenna deployment system to transmit to, and which i2c bus to use. Pass either "A" or "B"
@return 0 on successful communication, > 0 on communications error

ant_deploy_antenna

Field Value
Function TCMDEXEC_ant_deploy_antenna
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. specifies which mcu on the antenna deployment system to transmit to, and which i2c bus to use. Either "A" or "B"
  2. antenna number. between 1-4
  3. Activation time in seconds

Full docstring:

@brief Telecommand: Initiates deployment of the selected antenna
@param args_str
- Arg 0: specifies which mcu on the antenna deployment system to transmit to, and which i2c bus to use. Either "A" or "B"
- Arg 1: antenna number. between 1-4
- Arg 2: Activation time in seconds
@return 0 on success, >0 on error

ant_deploy_antenna_with_override

Field Value
Function TCMDEXEC_ant_deploy_antenna_with_override
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. specifies which mcu on the antenna deployment system to transmit to, and which i2c bus to use. Pass either "A" or "B"
  2. antenna number. between 1-4
  3. Activation time in seconds

Full docstring:

@brief Telecommand: Initiates deployment of the selected antenna, ignoring whether the antennas current status is deployed.
@param args_str
- Arg 0: specifies which mcu on the antenna deployment system to transmit to, and which i2c bus to use. Pass either "A" or "B"
- Arg 1: antenna number. between 1-4
- Arg 2: Activation time in seconds
@return 0 on successful communication, >0 on communications error

ant_disarm_antenna_system

Field Value
Function TCMDEXEC_ant_disarm_antenna_system
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. specifies which mcu on the antenna deployment system to disarm, and which i2c bus to use

Full docstring:

@brief Disarms the specified antenna deploy system's mcu
@param args_str
- Arg 0: specifies which mcu on the antenna deployment system to disarm, and which i2c bus to use
@return 0 on success, 0 > otherwise

ant_measure_temp

Field Value
Function TCMDEXEC_ant_measure_temp
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. specifies which mcu on the antenna deployment system to transmit to, and which i2c bus to use. Pass either "A" or "B"

Full docstring:

@brief Telecommand: Measures the temperature of the antenna controller in centi-degrees celsius
@param args_str
- Arg 0: specifies which mcu on the antenna deployment system to transmit to, and which i2c bus to use. Pass either "A" or "B"
@return 0 on success, >0 on error

ant_report_antenna_deployment_activation_count

Field Value
Function TCMDEXEC_ant_report_antenna_deployment_activation_count
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. specifies which mcu on the antenna deployment system to transmit to, and which i2c bus to use. Pass either "A" or "B"
  2. the antenna to check, between 1-4

Full docstring:

@brief Prints the number of times deployment was attempted on the selected antenna
@param args_str
- Arg 0: specifies which mcu on the antenna deployment system to transmit to, and which i2c bus to use. Pass either "A" or "B"
- Arg 1: the antenna to check, between 1-4
@return 0 on successful communication, > 0 on communications error

ant_report_antenna_deployment_activation_time

Field Value
Function TCMDEXEC_ant_report_antenna_deployment_activation_time
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. specifies which mcu on the antenna deployment system to transmit to, and which i2c bus to use. Pass either "A" or "B"
  2. the antenna to check, between 1-4

Full docstring:

@brief Prints amount of time the deployment system has been active for for the selected antenna
@param args_str
- Arg 0: specifies which mcu on the antenna deployment system to transmit to, and which i2c bus to use. Pass either "A" or "B"
- Arg 1: the antenna to check, between 1-4
@return 0 on successful communication, > 0 on communications error

ant_report_deployment_status

Field Value
Function TCMDEXEC_ant_report_deployment_status
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. specifies which mcu on the antenna deployment system to transmit to, and which i2c bus to use. Pass either "A" or "B"

Full docstring:

@brief Prints the deployment status of all antennas
@param args_str
- Arg 0: specifies which mcu on the antenna deployment system to transmit to, and which i2c bus to use. Pass either "A" or "B"
@return 0 on successful communication, > 0 on communications error

ant_reset

Field Value
Function TCMDEXEC_ant_reset
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. specifies which mcu on the antenna deployment system to transmit to, and which i2c bus to use. Pass either "A" or "B"

Full docstring:

@brief Resets the specified antenna deployment system's microcontroller
@param args_str
- Arg 0: specifies which mcu on the antenna deployment system to transmit to, and which i2c bus to use. Pass either "A" or "B"
@return 0 on success, > 0 otherwise

ant_start_automated_antenna_deployment

Field Value
Function TCMDEXEC_ant_start_automated_antenna_deployment
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. specifies which mcu on the antenna deployment system to transmit to, and which i2c bus to use. Pass either "A" or "B"
  2. Activation time in seconds

Full docstring:

@brief begins deployment of all antennas, one by one.
@param args_str
- Arg 0: specifies which mcu on the antenna deployment system to transmit to, and which i2c bus to use. Pass either "A" or "B"
- Arg 1: Activation time in seconds
@return returns 0 on success, > 0 otherwise

available_telecommands

Field Value
Function TCMDEXEC_available_telecommands
Number of Arguments 0
Readiness Level FOR_OPERATION

boom_deploy_timed

Field Value
Function TCMDEXEC_boom_deploy_timed
Number of Arguments 2
Readiness Level FOR_RECOVERY_OR_EXPERT

Arguments:

  1. Which boom deployment channel (1=CTRL_1 or 2=CTRL_2), or 0 for both.
  2. Duration (milliseconds), less than 14.1 seconds (<=14100 ms)

Full docstring:

@brief Activate the burn wire for the specified duration.
@param args_str
- Arg 0: Which boom deployment channel (1=CTRL_1 or 2=CTRL_2), or 0 for both.
- Arg 1: Duration (milliseconds), less than 14.1 seconds (<=14100 ms)
@return 0 on success, 1-2 on parsing error, 20 on EPS failure
@note Does not enable the EPS channel. You must manually enable the EPS channel before
calling this function.
@note If you need longer than the max duration, you can of course call this function
multiple times back-to-back, relying on the heat capacity of the resistors to stay hot.

boom_self_check

Field Value
Function TCMDEXEC_boom_self_check
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Run the self-check on the boom deployment system.
@param args_str None.
@return 0 on success, >0 on error.
@note If this function glitches (which it shouldn't/doesn't), it has the potential to deploy the boom.

bulkup16

Field Value
Function TCMDEXEC_bulkup16
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. Hex string (e.g. "DEADBEEF" or "DE AD BE EF")

Full docstring:

@brief Telecommand: Write hex bytes to the currently open bulk uplink file
@param args_str
- Arg 0: Hex string (e.g. "DEADBEEF" or "DE AD BE EF")
@note This is an alias for the `comms_bulk_uplink_write_bytes_hex` telecommand.
This is one of very few telecommands with short aliases, as it allows more data per command.

bulkup64

Field Value
Function TCMDEXEC_bulkup64
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. Base64 string (e.g. "SGVsbG8=" converts to ASCII "Hello")

Full docstring:

@brief Telecommand: Write Base64 bytes to the currently open bulk uplink file.
@param args_str
- Arg 0: Base64 string (e.g. "SGVsbG8=" converts to ASCII "Hello")
@note This is an alias for the `comms_bulk_uplink_write_bytes_base64` telecommand.
This is one of very few telecommands with short aliases, as it allows more data per command.

camera_capture

Field Value
Function TCMDEXEC_camera_capture
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. filename to save the image to (max 32 chars)
  2. lighting mode (single character: d,m,n,s)

Full docstring:

@brief Send telecommand to camera and capture an image. RUN CAM_SETUP BEFORE THIS EVERY TIME!
@note This command disables the EPS power channel afterwards.
@param args_str
- Arg 0: filename to save the image to (max 32 chars)
- Arg 1: lighting mode (single character: d,m,n,s)
@param response_output_buf Buffer to write the response to
@param response_output_buf_len Max length of the buffer
@return 0 if successful, >0 if an error occurred
@note Lighting modes:
d - daylight ambient light
m - medium ambient light
n - night ambient light
s - solar sail contrast and light

camera_change_baud_rate

Field Value
Function TCMDEXEC_camera_change_baud_rate
Number of Arguments 1
Readiness Level FOR_RECOVERY_OR_EXPERT

Arguments:

  1. Baudrate to change to (bits per second). 10 options from 1200 to 921600.

Full docstring:

@brief Debugging only. Set the baud rate of the camera to the specified value. Use `camera_setup` normally.
@param args_str
- Arg 1: Baudrate to change to (bits per second). 10 options from 1200 to 921600.
@return 0 if successful, >0 if an error occurred

camera_setup

Field Value
Function TCMDEXEC_camera_setup
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Set up the camera by powering on EPS channel and changing the baudrate to 230400.
@param args_str
@param response_output_buf Buffer to write the response to
@param response_output_buf_len Max length of the buffer
@return 0 if successful, >0 if an error occurred

camera_test

Field Value
Function TCMDEXEC_camera_test
Number of Arguments 0
Readiness Level FOR_RECOVERY_OR_EXPERT

Full docstring:

@brief Send the 't' test command to the camera, and check if the response is valid.
@param args_str
@param response_output_buf Buffer to write the response to
@param response_output_buf_len Max length of the buffer
@return 0 if successful, >0 if an error occurred

comms_bulk_file_downlink_pause

Field Value
Function TCMDEXEC_comms_bulk_file_downlink_pause
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Pause bulk file downlink
@param args_str (unused)

comms_bulk_file_downlink_resume

Field Value
Function TCMDEXEC_comms_bulk_file_downlink_resume
Number of Arguments 0
Readiness Level FOR_OPERATION

comms_bulk_file_downlink_start

Field Value
Function TCMDEXEC_comms_bulk_file_downlink_start
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. File path to downlink as string
  2. Start offset in file (uint32)
  3. The maximum number of bytes to downlink. Maximum value is 1000000 (1 MB) by default, for safety (to avoid a very very long-running downlink chain). Values >1 MB will be limited to 1 MB, and value 0 will be set to 1 MB.

Full docstring:

@brief Initiate a bulk file downlink over the UHF radio.
@param args_str
- Arg 0: File path to downlink as string
- Arg 1: Start offset in file (uint32)
- Arg 2: The maximum number of bytes to downlink. Maximum value is 1000000 (1 MB) by default, for safety (to avoid a very very long-running downlink chain). Values >1 MB will be limited to 1 MB, and value 0 will be set to 1 MB.
@return 0 on success. Non-zero on failure. -2 = File does not exist.
@note 1 MB takes about 15 minutes to downlink at 9600 baud.
@note This function is safe to call at any point (including mid-downlink, or mid-pause).
It will close the previous file and start a new downlink.

comms_bulk_uplink_close_file

Field Value
Function TCMDEXEC_comms_bulk_uplink_close_file
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Close the currently open bulk uplink file
@param args_str No arguments

comms_bulk_uplink_open_file

Field Value
Function TCMDEXEC_comms_bulk_uplink_open_file
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. File path as string
  2. Mode enum as string: "truncate" or "append" (case-insensitive)

Full docstring:

@brief Telecommand: Open a file for bulk uplink
@param args_str
- Arg 0: File path as string
- Arg 1: Mode enum as string: "truncate" or "append" (case-insensitive)

comms_bulk_uplink_seek

Field Value
Function TCMDEXEC_comms_bulk_uplink_seek
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. New byte offset from start of file (uint64, must fit uint32)

Full docstring:

@brief Telecommand: Seek to a new position in the currently open bulk uplink file
@param args_str
- Arg 0: New byte offset from start of file (uint64, must fit uint32)

comms_bulk_uplink_write_bytes_base64

Field Value
Function TCMDEXEC_comms_bulk_uplink_write_bytes_base64
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. Base64 string (e.g. "SGVsbG8=" converts to ASCII "Hello")

Full docstring:

@brief Telecommand: Write Base64 bytes to the currently open bulk uplink file.
@param args_str
- Arg 0: Base64 string (e.g. "SGVsbG8=" converts to ASCII "Hello")
@note This telecommand has a short-form alias "bulkup64".

comms_bulk_uplink_write_bytes_hex

Field Value
Function TCMDEXEC_comms_bulk_uplink_write_bytes_hex
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. Hex string (e.g. "DEADBEEF" or "DE AD BE EF")

Full docstring:

@brief Telecommand: Write hex bytes to the currently open bulk uplink file.
@param args_str
- Arg 0: Hex string (e.g. "DEADBEEF" or "DE AD BE EF")
@note This telecommand has a short-form alias "bulkup16".

comms_get_rf_switch_info

Field Value
Function TCMDEXEC_comms_get_rf_switch_info
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Gets the current RF switch control mode and the current antenna state.
@param args_str No args.
@return

comms_set_rf_switch_control_mode

Field Value
Function TCMDEXEC_comms_set_rf_switch_control_mode
Number of Arguments 1
Readiness Level FLIGHT_TESTING

Arguments:

  1. Enum: "toggle_before_beacon" (default), "ant1", "ant2", "adcs", "adcs_flipped". Case-insensitive.

Full docstring:

@brief Sets the state of the dipole switch on the OBC to either Antenna 1 or Antenna 2.
@param args_str
- Arg 0: Enum: "toggle_before_beacon" (default), "ant1", "ant2", "adcs", "adcs_flipped". Case-insensitive.
@return 0 on success, 1 on error.

config_get_all_int_vars_json

Field Value
Function TCMDEXEC_config_get_all_int_vars_json
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Get all int configuration variables, as JSON. Each variable is a key-value pair in a single JSON dict.
@param args_str No arguments.
@return 0 if successful, >0 if an error occurred

config_get_all_vars_jsonl

Field Value
Function TCMDEXEC_config_get_all_vars_jsonl
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Get all configuration variables, as JSON. One variable per line.
@param args_str No arguments.
@return 0 if successful, >0 if an error occurred

config_get_int_var_json

Field Value
Function TCMDEXEC_config_get_int_var_json
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. variable name

Full docstring:

@brief Get an integer configuration variable
@param args_str
- Arg 0: variable name
@return 0 if successful, >0 if an error occurred

config_get_str_var_json

Field Value
Function TCMDEXEC_config_get_str_var_json
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. variable name

Full docstring:

@brief Get a string configuration variable
@param args_str
- Arg 0: variable name
@return 0 if successful, >0 if an error occurred

config_set_int_var

Field Value
Function TCMDEXEC_config_set_int_var
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. variable name
  2. new value

Full docstring:

@brief Set an integer configuration variable
@param args_str
- Arg 0: variable name
- Arg 1: new value
@param response_output_buf Buffer to write the response to
@param response_output_buf_len Max length of the buffer
@return 0 if successful, >0 if an error occurred

config_set_str_var

Field Value
Function TCMDEXEC_config_set_str_var
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. variable name
  2. new value

Full docstring:

@brief Set a string configuration variable
@param args_str
- Arg 0: variable name
- Arg 1: new value
@return 0 if successful, >0 if an error occurred

core_system_stats

Field Value
Function TCMDEXEC_core_system_stats
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Get many essential system stats as a JSON dict.
@param args_str No arguments.
@return 0 on success. Cannot fail.

correct_system_time

Field Value
Function TCMDEXEC_correct_system_time
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. Correction time in milliseconds (int64_t). Positive = forward in time, negative = backward in time.

Full docstring:

@brief Adjust the system time by a correction offset in ms.
@param args_str
- Arg 0: Correction time in milliseconds (int64_t). Positive = forward in time, negative = backward in time.
@return 0 if successful, 1 if error
@note Math: new_system_time_ms = current_system_time_ms + correction_time_ms

demo_blocking_delay

Field Value
Function TCMDEXEC_demo_blocking_delay
Number of Arguments 1
Readiness Level FLIGHT_TESTING

Arguments:

  1. delay_ms (uint64_t) - The number of milliseconds to delay for. <=300_000ms.

Full docstring:

@brief Delay for a specified number of milliseconds, for testing purposes, using HAL_Delay.
@param args_str 1 argument: delay_ms (uint64_t)
- Arg 0: delay_ms (uint64_t) - The number of milliseconds to delay for. <=300_000ms.
@return 0 on success, 1 on error
@note This is most useful for testing/triggering the watchdog timer.

demo_os_delay

Field Value
Function TCMDEXEC_demo_os_delay
Number of Arguments 1
Readiness Level FLIGHT_TESTING

Arguments:

  1. delay_ms (uint64_t) - The number of milliseconds to delay for. <=300_000ms.

Full docstring:

@brief Delay for a specified number of milliseconds, for testing purposes, using osDelay.
@param args_str 1 argument: delay_ms (uint64_t)
- Arg 0: delay_ms (uint64_t) - The number of milliseconds to delay for. <=300_000ms.
@return 0 on success, 1 on error
@note This is most useful for testing/triggering the watchdog timer.

echo_back_args

Field Value
Function TCMDEXEC_echo_back_args
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. The string to echo back.

Full docstring:

@brief A demo telecommand that echoes back the argument it received.
@param args_str
- Arg 0: The string to echo back.

echo_back_uint32_args

Field Value
Function TCMDEXEC_echo_back_uint32_args
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. The first integer to echo back.
  2. The second integer to echo back.
  3. The third integer to echo back.

Full docstring:

@brief A demo telecommand that echoes back each integer argument it received.
@param args_str 3 integer arguments to echo back.
- Arg 0: The first integer to echo back.
- Arg 1: The second integer to echo back.
- Arg 2: The third integer to echo back.
@return 0 if all ints are parsed successfully, otherwise the error code of the first failed parse.

eps_cancel_operation

Field Value
Function TCMDEXEC_eps_cancel_operation
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Calls the EPS cancel operation command. Likely not useful.
@param args_str No arguments.
@return 0 on success, 1 on failure.
@note This command likely isn't useful, as telecommands cannot be trigger simultaneously, and
thus another command to the EPS cannot really be cancelled from here.

eps_get_current_battery_percent

Field Value
Function TCMDEXEC_eps_get_current_battery_percent
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Get current battery voltage and percent from EPS's PBU.

eps_get_enabled_channels_json

Field Value
Function TCMDEXEC_eps_get_enabled_channels_json
Number of Arguments 0
Readiness Level FOR_OPERATION

eps_get_pbu_abf_placed_state_json

Field Value
Function TCMDEXEC_eps_get_pbu_abf_placed_state_json
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Get the EPS PBU (Power Battery Unit) ABF placed status, and display it as a JSON string.
@return 0 on success, >0 on failure.

eps_get_pbu_housekeeping_data_eng_json

Field Value
Function TCMDEXEC_eps_get_pbu_housekeeping_data_eng_json
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Get the EPS PBU (Power Battery Unit) housekeeping data, and display it as a JSON string.
@return 0 on success, >0 on failure.

eps_get_pbu_housekeeping_data_run_avg_json

Field Value
Function TCMDEXEC_eps_get_pbu_housekeeping_data_run_avg_json
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Get the EPS PBU (Power Battery Unit) housekeeping data (running average), and display it as a JSON string.
@return 0 on success, >0 on failure.

eps_get_pcu_housekeeping_data_eng_json

Field Value
Function TCMDEXEC_eps_get_pcu_housekeeping_data_eng_json
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Get the EPS PCU (Power Conditioning Unit, solar panel MPPT) housekeeping data, and display it as a JSON string.
@return 0 on success, >0 on failure.

eps_get_pcu_housekeeping_data_run_avg_json

Field Value
Function TCMDEXEC_eps_get_pcu_housekeeping_data_run_avg_json
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Get the EPS PCU (Power Conditioning Unit, solar panel MPPT) housekeeping data (running average), and display it as a JSON string.
@return 0 on success, >0 on failure.

eps_get_pdu_active_channels_data_json

Field Value
Function TCMDEXEC_eps_get_pdu_active_channels_data_json
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Get the EPS PDU (Power Distribution Unit) housekeeping data, and display it as a short JSON string.
@return 0 on success, >0 on failure.
@note Emphasizes total info, and enabled channels only.

eps_get_pdu_active_channels_data_run_avg_json

Field Value
Function TCMDEXEC_eps_get_pdu_active_channels_data_run_avg_json
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Get the EPS PDU (Power Distribution Unit) housekeeping data running average, and display it as a short JSON string.
@return 0 on success, >0 on failure.
@note Emphasizes total info, and enabled channels only.

eps_get_pdu_data_for_channel_json

Field Value
Function TCMDEXEC_eps_get_pdu_data_for_channel_json
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. The channel name or number (case-insensitive string).

Full docstring:

@brief Gets the Voltage, Current, and Power for a single channel on the EPS.
@param args_str
- Arg 0: The channel name or number (case-insensitive string).
@return 0 on success, >0 on failure.
@note Channel name argument: A lowercase c-string of the channel name (e.g., "mpi"), or a number
representing the channel number (e.g., "1" or "16").
Valid string values: "vbatt_stack", "stack_5v", "stack_3v3", "camera", "uhf_antenna_deploy",
"gnss", "mpi_5v", "mpi_12v", "boom".

eps_get_pdu_housekeeping_data_eng_json

Field Value
Function TCMDEXEC_eps_get_pdu_housekeeping_data_eng_json
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Get the EPS PDU (Power Distribution Unit) housekeeping data, and display it as a JSON string.
@return 0 on success, >0 on failure.

eps_get_pdu_housekeeping_data_run_avg_json

Field Value
Function TCMDEXEC_eps_get_pdu_housekeeping_data_run_avg_json
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Get the EPS PDU (Power Distribution Unit) housekeeping data (running average), and display it as a JSON string.
@return 0 on success, >0 on failure.

eps_get_pdu_overcurrent_fault_state_json

Field Value
Function TCMDEXEC_eps_get_pdu_overcurrent_fault_state_json
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Get the EPS PDU (Power Distribution Unit) overcurrent fault status, and display it as a JSON string.
@return 0 on success, >0 on failure.

eps_get_piu_housekeeping_data_eng_json

Field Value
Function TCMDEXEC_eps_get_piu_housekeeping_data_eng_json
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Gets the EPS PIU (Power Integrated Unit, info about all systems) housekeeping data, and returns it as a JSON string.
@return 0 on success, >0 on failure.

eps_get_piu_housekeeping_data_run_avg_json

Field Value
Function TCMDEXEC_eps_get_piu_housekeeping_data_run_avg_json
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Get the EPS PIU (Power Integrated Unit, info about all systems) housekeeping data (running average), and display it as a JSON string.
@return 0 on success, >0 on failure.

eps_get_system_status_json

Field Value
Function TCMDEXEC_eps_get_system_status_json
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Get the EPS system status, and display it as a JSON string.
@return 0 on success, >0 on failure.

eps_no_operation

Field Value
Function TCMDEXEC_eps_no_operation
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Calls the EPS no-op (no operation) command. Likely not useful.
@param args_str No arguments.
@return 0 on success, 1 on failure.

eps_power_management_set_current_threshold

Field Value
Function TCMDEXEC_eps_power_management_set_current_threshold
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. The channel name or number (case-insensitive string).
  2. Threshold current (in mA) to set.

Full docstring:

@brief Sets the EPS power managements max sustained current for the specified channel.
@param args_str
- Arg 0: The channel name or number (case-insensitive string).
- Arg 1: Threshold current (in mA) to set.
@return 0 on success, >0 on failure
@note Valid string values (Arg 0): "vbatt_stack", "stack_5v", "stack_3v3", "camera",
"uhf_antenna_deploy", "gnss", "mpi_5v", "mpi_12v", "boom".

eps_set_channel_enabled

Field Value
Function TCMDEXEC_eps_set_channel_enabled
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. The channel name or number (case-insensitive string).
  2. 1 to enable (power on), 0 to disable (power off)

Full docstring:

@brief Sets the EPS channel to be enabled (on) or disabled (off).
@param args_str
- Arg 0: The channel name or number (case-insensitive string).
- Arg 1: 1 to enable (power on), 0 to disable (power off)
@return 0 on success, >0 on failure
@note Channel name argument: A lowercase c-string of the channel name (e.g., "mpi"), or a number
representing the channel number (e.g., "1" or "16").
Valid string values: "vbatt_stack", "stack_5v", "stack_3v3", "camera", "uhf_antenna_deploy",
"gnss", "mpi_5v", "mpi_12v", "boom".

eps_switch_to_mode

Field Value
Function TCMDEXEC_eps_switch_to_mode
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. New mode to switch to. Either "nominal" or "safety". Case-insensitive.

Full docstring:

@brief Switches the EPS to "nominal" or "safety" mode.
@param args_str
- Arg 0: New mode to switch to. Either "nominal" or "safety". Case-insensitive.
@return 0 on success, 1 on failure.
@note See EPS Software ICD, Page 12, Section 3 (Functional Description) for state/mode definitions.

eps_system_reset

Field Value
Function TCMDEXEC_eps_system_reset
Number of Arguments 0
Readiness Level FOR_RECOVERY_OR_EXPERT

Full docstring:

@brief Resets the EPS system.
@param args_str No arguments.
@return 0 on success, 1 on failure.

eps_watchdog

Field Value
Function TCMDEXEC_eps_watchdog
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Triggers/services the EPS watchdog. No args.
@param args_str No arguments.
@return 0 on success, 1 on failure.

exec_blob_from_fs

Field Value
Function TCMDEXEC_exec_blob_from_fs
Number of Arguments 3
Readiness Level FOR_RECOVERY_OR_EXPERT

Arguments:

  1. File name of the blob
  2. Where to load blob (0=malloc, 1=mpi_buffer_one, 2=mpi_buffer_two)
  3. Argument to pass to the blob function (e.g., another filename)

Full docstring:

@brief Executes an arbitrary blob/program from the filesystem.
@param args_str
- Arg 0: File name of the blob
- Arg 1: Where to load blob (0=malloc, 1=mpi_buffer_one, 2=mpi_buffer_two)
- Arg 2: Argument to pass to the blob function (e.g., another filename)
@param response_output_buf The blob optionally writes its intermediate workings and results to this buffer.
@return 99 on pre-blob execution error. Otherwise, blob return value (presumably 0 on success).
@details Refer to `misc_tools/exec_blob/README.md` for more information on how to use this complex telecommand.

flash_activate_each_cs

Field Value
Function TCMDEXEC_flash_activate_each_cs
Number of Arguments 0
Readiness Level FLIGHT_TESTING

Full docstring:

@brief Telecommand: Read bytes as hex from a flash address
@param args_str No args.
@return 0 always

flash_benchmark_erase_write_read

Field Value
Function TCMDEXEC_flash_benchmark_erase_write_read
Number of Arguments 3
Readiness Level FLIGHT_TESTING

Arguments:

  1. Chip Number (CS number) as uint
  2. Test Data Address as uint
  3. Test Data Length as uint

Full docstring:

@brief Telecommand: Benchmarks the erase/write/read operations on the flash memory module.
@param args_str
- Arg 0: Chip Number (CS number) as uint
- Arg 1: Test Data Address as uint
- Arg 2: Test Data Length as uint
@return 0 on success, >0 on error

flash_each_is_reachable

Field Value
Function TCMDEXEC_flash_each_is_reachable
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Read bytes as hex from a flash address
@param args_str No args.
@return 0 always

flash_erase

Field Value
Function TCMDEXEC_flash_erase
Number of Arguments 2
Readiness Level FLIGHT_TESTING

Arguments:

  1. Chip Number (CS number) as uint
  2. Page number as uint

Full docstring:

@brief Telecommand: Erase a block of flash memory containing the given page number.
@param args_str
- Arg 0: Chip Number (CS number) as uint
- Arg 1: Page number as uint
@return 0 on success, >0 on error

flash_force_corrupt_filesystem

Field Value
Function TCMDEXEC_flash_force_corrupt_filesystem
Number of Arguments 1
Readiness Level HIGH_RISK_AND_UNSAFE

Arguments:

  1. Chip Number (CS number) as uint

Full docstring:

@brief Force the LittleFS filesystem to be corrupted by modifying the underlying storage on a flash memory module.
@param args_str
- Arg 0: Chip Number (CS number) as uint
@return 0 on success (forced corruption). >0 on error.

flash_read_hex

Field Value
Function TCMDEXEC_flash_read_hex
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. Chip Number (CS number) as uint
  2. Page number as uint
  3. Number of bytes to read as uint

Full docstring:

@brief Telecommand: Read bytes as hex from a page number
@param args_str
- Arg 0: Chip Number (CS number) as uint
- Arg 1: Page number as uint
- Arg 2: Number of bytes to read as uint
@return 0 on success, >0 on error

flash_read_status_register

Field Value
Function TCMDEXEC_flash_read_status_register
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. Chip Number (CS number) as uint

Full docstring:

@brief Telecommand: Read and print Status Register value as hex from the flash memory module.
@param args_str
- Arg 0: Chip Number (CS number) as uint
@return 0 on success, >0 on error

flash_reset

Field Value
Function TCMDEXEC_flash_reset
Number of Arguments 1
Readiness Level FLIGHT_TESTING

Arguments:

  1. Chip Number (CS number) as uint

Full docstring:

@brief Telecommand: Reset the flash memory module.
@param args_str
- Arg 0: Chip Number (CS number) as uint
@return 0 on success, >0 on error

flash_write_hex

Field Value
Function TCMDEXEC_flash_write_hex
Number of Arguments 3
Readiness Level FLIGHT_TESTING

Arguments:

  1. Chip Number (CS number) as uint
  2. Page number as uint
  3. Hex string of bytes to write (any case, allows space/underscore separators)

Full docstring:

@brief Telecommand: Write a hex string of bytes to a page number
@param args_str
- Arg 0: Chip Number (CS number) as uint
- Arg 1: Page number as uint
- Arg 2: Hex string of bytes to write (any case, allows space/underscore separators)
@return 0 on success, >0 on error

freertos_demo_stack_usage

Field Value
Function TCMDEXEC_freertos_demo_stack_usage
Number of Arguments 1
Readiness Level FLIGHT_TESTING

Arguments:

  1. num_bytes (uint64_t) - The number of elements to allocate in the VLA. <=1_000_000.

Full docstring:

@brief Demo using stack memory by allocating a Variable-Length Array (VLA) on the stack.
@param args_str
- Arg 0: num_bytes (uint64_t) - The number of elements to allocate in the VLA. <=1_000_000.
@return 0 on success, >0 on error

freetos_list_tasks_jsonl

Field Value
Function TCMDEXEC_freetos_list_tasks_jsonl
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand that return metadata regarding Tasks from FreeRTOS
@param args_str No arguments expected
@param response_output_buf The buffer to write the response to
@param response_output_buf_len The maximum length of the response_output_buf (its size)
@return 0 if successful, >0 if an error occurred (but hello_world can't return an error)

fs_benchmark_write_read

Field Value
Function TCMDEXEC_fs_benchmark_write_read
Number of Arguments 2
Readiness Level FLIGHT_TESTING

Arguments:

  1. Write chunk size (bytes)
  2. Write chunk count

Full docstring:

@brief Telecommand: Benchmark LittleFS write and read operations
@param args_str
- Arg 0: Write chunk size (bytes)
- Arg 1: Write chunk count
@return 0 on success, 1 if error parsing args, 2 if benchmark failed
@note The maximum write chunk size is 127 bytes, apparently; need to investigate why so small.

fs_compress_file_with_heatshrink

Field Value
Function TCMDEXEC_fs_compress_file_with_heatshrink
Number of Arguments 4
Readiness Level FOR_OPERATION

Arguments:

  1. Input file path
  2. Output file path (e.g., suffix with ".hs")
  3. window_sz2 (min 4, recommended 8, max 15, like CLI -w arg)
  4. lookahead_sz2 (min 3, recommended 4, less than window_sz2, like CLI -l arg)

Full docstring:

@brief Compress a file using heatshrink.
@param args_str
- Arg 0: Input file path
- Arg 1: Output file path (e.g., suffix with ".hs")
- Arg 2: window_sz2 (min 4, recommended 8, max 15, like CLI -w arg)
- Arg 3: lookahead_sz2 (min 3, recommended 4, less than window_sz2, like CLI -l arg)
@param response_output_buf Outputs the compression ratio as a message.
@return 0 on success. 1 on arg parsing errors.
@note Can cause system to crash and reboot. Safe to use, but just be aware.
@note Requires that `window_sz2 > lookahead_sz2`.
@note Heatshrink does NOT embed the window sizes in the data.
You must remember them, and use them when decompressing.

fs_count_hex_occurrences

Field Value
Function TCMDEXEC_fs_count_hex_occurrences
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. File path as string (haystack)
  2. Hex string to search for (e.g. "DEADBEEF")

Full docstring:

@brief Count hex byte sequence occurrences in a file
@param args_str
- Arg 0: File path as string (haystack)
- Arg 1: Hex string to search for (e.g. "DEADBEEF")

fs_count_str_occurrences

Field Value
Function TCMDEXEC_fs_count_str_occurrences
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. File path as string (haystack)
  2. Needle string to search for

Full docstring:

@brief Count string occurrences in a file
@param args_str
- Arg 0: File path as string (haystack)
- Arg 1: Needle string to search for

fs_delete_dir

Field Value
Function TCMDEXEC_fs_delete_dir
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. Directory name to be deleted

Full docstring:

@brief Telecommand: Deletes a specified directory, including all subfolders/subfiles.
@param args_str
- Arg 0: Directory name to be deleted
@note Do not add quotations around the argument, write as is.

fs_delete_file

Field Value
Function TCMDEXEC_fs_delete_file
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. File name to be deleted

Full docstring:

@brief Telecommand: Deletes a specified file in LittleFS
@param args_str
- Arg 0: File name to be deleted
@note Do not add quotations around the argument, write as is.

fs_demo_write_random_data

Field Value
Function TCMDEXEC_fs_demo_write_random_data
Number of Arguments 3
Readiness Level FLIGHT_TESTING

Arguments:

  1. File path as string
  2. File size in bytes (approx., best-effort)
  3. Amount of randomness - 0 = no randomness, 1 = highly predictable, 255 = very random

Full docstring:

@brief Write a file with pseudorandom data to LittleFS.
@param args_str
- Arg 0: File path as string
- Arg 1: File size in bytes (approx., best-effort)
- Arg 2: Amount of randomness - 0 = no randomness, 1 = highly predictable, 255 = very random
@param response_output_buf
@param response_output_buf_len
@return 0 on success, >0 on error

fs_demo_write_then_read

Field Value
Function TCMDEXEC_fs_demo_write_then_read
Number of Arguments 1
Readiness Level FLIGHT_TESTING

Arguments:

  1. File path as string

Full docstring:

@brief Writes a file to LittleFS, then reads it back.
@param args_str
- Arg 0: File path as string
@param response_output_buf
@param response_output_buf_len
@return

fs_find_nth_hex_occurrence

Field Value
Function TCMDEXEC_fs_find_nth_hex_occurrence
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. File path as string (haystack)
  2. Hex string to search for
  3. N (1-based)

Full docstring:

@brief Find Nth hex byte sequence occurrence in a file
@param args_str
- Arg 0: File path as string (haystack)
- Arg 1: Hex string to search for
- Arg 2: N (1-based)

fs_find_nth_str_occurrence

Field Value
Function TCMDEXEC_fs_find_nth_str_occurrence
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. File path as string (haystack)
  2. Needle string to search for
  3. N (1-based)

Full docstring:

@brief Find Nth string occurrence in a file
@param args_str
- Arg 0: File path as string (haystack)
- Arg 1: Needle string to search for
- Arg 2: N (1-based)

fs_format_storage

Field Value
Function TCMDEXEC_fs_format_storage
Number of Arguments 0
Readiness Level FOR_RECOVERY_OR_EXPERT

Full docstring:

@brief Format the LittleFS storage. ERASES ALL FILES. Unmounts the filesystem if necessary.
@return LFS errror code from LFS_format().

fs_get_filesystem_stats_json

Field Value
Function TCMDEXEC_fs_get_filesystem_stats_json
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Generate a JSON string containing filesystem stats and debugging info.
@param args_str No arguments.
@return 0 on success, 1 on error.
@note Used space may be approximate, due to the nature of LittleFS Copy-on-Write (COW).

fs_list_directory

Field Value
Function TCMDEXEC_fs_list_directory
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. Root Directory path as string
  2. (Offset) Number of entries to skip at the beginning
  3. (Count) Number entries to display

Full docstring:

@brief Telecommand: List all the files and directories within a given directory via log messages.
@note The directory contents are each listed in separate log messages. Logging must be enabled separately.
@note On success, the telecommand response is empty. Recommended to use `fs_list_directory_json` generally.
@param args_str
- Arg 0: Root Directory path as string
- Arg 1: (Offset) Number of entries to skip at the beginning
- Arg 2: (Count) Number entries to display

fs_list_directory_json

Field Value
Function TCMDEXEC_fs_list_directory_json
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. Root Directory path as string
  2. (Offset) Number of entries to skip at the beginning
  3. (Count) Number entries to display

Full docstring:

@brief Telecommand: List all the files and directories within a given directory, as a JSON dict (key are paths, values are sizes)
@param args_str
- Arg 0: Root Directory path as string
- Arg 1: (Offset) Number of entries to skip at the beginning
- Arg 2: (Count) Number entries to display
@note In the resulting JSON, the JSON value of directories is "null".

fs_make_directory

Field Value
Function TCMDEXEC_fs_make_directory
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. Directory Name as string (e.g., "/dir1", "/dir1/subdir1")

Full docstring:

@brief Telecommand: Create a directory
@param args_str
- Arg 0: Directory Name as string (e.g., "/dir1", "/dir1/subdir1")

fs_mount

Field Value
Function TCMDEXEC_fs_mount
Number of Arguments 0
Readiness Level FOR_OPERATION

fs_read_file_hex

Field Value
Function TCMDEXEC_fs_read_file_hex
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. File path as string
  2. Start offset (bytes). Nominally, pick 0.
  3. Length to read (bytes). 0 to read max.

Full docstring:

@brief Reads a file from LittleFS, and responds with its contents as 2-digit hex bytes (no spaces).
@param args_str
- Arg 0: File path as string
- Arg 1: Start offset (bytes). Nominally, pick 0.
- Arg 2: Length to read (bytes). 0 to read max.
@return 0 on success, >0 on error

fs_read_file_sha256_hash_json

Field Value
Function TCMDEXEC_fs_read_file_sha256_hash_json
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. File path as string
  2. Start offset (bytes). Nominally, pick 0.
  3. Length to read (bytes). 0 to read max.

Full docstring:

@brief Calculates the SHA256 hash of a file in LittleFS and returns it as a little-endian hex string.
@param args_str
- Arg 0: File path as string
- Arg 1: Start offset (bytes). Nominally, pick 0.
- Arg 2: Length to read (bytes). 0 to read max.
@return 0 on success, >0 on error

fs_read_text_file

Field Value
Function TCMDEXEC_fs_read_text_file
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. File path as string
  2. Start offset (bytes). Nominally, pick 0.
  3. Length to read (bytes). 0 to read max.

Full docstring:

@brief Reads a file from LittleFS, and responds with its contents as a string.
@param args_str
- Arg 0: File path as string
- Arg 1: Start offset (bytes). Nominally, pick 0.
- Arg 2: Length to read (bytes). 0 to read max.
@return 0 on success, >0 on error

fs_unmount

Field Value
Function TCMDEXEC_fs_unmount
Number of Arguments 0
Readiness Level FOR_OPERATION

fs_write_file_hex

Field Value
Function TCMDEXEC_fs_write_file_hex
Number of Arguments 3
Readiness Level FOR_OPERATION

Arguments:

  1. File path as string
  2. Offset within the file to start writing (uint64)
  3. Hex string to write to file (e.g., "DEADBEEF" or "DE AD BE EF")

Full docstring:

@brief Telecommand: Write hex data to a file in LittleFS with offset support
@param args_str
- Arg 0: File path as string
- Arg 1: Offset within the file to start writing (uint64)
- Arg 2: Hex string to write to file (e.g., "DEADBEEF" or "DE AD BE EF")
@note The maximum number of bytes that can be written is 105 bytes

fs_write_file_str

Field Value
Function TCMDEXEC_fs_write_file_str
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. File path as string
  2. String to write to file (up to 512 bytes)

Full docstring:

@brief Telecommand: Write data to a file in LittleFS
@param args_str
- Arg 0: File path as string
- Arg 1: String to write to file (up to 512 bytes)

get_all_system_thermal_info

Field Value
Function TCMDEXEC_get_all_system_thermal_info
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Get a variety of system thermal info as JSON.
@param args_str No arguments.
@return 0 on success.
@note Fields include OBC temp, antenna temps, solar panel generation, battery info.
@note The EPS_CHANNEL_3V3_UHF_ANTENNA_DEPLOY channel is powered off after,
even if it was powered on previously. Totally safe, but just an FYI.

get_system_time

Field Value
Function TCMDEXEC_get_system_time
Number of Arguments 0
Readiness Level FOR_OPERATION

gnss_disable_firehose_storage_mode

Field Value
Function TCMDEXEC_gnss_disable_firehose_storage_mode
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Disables the GNSS firehose storage mode (closes the firehose file).
@param args_str No args.
@return 0: Success, >0: Failure
@note This telecommand does not control EPS power. You must disable the GNSS power afterwards.

gnss_enable_firehose_storage_mode

Field Value
Function TCMDEXEC_gnss_enable_firehose_storage_mode
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. File name as a string

Full docstring:

@brief Enables storing data from GNSS into a file.
@param args_str
- Arg 0: File name as a string
@return 0: Success, >0: Failure
@details This feature is meant to be used in combination with the "log bestxyza ontime <seconds>" GNSS commands.
@example Enable power, enable "ontime" logs in the GNSS (using gnss_send_cmd_ascii), then enable this mode.
@note This telecommand does not control EPS power. You must enable the GNSS power first.

gnss_send_cmd_ascii

Field Value
Function TCMDEXEC_gnss_send_cmd_ascii
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. Log command to be sent to GNSS eg "log bestxyza once" (string)

Full docstring:

@brief Send a command to the GNSS and receive the response as ASCII.
@param args_str
- Arg 0: Log command to be sent to GNSS eg "log bestxyza once" (string)
@param response_output_buf The buffer to write the response to
@param response_output_buf_len The maximum length of the response_output_buf (its size)
@return 0 on success, > 0 error

gnss_send_cmd_ascii_get_response_hex

Field Value
Function TCMDEXEC_gnss_send_cmd_ascii_get_response_hex
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. Log command to be sent to GNSS eg "log bestxyzb once" (string)

Full docstring:

@brief Send a command to the GNSS (text) and receive the response as hex.
@param args_str
- Arg 0: Log command to be sent to GNSS eg "log bestxyzb once" (string)
@param response_output_buf The buffer to write the response to (output as hex)
@param response_output_buf_len The maximum length of the response_output_buf (its size)
@return 0 on success, > 0 error

hello_world

Field Value
Function TCMDEXEC_hello_world
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief A simple telecommand that responds with "Hello, world!" (log message and TCMD response)
@param args_str No arguments expected
@param response_output_buf The buffer to write the response to
@param response_output_buf_len The maximum length of the response_output_buf (its size)
@return 0 if successful, >0 if an error occurred (but hello_world can't return an error)

log_report_all_sink_enabled_states

Field Value
Function TCMDEXEC_log_report_all_sink_enabled_states
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Report all LOG sink enable states

log_report_all_system_file_logging_states

Field Value
Function TCMDEXEC_log_report_all_system_file_logging_states
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Telecommand: Report all LOG subsystem file logging states

log_report_messages_from_memory

Field Value
Function TCMDEXEC_log_report_messages_from_memory
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. Offset of first log message to report (0 = most recent)
  2. Number of log messages to report (or 0 for all messages)

Full docstring:

@brief Telecommand: Report log messages from memory into response_output_buf (offset + count style)
@param args_str
- Arg 0: Offset of first log message to report (0 = most recent)
- Arg 1: Number of log messages to report (or 0 for all messages)
@note If offset is >= memory table size, offset is set to 0. If count is > memory table size, count is set to memory table size.

log_report_n_latest_messages_from_memory

Field Value
Function TCMDEXEC_log_report_n_latest_messages_from_memory
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. Number of latest log messages to report

Full docstring:

@brief Telecommand: Report the N latest log messages into response_output_buf
@param args_str
- Arg 0: Number of latest log messages to report
@note Recommended to use `log_report_messages_from_memory` instead.

log_set_sink_debugging_messages_state

Field Value
Function TCMDEXEC_log_set_sink_debugging_messages_state
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. Sink enum
  2. State 0: disable debug messages, 1: enable debug messages

Full docstring:

@brief Telecommand: Enable or disable debugging messages for LOG sink
@param args_str
- Arg 0: Sink enum
- Arg 1: State 0: disable debug messages, 1: enable debug messages
@details FrontierSat LOG sinks
LOG_SINK_UHF_RADIO = 1
LOG_SINK_FILE = 2
LOG_SINK_UMBILICAL_UART = 4

log_set_sink_enabled_state

Field Value
Function TCMDEXEC_log_set_sink_enabled_state
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. Sink enum value
  2. Enabled? 0: disable sink, 1: enable sink

Full docstring:

@brief Telecommand: Set a LOG sink's enabled state
@param args_str
- Arg 0: Sink enum value
- Arg 1: Enabled? 0: disable sink, 1: enable sink
@details FrontierSat LOG sinks
LOG_SINK_UHF_RADIO = 1
LOG_SINK_FILE = 2
LOG_SINK_UMBILICAL_UART = 4

log_set_system_debugging_messages_state

Field Value
Function TCMDEXEC_log_set_system_debugging_messages_state
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. Subsystem enum
  2. State 0: disable debug messages, 1: enable debug messages

Full docstring:

@brief Telecommand: Enable or disable debugging messages for LOG subsystem
@param args_str
- Arg 0: Subsystem enum
- Arg 1: State 0: disable debug messages, 1: enable debug messages
@details FrontierSat LOG subsystems
LOG_SYSTEM_OBC = 1
LOG_SYSTEM_UHF_RADIO = 2
LOG_SYSTEM_UMBILICAL_UART = 4
LOG_SYSTEM_GNSS = 8
LOG_SYSTEM_MPI = 16
LOG_SYSTEM_EPS = 32
LOG_SYSTEM_BOOM = 64
LOG_SYSTEM_ADCS = 128
LOG_SYSTEM_LFS = 256
LOG_SYSTEM_FLASH = 512
LOG_SYSTEM_ANTENNA_DEPLOY = 1024
LOG_SYSTEM_LOG = 2048
LOG_SYSTEM_TELECOMMAND = 4096
LOG_SYSTEM_UNIT_TEST = 8192

log_set_system_file_logging_enabled_state

Field Value
Function TCMDEXEC_log_set_system_file_logging_enabled_state
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. Subsystem enum value
  2. Enabled? 0: disable file logging, 1: enable file logging

Full docstring:

@brief Telecommand: Set a LOG subsystem's file logging enabled state
@param args_str
- Arg 0: Subsystem enum value
- Arg 1: Enabled? 0: disable file logging, 1: enable file logging
@details FrontierSat LOG subsystems
LOG_SYSTEM_OBC = 1
LOG_SYSTEM_UHF_RADIO = 2
LOG_SYSTEM_UMBILICAL_UART = 4
LOG_SYSTEM_GNSS = 8
LOG_SYSTEM_MPI = 16
LOG_SYSTEM_EPS = 32
LOG_SYSTEM_BOOM = 64
LOG_SYSTEM_ADCS = 128
LOG_SYSTEM_LFS = 256
LOG_SYSTEM_FLASH = 512
LOG_SYSTEM_ANTENNA_DEPLOY = 1024
LOG_SYSTEM_LOG = 2048
LOG_SYSTEM_TELECOMMAND = 4096
LOG_SYSTEM_UNIT_TEST = 8192

log_set_system_severity_mask

Field Value
Function TCMDEXEC_log_set_system_severity_mask
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. Subsystem enum
  2. severity mask

Full docstring:

@brief Telecommand: set the severity levels that a system will log
@param args_str
- Arg 0: Subsystem enum
- Arg 1: severity mask
@details Allows fine-grained control over what severities a subsystem will log
FrontierSat subsystems
LOG_SYSTEM_OBC = 1
LOG_SYSTEM_UHF_RADIO = 2
LOG_SYSTEM_UMBILICAL_UART = 4
LOG_SYSTEM_GNSS = 8
LOG_SYSTEM_MPI = 16
LOG_SYSTEM_EPS = 32
LOG_SYSTEM_BOOM = 64
LOG_SYSTEM_ADCS = 128
LOG_SYSTEM_LFS = 256
LOG_SYSTEM_FLASH = 512
LOG_SYSTEM_ANTENNA_DEPLOY = 1024
LOG_SYSTEM_LOG = 2048
LOG_SYSTEM_TELECOMMAND = 4096
LOG_SYSTEM_UNIT_TEST = 8192
LOG severity
LOG_SEVERITY_DEBUG = 1
LOG_SEVERITY_NORMAL = 2
LOG_SEVERITY_WARNING = 4
LOG_SEVERITY_ERROR = 8
LOG_SEVERITY_CRITICAL = 16

mpi_demo_tx_to_mpi

Field Value
Function TCMDEXEC_mpi_demo_tx_to_mpi
Number of Arguments 0
Readiness Level GROUND_USAGE_ONLY

Full docstring:

@brief Sends a message over UART to the MPI.
@param args_str No args.
@param response_output_buf The buffer to write the response to
@param response_output_buf_len The maximum length of the response_output_buf (its size)
@return 0: Success, >0: Failure

mpi_disable_active_mode

Field Value
Function TCMDEXEC_mpi_disable_active_mode
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Sets the state to not send or receive data from MPI.
@param args_str No args.
@param response_output_buf The buffer to write the response to
@param response_output_buf_len The maximum length of the response_output_buf (its size)
@return 0: Success, >0: Failure

mpi_enable_active_mode

Field Value
Function TCMDEXEC_mpi_enable_active_mode
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. File name as a string

Full docstring:

@brief Enables systems to start receiving data actively from MPI and storing using LFS.
@param args_str
- Arg 0: File name as a string
@param response_output_buf The buffer to write the response to
@param response_output_buf_len The maximum length of the response_output_buf (its size)
@return 0: Success, >0: Failure

mpi_send_command_get_response_hex

Field Value
Function TCMDEXEC_mpi_send_command_get_response_hex
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. Hex-encoded string representing the configuration command + arguments (IF ANY) to send to the MPI, INCLUDING 'TC' (0x54 0x43)

Full docstring:

@brief Send a configuration command & params (IF ANY) to the MPI encoded in hex
@param args_str
- Arg 0: Hex-encoded string representing the configuration command + arguments (IF ANY) to send to the MPI, INCLUDING 'TC' (0x54 0x43)
@param response_output_buf The buffer to write the response to
@param response_output_buf_len The maximum length of the response_output_buf (its size)
@return 0: Success, >0 error code

mpi_set_transceiver_mode

Field Value
Function TCMDEXEC_mpi_set_transceiver_mode
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. The target mode - "MISO" (from MPI), "MOSI" (to MPI), "DUPLEX", or anything else disables it

Full docstring:

@brief Manually sets the MPI's UART transceiver state.
@param args_str
- Arg 0: The target mode - "MISO" (from MPI), "MOSI" (to MPI), "DUPLEX", or anything else disables it
@param response_output_buf The buffer to write the response to
@param response_output_buf_len The maximum length of the response_output_buf (its size)
@return 0: Success, >0: Failure
@note Nominally, not required. Useful for manually sending UART messages with `uart_send_hex()` tcmd.

obc_adc_read_vbat_voltage

Field Value
Function TCMDEXEC_obc_adc_read_vbat_voltage
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Read the battery voltage using the ADC. Returns the result in mV. Voltage divider ratio is already applied.
@param args_str No arguments.
@return

obc_firmware_version

Field Value
Function TCMDEXEC_obc_firmware_version
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Get the currently-running OBC Firmware Version (build date/time, comment).
@param args_str No arguments.
@return 0 on success (cannot fail).

obc_get_rbf_state

Field Value
Function TCMDEXEC_obc_get_rbf_state
Number of Arguments 0
Readiness Level FOR_OPERATION

obc_read_temperature

Field Value
Function TCMDEXEC_obc_read_temperature
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Reads the temperature from the STDS75DS2F in centi-Celsius.
@return 0 if successful, >0 if error.
@note Temperature range is -55 to 125 degrees celsius with +/- 3 degrees celsius accuracy over the whole range.

obc_read_temperature_complex

Field Value
Function TCMDEXEC_obc_read_temperature_complex
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. Precision we want the temperature to be (9-12 bits).

Full docstring:

@brief Reads the temperature from the STDS75DS2F and stores it in the provided variable temperature.
Temperature range is -55 to 125 degrees celsius with +/- 3 degrees celsius accuracy over the whole range.
@param args_str
- Arg 0: Precision we want the temperature to be (9-12 bits).
@return 0 if successful, 1 if error.
@note There are better ways to get the temperature.

obc_set_stm32_sysclk_to_hse

Field Value
Function TCMDEXEC_obc_set_stm32_sysclk_to_hse
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Change the STM32 SYSCLK clock from the HSI to the HSE.
@param args_str No arguments.
@return 0 on success.
@details On bootup, the OBC will use the HSI as its clock, as the HSE may have a PCB design
defect, where the output capacitance of the HSE clock is too high.
Running this command will switch the SYSCLK from the High-Speed Internal (HSI) at 16 MHz
to the probably-fine-but-maybe-questionable High-Speed External (HSE) clock at 25 MHz.
The main benefit is that the HSE clock is a Temperature-Compensated Crystal Oscillator (TXCO),
and thus maintains the system clock much more reliably.
@note To switch back to the HSI, simply reboot.
@note If the HSE fails, the Independent Watchdog will reset. Thus, this reconfiguration is low-risk.

reboot

Field Value
Function TCMDEXEC_reboot
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Reboot the OBC. Unmounts the filesystem first for safety.
@param args_str
@param response_output_buf
@param response_output_buf_len
@return

run_all_unit_tests

Field Value
Function TCMDEXEC_run_all_unit_tests
Number of Arguments 0
Readiness Level FOR_OPERATION

scan_i2c_bus

Field Value
Function TCMDEXEC_scan_i2c_bus
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. I2C bus to scan (1-4)

Full docstring:

@brief Scans the I2C bus for devices. Prints out the addresses of devices found.
@param args_str
- Arg 0: I2C bus to scan (1-4)
@return 0 if successful, 1 if error.

scan_i2c_bus_verbose

Field Value
Function TCMDEXEC_scan_i2c_bus_verbose
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. I2C bus to scan (1-4)

Full docstring:

@brief Scans the I2C bus for devices. Prints out a grid of all devices, with addresses for those found.
@param args_str
- Arg 0: I2C bus to scan (1-4)
@return 0 if successful, 1 if error.

set_eps_time_based_on_obc_time

Field Value
Function TCMDEXEC_set_eps_time_based_on_obc_time
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Sync's eps time to obc time (+/- 1 second)
@return 0 on success, >0 on failure.

set_obc_time_based_on_eps_time

Field Value
Function TCMDEXEC_set_obc_time_based_on_eps_time
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Sync's obc time to eps time (+/- 1 second)
@return 0 on success, >0 on failure.

set_obc_time_based_on_gnss_pps

Field Value
Function TCMDEXEC_set_obc_time_based_on_gnss_pps
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Corrects the OBC time based on the GNSS PPS signal. Very precise.
@param args_str No arguments.
@return 0 on success, >0 on failure.
@note Requires that the GNSS receiver's EPS channel is already powered on, and that a time fix is ready.
@note Requires an accurate GNSS time fix, and requires that `set_obc_time_based_on_gnss_time` has been
run recently (or that the OBC time is correct within 500ms based on another time source).

set_obc_time_based_on_gnss_time

Field Value
Function TCMDEXEC_set_obc_time_based_on_gnss_time
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Sync OBC time based on the GNSS time report (+/- ~100ms, based on system latency).
@param args_str No arguments.
@return 0 on success, >0 on failure.
@note Requires that the GNSS receiver's EPS channel is already powered on, and that a time fix is ready.

set_system_time

Field Value
Function TCMDEXEC_set_system_time
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. Unix epoch time in milliseconds (uint64_t)

Full docstring:

@brief Set the system time to the provided Unix epoch time in milliseconds
@param args_str
- Arg 0: Unix epoch time in milliseconds (uint64_t)
@return 0 if successful, 1 if error
@note This function accounts for the unpredictable delay between telecommand reception and execution.

set_system_time_approx

Field Value
Function TCMDEXEC_set_system_time_approx
Number of Arguments 1
Readiness Level FOR_OPERATION

Arguments:

  1. Unix epoch time in milliseconds (uint64_t)

Full docstring:

@brief Set the system time to the provided Unix epoch time in milliseconds.
@param args_str
- Arg 0: Unix epoch time in milliseconds (uint64_t)
@return 0 if successful, 1 if error
@note This function is the naive/basic implementation that doesn't account for a delay
between telecommand reception and execution.

stm32_internal_flash_bank_erase

Field Value
Function TCMDEXEC_stm32_internal_flash_bank_erase
Number of Arguments 1
Readiness Level HIGH_RISK_AND_UNSAFE

Arguments:

  1. Flash Bank to erase (1 or 2)

Full docstring:

@brief Erase an entire flash bank
@param args_str
- Arg 0: Flash Bank to erase (1 or 2)
@return 0 on success, > 0 on error

stm32_internal_flash_calculate_sha256

Field Value
Function TCMDEXEC_stm32_internal_flash_calculate_sha256
Number of Arguments 2
Readiness Level FOR_RECOVERY_OR_EXPERT

Arguments:

  1. Start address in flash memory as uint32_t
  2. Number of bytes to hash as uint32_t

Full docstring:

@brief Calculates the SHA256 hash of a range of STM32 internal flash.
@param args_str
- Arg 0: Start address in flash memory as uint32_t
- Arg 1: Number of bytes to hash as uint32_t
@param response_output_buf Outputs the SHA256 hash as hex (wrapped in JSON)
@return 0 on success, >0 on error
@note Common useful values:
- Start of BANK_1 (address): 0x08000000 = 134217728
- Start of BANK_2 (address): 0x08100000 = 135266304
- Length of each bank: 0x100000 = 1048576

stm32_internal_flash_get_active_flash_bank

Field Value
Function TCMDEXEC_stm32_internal_flash_get_active_flash_bank
Number of Arguments 0
Readiness Level HIGH_RISK_AND_UNSAFE

Full docstring:

@brief Prints the active flash bank where the firmware boots from
@param response_output_buf Prints the active bank

stm32_internal_flash_get_option_bytes

Field Value
Function TCMDEXEC_stm32_internal_flash_get_option_bytes
Number of Arguments 0
Readiness Level HIGH_RISK_AND_UNSAFE

Full docstring:

@brief Get the option bytes configuration from the stm32 internal flash memory
@param args_str No args
@return 0 on success, > 0 on error

stm32_internal_flash_page_erase

Field Value
Function TCMDEXEC_stm32_internal_flash_page_erase
Number of Arguments 3
Readiness Level HIGH_RISK_AND_UNSAFE

Arguments:

  1. Flash Bank to erase (1 or 2)
  2. The starting page to erase (0-255 for bank 1, 256-511 for bank 2)
  3. The number of pages to erase (1-256)

Full docstring:

@brief Erase a range of pages in the internal flash bank.
@param args_str
- Arg 0: Flash Bank to erase (1 or 2)
- Arg 1: The starting page to erase (0-255 for bank 1, 256-511 for bank 2)
- Arg 2: The number of pages to erase (1-256)
@return 0 on success, > 0 on error

stm32_internal_flash_read

Field Value
Function TCMDEXEC_stm32_internal_flash_read
Number of Arguments 2
Readiness Level FOR_RECOVERY_OR_EXPERT

Arguments:

  1. The address to start reading from in hex
  2. The number of bytes to read as a uint64_t

Full docstring:

@brief Read data from the internal flash bank
@param args_str
- Arg 0: The address to start reading from in hex
- Arg 1: The number of bytes to read as a uint64_t
@return 0 on success, > 0 on error

stm32_internal_flash_set_active_flash_bank

Field Value
Function TCMDEXEC_stm32_internal_flash_set_active_flash_bank
Number of Arguments 1
Readiness Level HIGH_RISK_AND_UNSAFE

Arguments:

  1. A 1 or 2. 1 to switch to the application present in Flash Bank 1, 2 to switch to the application present in Flash Bank 2

Full docstring:

@brief Given a 1 or 2, switches to the respective flash bank and runs the application stored there if present.
Mostly useful for switching between 2 different version of the firmware (1 will be stored in Flash Bank 1, other will be stored in Flash Bank 2)
@param args_str
- Arg 0: A 1 or 2. 1 to switch to the application present in Flash Bank 1, 2 to switch to the application present in Flash Bank 2
@param response_output_buf Prints error if it occurs
@return 0 on success, > 0 otherwise

stm32_internal_flash_write

Field Value
Function TCMDEXEC_stm32_internal_flash_write
Number of Arguments 2
Readiness Level HIGH_RISK_AND_UNSAFE

Arguments:

  1. Address to start writing from in hex format
  2. The data in hex format to write up to PAGESIZE bytes (0x1000 bytes)

Full docstring:

@brief Write data to the internal flash bank starting from address 0x08100000
@param args_str
- Arg 0: Address to start writing from in hex format
- Arg 1: The data in hex format to write up to PAGESIZE bytes (0x1000 bytes)
@note This telecommand is only for testing purposes, it is purposfully not fully fleshed out
as there is no intention on using this. Update as needed
@return 0 on success, > 0 on error

stm32_internal_flash_write_file_to_internal_flash

Field Value
Function TCMDEXEC_stm32_internal_flash_write_file_to_internal_flash
Number of Arguments 4
Readiness Level HIGH_RISK_AND_UNSAFE

Arguments:

  1. File name to read from LittleFS
  2. Length to read from the file (in bytes). The maximum length to read is 4096 bytes (4kB).
  3. Offset within the file to start reading (in bytes)
  4. Address in internal flash memory to write to (in base 10)

Full docstring:

@brief Telecommand: Write a file to internal flash memory from LittleFS.
@param args_str
- Arg 0: File name to read from LittleFS
- Arg 1: Length to read from the file (in bytes). The maximum length to read is 4096 bytes (4kB).
- Arg 2: Offset within the file to start reading (in bytes)
- Arg 3: Address in internal flash memory to write to (in base 10)
@note To use properly:
- The internal flash memory region must be erased before writing.
- The address must be in the main flash memory region (0x08000000 to 0x081FFFFF).

system_self_check_as_json

Field Value
Function TCMDEXEC_system_self_check_as_json
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief System self-check of all peripherals and systems.
@param args_str No arguments expected
@param response_output_buf Buffer is filled with a JSON list of strings of the FAILING checks
@return 0 regardless; see the response_output_buf for the results of the self-check.
@note Output is a JSON list of the failing checks (as strings). Returns 0 regardless.

system_self_check_failures_as_json

Field Value
Function TCMDEXEC_system_self_check_failures_as_json
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief System self-check of all peripherals and systems.
@param args_str No arguments expected
@param response_output_buf Buffer is filled with a JSON list of strings of the FAILING checks
@return 0 regardless; see the response_output_buf for the results of the self-check.
@note Output is a JSON list of the failing checks (as strings). Returns 0 regardless.

uart_get_errors_json

Field Value
Function TCMDEXEC_uart_get_errors_json
Number of Arguments 0
Readiness Level FOR_OPERATION

uart_get_last_rx_times_json

Field Value
Function TCMDEXEC_uart_get_last_rx_times_json
Number of Arguments 0
Readiness Level FOR_OPERATION

Full docstring:

@brief Get a JSON dict of how long, in ms, SINCE each UART ISR handler was last triggered.
@note Uses placeholder "-99" to mean "never triggered". A value of 50 means that handler was last
triggered 50ms ago.
@note Intended for debugging and testing purposes, but safe to use in flight also.

uart_send_hex

Field Value
Function TCMDEXEC_uart_send_hex
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. UART port name to send data to: MPI, GNSS, CAMERA, EPS (case insensitive)
  2. Data to be sent (bytes specified as hex)

Full docstring:

@brief Send arbitrary commands to a UART peripheral.
@param args_str
- Arg 0: UART port name to send data to: MPI, GNSS, CAMERA, EPS (case insensitive)
- Arg 1: Data to be sent (bytes specified as hex)
@param response_output_buf The buffer to write the response to
@param response_output_buf_len The maximum length of the response_output_buf (its size)
@return 0: Success
@note This function doesn't toggle the EPS power lines for peripherals nor
the MPI's UART transceiver. Ensure they are powered on before using this function.

uart_send_hex_get_response_hex

Field Value
Function TCMDEXEC_uart_send_hex_get_response_hex
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. UART port name to send data to: MPI, GNSS, CAMERA, EPS (case insensitive)
  2. Data to be sent (bytes specified as hex)

Full docstring:

@brief Send arbitrary commands to a UART peripheral, and receive the response.
@param args_str
- Arg 0: UART port name to send data to: MPI, GNSS, CAMERA, EPS (case insensitive)
- Arg 1: Data to be sent (bytes specified as hex)
@param response_output_buf The buffer to write the response to
@param response_output_buf_len The maximum length of the response_output_buf (its size)
@return 0: Success, 1: Error parsing args, 2: Invalid uart port requested, 3: Error transmitting data,
4: Error receiving data, 5: Timeout waiting for response / No response, 6: Peripheral specific error,
7: Unhandled error
@note This function doesn't toggle the EPS power lines for peripherals. Ensure they are powered on before
using this function.
@note The camera UART port does not support receiving data in the function. TX only.

uart_send_str

Field Value
Function TCMDEXEC_uart_send_str
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. UART port name to send data to: MPI, GNSS, CAMERA, EPS (case insensitive)
  2. Data to be sent (bytes specified as a string)

Full docstring:

@brief Send arbitrary commands to a UART peripheral.
@param args_str
- Arg 0: UART port name to send data to: MPI, GNSS, CAMERA, EPS (case insensitive)
- Arg 1: Data to be sent (bytes specified as a string)
@param response_output_buf The buffer to write the response to
@param response_output_buf_len The maximum length of the response_output_buf (its size)
@return 0: Success
@note This function doesn't toggle the EPS power lines for peripherals nor
the MPI's UART transceiver. Ensure they are powered on before using this function.

uart_set_baud_rate

Field Value
Function TCMDEXEC_uart_set_baud_rate
Number of Arguments 2
Readiness Level FOR_OPERATION

Arguments:

  1. UART port name to set the baud rate for: MPI, GNSS, CAMERA, EPS, AX100, DEBUG (case insensitive)
  2. Baud rate to set the STM32 UART peripheral to (in bits per second). Common values are 9600, 115200, 230400, etc.

Full docstring:

@brief Set the STM32 UART peripheral's baud rate to a different value.
@param args_str
- Arg 0: UART port name to set the baud rate for: MPI, GNSS, CAMERA, EPS, AX100, DEBUG (case insensitive)
- Arg 1: Baud rate to set the STM32 UART peripheral to (in bits per second). Common values are 9600, 115200, 230400, etc.
@note This does not command the subsystem device to change its baud rate. This only updates the STM32.
@example If the GNSS receiver does a factory reset, its baud rate is set to a different value. This command
can be used to change the STM32's UART baud rate to match the GNSS receiver's default baud rate to recover it.

Configuration Variables

There are 28 integer and 4 string configuration variables.

Summary Table

# Variable Name Type Default Value
1 `AX100_enable_downlink_inhibited_uart_logs`AX100_enable_downlink_inhibited_uart_logs int 1
2 `AX100_enable_downlink_uart_logs`AX100_enable_downlink_uart_logs int 0
3 `COMMS_beacon_interval_ms`COMMS_beacon_interval_ms int 20000
4 `COMMS_bulk_downlink_delay_per_packet_ms`COMMS_bulk_downlink_delay_per_packet_ms int 208
5 `COMMS_max_duration_without_uplink_before_setting_default_rf_switch_mode_sec`COMMS_max_duration_without_uplink_before_setting_default_rf_switch_mode_sec int 900
6 `COMMS_uptime_to_start_ant_deployment_sec`COMMS_uptime_to_start_ant_deployment_sec int 3600
7 `CONFIG_EPS_enable_uart_debug_print`CONFIG_EPS_enable_uart_debug_print int 0
8 `CONFIG_int_demo_var_1`CONFIG_int_demo_var_1 int 13345
9 `EPS_max_time_deviation_for_sync_ms`EPS_max_time_deviation_for_sync_ms int 2000
10 `EPS_monitor_interval_ms`EPS_monitor_interval_ms int 20000
11 `EPS_monitor_safety_adcs_interval_ms`EPS_monitor_safety_adcs_interval_ms int 20000
12 `EPS_time_sync_period_sec`EPS_time_sync_period_sec int 600
13 `GNSS_write_cmd_mode_data_to_firehose_file`GNSS_write_cmd_mode_data_to_firehose_file int 1
14 `LOG_file_flush_interval_sec`LOG_file_flush_interval_sec int 60
15 `LOG_file_rotation_interval_sec`LOG_file_rotation_interval_sec int 1800
16 `LOG_timestamp_prefix_format`LOG_timestamp_prefix_format int 0
17 `MPI_max_recording_duration_sec`MPI_max_recording_duration_sec int 900
18 `MPI_max_temperature_shutoff_celcius`MPI_max_temperature_shutoff_celcius int 60
19 `STM32_system_reset_interval_sec`STM32_system_reset_interval_sec int 604800
20 `STM32_system_reset_no_uplink_interval_sec`STM32_system_reset_no_uplink_interval_sec int 216000
21 `TASK_heartbeat_period_ms`TASK_heartbeat_period_ms int 10990
22 `TCMD_enqueue_from_agenda_file_interval_ms`TCMD_enqueue_from_agenda_file_interval_ms int 45000
23 `TCMD_enqueue_grace_period_ms`TCMD_enqueue_grace_period_ms int 15000
24 `TCMD_handle_ax100_tcmds_interval_ms`TCMD_handle_ax100_tcmds_interval_ms int 400
25 `TCMD_handle_umbilical_tcmds_interval_ms`TCMD_handle_umbilical_tcmds_interval_ms int 400
26 `TCMD_max_consecutive_burst_execution_size`TCMD_max_consecutive_burst_execution_size int 3
27 `TCMD_require_unique_tssent`TCMD_require_unique_tssent int 0
28 `TCMD_require_valid_sha256`TCMD_require_valid_sha256 int 0
29 `COMMS_beacon_friendly_message_str`COMMS_beacon_friendly_message_str str Hello from CalgaryToSpace FrontierSat
30 `CONFIG_str_demo_var_1`CONFIG_str_demo_var_1 str CONFIG_str_demo_var_1
31 `CONFIG_str_demo_var_2`CONFIG_str_demo_var_2 str CONFIG_str_demo_var_2
32 `TCMD_active_agenda_filename`TCMD_active_agenda_filename str default_tcmd_agenda.txt

Integer Configuration Variable Details

AX100_enable_downlink_inhibited_uart_logs

Field Value
Type int
Default Value 1

Docstring:

@brief When enabled, log messages like "Downlink inhibited: ..." will be sent to the Debug UART.
@note Logs are important to ensure that radio downlinks aren't sent before the antenna is deployed.
These logs get very annoying though, so they can be turned off with this variable.
@note Only useful for configuration in ground testing.

AX100_enable_downlink_uart_logs

Field Value
Type int
Default Value 0

Docstring:

@brief When enabled, the radio packets will be sent to the Debug UART for debugging purposes.
@note Only useful for configuration in ground testing.

COMMS_beacon_interval_ms

Field Value
Type int
Default Value 20000

Docstring:

@brief Interval between basic beacon packets, in ms.
@note Default: 20000 ms = 20 seconds (fastest rate we're globally authorized for).

COMMS_bulk_downlink_delay_per_packet_ms

Field Value
Type int
Default Value 208

Docstring:

@brief The period to wait between downlink packets.
@note A 250-byte packet at 9600 baud takes about 208 ms to transmit.
@example If you reconfigure the AX100 and increase the baudrate of the radio, decrease this value.

COMMS_max_duration_without_uplink_before_setting_default_rf_switch_mode_sec

Field Value
Type int
Default Value 900

Docstring:

@brief If the satellite goes this long without receiving an uplink, the
`COMMS_rf_switch_control_mode` will be set back to `TOGGLE_BEFORE_EVERY_BEACON`.

COMMS_uptime_to_start_ant_deployment_sec

Field Value
Type int
Default Value 3600

Docstring:

@brief The uptime, as defined in the Launch Provider ICD, at which the antennas should be deployed.

CONFIG_EPS_enable_uart_debug_print

Field Value
Type int
Default Value 0

Docstring:

@brief When enabled, the EPS's raw data is sent to the debug UART.

CONFIG_int_demo_var_1

Field Value
Type int
Default Value 13345

Docstring:

@brief Does nothing. Used for testing configuration variables.

EPS_max_time_deviation_for_sync_ms

Field Value
Type int
Default Value 2000

Docstring:

@brief If the OBC time and EPS time differ by more than this value, the OBC time will be set based on the EPS time.
@note Default: 2000 ms = 2 seconds.
@note Strongly related to EPS_time_sync_period_sec.
@note Recommendation: Do not set to < 1500-2000ms, as the EPS time is only granular to 1 second.

EPS_monitor_interval_ms

Field Value
Type int
Default Value 20000

Docstring:

@brief The interval at which the `EPS_monitor_and_disable_overcurrent_channels` task runs.

EPS_monitor_safety_adcs_interval_ms

Field Value
Type int
Default Value 20000

Docstring:

@brief Check whether the EPS is in safety mode. If it's in safety mode, disable all EPS power channels.
@note Default: 20000 ms = 20 seconds
@note Set to 0 to disable this feature.

EPS_time_sync_period_sec

Field Value
Type int
Default Value 600

Docstring:

@brief How frequently to set the OBC time based on the EPS time if the time divergence is >2 seconds.
@note Default: 600 seconds = 10 minutes.
@note Set to 0 to disable time syncing.

GNSS_write_cmd_mode_data_to_firehose_file

Field Value
Type int
Default Value 1

Docstring:

@brief Boolean. Whether to store command-mode GNSS data to the firehose file.
@details If GNSS firehose storage mode is enabled, and the GNSS_send_cmd_get_response
function is used (e.g., via the `gnss_send_cmd_ascii` command), this config variable
controls whether the command-mode response data is written to the firehose file.

LOG_file_flush_interval_sec

Field Value
Type int
Default Value 60

Docstring:

@brief Interval in seconds at which to flush the log file to the filesystem.
@note Nominal: 60 seconds = 1 minute.

LOG_file_rotation_interval_sec

Field Value
Type int
Default Value 1800

Docstring:

@brief Interval in seconds where a new dated log file is created, and the old file is closed
@note Nominal: 1800 seconds = 30 minutes.

LOG_timestamp_prefix_format

Field Value
Type int
Default Value 0

Docstring:

@brief Format for the timestamp prefix.
@details Options:
- 0=synctime+offset
- 1=ISO8601-like datetime with ms
- 2=ISO8601-like datetime without ms
- other=synctime+offset (fallback)
@note Configurable with the configuration telecommand.
@note Could be an enum in a perfect world, but using int for speed of implementation.

MPI_max_recording_duration_sec

Field Value
Type int
Default Value 900

Docstring:

@brief Maximum duration for MPI data recording in seconds.
@note Set this value to 0 (via configuration) to disable the duration limit.
@note This configuration variable is designed to prevent against an operator failing to
schedule a stop telecommand for MPI data recording.

MPI_max_temperature_shutoff_celcius

Field Value
Type int
Default Value 60

Docstring:

@brief If the MPI exceeds this value during data recording, recording will be disabled.
@note Set this value to 0 (via configuration) to disable the temperature shutoff feature.

STM32_system_reset_interval_sec

Field Value
Type int
Default Value 604800

Docstring:

@brief If the system uptime exceeds this value, the system will reset (reboot).
@note This is to recover the system in case of a radiation-induced hang or other invalid state.
@note Default: 604800 sec = 7 days.
@note Set to 0 to disable this feature.

STM32_system_reset_no_uplink_interval_sec

Field Value
Type int
Default Value 216000

Docstring:

@brief If the duration since an AX100 uplink telecommand exceeds this value, the system will reset (reboot).
@note This is to recover the system in case of a radiation-induced hang or other invalid state.
@note Default: 216000 sec = 2.5 days.
@note Set to 0 to disable this feature.

TASK_heartbeat_period_ms

Field Value
Type int
Default Value 10990

Docstring:

@brief The period of the heartbeat task, in milliseconds. 0 to disable.

TCMD_enqueue_from_agenda_file_interval_ms

Field Value
Type int
Default Value 45000

Docstring:

@brief Interval between enqueuing telecommands from the agenda file, in ms.
@note Default: 45000 ms = 45 seconds

TCMD_enqueue_grace_period_ms

Field Value
Type int
Default Value 15000

Docstring:

@brief When enqueuing telecommands from a file, gracefully handle time resync values <= this value.
@note Default: 15000 ms = 15 seconds
@note If the time resync is more than this value, then a chunk of the agenda file will be discarded,
or commands may be re-enqueued and re-executed.

TCMD_handle_ax100_tcmds_interval_ms

Field Value
Type int
Default Value 400

Docstring:

@brief The interval between handling telecommands (parsing and adding to agenda) uplinked via the UHF radio.
Note: Does not include execution.
Decrease this to 200ms-250ms (or lower) if bulk uplinking large amounts of data (e.g., firmware).

TCMD_handle_umbilical_tcmds_interval_ms

Field Value
Type int
Default Value 400

Docstring:

@brief The interval between handling telecommands (parsing and adding to agenda) from the umbilical UART.
@details Any value from 1ms to millions is reasonable. 20ms is a good value for optimized bulk uplink.
Note: Does not include execution.

TCMD_max_consecutive_burst_execution_size

Field Value
Type int
Default Value 3

Docstring:

@brief Execute this many telecommands back-to-back when they come due, if they're available.
@details Increase this past 3 to execute commands faster (e.g., during bulk uplink).
@note Default: 3.

TCMD_require_unique_tssent

Field Value
Type int
Default Value 0

Docstring:

@brief Boolean. Whether to enforce unique `@tssent` suffix tag value for all telecommands.
@details When enabled, telecommands with duplicate `@tssent` suffixes will be rejected.
@note When enabled, telecommands without a `@tssent` value will be rejected.
@note 1 = require, 0 = don't require

TCMD_require_valid_sha256

Field Value
Type int
Default Value 0

Docstring:

@brief Boolean. When 1, the telecommand parser will require a valid SHA256 hash in the telecommand string.

String Configuration Variable Details

  • The Max Length values below are the number of normal ASCII characters you can put in the string.
    • The allocated C-string size is one larger than the value here to account for the null terminator.
  • Emojis are generally supported (e.g., in the friendly message), but count as 4 characters.

COMMS_beacon_friendly_message_str

Field Value
Type str
Max Length 41
Default Value Hello from CalgaryToSpace FrontierSat

CONFIG_str_demo_var_1

Field Value
Type str
Max Length 24
Default Value CONFIG_str_demo_var_1

CONFIG_str_demo_var_2

Field Value
Type str
Max Length 49
Default Value CONFIG_str_demo_var_2

TCMD_active_agenda_filename

Field Value
Type str
Max Length 199
Default Value default_tcmd_agenda.txt

Docstring:

@brief The file path of the agenda file to load upcoming telecommands from.
@warning While a default agenda is set, it is critical to understand that you SHOULD NOT
fill this agenda file unless absolutely necessary. If you create and fill an agenda
with this default name, it will run on every boot, thus defeating the purpose of
reboots being a stable, fail-safe startup mode.
@note If system stability ends up being super bad, you can put commands in the default to run at
the earth poles on subsequent reboots. That's probably the only time you should ever
create this file though!
@note Nominally, put the agenda in another random file, then update this config string to point
to that other file. That way, on reboot, the agenda stops running (as a fail-safe)!
@note Set this to "DISABLED" (case-sensitive) to disable this feature entirely.