diff --git a/src/Groundstation/Automated/test-actuators.cpp b/src/Groundstation/Automated/test-actuators.cpp
deleted file mode 100644
index a92629b1535cecff7f8819344f433e9e6247de02..0000000000000000000000000000000000000000
--- a/src/Groundstation/Automated/test-actuators.cpp
+++ /dev/null
@@ -1,269 +0,0 @@
-/* Copyright (c) 2023 Skyward Experimental Rocketry
- * Authors: Niccolò Betto
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include <Groundstation/Automated/Actuators/Actuators.h>
-#include <Groundstation/Automated/Hub.h>
-#include <Groundstation/Automated/Sensors/Sensors.h>
-#include <Groundstation/Common/Ports/Serial.h>
-#include <Groundstation/LyraGS/Buses.h>
-#include <diagnostic/PrintLogger.h>
-#include <drivers/interrupt/external_interrupts.h>
-#include <miosix.h>
-#include <scheduler/TaskScheduler.h>
-#include <utils/ButtonHandler/ButtonHandler.h>
-
-#define STEPPER_SPEED 0.25
-#define TEST_WAIT 5000
-#define NO_SD_LOGGING
-
-#define START_MODULE(name, lambda)                                  \
-    do                                                              \
-    {                                                               \
-        std::function<bool()> _fun = lambda;                        \
-        if (!_fun())                                                \
-        {                                                           \
-            LOG_ERR(logger, "Failed to start module " name);        \
-            errorLoop();                                            \
-        }                                                           \
-        else                                                        \
-        {                                                           \
-            LOG_DEBUG(logger, "Successfully started module " name); \
-        }                                                           \
-    } while (0)
-
-using namespace Groundstation;
-using namespace Antennas;
-using namespace Boardcore;
-using namespace miosix;
-
-void ledWaitLoop(int ms)
-{
-    int waited = 0;
-    while (waited < ms)
-    {
-        led2On();
-        Thread::sleep(100);
-        led2Off();
-        Thread::sleep(100);
-        waited += 200;
-    }
-}
-
-void errorLoop()
-{
-    while (1)
-    {
-        userLed4::high();
-        Thread::sleep(100);
-        userLed4::low();
-        Thread::sleep(100);
-    }
-}
-
-void test1(Actuators* actuators)
-{
-    PrintLogger logger = PrintLogger{Logging::getLogger("test-actuators")};
-    LOG_INFO(logger, "Executing Test 1");
-
-    // theta1 : HORIZONTAL
-    // theta2 : VERTICAL
-    LOG_DEBUG(logger, "Setting speed to speed\n");
-    actuators->setSpeed(StepperList::STEPPER_X, STEPPER_SPEED);
-    actuators->setSpeed(StepperList::STEPPER_Y, STEPPER_SPEED);
-
-    LOG_DEBUG(logger, "Moving 90deg horizontally\n");
-    actuators->moveDeg(StepperList::STEPPER_X, 90);
-    ledWaitLoop(TEST_WAIT);
-
-    LOG_DEBUG(logger, "Moving back to the initial horizontal position\n");
-    actuators->moveDeg(StepperList::STEPPER_X, -90);
-    ledWaitLoop(TEST_WAIT);
-
-    LOG_DEBUG(logger, "Moving -90deg horizontally\n");
-    actuators->moveDeg(StepperList::STEPPER_X, -90);
-    ledWaitLoop(TEST_WAIT);
-
-    LOG_DEBUG(logger, "Moving back to the initial horizontal position\n");
-    actuators->moveDeg(StepperList::STEPPER_X, 90);
-    ledWaitLoop(TEST_WAIT);
-
-    LOG_INFO(logger, "Test 1 completed\n");
-}
-
-void test2(Actuators* actuators)
-{
-    PrintLogger logger = PrintLogger{Logging::getLogger("test-actuators")};
-    LOG_INFO(logger, "Executing Test 2");
-
-    actuators->setSpeed(StepperList::STEPPER_X, STEPPER_SPEED);
-    actuators->setSpeed(StepperList::STEPPER_Y, STEPPER_SPEED);
-    actuators->moveDeg(StepperList::STEPPER_Y, 22.5);
-    ledWaitLoop(TEST_WAIT);
-
-    actuators->moveDeg(StepperList::STEPPER_X, 90);
-    ledWaitLoop(TEST_WAIT);
-
-    actuators->moveDeg(StepperList::STEPPER_X, -90);
-    ledWaitLoop(TEST_WAIT);
-
-    actuators->moveDeg(StepperList::STEPPER_X, -90);
-    ledWaitLoop(TEST_WAIT);
-
-    actuators->moveDeg(StepperList::STEPPER_X, 90);
-    ledWaitLoop(TEST_WAIT);
-
-    // Return to (0,0)
-    actuators->moveDeg(StepperList::STEPPER_Y, -22.5);
-    ledWaitLoop(TEST_WAIT);
-
-    LOG_INFO(logger, "Test 2 completed\n");
-}
-
-void test3(Actuators* actuators)
-{
-    actuators->setSpeed(StepperList::STEPPER_X, STEPPER_SPEED);
-    actuators->setSpeed(StepperList::STEPPER_Y, STEPPER_SPEED);
-
-    actuators->moveDeg(StepperList::STEPPER_X, 180);
-    ledWaitLoop(TEST_WAIT + 4000);
-    actuators->moveDeg(StepperList::STEPPER_X, -180);
-    ledWaitLoop(TEST_WAIT + 4000);
-
-    actuators->moveDeg(StepperList::STEPPER_Y, 90);
-    ledWaitLoop(TEST_WAIT);
-    actuators->moveDeg(StepperList::STEPPER_Y, -90);
-    ledWaitLoop(TEST_WAIT);
-}
-
-void test6(Actuators* actuators)
-{
-    PrintLogger logger = PrintLogger{Logging::getLogger("test-actuators")};
-    LOG_INFO(logger, "Executing Test 6");
-
-    actuators->setSpeed(StepperList::STEPPER_X, STEPPER_SPEED);
-    actuators->setSpeed(StepperList::STEPPER_Y, STEPPER_SPEED);
-
-    actuators->moveDeg(StepperList::STEPPER_Y, 22.5);
-    ledWaitLoop(TEST_WAIT);
-
-    actuators->moveDeg(StepperList::STEPPER_Y, -22.5);
-    ledWaitLoop(TEST_WAIT);
-
-    actuators->moveDeg(StepperList::STEPPER_Y, 45);
-    ledWaitLoop(TEST_WAIT);
-
-    actuators->moveDeg(StepperList::STEPPER_Y, -45);
-    ledWaitLoop(TEST_WAIT);
-
-    actuators->moveDeg(StepperList::STEPPER_Y, 65.5);
-    ledWaitLoop(TEST_WAIT);
-
-    actuators->moveDeg(StepperList::STEPPER_Y, -65.5);
-    ledWaitLoop(TEST_WAIT);
-
-    actuators->moveDeg(StepperList::STEPPER_Y, 90);
-    ledWaitLoop(TEST_WAIT);
-
-    actuators->moveDeg(StepperList::STEPPER_Y, -90);
-    ledWaitLoop(TEST_WAIT);
-
-    LOG_INFO(logger, "Test 6 completed\n");
-}
-
-int main()
-{
-    ledOff();
-
-    Hub* hub             = new Hub();
-    LyraGS::Buses* buses = new LyraGS::Buses();
-    Serial* serial       = new Serial();
-    Actuators* actuators = new Actuators();
-    Sensors* sensors     = new Sensors();
-
-    DependencyManager manager;
-    PrintLogger logger = PrintLogger{Logging::getLogger("test-actuators")};
-    bool ok            = true;
-
-    LOG_INFO(logger, "test-actuators\n");
-
-    // Insert modules
-    {
-        ok &= manager.insert<HubBase>(hub);
-        ok &= manager.insert(buses);
-        ok &= manager.insert(serial);
-        ok &= manager.insert(actuators);
-        ok &= manager.insert(sensors);
-
-        // If insertion failed, stop right here
-        if (!ok)
-        {
-            LOG_ERR(logger, "Failed to insert all modules!\n");
-            errorLoop();
-        }
-        else
-        {
-            LOG_DEBUG(logger, "All modules inserted successfully!\n");
-        }
-
-        if (!manager.inject())
-        {
-            LOG_ERR(logger, "[error] Failed to inject the dependencies!\n");
-            errorLoop();
-        }
-        else
-        {
-            LOG_DEBUG(logger, "All modules injected successfully!\n");
-        }
-    }
-
-    // Start modules
-    {
-#ifndef NO_SD_LOGGING
-        START_MODULE("Logger", [&] { return Logger::getInstance().start(); });
-#endif
-        START_MODULE("Serial", [&] { return serial->start(); });
-        START_MODULE("Sensors", [&] { return sensors->start(); });
-
-        actuators->start();
-        LOG_DEBUG(logger, "Actuators started successfully!\n");
-    }
-
-    // Setup success LED
-    led1On();
-    LOG_INFO(logger, "Modules setup successful");
-
-    LOG_INFO(logger, "Starting tests\n");
-
-    actuators->arm();
-
-    test1(actuators);
-    test2(actuators);
-    test3(actuators);
-    test6(actuators);
-
-    LOG_INFO(logger, "Tests completed\n");
-
-    led1Off();
-    while (1)
-        Thread::sleep(1000);
-    return 0;
-}
diff --git a/src/Groundstation/Automated/test-automated-radio.cpp b/src/Groundstation/Automated/test-automated-radio.cpp
deleted file mode 100644
index c33b71cdde30e8d197e6e4ca81e12f2c697e5838..0000000000000000000000000000000000000000
--- a/src/Groundstation/Automated/test-automated-radio.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-/* Copyright (c) 2023 Skyward Experimental Rocketry
- * Authors: Davide Mor, Emilio Corigliano
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include <Groundstation/Automated/Buses.h>
-#include <Groundstation/Automated/Hub.h>
-#include <Groundstation/Automated/Radio/Radio.h>
-#include <Groundstation/Common/Ports/Serial.h>
-#include <Groundstation/LyraGS/BoardStatus.h>
-#include <miosix.h>
-
-using namespace Groundstation;
-using namespace Antennas;
-using namespace Boardcore;
-using namespace miosix;
-
-void spinLoop()
-{
-    while (1)
-        Thread::sleep(1000);
-}
-
-void errorLoop()
-{
-    while (1)
-    {
-        led1On();
-        Thread::sleep(100);
-        led1Off();
-        Thread::sleep(100);
-    }
-}
-
-int main()
-{
-    ledOff();
-
-    Hub* hub                  = new Hub();
-    Buses* buses              = new Buses();
-    Serial* serial            = new Serial();
-    RadioMain* radio_main     = new RadioMain();
-    BoardStatus* board_status = new BoardStatus();
-
-    ModuleManager& modules = ModuleManager::getInstance();
-
-    bool ok = true;
-
-    ok &= modules.insert<HubBase>(hub);
-    ok &= modules.insert(buses);
-    ok &= modules.insert(serial);
-    ok &= modules.insert(radio_main);
-    ok &= modules.insert(board_status);
-
-    // If insertion failed, stop right here
-    if (!ok)
-    {
-        printf("[error] Failed to insert all modules!\n");
-        errorLoop();
-    }
-
-    // Ok now start them
-
-    ok &= serial->start();
-    if (!ok)
-        printf("[error] Failed to start serial!\n");
-
-    ok &= radio_main->start();
-    if (!ok)
-        printf("[error] Failed to start main radio!\n");
-
-    ok &= board_status->start();
-    if (!ok)
-        printf("[error] Failed to start radio status!\n");
-
-    if (board_status->isMainRadioPresent())
-        led2On();
-
-    if (!ok)
-        errorLoop();
-
-    led1On();
-    spinLoop();
-    return 0;
-}
diff --git a/src/Groundstation/Automated/test-smcontroller.cpp b/src/Groundstation/Automated/test-smcontroller.cpp
deleted file mode 100644
index a77712da36b4483cfa9ae33f823ea4fa89d41a0d..0000000000000000000000000000000000000000
--- a/src/Groundstation/Automated/test-smcontroller.cpp
+++ /dev/null
@@ -1,205 +0,0 @@
-/* Copyright (c) 2024 Skyward Experimental Rocketry
- * Author: Federico Lolli
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include <Groundstation/Automated/SMA/SMA.h>
-#include <common/Events.h>
-#include <common/Topics.h>
-#include <events/EventBroker.h>
-#include <utils/Debug.h>
-
-#include <memory>
-#include <unordered_set>
-
-#define ARP_EVENTS                                                \
-    {ARP_INIT_OK, ARP_INIT_ERROR, ARP_CAL_DONE, ARP_FIX_ANTENNAS, \
-     ARP_FIX_ROCKET}
-
-#define TMTC_EVENTS              \
-    {TMTC_ARP_FORCE_INIT,        \
-     TMTC_ARP_RESET_ALGORITHM,   \
-     TMTC_ARP_FORCE_NO_FEEDBACK, \
-     TMTC_ARP_ARM,               \
-     TMTC_ARP_DISARM,            \
-     TMTC_ARP_CALIBRATE,         \
-     TMTC_ARP_ENTER_TEST_MODE,   \
-     TMTC_ARP_EXIT_TEST_MODE}
-
-#define TEST_STATE(INITIAL_STATE, EVENT, TOPIC_SM, FINAL_STATE)           \
-    sm->forceState(&SMA::INITIAL_STATE);                                  \
-    EventBroker::getInstance().post(EVENT, TOPIC_SM);                     \
-    Thread::sleep(20);                                                    \
-    TRACE("Testing %-26s in " #INITIAL_STATE " -> " #FINAL_STATE " ... ", \
-          getEventString(EVENT).c_str());                                 \
-    correct = sm->testState(&SMA::FINAL_STATE);                           \
-    printf(correct ? "OK\n" : "FAIL\n");                                  \
-    ok &= correct;
-
-#define TEST_NO_TRANSITION(INITIAL_STATE, EVENT, TOPIC_SM) \
-    sm->forceState(&SMA::INITIAL_STATE);                   \
-    EventBroker::getInstance().post(EVENT, TOPIC_SM);      \
-    Thread::sleep(20);                                     \
-    TRACE("Testing %-26s in " #INITIAL_STATE " -X ... ",   \
-          getEventString(EVENT).c_str());                  \
-    correct = sm->testState(&SMA::INITIAL_STATE);          \
-    printf(correct ? "OK\n" : "FAIL\n");                   \
-    ok &= correct;
-
-#define TEST_ALL_OTHER(INITIAL_STATE, ...)                     \
-    to_exclude = {__VA_ARGS__};                                \
-    for (Events ev : arp_events)                               \
-    {                                                          \
-        if (to_exclude.find(ev) == to_exclude.end())           \
-        {                                                      \
-            TEST_NO_TRANSITION(INITIAL_STATE, ev, TOPIC_ARP);  \
-        }                                                      \
-    }                                                          \
-    for (Events ev : tmtc_events)                              \
-    {                                                          \
-        if (to_exclude.find(ev) == to_exclude.end())           \
-        {                                                      \
-            TEST_NO_TRANSITION(INITIAL_STATE, ev, TOPIC_TMTC); \
-        }                                                      \
-    }
-
-// for (auto state : {__VA_ARGS__})
-// {
-
-using namespace Boardcore;
-using namespace Common;
-using namespace Antennas;
-
-SMA* sm = new SMA();
-
-int main()
-{
-    bool correct, ok = true;
-    std::unordered_set<Events> to_exclude;
-    std::vector<Events> arp_events  = ARP_EVENTS;
-    std::vector<Events> tmtc_events = TMTC_EVENTS;
-
-    sm->start();
-    TRACE("SMA started\n");
-
-    // TEST STATE: INIT
-    TEST_STATE(state_init, ARP_INIT_OK, TOPIC_ARP, state_init_done);
-    TEST_STATE(state_init, ARP_INIT_ERROR, TOPIC_ARP, state_init_error);
-    TEST_ALL_OTHER(state_init, ARP_INIT_OK, ARP_INIT_ERROR);
-
-    // TEST STATE: INIT_DONE
-    TEST_STATE(state_init_done, TMTC_ARP_ARM, TOPIC_TMTC, state_armed);
-    TEST_STATE(state_init_done, TMTC_ARP_FORCE_NO_FEEDBACK, TOPIC_TMTC,
-               state_insert_info);
-    TEST_ALL_OTHER(state_init_done, TMTC_ARP_ARM, TMTC_ARP_FORCE_NO_FEEDBACK);
-
-    // TEST STATE: INIT_ERROR
-    TEST_STATE(state_init_error, TMTC_ARP_FORCE_INIT, TOPIC_TMTC,
-               state_init_done);
-    TEST_STATE(state_init_error, TMTC_ARP_FORCE_NO_FEEDBACK, TOPIC_TMTC,
-               state_insert_info);
-    TEST_ALL_OTHER(state_init_error, TMTC_ARP_FORCE_INIT,
-                   TMTC_ARP_FORCE_NO_FEEDBACK);
-
-    // TEST STATE: INSERT_INFO
-    TEST_STATE(state_insert_info, ARP_FIX_ANTENNAS, TOPIC_ARP, state_arm_ready);
-    TEST_ALL_OTHER(state_insert_info, ARP_FIX_ANTENNAS);
-
-    // TEST STATE: ARM READY
-    TEST_STATE(state_arm_ready, TMTC_ARP_ARM, TOPIC_TMTC, state_armed_nf);
-    TEST_ALL_OTHER(state_arm_ready, TMTC_ARP_ARM);
-
-    // TEST STATE: ARMED
-    TEST_STATE(state_armed, TMTC_ARP_DISARM, TOPIC_TMTC, state_init_done);
-    TEST_STATE(state_armed, TMTC_ARP_CALIBRATE, TOPIC_TMTC, state_calibrate);
-    TEST_STATE(state_armed, TMTC_ARP_ENTER_TEST_MODE, TOPIC_TMTC, state_test);
-    TEST_ALL_OTHER(state_armed, TMTC_ARP_DISARM, TMTC_ARP_CALIBRATE,
-                   TMTC_ARP_ENTER_TEST_MODE);
-
-    // TEST STATE: TEST
-    TEST_STATE(state_test, TMTC_ARP_EXIT_TEST_MODE, TOPIC_TMTC, state_armed);
-    TEST_STATE(state_test, TMTC_ARP_DISARM, TOPIC_TMTC, state_init_done);
-    TEST_ALL_OTHER(state_test, TMTC_ARP_EXIT_TEST_MODE, TMTC_ARP_DISARM);
-
-    // TEST STATE: CALIBRATE
-    TEST_STATE(state_calibrate, ARP_CAL_DONE, TOPIC_ARP, state_fix_antennas);
-    TEST_STATE(state_calibrate, TMTC_ARP_DISARM, TOPIC_TMTC, state_init_done);
-    TEST_STATE(state_calibrate, TMTC_ARP_RESET_ALGORITHM, TOPIC_TMTC,
-               state_armed);
-    TEST_ALL_OTHER(state_calibrate, ARP_CAL_DONE, TMTC_ARP_DISARM,
-                   TMTC_ARP_RESET_ALGORITHM);
-
-    // TEST STATE: FIX_ANTENNAS
-    TEST_STATE(state_fix_antennas, ARP_FIX_ANTENNAS, TOPIC_ARP,
-               state_fix_rocket);
-    TEST_STATE(state_fix_antennas, TMTC_ARP_DISARM, TOPIC_TMTC,
-               state_init_done);
-    TEST_STATE(state_fix_antennas, TMTC_ARP_RESET_ALGORITHM, TOPIC_TMTC,
-               state_armed);
-    TEST_ALL_OTHER(state_fix_antennas, ARP_FIX_ANTENNAS, TMTC_ARP_DISARM,
-                   TMTC_ARP_RESET_ALGORITHM);
-
-    // TEST STATE: FIX_ROCKET
-    TEST_STATE(state_fix_rocket, ARP_FIX_ROCKET, TOPIC_ARP, state_active);
-    TEST_STATE(state_fix_rocket, TMTC_ARP_DISARM, TOPIC_TMTC, state_init_done);
-    TEST_STATE(state_fix_rocket, TMTC_ARP_RESET_ALGORITHM, TOPIC_TMTC,
-               state_armed);
-    TEST_ALL_OTHER(state_fix_rocket, ARP_FIX_ROCKET, TMTC_ARP_DISARM,
-                   TMTC_ARP_RESET_ALGORITHM);
-
-    // TEST STATE: ACTIVE
-    TEST_STATE(state_active, TMTC_ARP_DISARM, TOPIC_TMTC, state_init_done);
-    TEST_STATE(state_active, TMTC_ARP_RESET_ALGORITHM, TOPIC_TMTC, state_armed);
-    TEST_ALL_OTHER(state_active, TMTC_ARP_DISARM, TMTC_ARP_RESET_ALGORITHM);
-
-    // TEST STATE: ARMED_NO_FEEDBACK
-    TEST_STATE(state_armed_nf, TMTC_ARP_DISARM, TOPIC_TMTC, state_arm_ready);
-    TEST_STATE(state_armed_nf, TMTC_ARP_CALIBRATE, TOPIC_TMTC,
-               state_fix_rocket_nf);
-    TEST_STATE(state_armed_nf, TMTC_ARP_ENTER_TEST_MODE, TOPIC_TMTC,
-               state_test_nf);
-    TEST_ALL_OTHER(state_armed_nf, TMTC_ARP_DISARM, TMTC_ARP_CALIBRATE,
-                   TMTC_ARP_ENTER_TEST_MODE);
-
-    // TEST STATE: TEST_NO_FEEDBACK
-    TEST_STATE(state_test_nf, TMTC_ARP_EXIT_TEST_MODE, TOPIC_TMTC,
-               state_armed_nf);
-    TEST_STATE(state_test_nf, TMTC_ARP_DISARM, TOPIC_TMTC, state_arm_ready);
-    TEST_ALL_OTHER(state_test_nf, TMTC_ARP_EXIT_TEST_MODE, TMTC_ARP_DISARM);
-
-    // TEST STATE: FIX_ROCKET_NO_FEEDBACK
-    TEST_STATE(state_fix_rocket_nf, ARP_FIX_ROCKET, TOPIC_ARP, state_active_nf);
-    TEST_STATE(state_fix_rocket_nf, TMTC_ARP_DISARM, TOPIC_TMTC,
-               state_arm_ready);
-    TEST_STATE(state_fix_rocket_nf, TMTC_ARP_RESET_ALGORITHM, TOPIC_TMTC,
-               state_armed_nf);
-    TEST_ALL_OTHER(state_fix_rocket_nf, ARP_FIX_ROCKET, TMTC_ARP_DISARM,
-                   TMTC_ARP_RESET_ALGORITHM);
-
-    // TEST STATE: ACTIVE_NO_FEEDBACK
-    TEST_STATE(state_active_nf, TMTC_ARP_DISARM, TOPIC_TMTC, state_arm_ready);
-    TEST_STATE(state_active_nf, TMTC_ARP_RESET_ALGORITHM, TOPIC_TMTC,
-               state_armed_nf);
-    TEST_ALL_OTHER(state_active_nf, TMTC_ARP_DISARM, TMTC_ARP_RESET_ALGORITHM);
-
-    TRACE("Testing SMA ... ");
-    ok ? printf("OK\n") : printf("FAIL\n");
-    return 0;
-}
diff --git a/src/Groundstation/Automated/test-steps.cpp b/src/Groundstation/Automated/test-steps.cpp
deleted file mode 100644
index 7a69211c5b49a6e90d374849c7ae77f73840eb8e..0000000000000000000000000000000000000000
--- a/src/Groundstation/Automated/test-steps.cpp
+++ /dev/null
@@ -1,236 +0,0 @@
-/* Copyright (c) 2023 Skyward Experimental Rocketry
- * Author: Emilio Corigliano
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include <Groundstation/Automated/Actuators/Actuators.h>
-#include <Groundstation/Automated/Buses.h>
-#include <Groundstation/Automated/Sensors/Sensors.h>
-#include <diagnostic/CpuMeter/CpuMeter.h>
-#include <diagnostic/PrintLogger.h>
-#include <diagnostic/StackLogger.h>
-#include <drivers/interrupt/external_interrupts.h>
-#include <drivers/timer/TimestampTimer.h>
-#include <events/EventBroker.h>
-#include <miosix.h>
-#include <scheduler/TaskScheduler.h>
-#include <utils/ButtonHandler/ButtonHandler.h>
-
-#include <iostream>
-#include <utils/ModuleManager/ModuleManager.hpp>
-
-#include "actuators/stepper/StepperPWM.h"
-
-using namespace miosix;
-using namespace Boardcore;
-using namespace Antennas;
-
-/**
- * Test used to characterize the automated antennas.
- */
-
-GpioPin button = GpioPin(GPIOC_BASE, 13);
-
-void __attribute__((used)) EXTI13_IRQHandlerImpl()
-{
-    ModuleManager::getInstance().get<Actuators>()->IRQemergencyStop();
-}
-
-int main()
-{
-    bool initResult          = true;
-    PrintLogger logger       = Logging::getLogger("automated_antennas");
-    ModuleManager& modules   = ModuleManager::getInstance();
-    TaskScheduler* scheduler = new TaskScheduler();
-
-    button.mode(Mode::INPUT);
-    enableExternalInterrupt(button.getPort(), button.getNumber(),
-                            InterruptTrigger::RISING_EDGE);
-
-    // INSERTING MODULES
-    {
-        if (!modules.insert<Buses>(new Buses()))
-        {
-            initResult = false;
-            LOG_ERR(logger, "Error inserting the Buses module");
-        }
-        else
-        {
-            LOG_INFO(logger, "Successfully inserted Buses module\n");
-        }
-
-        if (!modules.insert<Actuators>(new Actuators()))
-        {
-            initResult = false;
-            LOG_ERR(logger, "Error inserting the Actuators module");
-        }
-        else
-        {
-            LOG_INFO(logger, "Successfully inserted Actuators module\n");
-        }
-
-        if (!modules.insert<Sensors>(new Sensors()))
-        {
-            initResult = false;
-            LOG_ERR(logger, "Error inserting the Sensors module");
-        }
-        else
-        {
-            LOG_INFO(logger, "Successfully inserted Sensors module\n");
-        }
-
-        // Insert algorithm modules
-    }
-
-    // ADDING TASKS
-    {
-        scheduler->addTask(
-            []()
-            {
-                Logger::getInstance().log(CpuMeter::getCpuStats());
-                CpuMeter::resetCpuStats();
-                Logger::getInstance().logStats();
-                StackLogger::getInstance().log();
-            },
-            100);
-    }
-
-    // STARTING MODULES
-    {
-#ifndef NO_SD_LOGGING
-        // Starting the Logger
-        if (!Logger::getInstance().start())
-        {
-            initResult = false;
-            LOG_ERR(logger, "Error initializing the Logger\n");
-        }
-        else
-        {
-            LOG_INFO(logger, "Logger started successfully\n");
-        }
-#endif
-
-        // Starting scheduler
-        if (!scheduler->start())
-        {
-            initResult = false;
-            LOG_ERR(logger, "Error initializing the Scheduler\n");
-        }
-        else
-        {
-            LOG_INFO(logger, "Scheduler started successfully\n");
-        }
-
-        // Starting the Actuators
-        modules.get<Actuators>()->start();
-
-        // Starting the Sensors
-        if (!modules.get<Sensors>()->start())
-        {
-            initResult = false;
-            LOG_ERR(logger, "Error initializing the Sensors\n");
-        }
-        else
-        {
-            LOG_INFO(logger, "Sensors started successfully\n");
-        }
-    }
-
-    if (!initResult)
-    {
-        printf("Errors present during module insertion\n");
-        return -1;
-    }
-
-    // Periodically statistics
-    float speed0 = 0.5;
-    float speed  = speed0;
-
-    modules.get<Actuators>()->setSpeed(StepperList::STEPPER_X, speed);
-
-    modules.get<Actuators>()->setSpeed(StepperList::STEPPER_Y, speed);
-
-    // bool increasing = true;
-    // float speedMax  = 1.0;
-    // float stepSpeed = 0.1;
-    // scheduler->addTask(
-    //     [&]()
-    //     {
-    //         if (increasing)
-    //         {
-    //             if (speed < speedMax)
-    //             {
-    //                 speed += stepSpeed;
-    //                 modules.get<Actuators>()->setSpeed(
-    //                     StepperList::STEPPER_X, speed);
-    //             }
-    //             else
-    //             {
-    //                 increasing = false;
-    //             }
-    //         }
-    //         else
-    //         {
-    //             if (speed > 0)
-    //             {
-    //                 speed -= stepSpeed;
-    //                 modules.get<Actuators>()->setSpeed(
-    //                     StepperList::STEPPER_X, speed);
-    //             }
-    //             else
-    //             {
-    //                 increasing = true;
-    //             }
-    //         }
-    //     },
-    //     100);
-    VN300Data data;
-    while (!ModuleManager::getInstance().get<Actuators>()->isEmergencyStopped())
-    {
-        {
-            data = modules.get<Sensors>()->getVN300LastSample();
-            printf("acc[%.3f,%.3f,%.3f] ypr[%.3f,%.3f,%.3f]\n",
-                   data.accelerationX, data.accelerationY, data.accelerationZ,
-                   data.yaw, data.pitch, data.roll);
-            modules.get<Actuators>()->moveDeg(StepperList::STEPPER_X, 90);
-            modules.get<Actuators>()->moveDeg(StepperList::STEPPER_Y, 90);
-            Thread::sleep(1500);
-        }
-
-        {
-            data = modules.get<Sensors>()->getVN300LastSample();
-            printf("acc[%.3f,%.3f,%.3f] ypr[%.3f,%.3f,%.3f]\n",
-                   data.accelerationX, data.accelerationY, data.accelerationZ,
-                   data.yaw, data.pitch, data.roll);
-            modules.get<Actuators>()->moveDeg(StepperList::STEPPER_X, -90);
-            modules.get<Actuators>()->moveDeg(StepperList::STEPPER_Y, -90);
-            Thread::sleep(1500);
-        }
-    }
-
-    // Stopping threads
-    {
-        Logger::getInstance().stop();
-        printf("Logger stopped! Board can be reset/shutdown9\n");
-    }
-
-    while (1)
-        ;
-}