From 9a416c605b740eab223a7931275dff76cb9257e1 Mon Sep 17 00:00:00 2001 From: Aaron Chan Date: Thu, 26 Mar 2026 11:52:12 -0400 Subject: [PATCH 01/11] Add kconfig and update autocoders with openrocket trigger support --- .../sensor_module/include/c_sensor_module.h | 8 +++++ app/backplane/sensor_module/sim.conf | 2 +- .../sensor_module/src/c_sensor_module.cpp | 3 ++ data/autocoder_inputs/network_defs.yaml | 2 ++ drivers/sensor/openrocket/Kconfig | 12 +++++++- .../sensor/openrocket/openrocket_sensors.c | 29 ++++++++++++++++++- .../sensor/openrocket/openrocket_sensors.h | 9 ++++++ 7 files changed, 62 insertions(+), 3 deletions(-) diff --git a/app/backplane/sensor_module/include/c_sensor_module.h b/app/backplane/sensor_module/include/c_sensor_module.h index 25fc13248..52e78b107 100644 --- a/app/backplane/sensor_module/include/c_sensor_module.h +++ b/app/backplane/sensor_module/include/c_sensor_module.h @@ -50,6 +50,10 @@ class CSensorModule : public CProjectConfiguration { static constexpr int telemetryBroadcastPort = NNetworkDefs::SENSOR_MODULE_TELEMETRY_PORT; static constexpr int telemetryDownlinkPort = NNetworkDefs::SENSOR_MODULE_DOWNLINK_DATA_PORT; static constexpr int alertPort = NNetworkDefs::ALERT_PORT; +#ifdef CONFIG_OPENROCKET_MANUAL_LAUNCH_TRIGGER +#include "c_ork_launch_trigger_tenant.h" + static constexpr int orkLaunchTriggerPort = NNetworkDefs::SENSOR_MODULE_ORK_LAUNCH_TRIGGER_PORT; +#endif // Devices CRtc rtc{*DEVICE_DT_GET(DT_ALIAS(rtc))}; @@ -82,6 +86,10 @@ class CSensorModule : public CProjectConfiguration { sensorDataLogMessagePort, K_SECONDS(3), 64}; +#ifdef CONFIG_OPENROCKET_MANUAL_LAUNCH_TRIGGER + COrkLaunchTriggerTenant orkLaunchTriggerTenant{"Ork Launch Trigger Tenant", ipAddrStr.c_str(), + orkLaunchTriggerPort}; +#endif // Tasks CTask networkTask{"Networking Task", 15, 3072, 10}; diff --git a/app/backplane/sensor_module/sim.conf b/app/backplane/sensor_module/sim.conf index 995de3af1..70ecf64cf 100644 --- a/app/backplane/sensor_module/sim.conf +++ b/app/backplane/sensor_module/sim.conf @@ -1,11 +1,11 @@ # Sensors CONFIG_OPENROCKET_SENSORS=y CONFIG_OPENROCKET_DATA_FILE="../../../data/orksim_csv/l1.csv" -CONFIG_OPENROCKET_MS_BEFORE_LAUNCH=10000 CONFIG_OPENROCKET_SCALAR_TYPE_DOUBLE=y CONFIG_OPENROCKET_EVENT_LOG=y CONFIG_OPENROCKET_IMU=y CONFIG_OPENROCKET_BAROMETER=y +CONFIG_OPENROCKET_MANUAL_LAUNCH_TRIGGER=y CONFIG_RTC=y CONFIG_RTC_EMUL=y diff --git a/app/backplane/sensor_module/src/c_sensor_module.cpp b/app/backplane/sensor_module/src/c_sensor_module.cpp index 6ec72e16c..78ee35734 100644 --- a/app/backplane/sensor_module/src/c_sensor_module.cpp +++ b/app/backplane/sensor_module/src/c_sensor_module.cpp @@ -26,6 +26,9 @@ void CSensorModule::AddTenantsToTasks() { networkTask.AddTenant(broadcastTenant); networkTask.AddTenant(downlinkTelemTenant); networkTask.AddTenant(udpAlertTenant); +#ifdef CONFIG_OPENROCKET_MANUAL_LAUNCH_TRIGGER + networkTask.AddTenant(orkLaunchTriggerTenant); +#endif // Sensing sensingTask.AddTenant(sensingTenant); diff --git a/data/autocoder_inputs/network_defs.yaml b/data/autocoder_inputs/network_defs.yaml index 02fdd065f..8701725ac 100644 --- a/data/autocoder_inputs/network_defs.yaml +++ b/data/autocoder_inputs/network_defs.yaml @@ -37,6 +37,8 @@ modules: id: 3 base_port: 13000 port_offsets: + ork_launch_trigger: + port_number: 7 downlink_data: port_number: 20 telemetry: diff --git a/drivers/sensor/openrocket/Kconfig b/drivers/sensor/openrocket/Kconfig index fabbcc155..f75178e0e 100644 --- a/drivers/sensor/openrocket/Kconfig +++ b/drivers/sensor/openrocket/Kconfig @@ -35,11 +35,21 @@ if OPENROCKET_SENSORS config OPENROCKET_MS_BEFORE_LAUNCH int "OpenRocket ms before launch" - depends on OPENROCKET_SENSORS + depends on OPENROCKET_SENSORS && !OPENROCKET_MANUAL_LAUNCH_TRIGGER default 1000 help Milliseconds to delay the launch from the device booting. + config OPENROCKET_MANUAL_LAUNCH_TRIGGER + bool "OpenRocket Manual Launch Trigger" + depends on OPENROCKET_SENSORS + default n + help + When enabled, the simulation does not start on a fixed delay after boot. + Instead, sensor reads return pad values until or_trigger_launch() is called + (e.g. from a ground station command). The event log thread also waits for + the trigger before beginning. + config OPENROCKET_NOISE bool "OpenRocket Sensor Noise" depends on OPENROCKET_SENSORS diff --git a/drivers/sensor/openrocket/openrocket_sensors.c b/drivers/sensor/openrocket/openrocket_sensors.c index 93a9750eb..b054e60f7 100644 --- a/drivers/sensor/openrocket/openrocket_sensors.c +++ b/drivers/sensor/openrocket/openrocket_sensors.c @@ -28,9 +28,24 @@ static const char* event_to_str(enum or_event_t e); static void or_event_thread_handler(void); +#ifdef CONFIG_OPENROCKET_MANUAL_LAUNCH_TRIGGER +K_THREAD_DEFINE(or_event_thread, 1024, or_event_thread_handler, NULL, NULL, NULL, 0, 0, 0); +#else K_THREAD_DEFINE(or_event_thread, 1024, or_event_thread_handler, NULL, NULL, NULL, 0, 0, CONFIG_OPENROCKET_MS_BEFORE_LAUNCH); #endif +#endif + +#ifdef CONFIG_OPENROCKET_MANUAL_LAUNCH_TRIGGER +K_SEM_DEFINE(or_launch_sem, 0, 1); +static volatile int64_t or_launch_time_us = -1; + +void or_trigger_launch(void) { + or_launch_time_us = k_ticks_to_us_near64(k_uptime_ticks()); + LOG_INF("OpenRocket launch triggered at uptime %lld us", or_launch_time_us); + k_sem_give(&or_launch_sem); +} +#endif int sensor_value_from_or_scalar(struct sensor_value* val, or_scalar_t inp) { #ifdef CONFIG_OPENROCKET_SCALAR_TYPE_DOUBLE @@ -51,7 +66,15 @@ or_scalar_t or_get_time(const struct or_common_params* cfg) { us = (us / cfg->sampling_period_us) * cfg->sampling_period_us; } us -= cfg->lag_time_us; +#ifdef CONFIG_OPENROCKET_MANUAL_LAUNCH_TRIGGER + int64_t launch_us = or_launch_time_us; + if (launch_us < 0) { + return -1.0; + } + us -= launch_us; +#else us -= CONFIG_OPENROCKET_MS_BEFORE_LAUNCH * 1000; +#endif return ((or_scalar_t) (us)) / 1000000.0; } @@ -113,7 +136,11 @@ static const char* event_to_str(enum or_event_t e) { return names[e]; } static void or_event_thread_handler(void) { - // This thread starts at T=0 via the zephyr thread startup time +#ifdef CONFIG_OPENROCKET_MANUAL_LAUNCH_TRIGGER + LOG_INF("OpenRocket event thread waiting for launch trigger..."); + k_sem_take(&or_launch_sem, K_FOREVER); + LOG_INF("OpenRocket launch triggered, starting event log"); +#endif or_scalar_t time = 0; unsigned int i = 0; while (i < or_events_size - 1) { diff --git a/drivers/sensor/openrocket/openrocket_sensors.h b/drivers/sensor/openrocket/openrocket_sensors.h index 13779b4ae..f150fc924 100644 --- a/drivers/sensor/openrocket/openrocket_sensors.h +++ b/drivers/sensor/openrocket/openrocket_sensors.h @@ -127,6 +127,15 @@ struct or_event_occurance_t { */ void or_get_presim(struct or_data_t* packet); +#ifdef CONFIG_OPENROCKET_MANUAL_LAUNCH_TRIGGER +/** + * @brief Trigger the start of the OpenRocket simulation. + * Records the current uptime as t=0 for sensor interpolation and unblocks + * the event log thread. Safe to call from any context. + */ +void or_trigger_launch(void); +#endif + /** * @brief fill a packet with values after the simulation * @param packet the packet of data to fill in From 1a83a683e7a46e80a41bfe62d22a89494ec1f1bc Mon Sep 17 00:00:00 2001 From: Aaron Chan Date: Thu, 2 Apr 2026 17:39:18 -0400 Subject: [PATCH 02/11] Add remaining ork files and add syscall supportfor triggering openrocket sensors --- .../sensor_module/boards/sensor_hw_sim.conf | 2 ++ .../include/c_ork_toggle_tenant.h | 24 ++++++++++++++++ .../sensor_module/include/c_sensor_module.h | 7 +++-- .../sensor_module/src/c_ork_toggle_tenant.cpp | 28 +++++++++++++++++++ .../sensor/openrocket/openrocket_sensors.c | 8 +++++- .../sensor/openrocket/openrocket_sensors.h | 4 +-- include/f_core/device/openrocket_launch.h | 25 +++++++++++++++++ lib/f_core/device/CMakeLists.txt | 3 +- lib/f_core/device/openrocket_launch.c | 18 ++++++++++++ 9 files changed, 111 insertions(+), 8 deletions(-) create mode 100644 app/backplane/sensor_module/include/c_ork_toggle_tenant.h create mode 100644 app/backplane/sensor_module/src/c_ork_toggle_tenant.cpp create mode 100644 include/f_core/device/openrocket_launch.h create mode 100644 lib/f_core/device/openrocket_launch.c diff --git a/app/backplane/sensor_module/boards/sensor_hw_sim.conf b/app/backplane/sensor_module/boards/sensor_hw_sim.conf index 3a5088e8f..d1a992d80 100644 --- a/app/backplane/sensor_module/boards/sensor_hw_sim.conf +++ b/app/backplane/sensor_module/boards/sensor_hw_sim.conf @@ -9,3 +9,5 @@ CONFIG_OPENROCKET_SCALAR_TYPE_DOUBLE=y CONFIG_OPENROCKET_EVENT_LOG=n CONFIG_OPENROCKET_IMU=y CONFIG_OPENROCKET_BAROMETER=y +CONFIG_OPENROCKET_MANUAL_LAUNCH_TRIGGER=y + diff --git a/app/backplane/sensor_module/include/c_ork_toggle_tenant.h b/app/backplane/sensor_module/include/c_ork_toggle_tenant.h new file mode 100644 index 000000000..24d330a7d --- /dev/null +++ b/app/backplane/sensor_module/include/c_ork_toggle_tenant.h @@ -0,0 +1,24 @@ +#pragma once + +#include +#include +#include + +class COrkToggleTenant : public CRunnableTenant { + public: + /** + * @param name Tenant name + * @param ipStr IP address to bind the UDP socket to + * @param port UDP port used to receive launch trigger packets + */ + COrkToggleTenant(const char* name, const char* ipStr, int port); + + /** + * See parent docs + */ + void Run() override; + + private: + CUdpSocket udp; + int port; +}; diff --git a/app/backplane/sensor_module/include/c_sensor_module.h b/app/backplane/sensor_module/include/c_sensor_module.h index 52e78b107..2da8544e3 100644 --- a/app/backplane/sensor_module/include/c_sensor_module.h +++ b/app/backplane/sensor_module/include/c_sensor_module.h @@ -2,6 +2,9 @@ #include "c_sensing_tenant.h" #include "flight.hpp" +#ifdef CONFIG_OPENROCKET_MANUAL_LAUNCH_TRIGGER +#include "c_ork_toggle_tenant.h" +#endif // F-Core Includes #include @@ -51,7 +54,6 @@ class CSensorModule : public CProjectConfiguration { static constexpr int telemetryDownlinkPort = NNetworkDefs::SENSOR_MODULE_DOWNLINK_DATA_PORT; static constexpr int alertPort = NNetworkDefs::ALERT_PORT; #ifdef CONFIG_OPENROCKET_MANUAL_LAUNCH_TRIGGER -#include "c_ork_launch_trigger_tenant.h" static constexpr int orkLaunchTriggerPort = NNetworkDefs::SENSOR_MODULE_ORK_LAUNCH_TRIGGER_PORT; #endif @@ -87,8 +89,7 @@ class CSensorModule : public CProjectConfiguration { K_SECONDS(3), 64}; #ifdef CONFIG_OPENROCKET_MANUAL_LAUNCH_TRIGGER - COrkLaunchTriggerTenant orkLaunchTriggerTenant{"Ork Launch Trigger Tenant", ipAddrStr.c_str(), - orkLaunchTriggerPort}; + COrkToggleTenant orkLaunchTriggerTenant{"Ork Toggle Tenant", ipAddrStr.c_str(), orkLaunchTriggerPort}; #endif // Tasks diff --git a/app/backplane/sensor_module/src/c_ork_toggle_tenant.cpp b/app/backplane/sensor_module/src/c_ork_toggle_tenant.cpp new file mode 100644 index 000000000..ad09b7837 --- /dev/null +++ b/app/backplane/sensor_module/src/c_ork_toggle_tenant.cpp @@ -0,0 +1,28 @@ +#include "c_ork_toggle_tenant.h" + +#include + +#include +#include + +LOG_MODULE_REGISTER(COrkToggleTenant); + +COrkToggleTenant::COrkToggleTenant(const char* name, const char* ipStr, const int port) + : CRunnableTenant(name), udp(CIPv4(ipStr), port, port), port(port) {} + +void COrkToggleTenant::Run() { + uint8_t trigger = 0; + const int ret = udp.ReceiveAsynchronous(&trigger, sizeof(trigger)); + if (ret <= 0) { + return; + } + + const int err = ork_trigger_launch(); + if (err == 0) { + LOG_INF("Received OpenRocket launch trigger on UDP port %d", port); + } else if (err == -EALREADY) { + LOG_WRN("Ignoring duplicate OpenRocket launch trigger on UDP port %d", port); + } else { + LOG_ERR("Failed to trigger OpenRocket launch (%d)", err); + } +} diff --git a/drivers/sensor/openrocket/openrocket_sensors.c b/drivers/sensor/openrocket/openrocket_sensors.c index b054e60f7..e624d6078 100644 --- a/drivers/sensor/openrocket/openrocket_sensors.c +++ b/drivers/sensor/openrocket/openrocket_sensors.c @@ -1,6 +1,7 @@ #include "openrocket_sensors.h" #include +#include #include #include @@ -40,10 +41,15 @@ K_THREAD_DEFINE(or_event_thread, 1024, or_event_thread_handler, NULL, NULL, NULL K_SEM_DEFINE(or_launch_sem, 0, 1); static volatile int64_t or_launch_time_us = -1; -void or_trigger_launch(void) { +int or_trigger_launch(void) { + if (or_launch_time_us >= 0) { + return -EALREADY; + } + or_launch_time_us = k_ticks_to_us_near64(k_uptime_ticks()); LOG_INF("OpenRocket launch triggered at uptime %lld us", or_launch_time_us); k_sem_give(&or_launch_sem); + return 0; } #endif diff --git a/drivers/sensor/openrocket/openrocket_sensors.h b/drivers/sensor/openrocket/openrocket_sensors.h index f150fc924..3b0959441 100644 --- a/drivers/sensor/openrocket/openrocket_sensors.h +++ b/drivers/sensor/openrocket/openrocket_sensors.h @@ -133,7 +133,7 @@ void or_get_presim(struct or_data_t* packet); * Records the current uptime as t=0 for sensor interpolation and unblocks * the event log thread. Safe to call from any context. */ -void or_trigger_launch(void); +int or_trigger_launch(void); #endif /** @@ -142,4 +142,4 @@ void or_trigger_launch(void); */ void or_get_postsim(struct or_data_t* packet); -#endif \ No newline at end of file +#endif diff --git a/include/f_core/device/openrocket_launch.h b/include/f_core/device/openrocket_launch.h new file mode 100644 index 000000000..617877245 --- /dev/null +++ b/include/f_core/device/openrocket_launch.h @@ -0,0 +1,25 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Trigger the OpenRocket simulation launch in kernel space. + * + * This is exposed as a syscall so application/user code does not call the + * OpenRocket driver implementation directly. + * + * @retval 0 Launch trigger accepted + * @retval -EALREADY Launch was already triggered + * @retval -ENOTSUP Manual launch triggering is not enabled + */ +__syscall int ork_trigger_launch(void); + +#ifdef __cplusplus +} +#endif + +#include diff --git a/lib/f_core/device/CMakeLists.txt b/lib/f_core/device/CMakeLists.txt index 7ef6af7b3..834e50188 100644 --- a/lib/f_core/device/CMakeLists.txt +++ b/lib/f_core/device/CMakeLists.txt @@ -2,6 +2,5 @@ # SPDX-License-Identifier: Apache-2.0 zephyr_library() -FILE(GLOB sources *.cpp) +FILE(GLOB sources *.c *.cpp) zephyr_library_sources(${sources}) - diff --git a/lib/f_core/device/openrocket_launch.c b/lib/f_core/device/openrocket_launch.c new file mode 100644 index 000000000..05c73419a --- /dev/null +++ b/lib/f_core/device/openrocket_launch.c @@ -0,0 +1,18 @@ +#include + +#include +#include + +int z_impl_ork_trigger_launch(void) { +#ifdef CONFIG_OPENROCKET_MANUAL_LAUNCH_TRIGGER + return or_trigger_launch(); +#else + return -ENOTSUP; +#endif +} + +#ifdef CONFIG_USERSPACE +static inline int z_vrfy_ork_trigger_launch(void) { return z_impl_ork_trigger_launch(); } + +#include +#endif From 853878001664bdaf0bd67185e39b298db58cc95e Mon Sep 17 00:00:00 2001 From: Aaron Chan Date: Thu, 9 Apr 2026 14:31:25 -0400 Subject: [PATCH 03/11] Linear search for tasks to save on ram --- lib/f_core/os/n_rtos.cpp | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/lib/f_core/os/n_rtos.cpp b/lib/f_core/os/n_rtos.cpp index 355842538..fa1ef1e43 100644 --- a/lib/f_core/os/n_rtos.cpp +++ b/lib/f_core/os/n_rtos.cpp @@ -6,14 +6,21 @@ #include "f_core/os/n_rtos.h" -#include "f_core/utils/c_hashmap.h" - #include #include LOG_MODULE_REGISTER(NRtos); std::vector tasks; -CHashMap taskNameIdMap; + +static CTask* FindTaskByName(const std::string& taskName) { + for (CTask* task : tasks) { + if (taskName == task->GetName()) { + return task; + } + } + + return nullptr; +} void NRtos::AddTask(CTask& task) { tasks.push_back(&task); } @@ -21,8 +28,6 @@ void NRtos::StartRtos() { for (CTask* task : tasks) { LOG_INF("Starting task %s", task->GetName()); task->Initialize(); - k_tid_t taskId = task->GetTaskId(); - taskNameIdMap.Insert(std::string(k_thread_name_get(taskId)), taskId); } LOG_INF("RTOS Started!"); @@ -41,8 +46,8 @@ void NRtos::StopRtos() { void NRtos::ResumeTask(k_tid_t taskId) { k_thread_resume(taskId); } void NRtos::ResumeTask(const std::string& taskName) { - if (taskNameIdMap.Contains(taskName)) { - k_thread_resume(taskNameIdMap.Get(taskName).value()); + if (CTask* task = FindTaskByName(taskName)) { + k_thread_resume(task->GetTaskId()); } else { LOG_WRN("Cannot resume %s, because task was not found in map!", taskName.c_str()); } @@ -51,8 +56,8 @@ void NRtos::ResumeTask(const std::string& taskName) { void NRtos::SuspendTask(k_tid_t taskId) { k_thread_suspend(taskId); } void NRtos::SuspendTask(const std::string& taskName) { - if (taskNameIdMap.Contains(taskName)) { - k_thread_suspend(taskNameIdMap.Get(taskName).value()); + if (CTask* task = FindTaskByName(taskName)) { + k_thread_suspend(task->GetTaskId()); } else { LOG_WRN("Cannot suspend %s, because task was not found in map!", taskName.c_str()); } From 4746ee58dcd825ba4e7701d9036212481a441d96 Mon Sep 17 00:00:00 2001 From: Aaron Chan Date: Wed, 15 Apr 2026 10:13:42 -0400 Subject: [PATCH 04/11] Bump west.yml and test out adding full_name to a few board.ymls --- boards/arm/blt_plane/board.yml | 1 + boards/arm/control_freak/board.yml | 1 + west.yml | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/boards/arm/blt_plane/board.yml b/boards/arm/blt_plane/board.yml index e845537cb..4a314d37f 100644 --- a/boards/arm/blt_plane/board.yml +++ b/boards/arm/blt_plane/board.yml @@ -1,5 +1,6 @@ board: name: blt_plane + full_name: vendor: launch socs: - name: stm32f446xx diff --git a/boards/arm/control_freak/board.yml b/boards/arm/control_freak/board.yml index f52e06e13..d1938772c 100644 --- a/boards/arm/control_freak/board.yml +++ b/boards/arm/control_freak/board.yml @@ -1,5 +1,6 @@ board: name: control_freak + full_name: Control Freak vendor: launch socs: - name: stm32f446xx diff --git a/west.yml b/west.yml index e8d9e0da8..3503be30e 100644 --- a/west.yml +++ b/west.yml @@ -12,7 +12,7 @@ manifest: projects: - name: zephyr remote: zephyrproject-rtos - revision: v4.3.0 + revision: v4.4.0 import: name-allowlist: - cmsis_6 From d106dfb3a61b7b4cb836027cd0269891b54b297b Mon Sep 17 00:00:00 2001 From: Aaron Chan Date: Wed, 15 Apr 2026 10:16:00 -0400 Subject: [PATCH 05/11] Add full_name property to all custom boards --- boards/arm/blt_plane/board.yml | 2 +- boards/arm/controls_module/board.yml | 1 + boards/arm/deployment_module/board.yml | 1 + boards/arm/grim_reefer/board.yml | 3 ++- boards/arm/power_module/board.yml | 3 ++- boards/arm/radio_module/board.yml | 1 + boards/arm/sensor_module/board.yml | 1 + boards/arm/sw_board/board.yml | 1 + 8 files changed, 10 insertions(+), 3 deletions(-) diff --git a/boards/arm/blt_plane/board.yml b/boards/arm/blt_plane/board.yml index 4a314d37f..a7ef9f44c 100644 --- a/boards/arm/blt_plane/board.yml +++ b/boards/arm/blt_plane/board.yml @@ -1,6 +1,6 @@ board: name: blt_plane - full_name: + full_name: BLTPlane vendor: launch socs: - name: stm32f446xx diff --git a/boards/arm/controls_module/board.yml b/boards/arm/controls_module/board.yml index 1499b25de..5d5122fe8 100644 --- a/boards/arm/controls_module/board.yml +++ b/boards/arm/controls_module/board.yml @@ -1,5 +1,6 @@ board: name: controls_module + full_name: Controls Module vendor: launch socs: - name: stm32f446xx diff --git a/boards/arm/deployment_module/board.yml b/boards/arm/deployment_module/board.yml index 2d30dad1e..31f4ce04d 100644 --- a/boards/arm/deployment_module/board.yml +++ b/boards/arm/deployment_module/board.yml @@ -1,5 +1,6 @@ board: name: deployment_module + full_name: Deployment Module vendor: launch socs: - name: stm32f446xx diff --git a/boards/arm/grim_reefer/board.yml b/boards/arm/grim_reefer/board.yml index d44d5b010..882bc57e5 100644 --- a/boards/arm/grim_reefer/board.yml +++ b/boards/arm/grim_reefer/board.yml @@ -1,5 +1,6 @@ board: name: grim_reefer + full_name: GRIM Reefer vendor: launch socs: - - name: stm32f446xx \ No newline at end of file + - name: stm32f446xx diff --git a/boards/arm/power_module/board.yml b/boards/arm/power_module/board.yml index d63c578cb..5f4ebf1b1 100644 --- a/boards/arm/power_module/board.yml +++ b/boards/arm/power_module/board.yml @@ -1,5 +1,6 @@ board: name: power_module + full_name: PowerModule vendor: launch socs: - name: stm32f446xx @@ -8,4 +9,4 @@ board: default: "2" revisions: - name: "1" - - name: "2" \ No newline at end of file + - name: "2" diff --git a/boards/arm/radio_module/board.yml b/boards/arm/radio_module/board.yml index c20d59d65..f060f0c23 100644 --- a/boards/arm/radio_module/board.yml +++ b/boards/arm/radio_module/board.yml @@ -1,5 +1,6 @@ board: name: radio_module + full_name: Radio Module vendor: launch socs: - name: stm32f446xx diff --git a/boards/arm/sensor_module/board.yml b/boards/arm/sensor_module/board.yml index 97f4e63fd..5ec25e4f9 100644 --- a/boards/arm/sensor_module/board.yml +++ b/boards/arm/sensor_module/board.yml @@ -1,5 +1,6 @@ board: name: sensor_module + full_name: Sensor Module vendor: launch socs: - name: stm32f446xx diff --git a/boards/arm/sw_board/board.yml b/boards/arm/sw_board/board.yml index 8e93a6e3f..f1e99a1f6 100644 --- a/boards/arm/sw_board/board.yml +++ b/boards/arm/sw_board/board.yml @@ -1,5 +1,6 @@ board: name: sw_board + full_name: SW Board vendor: launch socs: - name: stm32f446xx From bd22274b8fe919eddaff143804d5f05f3343621b Mon Sep 17 00:00:00 2001 From: Aaron Chan Date: Wed, 15 Apr 2026 10:31:13 -0400 Subject: [PATCH 06/11] Fill in descriptions --- app/backplane/deployment_module/sample.yaml | 2 +- app/backplane/power_module/sample.yaml | 2 +- app/backplane/sensor_module/sample.yaml | 2 +- app/ground/tftp_server/sample.yaml | 2 +- boards/arm/power_module/board.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/backplane/deployment_module/sample.yaml b/app/backplane/deployment_module/sample.yaml index 6aa35ca4d..7c7951200 100644 --- a/app/backplane/deployment_module/sample.yaml +++ b/app/backplane/deployment_module/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: Deployment Module name: deployment-module common: build_only: true diff --git a/app/backplane/power_module/sample.yaml b/app/backplane/power_module/sample.yaml index 23b2fb510..a165be53d 100644 --- a/app/backplane/power_module/sample.yaml +++ b/app/backplane/power_module/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: Power Module name: power-module common: build_only: true diff --git a/app/backplane/sensor_module/sample.yaml b/app/backplane/sensor_module/sample.yaml index 1ac96f377..ec6a079a0 100644 --- a/app/backplane/sensor_module/sample.yaml +++ b/app/backplane/sensor_module/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: Sensor Module name: sensor-module common: build_only: true diff --git a/app/ground/tftp_server/sample.yaml b/app/ground/tftp_server/sample.yaml index 45352690e..3abd6958e 100644 --- a/app/ground/tftp_server/sample.yaml +++ b/app/ground/tftp_server/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: TFTP Server name: tftp-server common: build_only: true diff --git a/boards/arm/power_module/board.yml b/boards/arm/power_module/board.yml index 5f4ebf1b1..1a0b8781a 100644 --- a/boards/arm/power_module/board.yml +++ b/boards/arm/power_module/board.yml @@ -1,6 +1,6 @@ board: name: power_module - full_name: PowerModule + full_name: Power Module vendor: launch socs: - name: stm32f446xx From 4567a4f920d6eabd963c9013306c9a2d0585724b Mon Sep 17 00:00:00 2001 From: Aaron Chan Date: Thu, 16 Apr 2026 16:09:59 -0400 Subject: [PATCH 07/11] Fix UDP not binding on native sim to receive packets. Fix invalid fd cascading issues --- lib/f_core/net/transport/c_udp_socket.cpp | 36 ++++++++++++++++++++--- snippets/sim-periph/sim-periph.conf | 1 - 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/lib/f_core/net/transport/c_udp_socket.cpp b/lib/f_core/net/transport/c_udp_socket.cpp index 38db4763e..69879e775 100644 --- a/lib/f_core/net/transport/c_udp_socket.cpp +++ b/lib/f_core/net/transport/c_udp_socket.cpp @@ -20,7 +20,14 @@ CUdpSocket::CUdpSocket(const CIPv4& ipv4, uint16_t srcPort, uint16_t dstPort) : return; } -#if !defined(CONFIG_ARCH_POSIX) && !defined(CONFIG_NET_NATIVE_OFFLOADED_SOCKETS) + const int reuse = 1; + if (zsock_setsockopt(sockfd.fd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse)) < 0) { + LOG_WRN("Failed to enable SO_REUSEADDR: %d", errno); + } + if (zsock_setsockopt(sockfd.fd, SOL_SOCKET, SO_REUSEPORT, &reuse, sizeof(reuse)) < 0) { + LOG_WRN("Failed to enable SO_REUSEPORT: %d", errno); + } + sockaddr_in addr{ .sin_family = AF_INET, .sin_port = htons(srcPort), @@ -33,9 +40,6 @@ CUdpSocket::CUdpSocket(const CIPv4& ipv4, uint16_t srcPort, uint16_t dstPort) : sockfd.fd = -1; return; } -#else - LOG_WRN("Skipping bind. Using native_sim loopback"); -#endif // Link takes around 2 seconds to come up. Wait to avoid errors when tx/rxing const uint32_t uptime = k_uptime_get_32(); @@ -53,6 +57,10 @@ CUdpSocket::~CUdpSocket() { } int CUdpSocket::TransmitSynchronous(const void* data, size_t len) { + if (sockfd.fd < 0) { + return -EBADF; + } + const sockaddr_in addr{ .sin_family = AF_INET, .sin_port = htons(dstPort), @@ -69,12 +77,20 @@ int CUdpSocket::TransmitSynchronous(const void* data, size_t len) { } int CUdpSocket::ReceiveSynchronous(void* data, size_t len, sockaddr* srcAddr, socklen_t* srcAddrLen) { + if (sockfd.fd < 0) { + return -EBADF; + } + return zsock_recvfrom(sockfd.fd, data, len, 0, srcAddr, srcAddrLen); } int CUdpSocket::TransmitAsynchronous(const void* data, size_t len) { return TransmitAsynchronous(data, len, dstPort); } int CUdpSocket::TransmitAsynchronous(const void* data, size_t len, uint16_t dstPort) { + if (sockfd.fd < 0) { + return -EBADF; + } + const sockaddr_in addr{ .sin_family = AF_INET, .sin_port = htons(dstPort), @@ -103,6 +119,10 @@ int CUdpSocket::TransmitAsynchronous(const void* data, size_t len, uint16_t dstP } int CUdpSocket::ReceiveAsynchronous(void* data, size_t len, sockaddr* srcAddr, socklen_t* srcAddrLen) { + if (sockfd.fd < 0) { + return -EBADF; + } + int flags = zsock_fcntl(sockfd.fd, F_GETFL, 0); if (flags < 0) { LOG_ERR("Failed to get socket flags (%d)", flags); @@ -159,9 +179,17 @@ int CUdpSocket::RegisterSocketService(net_socket_service_desc* desc, void* userD } int CUdpSocket::SetTxTimeout(const int timeoutMillis) { + if (sockfd.fd < 0) { + return -EBADF; + } + return zsock_setsockopt(sockfd.fd, SOL_SOCKET, SO_SNDTIMEO, &timeoutMillis, sizeof(timeoutMillis)); } int CUdpSocket::SetRxTimeout(const int timeoutMillis) { + if (sockfd.fd < 0) { + return -EBADF; + } + return zsock_setsockopt(sockfd.fd, SOL_SOCKET, SO_RCVTIMEO, &timeoutMillis, sizeof(timeoutMillis)); } diff --git a/snippets/sim-periph/sim-periph.conf b/snippets/sim-periph/sim-periph.conf index d477cbc3d..7a120a0c9 100644 --- a/snippets/sim-periph/sim-periph.conf +++ b/snippets/sim-periph/sim-periph.conf @@ -6,7 +6,6 @@ CONFIG_FUSE_LIBRARY_V3=y CONFIG_RTC_EMUL=y # Networking -CONFIG_ETH_NATIVE_POSIX=n CONFIG_NET_SOCKETS_OFFLOAD=y CONFIG_NET_NATIVE_OFFLOADED_SOCKETS=y CONFIG_HEAP_MEM_POOL_SIZE=1024 From a90be23f9f5325137888ec225096144a16176df7 Mon Sep 17 00:00:00 2001 From: Aaron Chan Date: Thu, 16 Apr 2026 16:13:30 -0400 Subject: [PATCH 08/11] native sim has signal handlers to clean up resources during shutdown --- app/backplane/deployment_module/src/main.cpp | 19 ++++++++++++++++++- app/backplane/power_module/src/main.cpp | 20 ++++++++++++++++++-- app/backplane/radio_module/src/main.cpp | 19 ++++++++++++++++++- app/backplane/sensor_module/core.conf | 1 - app/backplane/sensor_module/src/main.cpp | 19 ++++++++++++++++++- app/ground/receiver_module/src/main.cpp | 19 ++++++++++++++++++- 6 files changed, 90 insertions(+), 7 deletions(-) diff --git a/app/backplane/deployment_module/src/main.cpp b/app/backplane/deployment_module/src/main.cpp index 5743f5af3..67d46925f 100644 --- a/app/backplane/deployment_module/src/main.cpp +++ b/app/backplane/deployment_module/src/main.cpp @@ -6,9 +6,19 @@ #include "c_deployment_module.h" #include +#ifdef CONFIG_ARCH_POSIX +#include +#include +#endif LOG_MODULE_REGISTER(main); +#ifdef CONFIG_ARCH_POSIX +static volatile sig_atomic_t shutdownRequested = 0; + +static void NativeSimSignalHandler(int) { shutdownRequested = 1; } +#endif + int main() { static CDeploymentModule deploymentModule{}; @@ -19,9 +29,16 @@ int main() { NRtos::StartRtos(); #ifdef CONFIG_ARCH_POSIX - k_sleep(K_SECONDS(900)); + signal(SIGINT, NativeSimSignalHandler); + signal(SIGTERM, NativeSimSignalHandler); + + while (!shutdownRequested) { + k_sleep(K_MSEC(100)); + } + NRtos::StopRtos(); deploymentModule.Cleanup(); + nsi_exit(0); #endif return 0; diff --git a/app/backplane/power_module/src/main.cpp b/app/backplane/power_module/src/main.cpp index 2bcc0d29c..23bdaffda 100644 --- a/app/backplane/power_module/src/main.cpp +++ b/app/backplane/power_module/src/main.cpp @@ -9,9 +9,19 @@ #include #include #include +#ifdef CONFIG_ARCH_POSIX +#include +#include +#endif LOG_MODULE_REGISTER(main); +#ifdef CONFIG_ARCH_POSIX +static volatile sig_atomic_t shutdownRequested = 0; + +static void NativeSimSignalHandler(int) { shutdownRequested = 1; } +#endif + int main() { static CPowerModule powerModule{}; @@ -22,10 +32,16 @@ int main() { NRtos::StartRtos(); #ifdef CONFIG_ARCH_POSIX - k_sleep(K_SECONDS(300)); + signal(SIGINT, NativeSimSignalHandler); + signal(SIGTERM, NativeSimSignalHandler); + + while (!shutdownRequested) { + k_sleep(K_MSEC(100)); + } + NRtos::StopRtos(); powerModule.Cleanup(); - k_sleep(K_FOREVER); + nsi_exit(0); #endif return 0; diff --git a/app/backplane/radio_module/src/main.cpp b/app/backplane/radio_module/src/main.cpp index 6c90df8a1..1f16a55cb 100644 --- a/app/backplane/radio_module/src/main.cpp +++ b/app/backplane/radio_module/src/main.cpp @@ -8,9 +8,19 @@ #include #include +#ifdef CONFIG_ARCH_POSIX +#include +#include +#endif LOG_MODULE_REGISTER(main); +#ifdef CONFIG_ARCH_POSIX +static volatile sig_atomic_t shutdownRequested = 0; + +static void NativeSimSignalHandler(int) { shutdownRequested = 1; } +#endif + int main() { #ifdef CONFIG_LICENSED_FREQUENCY LOG_INF("Radio module boot: 433 MHz build, callsign=%s", CONFIG_RADIO_MODULE_CALLSIGN); @@ -28,8 +38,15 @@ int main() { NRtos::StartRtos(); #ifdef CONFIG_ARCH_POSIX - k_sleep(K_SECONDS(300)); + signal(SIGINT, NativeSimSignalHandler); + signal(SIGTERM, NativeSimSignalHandler); + + while (!shutdownRequested) { + k_sleep(K_MSEC(100)); + } + NRtos::StopRtos(); + nsi_exit(0); #endif return 0; diff --git a/app/backplane/sensor_module/core.conf b/app/backplane/sensor_module/core.conf index 545475b4f..3b516ef65 100644 --- a/app/backplane/sensor_module/core.conf +++ b/app/backplane/sensor_module/core.conf @@ -31,4 +31,3 @@ CONFIG_EVENTS=y CONFIG_I2C=y CONFIG_SPI=y CONFIG_SENSOR=y -CONFIG_LSM6DSL_ACCEL_FS=16 \ No newline at end of file diff --git a/app/backplane/sensor_module/src/main.cpp b/app/backplane/sensor_module/src/main.cpp index 86e78d1ad..ff4f7ff42 100644 --- a/app/backplane/sensor_module/src/main.cpp +++ b/app/backplane/sensor_module/src/main.cpp @@ -6,6 +6,16 @@ #include "c_sensor_module.h" #include +#ifdef CONFIG_ARCH_POSIX +#include +#include +#endif + +#ifdef CONFIG_ARCH_POSIX +static volatile sig_atomic_t shutdownRequested = 0; + +static void NativeSimSignalHandler(int) { shutdownRequested = 1; } +#endif int main() { static CSensorModule sensorModule{}; @@ -17,9 +27,16 @@ int main() { NRtos::StartRtos(); #ifdef CONFIG_ARCH_POSIX - k_sleep(K_SECONDS(900)); + signal(SIGINT, NativeSimSignalHandler); + signal(SIGTERM, NativeSimSignalHandler); + + while (!shutdownRequested) { + k_sleep(K_MSEC(100)); + } + NRtos::StopRtos(); sensorModule.Cleanup(); + nsi_exit(0); #endif return 0; diff --git a/app/ground/receiver_module/src/main.cpp b/app/ground/receiver_module/src/main.cpp index 0377ec0c7..d9306baf4 100644 --- a/app/ground/receiver_module/src/main.cpp +++ b/app/ground/receiver_module/src/main.cpp @@ -10,9 +10,19 @@ #include #include #include +#ifdef CONFIG_ARCH_POSIX +#include +#include +#endif LOG_MODULE_REGISTER(main); +#ifdef CONFIG_ARCH_POSIX +static volatile sig_atomic_t shutdownRequested = 0; + +static void NativeSimSignalHandler(int) { shutdownRequested = 1; } +#endif + int main() { LOG_INF("Receiver starting"); static CReceiverModule receiverModule{}; @@ -25,8 +35,15 @@ int main() { NRtos::StartRtos(); #ifdef CONFIG_ARCH_POSIX - k_sleep(K_SECONDS(300)); + signal(SIGINT, NativeSimSignalHandler); + signal(SIGTERM, NativeSimSignalHandler); + + while (!shutdownRequested) { + k_sleep(K_MSEC(100)); + } + NRtos::StopRtos(); + nsi_exit(0); #endif return 0; From 70a476b83994a5ab74568b5827cc34f00cbc7eb9 Mon Sep 17 00:00:00 2001 From: Aaron Chan Date: Thu, 23 Apr 2026 21:44:30 -0400 Subject: [PATCH 09/11] Add logging to sensor mod hw sim --- app/backplane/sensor_module/boards/sensor_hw_sim.conf | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/backplane/sensor_module/boards/sensor_hw_sim.conf b/app/backplane/sensor_module/boards/sensor_hw_sim.conf index d1a992d80..857f9ed97 100644 --- a/app/backplane/sensor_module/boards/sensor_hw_sim.conf +++ b/app/backplane/sensor_module/boards/sensor_hw_sim.conf @@ -6,8 +6,13 @@ CONFIG_OPENROCKET_SENSORS=y CONFIG_OPENROCKET_DATA_FILE="../../../data/orksim_csv/l1.csv" CONFIG_OPENROCKET_MS_BEFORE_LAUNCH=10000 CONFIG_OPENROCKET_SCALAR_TYPE_DOUBLE=y -CONFIG_OPENROCKET_EVENT_LOG=n +CONFIG_OPENROCKET_EVENT_LOG=y CONFIG_OPENROCKET_IMU=y CONFIG_OPENROCKET_BAROMETER=y CONFIG_OPENROCKET_MANUAL_LAUNCH_TRIGGER=y +CONFIG_CONSOLE=y +CONFIG_CONSOLE_SUBSYS=y +CONFIG_SERIAL=y +CONFIG_UART_CONSOLE=y + From 148681ade96961d167f96d354747ccf8a94cb81a Mon Sep 17 00:00:00 2001 From: Aaron Chan Date: Thu, 23 Apr 2026 21:51:06 -0400 Subject: [PATCH 10/11] Make port number more memorable instead of me just typing a random number on my keyboard --- data/autocoder_inputs/network_defs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/autocoder_inputs/network_defs.yaml b/data/autocoder_inputs/network_defs.yaml index 8701725ac..a3cf11329 100644 --- a/data/autocoder_inputs/network_defs.yaml +++ b/data/autocoder_inputs/network_defs.yaml @@ -38,7 +38,7 @@ modules: base_port: 13000 port_offsets: ork_launch_trigger: - port_number: 7 + port_number: 999 downlink_data: port_number: 20 telemetry: From ec9ed752ccc716e74b1b5f3dcc223c61a839c2c6 Mon Sep 17 00:00:00 2001 From: Aaron Chan Date: Sat, 2 May 2026 11:25:57 -0400 Subject: [PATCH 11/11] Fill descs --- app/other/airbraker/sample.yaml | 2 +- app/payload/control_freak/board-setup/sample.yaml | 2 +- app/payload/control_freak/flight-software/sample.yaml | 2 +- app/payload/control_freak/ground_station2/sample.yaml | 2 +- app/payload/control_freak/imagine/sample.yaml | 2 +- app/payload/control_freak/radio_test/sample.yaml | 2 +- app/samples/compression/sample.yaml | 2 +- app/samples/datalogger/sample.yaml | 2 +- app/samples/gpio_blinky/sample.yaml | 2 +- app/samples/littlefs/sample.yaml | 2 +- app/samples/lora_bcast/sample.yaml | 2 +- app/samples/message_passing/sample.yaml | 2 +- app/samples/openrocket_sensors/sample.yaml | 2 +- app/samples/phase_detection/sample.yaml | 2 +- app/samples/sensor/sample.yaml | 2 +- app/samples/shield_blinky/sample.yaml | 2 +- app/samples/shield_mcp3561r/sample.yaml | 2 +- app/samples/sntp_client/sample.yaml | 2 +- app/samples/soft_timer/sample.yaml | 2 +- app/samples/tenants_and_tasks/sample.yaml | 2 +- app/samples/tftp_server/sample.yaml | 2 +- app/samples/time_travel/sample.yaml | 2 +- app/samples/udp_bcast/sample.yaml | 2 +- app/samples/udp_rcv/sample.yaml | 2 +- 24 files changed, 24 insertions(+), 24 deletions(-) diff --git a/app/other/airbraker/sample.yaml b/app/other/airbraker/sample.yaml index 677b09d2b..6a3f53b9f 100644 --- a/app/other/airbraker/sample.yaml +++ b/app/other/airbraker/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: airbrake_ctrler name: airbrake_ctrler common: build_only: true diff --git a/app/payload/control_freak/board-setup/sample.yaml b/app/payload/control_freak/board-setup/sample.yaml index 277a1dcff..ef5782581 100644 --- a/app/payload/control_freak/board-setup/sample.yaml +++ b/app/payload/control_freak/board-setup/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: control_freak bring up and debugging name: control_freak bring up and debugging common: build_only: true diff --git a/app/payload/control_freak/flight-software/sample.yaml b/app/payload/control_freak/flight-software/sample.yaml index f40e02dbd..80f39d1b4 100644 --- a/app/payload/control_freak/flight-software/sample.yaml +++ b/app/payload/control_freak/flight-software/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: Control Freak flight software name: control_freak common: build_only: true diff --git a/app/payload/control_freak/ground_station2/sample.yaml b/app/payload/control_freak/ground_station2/sample.yaml index f40e02dbd..fc0619683 100644 --- a/app/payload/control_freak/ground_station2/sample.yaml +++ b/app/payload/control_freak/ground_station2/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: control_freak name: control_freak common: build_only: true diff --git a/app/payload/control_freak/imagine/sample.yaml b/app/payload/control_freak/imagine/sample.yaml index 277a1dcff..ef5782581 100644 --- a/app/payload/control_freak/imagine/sample.yaml +++ b/app/payload/control_freak/imagine/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: control_freak bring up and debugging name: control_freak bring up and debugging common: build_only: true diff --git a/app/payload/control_freak/radio_test/sample.yaml b/app/payload/control_freak/radio_test/sample.yaml index 277a1dcff..ef5782581 100644 --- a/app/payload/control_freak/radio_test/sample.yaml +++ b/app/payload/control_freak/radio_test/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: control_freak bring up and debugging name: control_freak bring up and debugging common: build_only: true diff --git a/app/samples/compression/sample.yaml b/app/samples/compression/sample.yaml index d7b354c84..22284ec63 100644 --- a/app/samples/compression/sample.yaml +++ b/app/samples/compression/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: compression name: compression common: build_only: true diff --git a/app/samples/datalogger/sample.yaml b/app/samples/datalogger/sample.yaml index aa1c297f0..30f6c37a5 100644 --- a/app/samples/datalogger/sample.yaml +++ b/app/samples/datalogger/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: datalogger name: datalogger common: build_only: true diff --git a/app/samples/gpio_blinky/sample.yaml b/app/samples/gpio_blinky/sample.yaml index 5e2da7df6..9a6d7fc15 100644 --- a/app/samples/gpio_blinky/sample.yaml +++ b/app/samples/gpio_blinky/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: gpio-blinky name: gpio-blinky common: build_only: true diff --git a/app/samples/littlefs/sample.yaml b/app/samples/littlefs/sample.yaml index b5c1bbba6..b3767194a 100644 --- a/app/samples/littlefs/sample.yaml +++ b/app/samples/littlefs/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: littlefs name: littlefs common: build_only: true diff --git a/app/samples/lora_bcast/sample.yaml b/app/samples/lora_bcast/sample.yaml index 8ec058042..b9c58830e 100644 --- a/app/samples/lora_bcast/sample.yaml +++ b/app/samples/lora_bcast/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: lora-back-and-forth name: lora-back-and-forth common: build_only: true diff --git a/app/samples/message_passing/sample.yaml b/app/samples/message_passing/sample.yaml index 7918fc08e..3ba63f701 100644 --- a/app/samples/message_passing/sample.yaml +++ b/app/samples/message_passing/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: message-passing name: message-passing common: build_only: true diff --git a/app/samples/openrocket_sensors/sample.yaml b/app/samples/openrocket_sensors/sample.yaml index 7c5a990b4..40a5e8057 100644 --- a/app/samples/openrocket_sensors/sample.yaml +++ b/app/samples/openrocket_sensors/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: openrocket-sensors name: openrocket-sensors common: build_only: true diff --git a/app/samples/phase_detection/sample.yaml b/app/samples/phase_detection/sample.yaml index 4b07276d2..14591ee3e 100644 --- a/app/samples/phase_detection/sample.yaml +++ b/app/samples/phase_detection/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: phase-detection name: phase-detection common: build_only: true diff --git a/app/samples/sensor/sample.yaml b/app/samples/sensor/sample.yaml index d4f09450c..c366c18b9 100644 --- a/app/samples/sensor/sample.yaml +++ b/app/samples/sensor/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: sensor name: sensor common: build_only: true diff --git a/app/samples/shield_blinky/sample.yaml b/app/samples/shield_blinky/sample.yaml index af5939ba3..2d8656728 100644 --- a/app/samples/shield_blinky/sample.yaml +++ b/app/samples/shield_blinky/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: shield_blinky name: shield_blinky common: build_only: true diff --git a/app/samples/shield_mcp3561r/sample.yaml b/app/samples/shield_mcp3561r/sample.yaml index 9c9d16e19..772b1c2c9 100644 --- a/app/samples/shield_mcp3561r/sample.yaml +++ b/app/samples/shield_mcp3561r/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: shield_blinky name: shield_blinky common: build_only: true diff --git a/app/samples/sntp_client/sample.yaml b/app/samples/sntp_client/sample.yaml index 18e9ce154..48b84dd51 100644 --- a/app/samples/sntp_client/sample.yaml +++ b/app/samples/sntp_client/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: sntp-client name: sntp-client common: build_only: true diff --git a/app/samples/soft_timer/sample.yaml b/app/samples/soft_timer/sample.yaml index e1d6130e6..55bf7f4eb 100644 --- a/app/samples/soft_timer/sample.yaml +++ b/app/samples/soft_timer/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: soft-timer name: soft-timer common: build_only: true diff --git a/app/samples/tenants_and_tasks/sample.yaml b/app/samples/tenants_and_tasks/sample.yaml index 46382fab0..610ee107c 100644 --- a/app/samples/tenants_and_tasks/sample.yaml +++ b/app/samples/tenants_and_tasks/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: tenants-and-tasks name: tenants-and-tasks common: build_only: true diff --git a/app/samples/tftp_server/sample.yaml b/app/samples/tftp_server/sample.yaml index a0f662e3b..323087c9b 100644 --- a/app/samples/tftp_server/sample.yaml +++ b/app/samples/tftp_server/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: tftp-server name: tftp-server common: build_only: true diff --git a/app/samples/time_travel/sample.yaml b/app/samples/time_travel/sample.yaml index 07566857f..ac4144994 100644 --- a/app/samples/time_travel/sample.yaml +++ b/app/samples/time_travel/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: time-travel name: time-travel common: build_only: true diff --git a/app/samples/udp_bcast/sample.yaml b/app/samples/udp_bcast/sample.yaml index 9785820af..08f2eb08b 100644 --- a/app/samples/udp_bcast/sample.yaml +++ b/app/samples/udp_bcast/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: udp-bcast name: udp-bcast common: build_only: true diff --git a/app/samples/udp_rcv/sample.yaml b/app/samples/udp_rcv/sample.yaml index 958c322c1..bafbbdc74 100644 --- a/app/samples/udp_rcv/sample.yaml +++ b/app/samples/udp_rcv/sample.yaml @@ -1,5 +1,5 @@ sample: - description: + description: udp-rcv name: udp-rcv common: build_only: true