From 067e90c316f357f28d897264ec9755851f4b7946 Mon Sep 17 00:00:00 2001
From: jtkenny <jtkenny@iastate.edu>
Date: Sun, 31 Mar 2024 22:22:08 +0200
Subject: [PATCH] more commenting

---
 .../deck/api/deck_analog.c                    |    4 +-
 .../deck/api/deck_spi3.c                      |    6 +-
 .../deck/core/deck_drivers.c                  |   35 +-
 .../deck/core/deck_memory.c                   |    3 +-
 .../deck/drivers/interface/locodeck.h         |    1 +
 .../deck/drivers/src/activeMarkerDeck.c       |   35 +-
 .../deck/drivers/src/aideck.c                 |    5 +-
 .../deck/drivers/src/flowdeck_v1v2.c          |  153 +--
 .../deck/drivers/src/gtgps.c                  |   42 +-
 .../deck/drivers/src/ledring12.c              |   92 +-
 .../deck/drivers/src/lhtesterdeck.c           |    4 +-
 .../deck/drivers/src/lighthouse.c             |    7 +-
 .../deck/drivers/src/lpsTdoa2Tag.c            |   35 +-
 .../deck/drivers/src/lpsTdoa3Tag.c            |   34 +-
 .../deck/drivers/src/lpsTwrTag.c              |   16 +-
 .../deck/drivers/src/multiranger.c            |   11 +-
 .../deck/drivers/src/oa.c                     |    3 +-
 .../deck/drivers/src/usddeck.c                |   48 +-
 .../deck/drivers/src/zranger.c                |   53 +-
 .../deck/drivers/src/zranger2.c               |   47 +-
 .../drivers/src/exti.c                        |    3 +-
 .../drivers/src/fatfs_sd.c                    |    2 +-
 .../drivers/src/lps25h.c                      |   19 +-
 .../drivers/src/motors_def_cf2.c              | 1057 +++++++++--------
 .../hal/interface/pm.h                        |    6 +-
 .../hal/src/ow_syslink.c                      |    3 +-
 .../hal/src/pm_stm32f4.c                      |   44 +-
 .../hal/src/sensors_bmi088_bmp388.c           |   34 +-
 .../hal/src/sensors_bosch.c                   |   47 +-
 .../hal/src/sensors_mpu9250_lps25h.c          |  125 +-
 .../lib/FatFS/ff.h                            |    5 +-
 .../lib/vl53l1/core/src/vl53l1_api.c          |   29 +-
 .../modules/interface/math3d.h                |  120 +-
 .../modules/interface/quatcompress.h          |   26 +-
 .../modules/interface/static_mem.h            |    8 +-
 .../modules/src/collision_avoidance.c         |  302 ++---
 .../modules/src/controller_indi.c             |   21 +-
 .../modules/src/controller_mellinger.c        |  387 +++---
 .../modules/src/crtp_commander_high_level.c   |   12 +-
 .../modules/src/crtp_commander_rpyt.c         |    4 +-
 .../modules/src/crtp_localization_service.c   |    2 +
 .../modules/src/crtpservice.c                 |    5 +-
 .../modules/src/estimator.c                   |    3 +-
 .../modules/src/estimator_kalman.c            |   14 +-
 .../modules/src/eventtrigger.c                |   13 +-
 .../modules/src/health.c                      |    5 +-
 .../modules/src/info.c                        |  199 ++--
 .../modules/src/kalman_core/kalman_core.c     |   74 +-
 .../src/kalman_core/mm_distance_robust.c      |   31 +-
 .../modules/src/lighthouse/lighthouse_core.c  |   83 +-
 .../modules/src/log.c                         |   23 +-
 .../modules/src/outlierFilter.c               |   95 +-
 .../modules/src/param.c                       |   17 +-
 .../modules/src/position_controller_indi.c    |    3 +-
 .../modules/src/position_controller_pid.c     |    3 +-
 .../modules/src/position_estimator_altitude.c |    3 +-
 .../modules/src/pptraj.c                      |   78 +-
 .../modules/src/pptraj_compressed.c           |   76 +-
 .../modules/src/sensfusion6.c                 |   17 +-
 .../modules/src/sound_cf2.c                   |   21 +-
 .../modules/src/stabilizer.c                  |    6 +-
 .../modules/src/system.c                      |    5 +-
 .../uart/Makefile                             |    7 +-
 .../uart/build/activeMarkerDeck.o             |  Bin 7360 -> 5744 bytes
 .../uart/build/aideck.o                       |  Bin 3952 -> 3904 bytes
 .../uart/build/collision_avoidance.o          |  Bin 4104 -> 4632 bytes
 .../uart/build/controller_indi.o              |  Bin 10832 -> 10392 bytes
 .../uart/build/controller_mellinger.o         |  Bin 9440 -> 6008 bytes
 .../uart/build/crtp_commander_high_level.o    |  Bin 13512 -> 10760 bytes
 .../uart/build/crtp_commander_rpyt.o          |  Bin 3776 -> 3696 bytes
 .../uart/build/crtp_localization_service.o    |  Bin 8384 -> 8784 bytes
 .../uart/build/crtpservice.o                  |  Bin 4944 -> 4760 bytes
 .../uart/build/deck_analog.o                  |  Bin 1464 -> 1320 bytes
 .../uart/build/deck_drivers.o                 |  Bin 2312 -> 1160 bytes
 .../uart/build/deck_memory.o                  |  Bin 2952 -> 2880 bytes
 .../uart/build/deck_spi3.o                    |  Bin 1496 -> 1392 bytes
 .../uart/build/eprintf.o                      |  Bin 3896 -> 1032 bytes
 .../uart/build/estimator.o                    |  Bin 14528 -> 10384 bytes
 .../uart/build/estimator_kalman.o             |  Bin 18520 -> 7520 bytes
 .../uart/build/eventtrigger.o                 |  Bin 2056 -> 1784 bytes
 .../uart/build/exti.o                         |  Bin 0 -> 2552 bytes
 .../uart/build/fatfs_sd.o                     |  Bin 0 -> 1248 bytes
 .../uart/build/ff.o                           |  Bin 0 -> 30784 bytes
 .../uart/build/ffsystem.o                     |  Bin 0 -> 888 bytes
 .../uart/build/ffunicode.o                    |  Bin 0 -> 2936 bytes
 .../uart/build/flowdeck_v1v2.o                |  Bin 8096 -> 7088 bytes
 .../uart/build/gtgps.o                        |  Bin 6920 -> 4888 bytes
 .../uart/build/health.o                       |  Bin 10488 -> 10392 bytes
 .../uart/build/kalman_core.o                  |  Bin 6104 -> 4064 bytes
 .../uart/build/ledring12.o                    |  Bin 19616 -> 18160 bytes
 .../uart/build/lighthouse.o                   |  Bin 3944 -> 3272 bytes
 .../uart/build/lighthouse_core.o              |  Bin 15968 -> 8744 bytes
 .../uart/build/lighthouse_geometry.o          |  Bin 3440 -> 1912 bytes
 .../uart/build/log.o                          |  Bin 24072 -> 23704 bytes
 .../uart/build/lps25h.o                       |  Bin 2184 -> 2024 bytes
 .../uart/build/lpsTdoa2Tag.o                  |  Bin 3520 -> 3568 bytes
 .../uart/build/lpsTdoa3Tag.o                  |  Bin 888 -> 960 bytes
 .../uart/build/lpsTwrTag.o                    |  Bin 4672 -> 4720 bytes
 .../uart/build/motors.o                       |  Bin 0 -> 2640 bytes
 .../uart/build/multiranger.o                  |  Bin 11024 -> 10840 bytes
 .../uart/build/num.o                          |  Bin 1744 -> 1368 bytes
 .../uart/build/nvic.o                         |  Bin 0 -> 1528 bytes
 .../uart/build/oa.o                           |  Bin 7504 -> 7360 bytes
 .../uart/build/outlierFilter.o                |  Bin 3648 -> 2496 bytes
 .../uart/build/ow_syslink.o                   |  Bin 5944 -> 5616 bytes
 .../uart/build/param.o                        |  Bin 13920 -> 13096 bytes
 .../uart/build/pm_stm32f4.o                   |  Bin 0 -> 5128 bytes
 .../uart/build/position_controller_indi.o     |  Bin 12064 -> 11560 bytes
 .../uart/build/position_controller_pid.o      |  Bin 9440 -> 9488 bytes
 .../uart/build/position_estimator_altitude.o  |  Bin 3744 -> 3696 bytes
 .../uart/build/pptraj.o                       |  Bin 7888 -> 6424 bytes
 .../uart/build/pptraj_compressed.o            |  Bin 3296 -> 1992 bytes
 .../uart/build/pulse_processor_v1.o           |  Bin 4120 -> 3536 bytes
 .../uart/build/pulse_processor_v2.o           |  Bin 3480 -> 3168 bytes
 .../uart/build/sensfusion6.o                  |  Bin 6128 -> 5568 bytes
 .../uart/build/sound_cf2.o                    |  Bin 10312 -> 9536 bytes
 .../uart/build/stabilizer.o                   |  Bin 17912 -> 12984 bytes
 .../uart/build/system.o                       |  Bin 12128 -> 11904 bytes
 .../uart/build/usddeck.o                      |  Bin 13376 -> 11344 bytes
 .../uart/build/vl53l1_api.o                   |  Bin 18304 -> 17824 bytes
 .../uart/build/zranger.o                      |  Bin 4200 -> 3096 bytes
 .../uart/build/zranger2.o                     |  Bin 6152 -> 4464 bytes
 .../utils/src/empty_math.h                    |   24 +
 .../utils/src/eprintf.c                       |  305 ++---
 .../utils/src/filter.h                        |   15 +-
 .../src/lighthouse/lighthouse_geometry.c      |  137 +--
 .../utils/src/lighthouse/pulse_processor_v1.c |   83 +-
 .../utils/src/lighthouse/pulse_processor_v2.c |    7 +-
 .../utils/src/num.c                           |   28 +-
 129 files changed, 2219 insertions(+), 2051 deletions(-)
 create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/exti.o
 create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/fatfs_sd.o
 create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ff.o
 create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ffsystem.o
 create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ffunicode.o
 create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/motors.o
 create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/nvic.o
 create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pm_stm32f4.o
 create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/empty_math.h

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/api/deck_analog.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/api/deck_analog.c
index 6296ff178..e0a6dabc5 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/api/deck_analog.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/api/deck_analog.c
@@ -27,6 +27,8 @@
 #include "deck.h"
 
 #include "stm32fxxx.h"
+#include "stm32f4xx_conf.h"
+#include "stm32f4xx_adc.h"
 
 static  uint32_t  stregResolution;
 static  uint32_t  adcRange;
@@ -78,7 +80,7 @@ static uint16_t analogReadChannel(uint8_t channel)
   // while(ADC_GetFlagStatus(ADC2, ADC_FLAG_EOC) == RESET);
 
   /* Get the conversion value */
-  return ADC_GetConversionValue(ADC2);
+  return 0;//ADC_GetConversionValue(ADC2);
 }
 
 uint16_t analogRead(const deckPin_t pin)
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/api/deck_spi3.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/api/deck_spi3.c
index 4b16d397d..42e135816 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/api/deck_spi3.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/api/deck_spi3.c
@@ -189,10 +189,10 @@ static void spi3DMAInit()
 
 //   NVIC_InitStructure.NVIC_IRQChannel = SPI_RX_DMA_IRQ;
 //   NVIC_Init(&NVIC_InitStructure);
-// }
+}
 
-// static void spi3ConfigureWithSpeed(uint16_t baudRatePrescaler)
-// {
+static void spi3ConfigureWithSpeed(uint16_t baudRatePrescaler)
+{
 //   SPI_InitTypeDef  SPI_InitStructure;
 
 //   SPI_I2S_DeInit(SPI);
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/core/deck_drivers.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/core/deck_drivers.c
index 77fd37a8c..afc5ea72b 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/core/deck_drivers.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/core/deck_drivers.c
@@ -49,24 +49,25 @@ static int driversLen;
 // Init the toc access variables. Lazy initialisation: it is going to be done
 // the first time any api function is called.
 static void deckdriversInit() {
-  static bool init = false;
-  if (!init) {
-    int i;
-
-    drivers = &_deckDriver_start;
-    driversLen = &_deckDriver_stop - &_deckDriver_start;
-    init = true;
-
-    DECK_DRV_DBG_PRINT("Found %d drivers\n", driversLen);
-    for (i=0; i<driversLen; i++) {
-      if (drivers[i]->name) {
-        DECK_DRV_DBG_PRINT("VID:PID %02x:%02x (%s)\n", drivers[i]->vid, drivers[i]->pid, drivers[i]->name);
-      } else {
-        DECK_DRV_DBG_PRINT("VID:PID %02x:%02x\n", drivers[i]->vid, drivers[i]->pid);
-      }
+  //COMMENTED FIRMWARE
+  // static bool init = false;
+  // if (!init) {
+  //   int i;
+
+  //   drivers = &_deckDriver_start;
+  //   driversLen = &_deckDriver_stop - &_deckDriver_start;
+  //   init = true;
+
+  //   DECK_DRV_DBG_PRINT("Found %d drivers\n", driversLen);
+  //   for (i=0; i<driversLen; i++) {
+  //     if (drivers[i]->name) {
+  //       DECK_DRV_DBG_PRINT("VID:PID %02x:%02x (%s)\n", drivers[i]->vid, drivers[i]->pid, drivers[i]->name);
+  //     } else {
+  //       DECK_DRV_DBG_PRINT("VID:PID %02x:%02x\n", drivers[i]->vid, drivers[i]->pid);
+  //     }
 
-    }
-  }
+  //   }
+  // }
 }
 
 int deckDriverCount() {
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/core/deck_memory.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/core/deck_memory.c
index d5fec8bb7..818c4532b 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/core/deck_memory.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/core/deck_memory.c
@@ -111,7 +111,8 @@ static void populateDeckMemoryInfo(uint8_t buffer[], const uint8_t deckNr) {
         memcpy(&buffer[OFFS_REQ_HASH], &deckMemDef->requiredHash, 4);
         memcpy(&buffer[OFFS_REQ_LEN], &deckMemDef->requiredSize, 4);
         memcpy(&buffer[OFFS_BASE_ADDR], &baseAddress, 4);
-        strncpy((char*)&buffer[OFFS_NAME], info->driver->name, NAME_LEN_EX_ZERO_TREM);
+        //COMMENTED FIRMWARE
+        // strncpy((char*)&buffer[OFFS_NAME], info->driver->name, NAME_LEN_EX_ZERO_TREM);
     }
 }
 
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/interface/locodeck.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/interface/locodeck.h
index ad869a62a..9cc36b84e 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/interface/locodeck.h
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/interface/locodeck.h
@@ -37,6 +37,7 @@
 #include <stdint.h>
 
 #include "FreeRTOS.h"
+#include "FreeRTOSConfig.h"
 
 //COMMENTED FIRMWARE
 //#include "libdw1000.h"
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/activeMarkerDeck.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/activeMarkerDeck.c
index b5d1ecf58..4eda70ff5 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/activeMarkerDeck.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/activeMarkerDeck.c
@@ -118,21 +118,22 @@ static bool activeMarkerDeckTest() {
     return false;
   }
 
-#ifndef ACTIVE_MARKER_DECK_TEST
-  if (0 == strcmp("Qualisys0.A", versionString)) {
-    deckFwVersion = version_0_A;
-  } else if (0 == strcmp("Qualisys1.0", versionString)) {
-    deckFwVersion = version_1_0;
-  }
-
-  isVerified = (versionUndefined != deckFwVersion);
-  if (! isVerified) {
-    DEBUG_PRINT("Incompatible deck FW\n");
-  }
-#else
-  isVerified = true;
-  deckFwVersion = version_1_0;
-#endif
+//COMMENTED FIRMWARE
+// #ifndef ACTIVE_MARKER_DECK_TEST
+//   if (0 == strcmp("Qualisys0.A", versionString)) {
+//     deckFwVersion = version_0_A;
+//   } else if (0 == strcmp("Qualisys1.0", versionString)) {
+//     deckFwVersion = version_1_0;
+//   }
+
+//   isVerified = (versionUndefined != deckFwVersion);
+//   if (! isVerified) {
+//     DEBUG_PRINT("Incompatible deck FW\n");
+//   }
+// #else
+//   isVerified = true;
+//   deckFwVersion = version_1_0;
+// #endif
 
   return isVerified;
 }
@@ -197,7 +198,9 @@ static void task(void *param) {
       delay = POLL_UPDATE_PERIOD_MS;
     }
 
-    vTaskDelay(M2T(delay));
+    //COMMENTED FIRMWARE
+    //vTaskDelay(M2T(delay));
+    vTaskDelay(delay);
   }
 
 }
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/aideck.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/aideck.c
index 894f1d5c7..aaf594832 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/aideck.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/aideck.c
@@ -37,6 +37,7 @@
 #include "debug.h"
 #include "deck.h"
 #include "FreeRTOS.h"
+#include "FreeRTOSConfig.h"
 #include "task.h"
 #include "queue.h"
 //COMMENTED FIRMWARE
@@ -85,7 +86,9 @@ static void NinaTask(void *param)
 static void Gap8Task(void *param)
 {
     systemWaitStart();
-    vTaskDelay(M2T(1000));
+    //COMMENTED FIRMWARE
+    // vTaskDelay(M2T(1000));
+    vTaskDelay(1000);
 
     // Pull the reset button to get a clean read out of the data
     pinMode(DECK_GPIO_IO4, OUTPUT);
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/flowdeck_v1v2.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/flowdeck_v1v2.c
index b44fc7100..191593fa3 100755
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/flowdeck_v1v2.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/flowdeck_v1v2.c
@@ -83,82 +83,83 @@ static float flowStdFixed = 2.0f;
 
 static void flowdeckTask(void *param)
 {
-  systemWaitStart();
-
-  uint64_t lastTime  = usecTimestamp();
-  while(1) {
-    vTaskDelay(10);
-
-    pmw3901ReadMotion(NCS_PIN, &currentMotion);
-
-    // Flip motion information to comply with sensor mounting
-    // (might need to be changed if mounted differently)
-    int16_t accpx = -currentMotion.deltaY;
-    int16_t accpy = -currentMotion.deltaX;
-
-    // Outlier removal
-    if (abs(accpx) < OULIER_LIMIT && abs(accpy) < OULIER_LIMIT) {
-
-    if (useAdaptiveStd)
-    {
-      // The standard deviation is fitted by measurements flying over low and high texture
-      //   and looking at the shutter time
-      float shutter_f = (float)currentMotion.shutter;
-      stdFlow=0.0007984f *shutter_f + 0.4335f;
-
-
-      // The formula with the amount of features instead
-      /*float squal_f = (float)currentMotion.squal;
-      stdFlow =  -0.01257f * squal_f + 4.406f; */
-      if (stdFlow < 0.1f) stdFlow=0.1f;
-    } else {
-      stdFlow = flowStdFixed;
-    }
-
-
-    // Form flow measurement struct and push into the EKF
-    flowMeasurement_t flowData;
-    flowData.stdDevX = stdFlow;
-    flowData.stdDevY = stdFlow;
-    flowData.dt = 0.01;
-
-#if defined(USE_MA_SMOOTHING)
-      // Use MA Smoothing
-      pixelAverages.averageX[pixelAverages.ptr] = (float32_t)accpx;
-      pixelAverages.averageY[pixelAverages.ptr] = (float32_t)accpy;
-
-      float32_t meanX;
-      float32_t meanY;
-
-      arm_mean_f32(pixelAverages.averageX, AVERAGE_HISTORY_LENGTH, &meanX);
-      arm_mean_f32(pixelAverages.averageY, AVERAGE_HISTORY_LENGTH, &meanY);
-
-      pixelAverages.ptr = (pixelAverages.ptr + 1) % AVERAGE_HISTORY_LENGTH;
-
-      flowData.dpixelx = (float)meanX;   // [pixels]
-      flowData.dpixely = (float)meanY;   // [pixels]
-#elif defined(USE_LP_FILTER)
-      // Use LP filter measurements
-      flowData.dpixelx = LP_CONSTANT * dpixelx_previous + (1.0f - LP_CONSTANT) * (float)accpx;
-      flowData.dpixely = LP_CONSTANT * dpixely_previous + (1.0f - LP_CONSTANT) * (float)accpy;
-      dpixelx_previous = flowData.dpixelx;
-      dpixely_previous = flowData.dpixely;
-#else
-      // Use raw measurements
-      flowData.dpixelx = (float)accpx;
-      flowData.dpixely = (float)accpy;
-#endif
-      // Push measurements into the estimator if flow is not disabled
-      //    and the PMW flow sensor indicates motion detection
-      if (!useFlowDisabled && currentMotion.motion == 0xB0) {
-        flowData.dt = (float)(usecTimestamp()-lastTime)/1000000.0f;
-        lastTime = usecTimestamp();
-        estimatorEnqueueFlow(&flowData);
-      }
-    } else {
-      outlierCount++;
-    }
-  }
+  //COMMENTED FIRMWARE
+//   systemWaitStart();
+
+//   uint64_t lastTime  = usecTimestamp();
+//   while(1) {
+//     vTaskDelay(10);
+
+//     pmw3901ReadMotion(NCS_PIN, &currentMotion);
+
+//     // Flip motion information to comply with sensor mounting
+//     // (might need to be changed if mounted differently)
+//     int16_t accpx = -currentMotion.deltaY;
+//     int16_t accpy = -currentMotion.deltaX;
+
+//     // Outlier removal
+//     if (abs(accpx) < OULIER_LIMIT && abs(accpy) < OULIER_LIMIT) {
+
+//     if (useAdaptiveStd)
+//     {
+//       // The standard deviation is fitted by measurements flying over low and high texture
+//       //   and looking at the shutter time
+//       float shutter_f = (float)currentMotion.shutter;
+//       stdFlow=0.0007984f *shutter_f + 0.4335f;
+
+
+//       // The formula with the amount of features instead
+//       /*float squal_f = (float)currentMotion.squal;
+//       stdFlow =  -0.01257f * squal_f + 4.406f; */
+//       if (stdFlow < 0.1f) stdFlow=0.1f;
+//     } else {
+//       stdFlow = flowStdFixed;
+//     }
+
+
+//     // Form flow measurement struct and push into the EKF
+//     flowMeasurement_t flowData;
+//     flowData.stdDevX = stdFlow;
+//     flowData.stdDevY = stdFlow;
+//     flowData.dt = 0.01;
+
+// #if defined(USE_MA_SMOOTHING)
+//       // Use MA Smoothing
+//       pixelAverages.averageX[pixelAverages.ptr] = (float32_t)accpx;
+//       pixelAverages.averageY[pixelAverages.ptr] = (float32_t)accpy;
+
+//       float32_t meanX;
+//       float32_t meanY;
+
+//       arm_mean_f32(pixelAverages.averageX, AVERAGE_HISTORY_LENGTH, &meanX);
+//       arm_mean_f32(pixelAverages.averageY, AVERAGE_HISTORY_LENGTH, &meanY);
+
+//       pixelAverages.ptr = (pixelAverages.ptr + 1) % AVERAGE_HISTORY_LENGTH;
+
+//       flowData.dpixelx = (float)meanX;   // [pixels]
+//       flowData.dpixely = (float)meanY;   // [pixels]
+// #elif defined(USE_LP_FILTER)
+//       // Use LP filter measurements
+//       flowData.dpixelx = LP_CONSTANT * dpixelx_previous + (1.0f - LP_CONSTANT) * (float)accpx;
+//       flowData.dpixely = LP_CONSTANT * dpixely_previous + (1.0f - LP_CONSTANT) * (float)accpy;
+//       dpixelx_previous = flowData.dpixelx;
+//       dpixely_previous = flowData.dpixely;
+// #else
+//       // Use raw measurements
+//       flowData.dpixelx = (float)accpx;
+//       flowData.dpixely = (float)accpy;
+// #endif
+//       // Push measurements into the estimator if flow is not disabled
+//       //    and the PMW flow sensor indicates motion detection
+//       if (!useFlowDisabled && currentMotion.motion == 0xB0) {
+//         flowData.dt = (float)(usecTimestamp()-lastTime)/1000000.0f;
+//         lastTime = usecTimestamp();
+//         estimatorEnqueueFlow(&flowData);
+//       }
+//     } else {
+//       outlierCount++;
+//     }
+//   }
 }
 
 static void flowdeck1Init()
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/gtgps.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/gtgps.c
index 7bca41c2d..505caf768 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/gtgps.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/gtgps.c
@@ -121,14 +121,15 @@ static int32_t parse_coordinate(char ** sp) {
   // a large number * 10 M
 
   // 32 18.0489 N = 32 degrees + 18.0489 / 60 = 32.300815 N
-  dm = strtol(*sp, &i, 10);
-  degree = (dm / 100) * 10000000;
-  minute = ((dm % 100) * 10000000) / 60;
-  second = (strtol(i+1, &j, 10) * 1000) / 60;
-  ret = degree + minute + second;
-  skip_to_next(sp, ',');
-  if (**sp == 'S' || **sp == 'W')
-    ret *= -1;
+  //COMMENTED FIRMWARE
+  // dm = strtol(*sp, &i, 10);
+  // degree = (dm / 100) * 10000000;
+  // minute = ((dm % 100) * 10000000) / 60;
+  // second = (strtol(i+1, &j, 10) * 1000) / 60;
+  // ret = degree + minute + second;
+  // skip_to_next(sp, ',');
+  // if (**sp == 'S' || **sp == 'W')
+  //   ret *= -1;
   return ret;
 }
 
@@ -140,12 +141,14 @@ static float parse_float(char * sp) {
   char * i;
   char * j;
 
-  major = strtol(sp, &i, 10);
+  //COMMENTED FIRMWARE
+  //major = strtol(sp, &i, 10);
   // Do decimals
-  if (strncmp(i, ".", 1) == 0) {
-    minor = strtol(i+1, &j, 10);
-    deci_nbr = j - i - 1;
-  }
+  //COMMENTED FIRMWARE
+  // if (strncmp(i, ".", 1) == 0) {
+  //   minor = strtol(i+1, &j, 10);
+  //   deci_nbr = j - i - 1;
+  // }
   ret = (major * pow(10, deci_nbr) + minor) / pow(10, deci_nbr);
   //printf("%i.%i == %f (%i) (%c)\n", major, minor, ret, deci_nbr, (int) *i);
   return ret;
@@ -156,7 +159,8 @@ static void parse_next(char ** sp, FieldType t, void * value) {
   //DEBUG_PRINT("[%s]\n", (*sp));
   switch (t) {
     case FIELD_INT:
-      *((uint32_t*) value) = strtol(*sp, 0, 10);
+    //COMMENTED FIRMWARE
+      // *((uint32_t*) value) = strtol(*sp, 0, 10);
       break;
     case FIELD_FLOAT:
       *((float*) value) = parse_float(*sp);
@@ -218,7 +222,8 @@ static bool verifyChecksum(const char * buff) {
   while (buff[i] != '*' && i < MAX_LEN_SENTANCE-3) {
     test_chksum ^= buff[i++];
   }
-  ref_chksum = strtol(&buff[i+1], 0, 16);
+  //COMMENTED FIRMWARE
+  // ref_chksum = strtol(&buff[i+1], 0, 16);
 
   return (test_chksum == ref_chksum);
 }
@@ -264,9 +269,10 @@ void gtgpsTask(void *param)
       if (verifyChecksum(buff)) {
         //DEBUG_PRINT("O");
         for (j = 0; j < sizeof(parsers)/sizeof(parsers[0]); j++) {
-          if (strncmp(parsers[j].token, buff, LEN_TOKEN) == 0) {
-            parsers[j].parser(&buff[LEN_TOKEN]);
-          }
+          //COMMENTED FIRMWARE
+          // if (strncmp(parsers[j].token, buff, LEN_TOKEN) == 0) {
+          //   parsers[j].parser(&buff[LEN_TOKEN]);
+          // }
         }
       }
     } else if (bi < MAX_LEN_SENTANCE) {
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/ledring12.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/ledring12.c
index 18a023097..23806a773 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/ledring12.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/ledring12.c
@@ -465,29 +465,31 @@ static void gravityLightRender(uint8_t buffer[][3], float led_index, int intensi
 
 static void gravityLight(uint8_t buffer[][3], bool reset)
 {
-  static int pitchid, rollid;
-  static bool isInitialized = false;
+  //COMMENTED FIRMWARE
+  // static int pitchid, rollid;
+  // static bool isInitialized = false;
 
-  if (!isInitialized) {
-    pitchid = logGetVarId("stabilizer", "pitch");
-    rollid = logGetVarId("stabilizer", "roll");
-    isInitialized = true;
-  }
+  // if (!isInitialized) {
+  //   pitchid = logGetVarId("stabilizer", "pitch");
+  //   rollid = logGetVarId("stabilizer", "roll");
+  //   isInitialized = true;
+  // }
 
-  float pitch = logGetFloat(pitchid); // -180 to 180
-  float roll = logGetFloat(rollid); // -180 to 180
+  // float pitch = logGetFloat(pitchid); // -180 to 180
+  // float roll = logGetFloat(rollid); // -180 to 180
 
-  float angle = gravityLightCalculateAngle(pitch, roll);
-  float led_index = NBR_LEDS * angle / (2 * (float) M_PI);
-  int intensity = LIMIT(sqrtf(pitch * pitch + roll * roll));
-  gravityLightRender(buffer, led_index, intensity);
+  // float angle = gravityLightCalculateAngle(pitch, roll);
+  // float led_index = NBR_LEDS * angle / (2 * (float) M_PI);
+  // int intensity = LIMIT(sqrtf(pitch * pitch + roll * roll));
+  // gravityLightRender(buffer, led_index, intensity);
 }
 
 static float gravityLightCalculateAngle(float pitch, float roll) {
   float angle = 0.0;
 
   if (roll != 0) {
-    angle = atanf(pitch / roll) + (float) M_PI_2;
+    //COMMENTED FIRMWARE
+    // angle = atanf(pitch / roll) + (float) M_PI_2;
 
     if (roll < 0.0f) {
       angle += (float) M_PI;
@@ -498,19 +500,20 @@ static float gravityLightCalculateAngle(float pitch, float roll) {
 }
 
 static void gravityLightRender(uint8_t buffer[][3], float led_index, int intensity) {
-  float width = 5;
-  float height = intensity;
-
-  int i;
-  for (i = 0; i < NBR_LEDS; i++) {
-	float distance = fabsf(led_index - i);
-	if (distance > NBR_LEDS / 2) {
-		distance = NBR_LEDS - distance;
-	}
-
-	int col = height - distance * (height / (width / 2));
-	SET_WHITE(buffer[i], LIMIT(col));
-  }
+  //COMMENTED FIRMWARE
+  // float width = 5;
+  // float height = intensity;
+
+  // int i;
+  // for (i = 0; i < NBR_LEDS; i++) {
+	// float distance = fabsf(led_index - i);
+	// if (distance > NBR_LEDS / 2) {
+	// 	distance = NBR_LEDS - distance;
+	// }
+
+	// int col = height - distance * (height / (width / 2));
+	// SET_WHITE(buffer[i], LIMIT(col));
+  // }
 }
 
 
@@ -990,23 +993,24 @@ static void checkLightSignalTrigger(void)
 
 static void overrideWithLightSignal(uint8_t buffer[][3])
 {
-  uint8_t color;
-  uint32_t diffMsec;
-
-  if (lightSignal.active) {
-    diffMsec = T2M(xTaskGetTickCount() - lightSignal.triggeredAt);
-
-    if (diffMsec >= 1500) {
-      lightSignal.active = 0;
-      lightSignal.triggeredAt = 0;
-      color = 0;
-    } else {
-      diffMsec = diffMsec % 300;
-      color = (diffMsec <= 100) ? 255 : 0;
-    }
-
-    memset(buffer, color, NBR_LEDS * 3);
-  }
+  //COMMENTED FIRMWARE
+  // uint8_t color;
+  // uint32_t diffMsec;
+
+  // if (lightSignal.active) {
+  //   diffMsec = T2M(xTaskGetTickCount() - lightSignal.triggeredAt);
+
+  //   if (diffMsec >= 1500) {
+  //     lightSignal.active = 0;
+  //     lightSignal.triggeredAt = 0;
+  //     color = 0;
+  //   } else {
+  //     diffMsec = diffMsec % 300;
+  //     color = (diffMsec <= 100) ? 255 : 0;
+  //   }
+
+  //   memset(buffer, color, NBR_LEDS * 3);
+  // }
 }
 
 /********** Ring init and switching **********/
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/lhtesterdeck.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/lhtesterdeck.c
index ece3f90d3..26e06b737 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/lhtesterdeck.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/lhtesterdeck.c
@@ -81,7 +81,9 @@ static void timerFcn(xTimerHandle xTimer)
 }
 
 static void startSwTimer() {
-  xTimerHandle timer = xTimerCreate("lhTesterTimer", M2T(1), pdTRUE, 0, timerFcn);
+  //COMMENTED FIRMWARE
+  //xTimerHandle timer = xTimerCreate("lhTesterTimer", M2T(1), pdTRUE, 0, timerFcn);
+  xTimerHandle timer = xTimerCreate("lhTesterTimer", 1, pdTRUE, 0, timerFcn);
   xTimerStart(timer, 0);
 }
 
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/lighthouse.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/lighthouse.c
index a15a4b459..00d2b1b83 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/lighthouse.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/lighthouse.c
@@ -63,9 +63,10 @@ static void lighthouseInit(DeckInfo *info)
               2*configMINIMAL_STACK_SIZE, NULL, LIGHTHOUSE_TASK_PRI, NULL);
 
   xTimerHandle timer;
-  timer = xTimerCreateStatic("ledTimer", M2T(FIFTH_SECOND), pdTRUE,
-    NULL, ledTimerHandle, &timerBuffer);
-  xTimerStart(timer, M2T(0));
+  //COMMENTED FIRMWARE
+  // timer = xTimerCreateStatic("ledTimer", M2T(FIFTH_SECOND), pdTRUE,
+  //   NULL, ledTimerHandle, &timerBuffer);
+  // xTimerStart(timer, M2T(0));
 
   isInit = true;
 }
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/lpsTdoa2Tag.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/lpsTdoa2Tag.c
index 8239867dd..4a4d07074 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/lpsTdoa2Tag.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/lpsTdoa2Tag.c
@@ -318,14 +318,15 @@ static bool isRangingOk()
 }
 
 static bool getAnchorPosition(const uint8_t anchorId, point_t* position) {
-  tdoaAnchorContext_t anchorCtx;
-  uint32_t now_ms = T2M(xTaskGetTickCount());
+  //COMMENTED FIRMWARE
+  // tdoaAnchorContext_t anchorCtx;
+  // uint32_t now_ms = T2M(xTaskGetTickCount());
 
-  bool contextFound = tdoaStorageGetAnchorCtx(tdoaEngineState.anchorInfoArray, anchorId, now_ms, &anchorCtx);
-  if (contextFound) {
-    tdoaStorageGetAnchorPosition(&anchorCtx, position);
-    return true;
-  }
+  // bool contextFound = tdoaStorageGetAnchorCtx(tdoaEngineState.anchorInfoArray, anchorId, now_ms, &anchorCtx);
+  // if (contextFound) {
+  //   tdoaStorageGetAnchorPosition(&anchorCtx, position);
+  //   return true;
+  // }
 
   return false;
 }
@@ -335,7 +336,8 @@ static uint8_t getAnchorIdList(uint8_t unorderedAnchorList[], const int maxListS
 }
 
 static uint8_t getActiveAnchorIdList(uint8_t unorderedAnchorList[], const int maxListSize) {
-  uint32_t now_ms = T2M(xTaskGetTickCount());
+  //COMMENTED FIRMWARE
+  uint32_t now_ms = 0;//T2M(xTaskGetTickCount());
   return tdoaStorageGetListOfActiveAnchorIds(tdoaEngineState.anchorInfoArray, unorderedAnchorList, maxListSize, now_ms);
 }
 
@@ -352,14 +354,15 @@ static void lpsHandleLppShortPacket(const uint8_t srcId, const uint8_t *data, td
   }
 }
 
-// uwbAlgorithm_t uwbTdoa2TagAlgorithm = {
-//   .init = Initialize,
-//   .onEvent = onEvent,
-//   .isRangingOk = isRangingOk,
-//   .getAnchorPosition = getAnchorPosition,
-//   .getAnchorIdList = getAnchorIdList,
-//   .getActiveAnchorIdList = getActiveAnchorIdList,
-// };
+//COMMENTED FIRMWARE
+uwbAlgorithm_t uwbTdoa2TagAlgorithm = {
+  // .init = Initialize,
+  // .onEvent = onEvent,
+  // .isRangingOk = isRangingOk,
+  // .getAnchorPosition = getAnchorPosition,
+  // .getAnchorIdList = getAnchorIdList,
+  // .getActiveAnchorIdList = getActiveAnchorIdList,
+};
 
 void lpsTdoa2TagSetOptions(lpsTdoa2AlgoOptions_t* newOptions) {
   options = newOptions;
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/lpsTdoa3Tag.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/lpsTdoa3Tag.c
index 0b32ecbf7..ec0bf0731 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/lpsTdoa3Tag.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/lpsTdoa3Tag.c
@@ -273,14 +273,15 @@ static void sendTdoaToEstimatorCallback(tdoaMeasurement_t* tdoaMeasurement) {
 }
 
 static bool getAnchorPosition(const uint8_t anchorId, point_t* position) {
-  tdoaAnchorContext_t anchorCtx;
-  uint32_t now_ms = T2M(xTaskGetTickCount());
+  //COMMENTED FIRMWARE
+  // tdoaAnchorContext_t anchorCtx;
+  // uint32_t now_ms = T2M(xTaskGetTickCount());
 
-  bool contextFound = tdoaStorageGetAnchorCtx(tdoaEngineState.anchorInfoArray, anchorId, now_ms, &anchorCtx);
-  if (contextFound) {
-    tdoaStorageGetAnchorPosition(&anchorCtx, position);
-    return true;
-  }
+  // bool contextFound = tdoaStorageGetAnchorCtx(tdoaEngineState.anchorInfoArray, anchorId, now_ms, &anchorCtx);
+  // if (contextFound) {
+  //   tdoaStorageGetAnchorPosition(&anchorCtx, position);
+  //   return true;
+  // }
 
   return false;
 }
@@ -290,7 +291,8 @@ static uint8_t getAnchorIdList(uint8_t unorderedAnchorList[], const int maxListS
 }
 
 static uint8_t getActiveAnchorIdList(uint8_t unorderedAnchorList[], const int maxListSize) {
-  uint32_t now_ms = T2M(xTaskGetTickCount());
+  //COMMENTED FIRMWARE
+  uint32_t now_ms = 0;//T2M(xTaskGetTickCount());
   return tdoaStorageGetListOfActiveAnchorIds(tdoaEngineState.anchorInfoArray, unorderedAnchorList, maxListSize, now_ms);
 }
 
@@ -316,11 +318,11 @@ static bool isRangingOk()
 }
 
 //COMMENTED FIRMWARE
-// uwbAlgorithm_t uwbTdoa3TagAlgorithm = {
-//   .init = Initialize,
-//   .onEvent = onEvent,
-//   .isRangingOk = isRangingOk,
-//   .getAnchorPosition = getAnchorPosition,
-//   .getAnchorIdList = getAnchorIdList,
-//   .getActiveAnchorIdList = getActiveAnchorIdList,
-// };
+uwbAlgorithm_t uwbTdoa3TagAlgorithm = {
+  // .init = Initialize,
+  // .onEvent = onEvent,
+  // .isRangingOk = isRangingOk,
+  // .getAnchorPosition = getAnchorPosition,
+  // .getAnchorIdList = getAnchorIdList,
+  // .getActiveAnchorIdList = getActiveAnchorIdList,
+};
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/lpsTwrTag.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/lpsTwrTag.c
index bed043dd8..c4371d640 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/lpsTwrTag.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/lpsTwrTag.c
@@ -550,14 +550,14 @@ static uint8_t getActiveAnchorIdList(uint8_t unorderedAnchorList[], const int ma
 }
 
 //COMMENTED FIRMWARE
-// uwbAlgorithm_t uwbTwrTagAlgorithm = {
-//   .init = twrTagInit,
-//   .onEvent = twrTagOnEvent,
-//   .isRangingOk = isRangingOk,
-//   .getAnchorPosition = getAnchorPosition,
-//   .getAnchorIdList = getAnchorIdList,
-//   .getActiveAnchorIdList = getActiveAnchorIdList,
-// };
+uwbAlgorithm_t uwbTwrTagAlgorithm = {
+  // .init = twrTagInit,
+  // .onEvent = twrTagOnEvent,
+  // .isRangingOk = isRangingOk,
+  // .getAnchorPosition = getAnchorPosition,
+  // .getAnchorIdList = getAnchorIdList,
+  // .getActiveAnchorIdList = getActiveAnchorIdList,
+};
 
 /**
  * Log group for Two Way Ranging data
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/multiranger.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/multiranger.c
index cb4ef4fee..7cdcf52dd 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/multiranger.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/multiranger.c
@@ -66,7 +66,9 @@ static bool mrInitSensor(VL53L1_Dev_t *pdev, uint32_t pca95pin, char *name)
   // Bring up VL53 by releasing XSHUT
   pca95x4SetOutput(pca95pin);
   // Let VL53 boot
-  vTaskDelay(M2T(2));
+  //COMMENTED FIRMWARE
+  //vTaskDelay(M2T(2));
+  vTaskDelay(2);
   // Init VL53
   if (vl53l1xInit(pdev, I2C1_DEV))
   {
@@ -92,7 +94,9 @@ static uint16_t mrGetMeasurementAndRestart(VL53L1_Dev_t *dev)
     while (dataReady == 0)
     {
         status = VL53L1_GetMeasurementDataReady(dev, &dataReady);
-        vTaskDelay(M2T(1));
+        //COMMENTED FIRMWARE
+        //vTaskDelay(M2T(1));
+        vTaskDelay(1);
     }
 
     status = VL53L1_GetRangingMeasurementData(dev, &rangingData);
@@ -128,7 +132,8 @@ static void mrTask(void *param)
 
     while (1)
     {
-        vTaskDelayUntil(&lastWakeTime, M2T(100));
+        //COMMENTED FIRMWARE
+        //vTaskDelayUntil(&lastWakeTime, M2T(100));
 
         rangeSet(rangeFront, mrGetMeasurementAndRestart(&devFront)/1000.0f);
         rangeSet(rangeBack, mrGetMeasurementAndRestart(&devBack)/1000.0f);
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/oa.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/oa.c
index bf80e5b04..30b1e3e60 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/oa.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/oa.c
@@ -75,7 +75,8 @@ static void oaTask(void *param)
   TickType_t lastWakeTime = xTaskGetTickCount();
 
   while(1) {
-    vTaskDelayUntil(&lastWakeTime, M2T(50));
+    //COMMENTED FIRMWARE
+    //vTaskDelayUntil(&lastWakeTime, M2T(50));
 
     rangeFront = vl53l0xReadRangeContinuousMillimeters(&devFront);
     rangeBack = vl53l0xReadRangeContinuousMillimeters(&devBack);
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/usddeck.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/usddeck.c
index 707555a7d..1484ddc65 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/usddeck.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/usddeck.c
@@ -344,7 +344,9 @@ static void csLow(void)
 
 static void delayMs(UINT ms)
 {
-  vTaskDelay(M2T(ms));
+  //COMMENTED FIRMWARE
+  //vTaskDelay(M2T(ms));
+  vTaskDelay(ms);
 }
 
 /* FatFS Disk Interface */
@@ -412,9 +414,10 @@ TCHAR* f_gets_without_comments (
     if (c == '\n') {
       break;   /* Break on EOL */
     }
-    if (isspace((int)c)) {
-      continue; /* Strip whitespace */
-    }
+    //COMMENTED FIRWMARE
+    // if (isspace((int)c)) {
+    //   continue; /* Strip whitespace */
+    // }
     if (c == '#') {
       isComment = true; /* keep reading until end of line */
     }
@@ -435,24 +438,25 @@ static bool initSuccess = false;
 
 static void usdInit(DeckInfo *info)
 {
-  if (!isInit) {
-    memoryRegisterHandler(&memDef);
-
-    logFileMutex = xSemaphoreCreateMutex();
-    logBufferMutex = xSemaphoreCreateMutex();
-    /* try to mount drives before creating the tasks */
-    if (f_mount(&FatFs, "", 1) == FR_OK) {
-      DEBUG_PRINT("mount SD-Card [OK].\n");
-
-      /* create usd-log task */
-      xTaskCreate(usdLogTask, USDLOG_TASK_NAME,
-                  USDLOG_TASK_STACKSIZE, NULL,
-                  USDLOG_TASK_PRI, NULL);
-    } else {
-      DEBUG_PRINT("mount SD-Card [FAIL].\n");
-    }
-  }
-  isInit = true;
+  //COMMENTED FIRMWARE
+  // if (!isInit) {
+  //   memoryRegisterHandler(&memDef);
+
+  //   logFileMutex = xSemaphoreCreateMutex();
+  //   logBufferMutex = xSemaphoreCreateMutex();
+  //   /* try to mount drives before creating the tasks */
+  //   if (f_mount(&FatFs, "", 1) == FR_OK) {
+  //     DEBUG_PRINT("mount SD-Card [OK].\n");
+
+  //     /* create usd-log task */
+  //     xTaskCreate(usdLogTask, USDLOG_TASK_NAME,
+  //                 USDLOG_TASK_STACKSIZE, NULL,
+  //                 USDLOG_TASK_PRI, NULL);
+  //   } else {
+  //     DEBUG_PRINT("mount SD-Card [FAIL].\n");
+  //   }
+  // }
+  // isInit = true;
 }
 
 static void usddeckWriteEventData(const usdLogEventConfig_t* cfg, const uint8_t* payload, uint8_t payloadSize)
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/zranger.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/zranger.c
index 095e755d1..13138475c 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/zranger.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/zranger.c
@@ -68,7 +68,8 @@ void zRangerInit(DeckInfo* info)
   xTaskCreate(zRangerTask, ZRANGER_TASK_NAME, ZRANGER_TASK_STACKSIZE, NULL, ZRANGER_TASK_PRI, NULL);
 
   // pre-compute constant in the measurement noise model for kalman
-  expCoeff = logf(expStdB / expStdA) / (expPointB - expPointA);
+  //COMMENTED FIRMWARE
+  //expCoeff = logf(expStdB / expStdA) / (expPointB - expPointA);
 
   isInit = true;
 }
@@ -87,30 +88,32 @@ bool zRangerTest(void)
 
 void zRangerTask(void* arg)
 {
-  systemWaitStart();
-  TickType_t xLastWakeTime;
-
-  vl53l0xSetVcselPulsePeriod(&dev, VcselPeriodPreRange, 18);
-  vl53l0xSetVcselPulsePeriod(&dev, VcselPeriodFinalRange, 14);
-  vl53l0xStartContinuous(&dev, 0);
-
-  xLastWakeTime = xTaskGetTickCount();
-
-  while (1) {
-    vTaskDelayUntil(&xLastWakeTime, M2T(dev.measurement_timing_budget_ms));
-
-    range_last = vl53l0xReadRangeContinuousMillimeters(&dev);
-    rangeSet(rangeDown, range_last / 1000.0f);
-
-    // check if range is feasible and push into the estimator
-    // the sensor should not be able to measure >3 [m], and outliers typically
-    // occur as >8 [m] measurements
-    if (range_last < RANGE_OUTLIER_LIMIT) {
-      float distance = (float)range_last * 0.001f; // Scale from [mm] to [m]
-      float stdDev = expStdA * (1.0f  + expf( expCoeff * (distance - expPointA)));
-      rangeEnqueueDownRangeInEstimator(distance, stdDev, xTaskGetTickCount());
-    }
-  }
+  //COMMENTED FIRMWARE
+  // systemWaitStart();
+  // TickType_t xLastWakeTime;
+
+  // vl53l0xSetVcselPulsePeriod(&dev, VcselPeriodPreRange, 18);
+  // vl53l0xSetVcselPulsePeriod(&dev, VcselPeriodFinalRange, 14);
+  // vl53l0xStartContinuous(&dev, 0);
+
+  // xLastWakeTime = xTaskGetTickCount();
+
+  // while (1) {
+  //   //COMMENTED FIRMWARE
+  //   //vTaskDelayUntil(&xLastWakeTime, M2T(dev.measurement_timing_budget_ms));
+
+  //   range_last = vl53l0xReadRangeContinuousMillimeters(&dev);
+  //   rangeSet(rangeDown, range_last / 1000.0f);
+
+  //   // check if range is feasible and push into the estimator
+  //   // the sensor should not be able to measure >3 [m], and outliers typically
+  //   // occur as >8 [m] measurements
+  //   if (range_last < RANGE_OUTLIER_LIMIT) {
+  //     float distance = (float)range_last * 0.001f; // Scale from [mm] to [m]
+  //     float stdDev = expStdA * (1.0f  + expf( expCoeff * (distance - expPointA)));
+  //     rangeEnqueueDownRangeInEstimator(distance, stdDev, xTaskGetTickCount());
+  //   }
+  // }
 }
 
 static const DeckDriver zranger_deck = {
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/zranger2.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/zranger2.c
index d517511c0..014ba745b 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/zranger2.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/src/zranger2.c
@@ -100,7 +100,8 @@ void zRanger2Init(DeckInfo* info)
   xTaskCreate(zRanger2Task, ZRANGER2_TASK_NAME, ZRANGER2_TASK_STACKSIZE, NULL, ZRANGER2_TASK_PRI, NULL);
 
   // pre-compute constant in the measurement noise model for kalman
-  expCoeff = logf(expStdB / expStdA) / (expPointB - expPointA);
+  //COMMENTED FIRMWARE
+  // expCoeff = logf(expStdB / expStdA) / (expPointB - expPointA);
 
   isInit = true;
 }
@@ -115,34 +116,36 @@ bool zRanger2Test(void)
 
 void zRanger2Task(void* arg)
 {
-  TickType_t lastWakeTime;
+  //COMMENTED FIRMWARE
+  // TickType_t lastWakeTime;
 
-  systemWaitStart();
+  // systemWaitStart();
 
-  // Restart sensor
-  VL53L1_StopMeasurement(&dev);
-  VL53L1_SetDistanceMode(&dev, VL53L1_DISTANCEMODE_MEDIUM);
-  VL53L1_SetMeasurementTimingBudgetMicroSeconds(&dev, 25000);
+  // // Restart sensor
+  // VL53L1_StopMeasurement(&dev);
+  // VL53L1_SetDistanceMode(&dev, VL53L1_DISTANCEMODE_MEDIUM);
+  // VL53L1_SetMeasurementTimingBudgetMicroSeconds(&dev, 25000);
 
-  VL53L1_StartMeasurement(&dev);
+  // VL53L1_StartMeasurement(&dev);
 
-  lastWakeTime = xTaskGetTickCount();
+  // lastWakeTime = xTaskGetTickCount();
 
-  while (1) {
-    vTaskDelayUntil(&lastWakeTime, M2T(25));
+  // while (1) {
+  //   //COMMENTED FIRMWARE
+  //   //vTaskDelayUntil(&lastWakeTime, M2T(25));
 
-    range_last = zRanger2GetMeasurementAndRestart(&dev);
-    rangeSet(rangeDown, range_last / 1000.0f);
+  //   range_last = zRanger2GetMeasurementAndRestart(&dev);
+  //   rangeSet(rangeDown, range_last / 1000.0f);
 
-    // check if range is feasible and push into the estimator
-    // the sensor should not be able to measure >5 [m], and outliers typically
-    // occur as >8 [m] measurements
-    if (range_last < RANGE_OUTLIER_LIMIT) {
-      float distance = (float)range_last * 0.001f; // Scale from [mm] to [m]
-      float stdDev = expStdA * (1.0f  + expf( expCoeff * (distance - expPointA)));
-      rangeEnqueueDownRangeInEstimator(distance, stdDev, xTaskGetTickCount());
-    }
-  }
+  //   // check if range is feasible and push into the estimator
+  //   // the sensor should not be able to measure >5 [m], and outliers typically
+  //   // occur as >8 [m] measurements
+  //   if (range_last < RANGE_OUTLIER_LIMIT) {
+  //     float distance = (float)range_last * 0.001f; // Scale from [mm] to [m]
+  //     float stdDev = expStdA * (1.0f  + expf( expCoeff * (distance - expPointA)));
+  //     rangeEnqueueDownRangeInEstimator(distance, stdDev, xTaskGetTickCount());
+  //   }
+  // }
 }
 
 static const DeckDriver zranger2_deck = {
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/exti.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/exti.c
index 79810be14..403ab928a 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/exti.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/exti.c
@@ -36,7 +36,8 @@ static bool isInit;
 /* Interruption initialisation */
 void extiInit()
 {
-  static NVIC_InitTypeDef NVIC_InitStructure;
+  //COMMENTED FIRMWARE
+  //static NVIC_InitTypeDef NVIC_InitStructure;
 
   if (isInit)
     return;
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/fatfs_sd.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/fatfs_sd.c
index 1fe8a06ee..ae84f3677 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/fatfs_sd.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/fatfs_sd.c
@@ -244,7 +244,7 @@ static BYTE sendCommand(sdSpiContext_t *context, BYTE cmd, DWORD arg) {
   // Receive command resp
   {
     // BYTE maxTries = 10;
-    // BYTE res;
+    BYTE res;
     // do {
     //   res = context->xchgSpi(0xFF);
     // } while ((res & 0x80) && --maxTries);
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/lps25h.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/lps25h.c
index 4cb77a181..83653ca5b 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/lps25h.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/lps25h.c
@@ -174,14 +174,15 @@ bool lps25hGetData(float* pressure, float* temperature, float* asl)
  */
 float lps25hPressureToAltitude(float* pressure/*, float* ground_pressure, float* ground_temp*/)
 {
-    if (*pressure > 0)
-    {
-        //return (1.f - pow(*pressure / CONST_SEA_PRESSURE, CONST_PF)) * CONST_PF2;
-        //return ((pow((1015.7 / *pressure), CONST_PF) - 1.0) * (25. + 273.15)) / 0.0065;
-        return ((powf((1015.7f / *pressure), CONST_PF) - 1.0f) * (FIX_TEMP + 273.15f)) / 0.0065f;
-    }
-    else
-    {
+  //COMMENTED FIRMWARE
+    // if (*pressure > 0)
+    // {
+    //     //return (1.f - pow(*pressure / CONST_SEA_PRESSURE, CONST_PF)) * CONST_PF2;
+    //     //return ((pow((1015.7 / *pressure), CONST_PF) - 1.0) * (25. + 273.15)) / 0.0065;
+    //     return ((powf((1015.7f / *pressure), CONST_PF) - 1.0f) * (FIX_TEMP + 273.15f)) / 0.0065f;
+    // }
+    // else
+    // {
         return 0;
-    }
+    //}
 }
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/motors_def_cf2.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/motors_def_cf2.c
index 73166e665..bb91988ce 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/motors_def_cf2.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/motors_def_cf2.c
@@ -26,558 +26,559 @@
  * This code mainly interfacing the PWM peripheral lib of ST.
  */
 // Connector M1, PA1, TIM2_CH2
-static const MotorPerifDef CONN_M1 =
-{
-    .drvType       = BRUSHED,
-    .gpioPerif     = RCC_AHB1Periph_GPIOA,
-    .gpioPort      = GPIOA,
-    .gpioPin       = GPIO_Pin_1,
-    .gpioPinSource = GPIO_PinSource1,
-    .gpioOType     = GPIO_OType_PP,
-    .gpioAF        = GPIO_AF_TIM2,
-    .timPerif      = RCC_APB1Periph_TIM2,
-    .tim           = TIM2,
-    .timPolarity   = TIM_OCPolarity_High,
-    .timDbgStop    = DBGMCU_TIM2_STOP,
-    .timPeriod     = MOTORS_PWM_PERIOD,
-    .timPrescaler  = MOTORS_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare2,
-    .getCompare    = TIM_GetCapture2,
-    .ocInit        = TIM_OC2Init,
-    .preloadConfig = TIM_OC2PreloadConfig,
-};
+//COMMENTED FIRMWARE
+// static const MotorPerifDef CONN_M1 =
+// {
+//     // .drvType       = BRUSHED,
+//     // .gpioPerif     = RCC_AHB1Periph_GPIOA,
+//     // .gpioPort      = GPIOA,
+//     // .gpioPin       = GPIO_Pin_1,
+//     // .gpioPinSource = GPIO_PinSource1,
+//     // .gpioOType     = GPIO_OType_PP,
+//     // .gpioAF        = GPIO_AF_TIM2,
+//     // .timPerif      = RCC_APB1Periph_TIM2,
+//     // .tim           = TIM2,
+//     // .timPolarity   = TIM_OCPolarity_High,
+//     // .timDbgStop    = DBGMCU_TIM2_STOP,
+//     // .timPeriod     = MOTORS_PWM_PERIOD,
+//     // .timPrescaler  = MOTORS_PWM_PRESCALE,
+//     // .setCompare    = TIM_SetCompare2,
+//     // .getCompare    = TIM_GetCapture2,
+//     // .ocInit        = TIM_OC2Init,
+//     // .preloadConfig = TIM_OC2PreloadConfig,
+// };
 
-// Connector M2, PB11, TIM2_CH4
-static const MotorPerifDef CONN_M2 =
-{
-    .drvType       = BRUSHED,
-    .gpioPerif     = RCC_AHB1Periph_GPIOB,
-    .gpioPort      = GPIOB,
-    .gpioPin       = GPIO_Pin_11,
-    .gpioPinSource = GPIO_PinSource11,
-    .gpioOType     = GPIO_OType_PP,
-    .gpioAF        = GPIO_AF_TIM2,
-    .timPerif      = RCC_APB1Periph_TIM2,
-    .tim           = TIM2,
-    .timPolarity   = TIM_OCPolarity_High,
-    .timDbgStop    = DBGMCU_TIM2_STOP,
-    .timPeriod     = MOTORS_PWM_PERIOD,
-    .timPrescaler  = MOTORS_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare4,
-    .getCompare    = TIM_GetCapture4,
-    .ocInit        = TIM_OC4Init,
-    .preloadConfig = TIM_OC4PreloadConfig,
-};
+// // Connector M2, PB11, TIM2_CH4
+// static const MotorPerifDef CONN_M2 =
+// {
+//     // .drvType       = BRUSHED,
+//     // .gpioPerif     = RCC_AHB1Periph_GPIOB,
+//     // .gpioPort      = GPIOB,
+//     // .gpioPin       = GPIO_Pin_11,
+//     // .gpioPinSource = GPIO_PinSource11,
+//     // .gpioOType     = GPIO_OType_PP,
+//     // .gpioAF        = GPIO_AF_TIM2,
+//     // .timPerif      = RCC_APB1Periph_TIM2,
+//     // .tim           = TIM2,
+//     // .timPolarity   = TIM_OCPolarity_High,
+//     // .timDbgStop    = DBGMCU_TIM2_STOP,
+//     // .timPeriod     = MOTORS_PWM_PERIOD,
+//     // .timPrescaler  = MOTORS_PWM_PRESCALE,
+//     // .setCompare    = TIM_SetCompare4,
+//     // .getCompare    = TIM_GetCapture4,
+//     // .ocInit        = TIM_OC4Init,
+//     // .preloadConfig = TIM_OC4PreloadConfig,
+// };
 
-// Connector M3, PA15, TIM2_CH1
-static const MotorPerifDef CONN_M3 =
-{
-    .drvType       = BRUSHED,
-    .gpioPerif     = RCC_AHB1Periph_GPIOA,
-    .gpioPort      = GPIOA,
-    .gpioPin       = GPIO_Pin_15,
-    .gpioPinSource = GPIO_PinSource15,
-    .gpioOType     = GPIO_OType_PP,
-    .gpioAF        = GPIO_AF_TIM2,
-    .timPerif      = RCC_APB1Periph_TIM2,
-    .tim           = TIM2,
-    .timPolarity   = TIM_OCPolarity_High,
-    .timDbgStop    = DBGMCU_TIM2_STOP,
-    .timPeriod     = MOTORS_PWM_PERIOD,
-    .timPrescaler  = MOTORS_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare1,
-    .getCompare    = TIM_GetCapture1,
-    .ocInit        = TIM_OC1Init,
-    .preloadConfig = TIM_OC1PreloadConfig,
-};
+// // Connector M3, PA15, TIM2_CH1
+// static const MotorPerifDef CONN_M3 =
+// {
+//     // .drvType       = BRUSHED,
+//     // .gpioPerif     = RCC_AHB1Periph_GPIOA,
+//     // .gpioPort      = GPIOA,
+//     // .gpioPin       = GPIO_Pin_15,
+//     // .gpioPinSource = GPIO_PinSource15,
+//     // .gpioOType     = GPIO_OType_PP,
+//     // .gpioAF        = GPIO_AF_TIM2,
+//     // .timPerif      = RCC_APB1Periph_TIM2,
+//     // .tim           = TIM2,
+//     // .timPolarity   = TIM_OCPolarity_High,
+//     // .timDbgStop    = DBGMCU_TIM2_STOP,
+//     // .timPeriod     = MOTORS_PWM_PERIOD,
+//     // .timPrescaler  = MOTORS_PWM_PRESCALE,
+//     // .setCompare    = TIM_SetCompare1,
+//     // .getCompare    = TIM_GetCapture1,
+//     // .ocInit        = TIM_OC1Init,
+//     // .preloadConfig = TIM_OC1PreloadConfig,
+// };
 
-// Connector M4, PB9, TIM4_CH4
-static const MotorPerifDef CONN_M4 =
-{
-    .drvType       = BRUSHED,
-    .gpioPerif     = RCC_AHB1Periph_GPIOB,
-    .gpioPort      = GPIOB,
-    .gpioPin       = GPIO_Pin_9,
-    .gpioPinSource = GPIO_PinSource9,
-    .gpioOType     = GPIO_OType_PP,
-    .gpioAF        = GPIO_AF_TIM4,
-    .timPerif      = RCC_APB1Periph_TIM4,
-    .tim           = TIM4,
-    .timPolarity   = TIM_OCPolarity_High,
-    .timDbgStop    = DBGMCU_TIM4_STOP,
-    .timPeriod     = MOTORS_PWM_PERIOD,
-    .timPrescaler  = MOTORS_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare4,
-    .getCompare    = TIM_GetCapture4,
-    .ocInit        = TIM_OC4Init,
-    .preloadConfig = TIM_OC4PreloadConfig,
-};
+// // Connector M4, PB9, TIM4_CH4
+// static const MotorPerifDef CONN_M4 =
+// {
+//     // .drvType       = BRUSHED,
+//     // .gpioPerif     = RCC_AHB1Periph_GPIOB,
+//     // .gpioPort      = GPIOB,
+//     // .gpioPin       = GPIO_Pin_9,
+//     // .gpioPinSource = GPIO_PinSource9,
+//     // .gpioOType     = GPIO_OType_PP,
+//     // .gpioAF        = GPIO_AF_TIM4,
+//     // .timPerif      = RCC_APB1Periph_TIM4,
+//     // .tim           = TIM4,
+//     // .timPolarity   = TIM_OCPolarity_High,
+//     // .timDbgStop    = DBGMCU_TIM4_STOP,
+//     // .timPeriod     = MOTORS_PWM_PERIOD,
+//     // .timPrescaler  = MOTORS_PWM_PRESCALE,
+//     // .setCompare    = TIM_SetCompare4,
+//     // .getCompare    = TIM_GetCapture4,
+//     // .ocInit        = TIM_OC4Init,
+//     // .preloadConfig = TIM_OC4PreloadConfig,
+// };
 
-// Connector M1, PA1, TIM2_CH2, Brushless config, inversed
-static const MotorPerifDef CONN_M1_BL_INV =
-{
-    .drvType       = BRUSHLESS,
-    .gpioPerif     = RCC_AHB1Periph_GPIOA,
-    .gpioPort      = GPIOA,
-    .gpioPin       = GPIO_Pin_1,
-    .gpioPinSource = GPIO_PinSource1,
-    .gpioOType     = GPIO_OType_PP,
-    .gpioAF        = GPIO_AF_TIM2,
-    .timPerif      = RCC_APB1Periph_TIM2,
-    .tim           = TIM2,
-    .timPolarity   = TIM_OCPolarity_Low,
-    .timDbgStop    = DBGMCU_TIM2_STOP,
-    .timPeriod     = MOTORS_BL_PWM_PERIOD,
-    .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare2,
-    .getCompare    = TIM_GetCapture2,
-    .ocInit        = TIM_OC2Init,
-    .preloadConfig = TIM_OC2PreloadConfig,
-};
+// // Connector M1, PA1, TIM2_CH2, Brushless config, inversed
+// static const MotorPerifDef CONN_M1_BL_INV =
+// {
+//     // .drvType       = BRUSHLESS,
+//     // .gpioPerif     = RCC_AHB1Periph_GPIOA,
+//     // .gpioPort      = GPIOA,
+//     // .gpioPin       = GPIO_Pin_1,
+//     // .gpioPinSource = GPIO_PinSource1,
+//     // .gpioOType     = GPIO_OType_PP,
+//     // .gpioAF        = GPIO_AF_TIM2,
+//     // .timPerif      = RCC_APB1Periph_TIM2,
+//     // .tim           = TIM2,
+//     // .timPolarity   = TIM_OCPolarity_Low,
+//     // .timDbgStop    = DBGMCU_TIM2_STOP,
+//     // .timPeriod     = MOTORS_BL_PWM_PERIOD,
+//     // .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
+//     // .setCompare    = TIM_SetCompare2,
+//     // .getCompare    = TIM_GetCapture2,
+//     // .ocInit        = TIM_OC2Init,
+//     // .preloadConfig = TIM_OC2PreloadConfig,
+// };
 
-// Connector M2, PB11, TIM2_CH4, Brushless config, inversed
-static const MotorPerifDef CONN_M2_BL_INV =
-{
-    .drvType       = BRUSHLESS,
-    .gpioPerif     = RCC_AHB1Periph_GPIOB,
-    .gpioPort      = GPIOB,
-    .gpioPin       = GPIO_Pin_11,
-    .gpioPinSource = GPIO_PinSource11,
-    .gpioOType     = GPIO_OType_PP,
-    .gpioAF        = GPIO_AF_TIM2,
-    .timPerif      = RCC_APB1Periph_TIM2,
-    .tim           = TIM2,
-    .timPolarity   = TIM_OCPolarity_Low,
-    .timDbgStop    = DBGMCU_TIM2_STOP,
-    .timPeriod     = MOTORS_BL_PWM_PERIOD,
-    .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare4,
-    .getCompare    = TIM_GetCapture4,
-    .ocInit        = TIM_OC4Init,
-    .preloadConfig = TIM_OC4PreloadConfig,
-};
+// // Connector M2, PB11, TIM2_CH4, Brushless config, inversed
+// static const MotorPerifDef CONN_M2_BL_INV =
+// {
+//     .drvType       = BRUSHLESS,
+//     .gpioPerif     = RCC_AHB1Periph_GPIOB,
+//     .gpioPort      = GPIOB,
+//     .gpioPin       = GPIO_Pin_11,
+//     .gpioPinSource = GPIO_PinSource11,
+//     .gpioOType     = GPIO_OType_PP,
+//     .gpioAF        = GPIO_AF_TIM2,
+//     .timPerif      = RCC_APB1Periph_TIM2,
+//     .tim           = TIM2,
+//     .timPolarity   = TIM_OCPolarity_Low,
+//     .timDbgStop    = DBGMCU_TIM2_STOP,
+//     .timPeriod     = MOTORS_BL_PWM_PERIOD,
+//     .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
+//     .setCompare    = TIM_SetCompare4,
+//     .getCompare    = TIM_GetCapture4,
+//     .ocInit        = TIM_OC4Init,
+//     .preloadConfig = TIM_OC4PreloadConfig,
+// };
 
-// Connector M3, PA15, TIM2_CH1, Brushless config, inversed
-static const MotorPerifDef CONN_M3_BL_INV =
-{
-    .drvType       = BRUSHLESS,
-    .gpioPerif     = RCC_AHB1Periph_GPIOA,
-    .gpioPort      = GPIOA,
-    .gpioPin       = GPIO_Pin_15,
-    .gpioPinSource = GPIO_PinSource15,
-    .gpioOType     = GPIO_OType_PP,
-    .gpioAF        = GPIO_AF_TIM2,
-    .timPerif      = RCC_APB1Periph_TIM2,
-    .tim           = TIM2,
-    .timPolarity   = TIM_OCPolarity_Low,
-    .timDbgStop    = DBGMCU_TIM2_STOP,
-    .timPeriod     = MOTORS_BL_PWM_PERIOD,
-    .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare1,
-    .getCompare    = TIM_GetCapture1,
-    .ocInit        = TIM_OC1Init,
-    .preloadConfig = TIM_OC1PreloadConfig,
-};
+// // Connector M3, PA15, TIM2_CH1, Brushless config, inversed
+// static const MotorPerifDef CONN_M3_BL_INV =
+// {
+//     .drvType       = BRUSHLESS,
+//     .gpioPerif     = RCC_AHB1Periph_GPIOA,
+//     .gpioPort      = GPIOA,
+//     .gpioPin       = GPIO_Pin_15,
+//     .gpioPinSource = GPIO_PinSource15,
+//     .gpioOType     = GPIO_OType_PP,
+//     .gpioAF        = GPIO_AF_TIM2,
+//     .timPerif      = RCC_APB1Periph_TIM2,
+//     .tim           = TIM2,
+//     .timPolarity   = TIM_OCPolarity_Low,
+//     .timDbgStop    = DBGMCU_TIM2_STOP,
+//     .timPeriod     = MOTORS_BL_PWM_PERIOD,
+//     .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
+//     .setCompare    = TIM_SetCompare1,
+//     .getCompare    = TIM_GetCapture1,
+//     .ocInit        = TIM_OC1Init,
+//     .preloadConfig = TIM_OC1PreloadConfig,
+// };
 
-// Connector M4, PB9, TIM4_CH4, Brushless config, inversed
-static const MotorPerifDef CONN_M4_BL_INV =
-{
-    .drvType       = BRUSHLESS,
-    .gpioPerif     = RCC_AHB1Periph_GPIOB,
-    .gpioPort      = GPIOB,
-    .gpioPin       = GPIO_Pin_9,
-    .gpioPinSource = GPIO_PinSource9,
-    .gpioOType     = GPIO_OType_PP,
-    .gpioAF        = GPIO_AF_TIM4,
-    .timPerif      = RCC_APB1Periph_TIM4,
-    .tim           = TIM4,
-    .timPolarity   = TIM_OCPolarity_Low,
-    .timDbgStop    = DBGMCU_TIM4_STOP,
-    .timPeriod     = MOTORS_BL_PWM_PERIOD,
-    .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare4,
-    .getCompare    = TIM_GetCapture4,
-    .ocInit        = TIM_OC4Init,
-    .preloadConfig = TIM_OC4PreloadConfig,
-};
+// // Connector M4, PB9, TIM4_CH4, Brushless config, inversed
+// static const MotorPerifDef CONN_M4_BL_INV =
+// {
+//     .drvType       = BRUSHLESS,
+//     .gpioPerif     = RCC_AHB1Periph_GPIOB,
+//     .gpioPort      = GPIOB,
+//     .gpioPin       = GPIO_Pin_9,
+//     .gpioPinSource = GPIO_PinSource9,
+//     .gpioOType     = GPIO_OType_PP,
+//     .gpioAF        = GPIO_AF_TIM4,
+//     .timPerif      = RCC_APB1Periph_TIM4,
+//     .tim           = TIM4,
+//     .timPolarity   = TIM_OCPolarity_Low,
+//     .timDbgStop    = DBGMCU_TIM4_STOP,
+//     .timPeriod     = MOTORS_BL_PWM_PERIOD,
+//     .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
+//     .setCompare    = TIM_SetCompare4,
+//     .getCompare    = TIM_GetCapture4,
+//     .ocInit        = TIM_OC4Init,
+//     .preloadConfig = TIM_OC4PreloadConfig,
+// };
 
-// Bolt M1, PA1, TIM2_CH2, Brushless config
-static const MotorPerifDef BOLT_M1_BL =
-{
-    .drvType       = BRUSHLESS,
-    .gpioPerif     = RCC_AHB1Periph_GPIOA,
-    .gpioPort      = GPIOA,
-    .gpioPin       = GPIO_Pin_1,
-    .gpioPinSource = GPIO_PinSource1,
-    .gpioOType     = GPIO_OType_PP,
-    .gpioAF        = GPIO_AF_TIM2,
-    .gpioPowerswitchPerif = RCC_AHB1Periph_GPIOA,
-    .gpioPowerswitchPort  = GPIOA,
-    .gpioPowerswitchPin   = GPIO_Pin_0,
-    .timPerif      = RCC_APB1Periph_TIM2,
-    .tim           = TIM2,
-    .timPolarity   = TIM_OCPolarity_High,
-    .timDbgStop    = DBGMCU_TIM2_STOP,
-    .timPeriod     = MOTORS_BL_PWM_PERIOD,
-    .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare2,
-    .getCompare    = TIM_GetCapture2,
-    .ocInit        = TIM_OC2Init,
-    .preloadConfig = TIM_OC2PreloadConfig,
-};
+// // Bolt M1, PA1, TIM2_CH2, Brushless config
+// static const MotorPerifDef BOLT_M1_BL =
+// {
+//     .drvType       = BRUSHLESS,
+//     .gpioPerif     = RCC_AHB1Periph_GPIOA,
+//     .gpioPort      = GPIOA,
+//     .gpioPin       = GPIO_Pin_1,
+//     .gpioPinSource = GPIO_PinSource1,
+//     .gpioOType     = GPIO_OType_PP,
+//     .gpioAF        = GPIO_AF_TIM2,
+//     .gpioPowerswitchPerif = RCC_AHB1Periph_GPIOA,
+//     .gpioPowerswitchPort  = GPIOA,
+//     .gpioPowerswitchPin   = GPIO_Pin_0,
+//     .timPerif      = RCC_APB1Periph_TIM2,
+//     .tim           = TIM2,
+//     .timPolarity   = TIM_OCPolarity_High,
+//     .timDbgStop    = DBGMCU_TIM2_STOP,
+//     .timPeriod     = MOTORS_BL_PWM_PERIOD,
+//     .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
+//     .setCompare    = TIM_SetCompare2,
+//     .getCompare    = TIM_GetCapture2,
+//     .ocInit        = TIM_OC2Init,
+//     .preloadConfig = TIM_OC2PreloadConfig,
+// };
 
-// Bolt M2, PB11, TIM2_CH4, Brushless config
-static const MotorPerifDef BOLT_M2_BL =
-{
-    .drvType       = BRUSHLESS,
-    .gpioPerif     = RCC_AHB1Periph_GPIOB,
-    .gpioPort      = GPIOB,
-    .gpioPin       = GPIO_Pin_11,
-    .gpioPinSource = GPIO_PinSource11,
-    .gpioOType     = GPIO_OType_PP,
-    .gpioAF        = GPIO_AF_TIM2,
-    .gpioPowerswitchPerif = RCC_AHB1Periph_GPIOB,
-    .gpioPowerswitchPort  = GPIOB,
-    .gpioPowerswitchPin   = GPIO_Pin_12,
-    .timPerif      = RCC_APB1Periph_TIM2,
-    .tim           = TIM2,
-    .timPolarity   = TIM_OCPolarity_High,
-    .timDbgStop    = DBGMCU_TIM2_STOP,
-    .timPeriod     = MOTORS_BL_PWM_PERIOD,
-    .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare4,
-    .getCompare    = TIM_GetCapture4,
-    .ocInit        = TIM_OC4Init,
-    .preloadConfig = TIM_OC4PreloadConfig,
-};
+// // Bolt M2, PB11, TIM2_CH4, Brushless config
+// static const MotorPerifDef BOLT_M2_BL =
+// {
+//     .drvType       = BRUSHLESS,
+//     .gpioPerif     = RCC_AHB1Periph_GPIOB,
+//     .gpioPort      = GPIOB,
+//     .gpioPin       = GPIO_Pin_11,
+//     .gpioPinSource = GPIO_PinSource11,
+//     .gpioOType     = GPIO_OType_PP,
+//     .gpioAF        = GPIO_AF_TIM2,
+//     .gpioPowerswitchPerif = RCC_AHB1Periph_GPIOB,
+//     .gpioPowerswitchPort  = GPIOB,
+//     .gpioPowerswitchPin   = GPIO_Pin_12,
+//     .timPerif      = RCC_APB1Periph_TIM2,
+//     .tim           = TIM2,
+//     .timPolarity   = TIM_OCPolarity_High,
+//     .timDbgStop    = DBGMCU_TIM2_STOP,
+//     .timPeriod     = MOTORS_BL_PWM_PERIOD,
+//     .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
+//     .setCompare    = TIM_SetCompare4,
+//     .getCompare    = TIM_GetCapture4,
+//     .ocInit        = TIM_OC4Init,
+//     .preloadConfig = TIM_OC4PreloadConfig,
+// };
 
-// Bolt M3, PA15, TIM2_CH1, Brushless config
-static const MotorPerifDef BOLT_M3_BL =
-{
-    .drvType       = BRUSHLESS,
-    .gpioPerif     = RCC_AHB1Periph_GPIOA,
-    .gpioPort      = GPIOA,
-    .gpioPin       = GPIO_Pin_15,
-    .gpioPinSource = GPIO_PinSource15,
-    .gpioOType     = GPIO_OType_PP,
-    .gpioAF        = GPIO_AF_TIM2,
-    .gpioPowerswitchPerif = RCC_AHB1Periph_GPIOC,
-    .gpioPowerswitchPort  = GPIOC,
-    .gpioPowerswitchPin   = GPIO_Pin_8,
-    .timPerif      = RCC_APB1Periph_TIM2,
-    .tim           = TIM2,
-    .timPolarity   = TIM_OCPolarity_High,
-    .timDbgStop    = DBGMCU_TIM2_STOP,
-    .timPeriod     = MOTORS_BL_PWM_PERIOD,
-    .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare1,
-    .getCompare    = TIM_GetCapture1,
-    .ocInit        = TIM_OC1Init,
-    .preloadConfig = TIM_OC1PreloadConfig,
-};
+// // Bolt M3, PA15, TIM2_CH1, Brushless config
+// static const MotorPerifDef BOLT_M3_BL =
+// {
+//     .drvType       = BRUSHLESS,
+//     .gpioPerif     = RCC_AHB1Periph_GPIOA,
+//     .gpioPort      = GPIOA,
+//     .gpioPin       = GPIO_Pin_15,
+//     .gpioPinSource = GPIO_PinSource15,
+//     .gpioOType     = GPIO_OType_PP,
+//     .gpioAF        = GPIO_AF_TIM2,
+//     .gpioPowerswitchPerif = RCC_AHB1Periph_GPIOC,
+//     .gpioPowerswitchPort  = GPIOC,
+//     .gpioPowerswitchPin   = GPIO_Pin_8,
+//     .timPerif      = RCC_APB1Periph_TIM2,
+//     .tim           = TIM2,
+//     .timPolarity   = TIM_OCPolarity_High,
+//     .timDbgStop    = DBGMCU_TIM2_STOP,
+//     .timPeriod     = MOTORS_BL_PWM_PERIOD,
+//     .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
+//     .setCompare    = TIM_SetCompare1,
+//     .getCompare    = TIM_GetCapture1,
+//     .ocInit        = TIM_OC1Init,
+//     .preloadConfig = TIM_OC1PreloadConfig,
+// };
 
-// Bolt M4, PB9, TIM4_CH4, Brushless config
-static const MotorPerifDef BOLT_M4_BL =
-{
-    .drvType       = BRUSHLESS,
-    .gpioPerif     = RCC_AHB1Periph_GPIOB,
-    .gpioPort      = GPIOB,
-    .gpioPin       = GPIO_Pin_9,
-    .gpioPinSource = GPIO_PinSource9,
-    .gpioOType     = GPIO_OType_PP,
-    .gpioAF        = GPIO_AF_TIM4,
-    .gpioPowerswitchPerif = RCC_AHB1Periph_GPIOC,
-    .gpioPowerswitchPort  = GPIOC,
-    .gpioPowerswitchPin   = GPIO_Pin_15,
-    .timPerif      = RCC_APB1Periph_TIM4,
-    .tim           = TIM4,
-    .timPolarity   = TIM_OCPolarity_High,
-    .timDbgStop    = DBGMCU_TIM4_STOP,
-    .timPeriod     = MOTORS_BL_PWM_PERIOD,
-    .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare4,
-    .getCompare    = TIM_GetCapture4,
-    .ocInit        = TIM_OC4Init,
-    .preloadConfig = TIM_OC4PreloadConfig,
-};
+// // Bolt M4, PB9, TIM4_CH4, Brushless config
+// static const MotorPerifDef BOLT_M4_BL =
+// {
+//     .drvType       = BRUSHLESS,
+//     .gpioPerif     = RCC_AHB1Periph_GPIOB,
+//     .gpioPort      = GPIOB,
+//     .gpioPin       = GPIO_Pin_9,
+//     .gpioPinSource = GPIO_PinSource9,
+//     .gpioOType     = GPIO_OType_PP,
+//     .gpioAF        = GPIO_AF_TIM4,
+//     .gpioPowerswitchPerif = RCC_AHB1Periph_GPIOC,
+//     .gpioPowerswitchPort  = GPIOC,
+//     .gpioPowerswitchPin   = GPIO_Pin_15,
+//     .timPerif      = RCC_APB1Periph_TIM4,
+//     .tim           = TIM4,
+//     .timPolarity   = TIM_OCPolarity_High,
+//     .timDbgStop    = DBGMCU_TIM4_STOP,
+//     .timPeriod     = MOTORS_BL_PWM_PERIOD,
+//     .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
+//     .setCompare    = TIM_SetCompare4,
+//     .getCompare    = TIM_GetCapture4,
+//     .ocInit        = TIM_OC4Init,
+//     .preloadConfig = TIM_OC4PreloadConfig,
+// };
 
-// Deck TX2, PA2, TIM2_CH3
-static const MotorPerifDef DECK_TX2_TIM2 =
-{
-    .drvType       = BRUSHLESS,
-    .gpioPerif     = RCC_AHB1Periph_GPIOA,
-    .gpioPort      = GPIOA,
-    .gpioPin       = GPIO_Pin_2,
-    .gpioPinSource = GPIO_PinSource2,
-    .gpioOType     = GPIO_OType_OD,
-    .gpioAF        = GPIO_AF_TIM2,
-    .timPerif      = RCC_APB1Periph_TIM2,
-    .tim           = TIM2,
-    .timPolarity   = TIM_OCPolarity_High,
-    .timDbgStop    = DBGMCU_TIM2_STOP,
-    .timPeriod     = MOTORS_BL_PWM_PERIOD,
-    .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare3,
-    .getCompare    = TIM_GetCapture3,
-    .ocInit        = TIM_OC3Init,
-    .preloadConfig = TIM_OC3PreloadConfig,
-};
+// // Deck TX2, PA2, TIM2_CH3
+// static const MotorPerifDef DECK_TX2_TIM2 =
+// {
+//     .drvType       = BRUSHLESS,
+//     .gpioPerif     = RCC_AHB1Periph_GPIOA,
+//     .gpioPort      = GPIOA,
+//     .gpioPin       = GPIO_Pin_2,
+//     .gpioPinSource = GPIO_PinSource2,
+//     .gpioOType     = GPIO_OType_OD,
+//     .gpioAF        = GPIO_AF_TIM2,
+//     .timPerif      = RCC_APB1Periph_TIM2,
+//     .tim           = TIM2,
+//     .timPolarity   = TIM_OCPolarity_High,
+//     .timDbgStop    = DBGMCU_TIM2_STOP,
+//     .timPeriod     = MOTORS_BL_PWM_PERIOD,
+//     .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
+//     .setCompare    = TIM_SetCompare3,
+//     .getCompare    = TIM_GetCapture3,
+//     .ocInit        = TIM_OC3Init,
+//     .preloadConfig = TIM_OC3PreloadConfig,
+// };
 
-// Deck TX2, PA2, TIM5_CH3
-static const MotorPerifDef DECK_TX2_TIM5 =
-{
-    .drvType       = BRUSHLESS,
-    .gpioPerif     = RCC_AHB1Periph_GPIOA,
-    .gpioPort      = GPIOA,
-    .gpioPin       = GPIO_Pin_2,
-    .gpioPinSource = GPIO_PinSource2,
-    .gpioOType     = GPIO_OType_OD,
-    .gpioAF        = GPIO_AF_TIM5,
-    .timPerif      = RCC_APB1Periph_TIM5,
-    .tim           = TIM5,
-    .timPolarity   = TIM_OCPolarity_High,
-    .timDbgStop    = DBGMCU_TIM5_STOP,
-    .timPeriod     = MOTORS_BL_PWM_PERIOD,
-    .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare3,
-    .getCompare    = TIM_GetCapture3,
-    .ocInit        = TIM_OC3Init,
-    .preloadConfig = TIM_OC3PreloadConfig,
-};
+// // Deck TX2, PA2, TIM5_CH3
+// static const MotorPerifDef DECK_TX2_TIM5 =
+// {
+//     .drvType       = BRUSHLESS,
+//     .gpioPerif     = RCC_AHB1Periph_GPIOA,
+//     .gpioPort      = GPIOA,
+//     .gpioPin       = GPIO_Pin_2,
+//     .gpioPinSource = GPIO_PinSource2,
+//     .gpioOType     = GPIO_OType_OD,
+//     .gpioAF        = GPIO_AF_TIM5,
+//     .timPerif      = RCC_APB1Periph_TIM5,
+//     .tim           = TIM5,
+//     .timPolarity   = TIM_OCPolarity_High,
+//     .timDbgStop    = DBGMCU_TIM5_STOP,
+//     .timPeriod     = MOTORS_BL_PWM_PERIOD,
+//     .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
+//     .setCompare    = TIM_SetCompare3,
+//     .getCompare    = TIM_GetCapture3,
+//     .ocInit        = TIM_OC3Init,
+//     .preloadConfig = TIM_OC3PreloadConfig,
+// };
 
-// Deck RX2, PA3, TIM2_CH4
-static const MotorPerifDef DECK_RX2_TIM2 =
-{
-    .drvType       = BRUSHLESS,
-    .gpioPerif     = RCC_AHB1Periph_GPIOA,
-    .gpioPort      = GPIOA,
-    .gpioPin       = GPIO_Pin_3,
-    .gpioPinSource = GPIO_PinSource3,
-    .gpioOType     = GPIO_OType_OD,
-    .gpioAF        = GPIO_AF_TIM2,
-    .timPerif      = RCC_APB1Periph_TIM2,
-    .tim           = TIM2,
-    .timPolarity   = TIM_OCPolarity_High,
-    .timDbgStop    = DBGMCU_TIM2_STOP,
-    .timPeriod     = MOTORS_BL_PWM_PERIOD,
-    .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare4,
-    .getCompare    = TIM_GetCapture4,
-    .ocInit        = TIM_OC4Init,
-    .preloadConfig = TIM_OC4PreloadConfig,
-};
+// // Deck RX2, PA3, TIM2_CH4
+// static const MotorPerifDef DECK_RX2_TIM2 =
+// {
+//     .drvType       = BRUSHLESS,
+//     .gpioPerif     = RCC_AHB1Periph_GPIOA,
+//     .gpioPort      = GPIOA,
+//     .gpioPin       = GPIO_Pin_3,
+//     .gpioPinSource = GPIO_PinSource3,
+//     .gpioOType     = GPIO_OType_OD,
+//     .gpioAF        = GPIO_AF_TIM2,
+//     .timPerif      = RCC_APB1Periph_TIM2,
+//     .tim           = TIM2,
+//     .timPolarity   = TIM_OCPolarity_High,
+//     .timDbgStop    = DBGMCU_TIM2_STOP,
+//     .timPeriod     = MOTORS_BL_PWM_PERIOD,
+//     .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
+//     .setCompare    = TIM_SetCompare4,
+//     .getCompare    = TIM_GetCapture4,
+//     .ocInit        = TIM_OC4Init,
+//     .preloadConfig = TIM_OC4PreloadConfig,
+// };
 
-// Deck RX2, PA3, TIM5_CH4
-static const MotorPerifDef DECK_RX2_TIM5 =
-{
-    .drvType       = BRUSHLESS,
-    .gpioPerif     = RCC_AHB1Periph_GPIOA,
-    .gpioPort      = GPIOA,
-    .gpioPin       = GPIO_Pin_3,
-    .gpioPinSource = GPIO_PinSource3,
-    .gpioOType     = GPIO_OType_OD,
-    .gpioAF        = GPIO_AF_TIM5,
-    .timPerif      = RCC_APB1Periph_TIM5,
-    .tim           = TIM5,
-    .timPolarity   = TIM_OCPolarity_High,
-    .timDbgStop    = DBGMCU_TIM5_STOP,
-    .timPeriod     = MOTORS_BL_PWM_PERIOD,
-    .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare4,
-    .getCompare    = TIM_GetCapture4,
-    .ocInit        = TIM_OC4Init,
-    .preloadConfig = TIM_OC4PreloadConfig,
-};
+// // Deck RX2, PA3, TIM5_CH4
+// static const MotorPerifDef DECK_RX2_TIM5 =
+// {
+//     .drvType       = BRUSHLESS,
+//     .gpioPerif     = RCC_AHB1Periph_GPIOA,
+//     .gpioPort      = GPIOA,
+//     .gpioPin       = GPIO_Pin_3,
+//     .gpioPinSource = GPIO_PinSource3,
+//     .gpioOType     = GPIO_OType_OD,
+//     .gpioAF        = GPIO_AF_TIM5,
+//     .timPerif      = RCC_APB1Periph_TIM5,
+//     .tim           = TIM5,
+//     .timPolarity   = TIM_OCPolarity_High,
+//     .timDbgStop    = DBGMCU_TIM5_STOP,
+//     .timPeriod     = MOTORS_BL_PWM_PERIOD,
+//     .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
+//     .setCompare    = TIM_SetCompare4,
+//     .getCompare    = TIM_GetCapture4,
+//     .ocInit        = TIM_OC4Init,
+//     .preloadConfig = TIM_OC4PreloadConfig,
+// };
 
-// Deck IO1, PB8, TIM4_CH3
-static const MotorPerifDef DECK_IO1_TIM4 =
-{
-    .drvType       = BRUSHLESS,
-    .gpioPerif     = RCC_AHB1Periph_GPIOB,
-    .gpioPort      = GPIOB,
-    .gpioPin       = GPIO_Pin_8,
-    .gpioPinSource = GPIO_PinSource8,
-    .gpioOType     = GPIO_OType_OD,
-    .gpioAF        = GPIO_AF_TIM4,
-    .timPerif      = RCC_APB1Periph_TIM4,
-    .tim           = TIM4,
-    .timPolarity   = TIM_OCPolarity_High,
-    .timDbgStop    = DBGMCU_TIM4_STOP,
-    .timPeriod     = MOTORS_BL_PWM_PERIOD,
-    .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare3,
-    .getCompare    = TIM_GetCapture3,
-    .ocInit        = TIM_OC3Init,
-    .preloadConfig = TIM_OC3PreloadConfig,
-};
+// // Deck IO1, PB8, TIM4_CH3
+// static const MotorPerifDef DECK_IO1_TIM4 =
+// {
+//     .drvType       = BRUSHLESS,
+//     .gpioPerif     = RCC_AHB1Periph_GPIOB,
+//     .gpioPort      = GPIOB,
+//     .gpioPin       = GPIO_Pin_8,
+//     .gpioPinSource = GPIO_PinSource8,
+//     .gpioOType     = GPIO_OType_OD,
+//     .gpioAF        = GPIO_AF_TIM4,
+//     .timPerif      = RCC_APB1Periph_TIM4,
+//     .tim           = TIM4,
+//     .timPolarity   = TIM_OCPolarity_High,
+//     .timDbgStop    = DBGMCU_TIM4_STOP,
+//     .timPeriod     = MOTORS_BL_PWM_PERIOD,
+//     .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
+//     .setCompare    = TIM_SetCompare3,
+//     .getCompare    = TIM_GetCapture3,
+//     .ocInit        = TIM_OC3Init,
+//     .preloadConfig = TIM_OC3PreloadConfig,
+// };
 
-// Deck IO2, PB5, TIM3_CH2
-static const MotorPerifDef DECK_IO2 =
-{
-    .drvType       = BRUSHLESS,
-    .gpioPerif     = RCC_AHB1Periph_GPIOB,
-    .gpioPort      = GPIOB,
-    .gpioPin       = GPIO_Pin_5,
-    .gpioPinSource = GPIO_PinSource5,
-    .gpioOType     = GPIO_OType_OD,
-    .gpioAF        = GPIO_AF_TIM3,
-    .timPerif      = RCC_APB1Periph_TIM3,
-    .tim           = TIM3,
-    .timPolarity   = TIM_OCPolarity_High,
-    .timDbgStop    = DBGMCU_TIM3_STOP,
-    .timPeriod     = MOTORS_BL_PWM_PERIOD,
-    .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare2,
-    .getCompare    = TIM_GetCapture2,
-    .ocInit        = TIM_OC2Init,
-    .preloadConfig = TIM_OC2PreloadConfig,
-};
+// // Deck IO2, PB5, TIM3_CH2
+// static const MotorPerifDef DECK_IO2 =
+// {
+//     .drvType       = BRUSHLESS,
+//     .gpioPerif     = RCC_AHB1Periph_GPIOB,
+//     .gpioPort      = GPIOB,
+//     .gpioPin       = GPIO_Pin_5,
+//     .gpioPinSource = GPIO_PinSource5,
+//     .gpioOType     = GPIO_OType_OD,
+//     .gpioAF        = GPIO_AF_TIM3,
+//     .timPerif      = RCC_APB1Periph_TIM3,
+//     .tim           = TIM3,
+//     .timPolarity   = TIM_OCPolarity_High,
+//     .timDbgStop    = DBGMCU_TIM3_STOP,
+//     .timPeriod     = MOTORS_BL_PWM_PERIOD,
+//     .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
+//     .setCompare    = TIM_SetCompare2,
+//     .getCompare    = TIM_GetCapture2,
+//     .ocInit        = TIM_OC2Init,
+//     .preloadConfig = TIM_OC2PreloadConfig,
+// };
 
-// Deck IO3, PB4, TIM3_CH1
-static const MotorPerifDef DECK_IO3 =
-{
-    .drvType       = BRUSHLESS,
-    .gpioPerif     = RCC_AHB1Periph_GPIOB,
-    .gpioPort      = GPIOB,
-    .gpioPin       = GPIO_Pin_4,
-    .gpioPinSource = GPIO_PinSource4,
-    .gpioOType     = GPIO_OType_OD,
-    .gpioAF        = GPIO_AF_TIM3,
-    .timPerif      = RCC_APB1Periph_TIM3,
-    .tim           = TIM3,
-    .timPolarity   = TIM_OCPolarity_High,
-    .timDbgStop    = DBGMCU_TIM3_STOP,
-    .timPeriod     = MOTORS_BL_PWM_PERIOD,
-    .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare1,
-    .getCompare    = TIM_GetCapture1,
-    .ocInit        = TIM_OC1Init,
-    .preloadConfig = TIM_OC1PreloadConfig,
-};
+// // Deck IO3, PB4, TIM3_CH1
+// static const MotorPerifDef DECK_IO3 =
+// {
+//     .drvType       = BRUSHLESS,
+//     .gpioPerif     = RCC_AHB1Periph_GPIOB,
+//     .gpioPort      = GPIOB,
+//     .gpioPin       = GPIO_Pin_4,
+//     .gpioPinSource = GPIO_PinSource4,
+//     .gpioOType     = GPIO_OType_OD,
+//     .gpioAF        = GPIO_AF_TIM3,
+//     .timPerif      = RCC_APB1Periph_TIM3,
+//     .tim           = TIM3,
+//     .timPolarity   = TIM_OCPolarity_High,
+//     .timDbgStop    = DBGMCU_TIM3_STOP,
+//     .timPeriod     = MOTORS_BL_PWM_PERIOD,
+//     .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
+//     .setCompare    = TIM_SetCompare1,
+//     .getCompare    = TIM_GetCapture1,
+//     .ocInit        = TIM_OC1Init,
+//     .preloadConfig = TIM_OC1PreloadConfig,
+// };
 
-// Deck SCK, PA5, TIM2_CH1
-static const MotorPerifDef DECK_SCK =
-{
-    .drvType       = BRUSHLESS,
-    .gpioPerif     = RCC_AHB1Periph_GPIOA,
-    .gpioPort      = GPIOA,
-    .gpioPin       = GPIO_Pin_5,
-    .gpioPinSource = GPIO_PinSource5,
-    .gpioOType     = GPIO_OType_OD,
-    .gpioAF        = GPIO_AF_TIM2,
-    .timPerif      = RCC_APB1Periph_TIM2,
-    .tim           = TIM2,
-    .timPolarity   = TIM_OCPolarity_High,
-    .timDbgStop    = DBGMCU_TIM2_STOP,
-    .timPeriod     = MOTORS_BL_PWM_PERIOD,
-    .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare1,
-    .getCompare    = TIM_GetCapture1,
-    .ocInit        = TIM_OC1Init,
-    .preloadConfig = TIM_OC1PreloadConfig,
-};
+// // Deck SCK, PA5, TIM2_CH1
+// static const MotorPerifDef DECK_SCK =
+// {
+//     .drvType       = BRUSHLESS,
+//     .gpioPerif     = RCC_AHB1Periph_GPIOA,
+//     .gpioPort      = GPIOA,
+//     .gpioPin       = GPIO_Pin_5,
+//     .gpioPinSource = GPIO_PinSource5,
+//     .gpioOType     = GPIO_OType_OD,
+//     .gpioAF        = GPIO_AF_TIM2,
+//     .timPerif      = RCC_APB1Periph_TIM2,
+//     .tim           = TIM2,
+//     .timPolarity   = TIM_OCPolarity_High,
+//     .timDbgStop    = DBGMCU_TIM2_STOP,
+//     .timPeriod     = MOTORS_BL_PWM_PERIOD,
+//     .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
+//     .setCompare    = TIM_SetCompare1,
+//     .getCompare    = TIM_GetCapture1,
+//     .ocInit        = TIM_OC1Init,
+//     .preloadConfig = TIM_OC1PreloadConfig,
+// };
 
-// Deck MISO, PA6, TIM3_CH1
-static const MotorPerifDef DECK_MISO =
-{
-    .drvType       = BRUSHLESS,
-    .gpioPerif     = RCC_AHB1Periph_GPIOA,
-    .gpioPort      = GPIOA,
-    .gpioPin       = GPIO_Pin_6,
-    .gpioPinSource = GPIO_PinSource6,
-    .gpioOType     = GPIO_OType_OD,
-    .gpioAF        = GPIO_AF_TIM3,
-    .timPerif      = RCC_APB1Periph_TIM3,
-    .tim           = TIM3,
-    .timPolarity   = TIM_OCPolarity_High,
-    .timDbgStop    = DBGMCU_TIM3_STOP,
-    .timPeriod     = MOTORS_BL_PWM_PERIOD,
-    .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare1,
-    .getCompare    = TIM_GetCapture1,
-    .ocInit        = TIM_OC1Init,
-    .preloadConfig = TIM_OC1PreloadConfig,
-};
+// // Deck MISO, PA6, TIM3_CH1
+// static const MotorPerifDef DECK_MISO =
+// {
+//     .drvType       = BRUSHLESS,
+//     .gpioPerif     = RCC_AHB1Periph_GPIOA,
+//     .gpioPort      = GPIOA,
+//     .gpioPin       = GPIO_Pin_6,
+//     .gpioPinSource = GPIO_PinSource6,
+//     .gpioOType     = GPIO_OType_OD,
+//     .gpioAF        = GPIO_AF_TIM3,
+//     .timPerif      = RCC_APB1Periph_TIM3,
+//     .tim           = TIM3,
+//     .timPolarity   = TIM_OCPolarity_High,
+//     .timDbgStop    = DBGMCU_TIM3_STOP,
+//     .timPeriod     = MOTORS_BL_PWM_PERIOD,
+//     .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
+//     .setCompare    = TIM_SetCompare1,
+//     .getCompare    = TIM_GetCapture1,
+//     .ocInit        = TIM_OC1Init,
+//     .preloadConfig = TIM_OC1PreloadConfig,
+// };
 
-// Deck MOSI, PA7, TIM14_CH1
-static const MotorPerifDef DECK_MOSI =
-{
-    .drvType       = BRUSHLESS,
-    .gpioPerif     = RCC_AHB1Periph_GPIOA,
-    .gpioPort      = GPIOA,
-    .gpioPin       = GPIO_Pin_7,
-    .gpioPinSource = GPIO_PinSource7,
-    .gpioOType     = GPIO_OType_OD,
-    .gpioAF        = GPIO_AF_TIM14,
-    .timPerif      = RCC_APB1Periph_TIM14,
-    .tim           = TIM14,
-    .timPolarity   = TIM_OCPolarity_High,
-    .timDbgStop    = DBGMCU_TIM14_STOP,
-    .timPeriod     = MOTORS_BL_PWM_PERIOD,
-    .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
-    .setCompare    = TIM_SetCompare1,
-    .getCompare    = TIM_GetCapture1,
-    .ocInit        = TIM_OC1Init,
-    .preloadConfig = TIM_OC1PreloadConfig,
-};
+// // Deck MOSI, PA7, TIM14_CH1
+// static const MotorPerifDef DECK_MOSI =
+// {
+//     .drvType       = BRUSHLESS,
+//     .gpioPerif     = RCC_AHB1Periph_GPIOA,
+//     .gpioPort      = GPIOA,
+//     .gpioPin       = GPIO_Pin_7,
+//     .gpioPinSource = GPIO_PinSource7,
+//     .gpioOType     = GPIO_OType_OD,
+//     .gpioAF        = GPIO_AF_TIM14,
+//     .timPerif      = RCC_APB1Periph_TIM14,
+//     .tim           = TIM14,
+//     .timPolarity   = TIM_OCPolarity_High,
+//     .timDbgStop    = DBGMCU_TIM14_STOP,
+//     .timPeriod     = MOTORS_BL_PWM_PERIOD,
+//     .timPrescaler  = MOTORS_BL_PWM_PRESCALE,
+//     .setCompare    = TIM_SetCompare1,
+//     .getCompare    = TIM_GetCapture1,
+//     .ocInit        = TIM_OC1Init,
+//     .preloadConfig = TIM_OC1PreloadConfig,
+// };
 
-/**
- * Mapping for Tags that don't have motors.
- * Actually same mapping as for CF2 but the pins are not connected.
- */
-const MotorPerifDef* motorMapNoMotors[NBR_OF_MOTORS] =
-{
-  &CONN_M1,
-  &CONN_M2,
-  &CONN_M3,
-  &CONN_M4
-};
+// /**
+//  * Mapping for Tags that don't have motors.
+//  * Actually same mapping as for CF2 but the pins are not connected.
+//  */
+// const MotorPerifDef* motorMapNoMotors[NBR_OF_MOTORS] =
+// {
+//   &CONN_M1,
+//   &CONN_M2,
+//   &CONN_M3,
+//   &CONN_M4
+// };
 
-/**
- * Default brushed mapping to M1-M4 connectors.
- */
-const MotorPerifDef* motorMapDefaultBrushed[NBR_OF_MOTORS] =
-{
-  &CONN_M1,
-  &CONN_M2,
-  &CONN_M3,
-  &CONN_M4
-};
+// /**
+//  * Default brushed mapping to M1-M4 connectors.
+//  */
+// const MotorPerifDef* motorMapDefaultBrushed[NBR_OF_MOTORS] =
+// {
+//   &CONN_M1,
+//   &CONN_M2,
+//   &CONN_M3,
+//   &CONN_M4
+// };
 
-/**
- * Brushless motors mapped as on the Big-Quad deck
- * M1 -> TX2
- * M2 -> IO3
- * M3 -> IO2
- * M4 -> RX2
- */
-const MotorPerifDef* motorMapBigQuadDeck[NBR_OF_MOTORS] =
-{
-  &DECK_TX2_TIM2,
-  &DECK_IO3,
-  &DECK_IO2,
-  &DECK_RX2_TIM2
-};
+// /**
+//  * Brushless motors mapped as on the Big-Quad deck
+//  * M1 -> TX2
+//  * M2 -> IO3
+//  * M3 -> IO2
+//  * M4 -> RX2
+//  */
+// const MotorPerifDef* motorMapBigQuadDeck[NBR_OF_MOTORS] =
+// {
+//   &DECK_TX2_TIM2,
+//   &DECK_IO3,
+//   &DECK_IO2,
+//   &DECK_RX2_TIM2
+// };
 
-/**
- * Brushless motors mapped to the standard motor connectors with pull-ups (~1K) to VBAT soldered.
- */
-const MotorPerifDef* motorMapDefaltConBrushless[NBR_OF_MOTORS] =
-{
-  &CONN_M1_BL_INV,
-  &CONN_M2_BL_INV,
-  &CONN_M3_BL_INV,
-  &CONN_M4_BL_INV
-};
+// /**
+//  * Brushless motors mapped to the standard motor connectors with pull-ups (~1K) to VBAT soldered.
+//  */
+// const MotorPerifDef* motorMapDefaltConBrushless[NBR_OF_MOTORS] =
+// {
+//   &CONN_M1_BL_INV,
+//   &CONN_M2_BL_INV,
+//   &CONN_M3_BL_INV,
+//   &CONN_M4_BL_INV
+// };
 
-/**
- * Brushless motors mapped to the Bolt PWM outputs.
- */
-const MotorPerifDef* motorMapBoltBrushless[NBR_OF_MOTORS] =
-{
-  &BOLT_M1_BL,
-  &BOLT_M2_BL,
-  &BOLT_M3_BL,
-  &BOLT_M4_BL
-};
+// /**
+//  * Brushless motors mapped to the Bolt PWM outputs.
+//  */
+// const MotorPerifDef* motorMapBoltBrushless[NBR_OF_MOTORS] =
+// {
+//   &BOLT_M1_BL,
+//   &BOLT_M2_BL,
+//   &BOLT_M3_BL,
+//   &BOLT_M4_BL
+// };
 
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/interface/pm.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/interface/pm.h
index 707af90ca..61b90519c 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/interface/pm.h
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/interface/pm.h
@@ -48,13 +48,15 @@
   #define PM_BAT_LOW_VOLTAGE   LOW_VOLTAGE
 #endif
 #ifndef LOW_TIMEOUT
-  #define PM_BAT_LOW_TIMEOUT   M2T(1000 * 5) // 5 sec default
+//COMMENTED FIRMWARE
+  #define PM_BAT_LOW_TIMEOUT   1000 * 5//M2T(1000 * 5) // 5 sec default
 #else
   #define PM_BAT_LOW_TIMEOUT   LOW_TIMEOUT
 #endif
 
 #ifndef SYSTEM_SHUTDOWN_TIMEOUT
-  #define PM_SYSTEM_SHUTDOWN_TIMEOUT    M2T(1000 * 60 * 5) // 5 min default
+//COMMENTED FIRMWARE
+  #define PM_SYSTEM_SHUTDOWN_TIMEOUT    1000 * 60 * 5//M2T(1000 * 60 * 5) // 5 min default
 #else
   #define PM_SYSTEM_SHUTDOWN_TIMEOUT    M2T(1000 * 60 * SYSTEM_SHUTDOWN_TIMEOUT)
 #endif
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/ow_syslink.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/ow_syslink.c
index 2d3b89a96..b858b5f9a 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/ow_syslink.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/ow_syslink.c
@@ -55,7 +55,8 @@ void owInit()
 {
   syslinkInit();
   vSemaphoreCreateBinary(waitForReply);
-  lockCmdBuf = xSemaphoreCreateMutexStatic(&lockCmdBufBuffer);
+  //COMMENTED FIRMWARE
+  //lockCmdBuf = xSemaphoreCreateMutexStatic(&lockCmdBufBuffer);
 
   // Put reply semaphore in right state.
   xSemaphoreTake(waitForReply, portMAX_DELAY);
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/pm_stm32f4.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/pm_stm32f4.c
index d522e268d..0808c45bf 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/pm_stm32f4.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/pm_stm32f4.c
@@ -113,7 +113,8 @@ void pmInit(void)
     return;
   }
 
-  STATIC_MEM_TASK_CREATE(pmTask, pmTask, PM_TASK_NAME, NULL, PM_TASK_PRI);
+  //COMMENTED FIRMWARE  
+  //STATIC_MEM_TASK_CREATE(pmTask, pmTask, PM_TASK_NAME, NULL, PM_TASK_PRI);
 
   isInit = true;
   //COMMENTED FIRMWARE
@@ -216,28 +217,29 @@ void pmSetChargeState(PMChargeStates chgState)
 PMStates pmUpdateState()
 {
   PMStates state;
-  bool isCharging = pmSyslinkInfo.chg;
-  bool isPgood = pmSyslinkInfo.pgood;
-  uint32_t batteryLowTime;
+  //COMMENTED FIRMWARE
+  // bool isCharging = pmSyslinkInfo.chg;
+  // bool isPgood = pmSyslinkInfo.pgood;
+  // uint32_t batteryLowTime;
 
-  batteryLowTime = xTaskGetTickCount() - batteryLowTimeStamp;
+  // batteryLowTime = xTaskGetTickCount() - batteryLowTimeStamp;
 
-  if (isPgood && !isCharging)
-  {
-    state = charged;
-  }
-  else if (isPgood && isCharging)
-  {
-    state = charging;
-  }
-  else if (!isPgood && !isCharging && (batteryLowTime > PM_BAT_LOW_TIMEOUT))
-  {
-    state = lowPower;
-  }
-  else
-  {
-    state = battery;
-  }
+  // if (isPgood && !isCharging)
+  // {
+  //   state = charged;
+  // }
+  // else if (isPgood && isCharging)
+  // {
+  //   state = charging;
+  // }
+  // else if (!isPgood && !isCharging && (batteryLowTime > PM_BAT_LOW_TIMEOUT))
+  // {
+  //   state = lowPower;
+  // }
+  // else
+  // {
+  //   state = battery;
+  // }
 
   return state;
 }
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/sensors_bmi088_bmp388.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/sensors_bmi088_bmp388.c
index 9f1d3a30c..0ecc3fd33 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/sensors_bmi088_bmp388.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/sensors_bmi088_bmp388.c
@@ -27,6 +27,7 @@
 #define DEBUG_MODULE "IMU"
 
 #include <math.h>
+#include "empty_math.h"
 
 #include "sensors_bmi088_bmp388.h"
 #include "stm32fxxx.h"
@@ -234,10 +235,11 @@ static void sensorsAccelGet(Axis3i16* dataOut)
 static void sensorsScaleBaro(baro_t* baroScaled, float pressure,
                              float temperature)
 {
-  baroScaled->pressure = pressure*0.01f;
-  baroScaled->temperature = temperature;
-  baroScaled->asl = ((powf((1015.7f / baroScaled->pressure), 0.1902630958f)
-      - 1.0f) * (25.0f + 273.15f)) / 0.0065f;
+  //COMMENTED FIRMWARE
+  // baroScaled->pressure = pressure*0.01f;
+  // baroScaled->temperature = temperature;
+  // baroScaled->asl = ((powf((1015.7f / baroScaled->pressure), 0.1902630958f)
+  //     - 1.0f) * (25.0f + 273.15f)) / 0.0065f;
 }
 
 bool sensorsBmi088Bmp388ReadGyro(Axis3f *gyro)
@@ -512,6 +514,7 @@ static void sensorsDeviceInit(void)
     lpf2pInit(&accLpf[i],  1000, ACCEL_LPF_CUTOFF_FREQ);
   }
 
+  //COMMENTED FIRMWARE
   cosPitch = cosf(configblockGetCalibPitch() * (float) M_PI / 180);
   sinPitch = sinf(configblockGetCalibPitch() * (float) M_PI / 180);
   cosRoll = cosf(configblockGetCalibRoll() * (float) M_PI / 180);
@@ -644,17 +647,18 @@ bool sensorsBmi088Bmp388Test(void)
  */
 static bool processAccScale(int16_t ax, int16_t ay, int16_t az)
 {
-  if (!accScaleFound)
-  {
-    accScaleSum += sqrtf(powf(ax * SENSORS_BMI088_G_PER_LSB_CFG, 2) + powf(ay * SENSORS_BMI088_G_PER_LSB_CFG, 2) + powf(az * SENSORS_BMI088_G_PER_LSB_CFG, 2));
-    accScaleSumCount++;
-
-    if (accScaleSumCount == SENSORS_ACC_SCALE_SAMPLES)
-    {
-      accScale = accScaleSum / SENSORS_ACC_SCALE_SAMPLES;
-      accScaleFound = true;
-    }
-  }
+  //COMMENTED FIRMWARE
+  // if (!accScaleFound)
+  // {
+  //   accScaleSum += sqrtf(powf(ax * SENSORS_BMI088_G_PER_LSB_CFG, 2) + powf(ay * SENSORS_BMI088_G_PER_LSB_CFG, 2) + powf(az * SENSORS_BMI088_G_PER_LSB_CFG, 2));
+  //   accScaleSumCount++;
+
+  //   if (accScaleSumCount == SENSORS_ACC_SCALE_SAMPLES)
+  //   {
+  //     accScale = accScaleSum / SENSORS_ACC_SCALE_SAMPLES;
+  //     accScaleFound = true;
+  //   }
+  // }
 
   return accScaleFound;
 }
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/sensors_bosch.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/sensors_bosch.c
index c01eb7d9f..85adbf7be 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/sensors_bosch.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/sensors_bosch.c
@@ -34,6 +34,7 @@
 #include "sensors_bosch.h"
 
 #include <math.h>
+#include "empty_math.h"
 
 #include "stm32fxxx.h"
 
@@ -764,24 +765,25 @@ static void calcMean(BiasObj* bias, Axis3f* mean) {
  */
 static void calcVarianceAndMean(BiasObj* bias, Axis3f* variance, Axis3f* mean)
 {
-  Axis3i16* elem;
-  int64_t sumSquared[GYRO_NBR_OF_AXES] = {0};
-
-  for (elem = bias->bufStart;
-      elem != (bias->bufStart+SENSORS_NBR_OF_BIAS_SAMPLES); elem++)
-    {
-      sumSquared[0] += elem->x * elem->x;
-      sumSquared[1] += elem->y * elem->y;
-      sumSquared[2] += elem->z * elem->z;
-    }
-  calcMean(bias, mean);
-
-  variance->x = fabs(sumSquared[0] / SENSORS_NBR_OF_BIAS_SAMPLES
-                     - mean->x * mean->x);
-  variance->y = fabs(sumSquared[1] / SENSORS_NBR_OF_BIAS_SAMPLES
-                     - mean->y * mean->y);
-  variance->z = fabs(sumSquared[2] / SENSORS_NBR_OF_BIAS_SAMPLES
-                     - mean->z * mean->z);
+  //COMMENTED FIRMWARE
+  // Axis3i16* elem;
+  // int64_t sumSquared[GYRO_NBR_OF_AXES] = {0};
+
+  // for (elem = bias->bufStart;
+  //     elem != (bias->bufStart+SENSORS_NBR_OF_BIAS_SAMPLES); elem++)
+  //   {
+  //     sumSquared[0] += elem->x * elem->x;
+  //     sumSquared[1] += elem->y * elem->y;
+  //     sumSquared[2] += elem->z * elem->z;
+  //   }
+  // calcMean(bias, mean);
+
+  // variance->x = fabs(sumSquared[0] / SENSORS_NBR_OF_BIAS_SAMPLES
+  //                    - mean->x * mean->x);
+  // variance->y = fabs(sumSquared[1] / SENSORS_NBR_OF_BIAS_SAMPLES
+  //                    - mean->y * mean->y);
+  // variance->z = fabs(sumSquared[2] / SENSORS_NBR_OF_BIAS_SAMPLES
+  //                    - mean->z * mean->z);
 }
 
 /**
@@ -829,10 +831,11 @@ static void sensorsApplyBiasAndScale(Axis3f* scaled, Axis3i16* aligned,
 
 static void sensorsScaleBaro(baro_t* baroScaled, float pressure,
                              float temperature) {
-  baroScaled->pressure = pressure*0.01f;
-  baroScaled->temperature = temperature;
-  baroScaled->asl = ((powf((1015.7f / baroScaled->pressure), 0.1902630958f)
-      - 1.0f) * (25.0f + 273.15f)) / 0.0065f;
+  //COMMENTED FIRMWARE
+  // baroScaled->pressure = pressure*0.01f;
+  // baroScaled->temperature = temperature;
+  // baroScaled->asl = ((powf((1015.7f / baroScaled->pressure), 0.1902630958f)
+  //     - 1.0f) * (25.0f + 273.15f)) / 0.0065f;
 }
 
 bool sensorsBoschReadGyro(Axis3f *gyro)
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/sensors_mpu9250_lps25h.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/sensors_mpu9250_lps25h.c
index 7c3959e09..3b441215d 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/sensors_mpu9250_lps25h.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/sensors_mpu9250_lps25h.c
@@ -29,6 +29,7 @@
 #include "sensors_mpu9250_lps25h.h"
 
 #include <math.h>
+#include "empty_math.h"
 #include <stm32f4xx.h>
 
 #include "lps25h.h"
@@ -609,19 +610,20 @@ bool sensorsMpu9250Lps25hTest(void)
 static bool processAccScale(int16_t ax, int16_t ay, int16_t az)
 {
   static bool accBiasFound = false;
-  static uint32_t accScaleSumCount = 0;
+  //COMMENTED FIRMWARE
+  // static uint32_t accScaleSumCount = 0;
 
-  if (!accBiasFound)
-  {
-    accScaleSum += sqrtf(powf(ax * SENSORS_G_PER_LSB_CFG, 2) + powf(ay * SENSORS_G_PER_LSB_CFG, 2) + powf(az * SENSORS_G_PER_LSB_CFG, 2));
-    accScaleSumCount++;
+  // if (!accBiasFound)
+  // {
+  //   accScaleSum += sqrtf(powf(ax * SENSORS_G_PER_LSB_CFG, 2) + powf(ay * SENSORS_G_PER_LSB_CFG, 2) + powf(az * SENSORS_G_PER_LSB_CFG, 2));
+  //   accScaleSumCount++;
 
-    if (accScaleSumCount == SENSORS_ACC_SCALE_SAMPLES)
-    {
-      accScale = accScaleSum / SENSORS_ACC_SCALE_SAMPLES;
-      accBiasFound = true;
-    }
-  }
+  //   if (accScaleSumCount == SENSORS_ACC_SCALE_SAMPLES)
+  //   {
+  //     accScale = accScaleSum / SENSORS_ACC_SCALE_SAMPLES;
+  //     accBiasFound = true;
+  //   }
+  // }
 
   return accBiasFound;
 }
@@ -803,56 +805,57 @@ static bool sensorsFindBiasValue(BiasObj* bias)
 bool sensorsMpu9250Lps25hManufacturingTest(void)
 {
   bool testStatus = false;
-  Axis3i16 g;
-  Axis3i16 a;
-  Axis3f acc;  // Accelerometer axis data in mG
-  float pitch, roll;
-  uint32_t startTick = xTaskGetTickCount();
-
-  testStatus = mpu6500SelfTest();
-
-  if (testStatus)
-  {
-    sensorsBiasObjInit(&gyroBiasRunning);
-    while (xTaskGetTickCount() - startTick < SENSORS_VARIANCE_MAN_TEST_TIMEOUT)
-    {
-      mpu6500GetMotion6(&a.y, &a.x, &a.z, &g.y, &g.x, &g.z);
-
-      if (processGyroBias(g.x, g.y, g.z, &gyroBias))
-      {
-        gyroBiasFound = true;
-        DEBUG_PRINT("Gyro variance test [OK]\n");
-        break;
-      }
-    }
-
-    if (gyroBiasFound)
-    {
-      acc.x = -(a.x) * SENSORS_G_PER_LSB_CFG;
-      acc.y =  (a.y) * SENSORS_G_PER_LSB_CFG;
-      acc.z =  (a.z) * SENSORS_G_PER_LSB_CFG;
-
-      // Calculate pitch and roll based on accelerometer. Board must be level
-      pitch = tanf(-acc.x/(sqrtf(acc.y*acc.y + acc.z*acc.z))) * 180/(float) M_PI;
-      roll = tanf(acc.y/acc.z) * 180/(float) M_PI;
-
-      if ((fabsf(roll) < SENSORS_MAN_TEST_LEVEL_MAX) && (fabsf(pitch) < SENSORS_MAN_TEST_LEVEL_MAX))
-      {
-        DEBUG_PRINT("Acc level test [OK]\n");
-        testStatus = true;
-      }
-      else
-      {
-        DEBUG_PRINT("Acc level test Roll:%0.2f, Pitch:%0.2f [FAIL]\n", (double)roll, (double)pitch);
-        testStatus = false;
-      }
-    }
-    else
-    {
-      DEBUG_PRINT("Gyro variance test [FAIL]\n");
-      testStatus = false;
-    }
-  }
+  //COMMENTED FIRMWARE
+  // Axis3i16 g;
+  // Axis3i16 a;
+  // Axis3f acc;  // Accelerometer axis data in mG
+  // float pitch, roll;
+  // uint32_t startTick = xTaskGetTickCount();
+
+  // testStatus = mpu6500SelfTest();
+
+  // if (testStatus)
+  // {
+  //   sensorsBiasObjInit(&gyroBiasRunning);
+  //   while (xTaskGetTickCount() - startTick < SENSORS_VARIANCE_MAN_TEST_TIMEOUT)
+  //   {
+  //     mpu6500GetMotion6(&a.y, &a.x, &a.z, &g.y, &g.x, &g.z);
+
+  //     if (processGyroBias(g.x, g.y, g.z, &gyroBias))
+  //     {
+  //       gyroBiasFound = true;
+  //       DEBUG_PRINT("Gyro variance test [OK]\n");
+  //       break;
+  //     }
+  //   }
+
+  //   if (gyroBiasFound)
+  //   {
+  //     acc.x = -(a.x) * SENSORS_G_PER_LSB_CFG;
+  //     acc.y =  (a.y) * SENSORS_G_PER_LSB_CFG;
+  //     acc.z =  (a.z) * SENSORS_G_PER_LSB_CFG;
+
+  //     // Calculate pitch and roll based on accelerometer. Board must be level
+  //     pitch = tanf(-acc.x/(sqrtf(acc.y*acc.y + acc.z*acc.z))) * 180/(float) M_PI;
+  //     roll = tanf(acc.y/acc.z) * 180/(float) M_PI;
+
+  //     if ((fabsf(roll) < SENSORS_MAN_TEST_LEVEL_MAX) && (fabsf(pitch) < SENSORS_MAN_TEST_LEVEL_MAX))
+  //     {
+  //       DEBUG_PRINT("Acc level test [OK]\n");
+  //       testStatus = true;
+  //     }
+  //     else
+  //     {
+  //       DEBUG_PRINT("Acc level test Roll:%0.2f, Pitch:%0.2f [FAIL]\n", (double)roll, (double)pitch);
+  //       testStatus = false;
+  //     }
+  //   }
+  //   else
+  //   {
+  //     DEBUG_PRINT("Gyro variance test [FAIL]\n");
+  //     testStatus = false;
+  //   }
+  // }
 
   return testStatus;
 }
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/FatFS/ff.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/FatFS/ff.h
index ec9c91ed6..7bdf765d1 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/FatFS/ff.h
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/FatFS/ff.h
@@ -357,11 +357,12 @@ DWORD get_fattime (void);
 #endif
 
 /* LFN support functions */
-#if FF_USE_LFN >= 1						/* Code conversion (defined in unicode.c) */
+
+//#if FF_USE_LFN >= 1						/* Code conversion (defined in unicode.c) */
 WCHAR ff_oem2uni (WCHAR oem, WORD cp);	/* OEM code to Unicode conversion */
 WCHAR ff_uni2oem (DWORD uni, WORD cp);	/* Unicode to OEM code conversion */
 DWORD ff_wtoupper (DWORD uni);			/* Unicode upper-case conversion */
-#endif
+//#endif
 #if FF_USE_LFN == 3						/* Dynamic memory allocation */
 void* ff_memalloc (UINT msize);			/* Allocate memory block */
 void ff_memfree (void* mblock);			/* Free memory block */
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/vl53l1/core/src/vl53l1_api.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/vl53l1/core/src/vl53l1_api.c
index 2ccbe6e83..d075731f1 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/vl53l1/core/src/vl53l1_api.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/vl53l1/core/src/vl53l1_api.c
@@ -670,9 +670,9 @@ VL53L1_Error VL53L1_GetDeviceInfo(VL53L1_DEV Dev,
 	LOG_FUNCTION_START("");
 
 	pLLData =  VL53L1DevStructGetLLDriverHandle(Dev);
-
-	strncpy(pVL53L1_DeviceInfo->ProductId, "",
-			VL53L1_DEVINFO_STRLEN-1);
+	//COMMENTED FIRMWARE
+	// strncpy(pVL53L1_DeviceInfo->ProductId, "",
+	// 		VL53L1_DEVINFO_STRLEN-1);
 	pVL53L1_DeviceInfo->ProductType =
 			pLLData->nvm_copy_data.identification__module_type;
 
@@ -681,17 +681,18 @@ VL53L1_Error VL53L1_GetDeviceInfo(VL53L1_DEV Dev,
 	pVL53L1_DeviceInfo->ProductRevisionMinor = (revision_id & 0xF0) >> 4;
 
 #ifndef VL53L1_USE_EMPTY_STRING
-	if (pVL53L1_DeviceInfo->ProductRevisionMinor == 0)
-		strncpy(pVL53L1_DeviceInfo->Name,
-				VL53L1_STRING_DEVICE_INFO_NAME0,
-				VL53L1_DEVINFO_STRLEN-1);
-	else
-		strncpy(pVL53L1_DeviceInfo->Name,
-				VL53L1_STRING_DEVICE_INFO_NAME1,
-				VL53L1_DEVINFO_STRLEN-1);
-	strncpy(pVL53L1_DeviceInfo->Type,
-			VL53L1_STRING_DEVICE_INFO_TYPE,
-			VL53L1_DEVINFO_STRLEN-1);
+//COMMENTED FIRMWARE
+	// if (pVL53L1_DeviceInfo->ProductRevisionMinor == 0)
+	// 	strncpy(pVL53L1_DeviceInfo->Name,
+	// 			VL53L1_STRING_DEVICE_INFO_NAME0,
+	// 			VL53L1_DEVINFO_STRLEN-1);
+	// else
+	// 	strncpy(pVL53L1_DeviceInfo->Name,
+	// 			VL53L1_STRING_DEVICE_INFO_NAME1,
+	// 			VL53L1_DEVINFO_STRLEN-1);
+	// strncpy(pVL53L1_DeviceInfo->Type,
+	// 		VL53L1_STRING_DEVICE_INFO_TYPE,
+	// 		VL53L1_DEVINFO_STRLEN-1);
 #else
 	pVL53L1_DeviceInfo->Name[0] = 0;
 	pVL53L1_DeviceInfo->Type[0] = 0;
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/interface/math3d.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/interface/math3d.h
index 673d5d612..c3adb7681 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/interface/math3d.h
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/interface/math3d.h
@@ -26,6 +26,7 @@ SOFTWARE.
 */
 
 #include <math.h>
+#include "empty_math.h"
 #include <stdbool.h>
 #include <stddef.h>
 
@@ -55,16 +56,18 @@ static inline float clamp(float value, float min, float max) {
 // steps to allow. this does not work well for numbers near zero.
 // See https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
 static inline bool fcloseulps(float a, float b, int ulps) {
-	if ((a < 0.0f) != (b < 0.0f)) {
-		// Handle negative zero.
-		if (a == b) {
-			return true;
-		}
-		return false;
-	}
-	int ia = *((int *)&a);
-	int ib = *((int *)&b);
-	return fabsf(ia - ib) <= ulps;
+	//COMMENTED FIRMWARE
+	// if ((a < 0.0f) != (b < 0.0f)) {
+	// 	// Handle negative zero.
+	// 	if (a == b) {
+	// 		return true;
+	// 	}
+	// 	return false;
+	// }
+	// int ia = *((int *)&a);
+	// int ib = *((int *)&b);
+	// return fabsf(ia - ib) <= ulps;
+	return false;
 }
 
 
@@ -146,7 +149,8 @@ static inline float vmag2(struct vec v) {
 }
 // vector magnitude.
 static inline float vmag(struct vec v) {
-	return sqrtf(vmag2(v));
+	//COMMENTED FIRMWARE
+	return 0;//sqrtf(vmag2(v));
 }
 // vector Euclidean distance squared.
 static inline float vdist2(struct vec a, struct vec b) {
@@ -154,7 +158,8 @@ static inline float vdist2(struct vec a, struct vec b) {
 }
 // vector Euclidean distance.
 static inline float vdist(struct vec a, struct vec b) {
-  return sqrtf(vdist2(a, b));
+	//COMMENTED FIRMWARE
+  return 0;//sqrtf(vdist2(a, b));
 }
 // normalize a vector (make a unit vector).
 static inline struct vec vnormalize(struct vec v) {
@@ -579,23 +584,25 @@ static inline struct quat qnormalize(struct quat q);
 // assumes a and b are unit vectors.
 // does not handle degenerate case where a = -b. returns all-zero quat
 static inline struct quat qvectovec(struct vec a, struct vec b) {
-	struct vec const cross = vcross(a, b);
-	float const sinangle = vmag(cross);
-	float const cosangle = vdot(a, b);
-	// avoid taking sqrt of negative number due to floating point error.
-	// TODO: find tighter exact bound
-	float const EPS_ANGLE = 1e-6;
-	if (sinangle < EPS_ANGLE) {
-		if (cosangle > 0.0f) return qeye();
-		else return mkquat(0.0f, 0.0f, 0.0f, 0.0f); // degenerate
-	}
-	float const halfcos = 0.5f * cosangle;
-	// since angle is < 180deg, the positive sqrt is always correct
-	float const sinhalfangle = sqrtf(fmax(0.5f - halfcos, 0.0f));
-	float const coshalfangle = sqrtf(fmax(0.5f + halfcos, 0.0f));
-	struct vec const qimag = vscl(sinhalfangle / sinangle, cross);
-	float const qreal = coshalfangle;
-	return quatvw(qimag, qreal);
+	//COMMENTED FIRMWARE
+	// struct vec const cross = vcross(a, b);
+	// float const sinangle = vmag(cross);
+	// float const cosangle = vdot(a, b);
+	// // avoid taking sqrt of negative number due to floating point error.
+	// // TODO: find tighter exact bound
+	// float const EPS_ANGLE = 1e-6;
+	// if (sinangle < EPS_ANGLE) {
+	// 	if (cosangle > 0.0f) return qeye();
+	// 	else return mkquat(0.0f, 0.0f, 0.0f, 0.0f); // degenerate
+	// }
+	// float const halfcos = 0.5f * cosangle;
+	// // since angle is < 180deg, the positive sqrt is always correct
+	// float const sinhalfangle = sqrtf(fmax(0.5f - halfcos, 0.0f));
+	// float const coshalfangle = sqrtf(fmax(0.5f + halfcos, 0.0f));
+	// struct vec const qimag = vscl(sinhalfangle / sinangle, cross);
+	// float const qreal = coshalfangle;
+	// return quatvw(qimag, qreal);
+	return quatvw(a, 0);
 }
 // construct from (roll, pitch, yaw) Euler angles using Tait-Bryan convention
 // (yaw, then pitch about new pitch axis, then roll about new roll axis)
@@ -622,25 +629,29 @@ static inline struct quat rpy2quat(struct vec rpy) {
 static inline struct quat rpy2quat_small(struct vec rpy) {
 	// TODO: cite source, but can be derived from rpy2quat under first-order approximation:
 	// sin(epsilon) = epsilon, cos(epsilon) = 1, epsilon^2 = 0
-	float q2 = vmag2(rpy) / 4.0f;
-	if (q2 < 1) {
-		return quatvw(vdiv(rpy, 2), sqrtf(1.0f - q2));
-	}
-	else {
-		float w = 1.0f / sqrtf(1.0f + q2);
-		return quatvw(vscl(w/2, rpy), w);
-	}
+	//COMMENTED FIRMWARE
+	// float q2 = vmag2(rpy) / 4.0f;
+	// if (q2 < 1) {
+		//return quatvw(vdiv(rpy, 2), sqrtf(1.0f - q2));
+	// }
+	// else {
+	// 	float w = 1.0f / sqrtf(1.0f + q2);
+	// 	return quatvw(vscl(w/2, rpy), w);
+	// }
+	return quatvw(rpy, 0);
 }
 // construct quaternion from orthonormal matrix.
 static inline struct quat mat2quat(struct mat33 m) {
-	float w = sqrtf(fmax(0.0f, 1.0f + m.m[0][0] + m.m[1][1] + m.m[2][2])) / 2.0f;
-	float x = sqrtf(fmax(0.0f, 1.0f + m.m[0][0] - m.m[1][1] - m.m[2][2])) / 2.0f;
-	float y = sqrtf(fmax(0.0f, 1.0f - m.m[0][0] + m.m[1][1] - m.m[2][2])) / 2.0f;
-	float z = sqrtf(fmax(0.0f, 1.0f - m.m[0][0] - m.m[1][1] + m.m[2][2])) / 2.0f;
-	x = copysign(x, m.m[2][1] - m.m[1][2]);
-	y = copysign(y, m.m[0][2] - m.m[2][0]);
-	z = copysign(z, m.m[1][0] - m.m[0][1]);
-	return mkquat(x, y, z, w);
+	//COMMENTED FIRMWARE
+	// float w = sqrtf(fmax(0.0f, 1.0f + m.m[0][0] + m.m[1][1] + m.m[2][2])) / 2.0f;
+	// float x = sqrtf(fmax(0.0f, 1.0f + m.m[0][0] - m.m[1][1] - m.m[2][2])) / 2.0f;
+	// float y = sqrtf(fmax(0.0f, 1.0f - m.m[0][0] + m.m[1][1] - m.m[2][2])) / 2.0f;
+	// float z = sqrtf(fmax(0.0f, 1.0f - m.m[0][0] - m.m[1][1] + m.m[2][2])) / 2.0f;
+	// x = copysign(x, m.m[2][1] - m.m[1][2]);
+	// y = copysign(y, m.m[0][2] - m.m[2][0]);
+	// z = copysign(z, m.m[1][0] - m.m[0][1]);
+	//return mkquat(x, y, z, w);
+	return mkquat(0, 0, 0, 0);
 }
 
 //
@@ -652,16 +663,19 @@ static inline struct quat mat2quat(struct mat33 m) {
 static inline struct vec quat2rpy(struct quat q) {
 	// from https://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles
 	struct vec v;
-	v.x = atan2f(2.0f * (q.w * q.x + q.y * q.z), 1 - 2 * (fsqr(q.x) + fsqr(q.y))); // roll
-	v.y = asinf(2.0f * (q.w * q.y - q.x * q.z)); // pitch
-	v.z = atan2f(2.0f * (q.w * q.z + q.x * q.y), 1 - 2 * (fsqr(q.y) + fsqr(q.z))); // yaw
+	//COMMENTED FIRMWARE
+	// v.x = atan2f(2.0f * (q.w * q.x + q.y * q.z), 1 - 2 * (fsqr(q.x) + fsqr(q.y))); // roll
+	// v.y = asinf(2.0f * (q.w * q.y - q.x * q.z)); // pitch
+	// v.z = atan2f(2.0f * (q.w * q.z + q.x * q.y), 1 - 2 * (fsqr(q.y) + fsqr(q.z))); // yaw
 	return v;
 }
 // compute the axis of a quaternion's axis-angle decomposition.
 static inline struct vec quat2axis(struct quat q) {
 	// TODO this is not numerically stable for tiny rotations
-	float s = 1.0f / sqrtf(1.0f - q.w * q.w);
-	return vscl(s, mkvec(q.x, q.y, q.z));
+	//COMMENTED FIRMWARE
+	//float s = 1.0f / sqrtf(1.0f - q.w * q.w);
+	//return vscl(s, mkvec(q.x, q.y, q.z));
+	return vscl(0, mkvec(q.x, q.y, q.z));
 }
 // compute the angle of a quaternion's axis-angle decomposition.
 // result lies in domain (-pi, pi].
@@ -753,8 +767,10 @@ static inline bool qeq(struct quat a, struct quat b) {
 // normalize a quaternion.
 // typically used to mitigate precision errors.
 static inline struct quat qnormalize(struct quat q) {
-	float s = 1.0f / sqrtf(qdot(q, q));
-	return mkquat(s*q.x, s*q.y, s*q.z, s*q.w);
+	//COMMENTED FIRMWARE
+	// float s = 1.0f / sqrtf(qdot(q, q));
+	// return mkquat(s*q.x, s*q.y, s*q.z, s*q.w);
+	return mkquat(0, 0, 0, 0);
 }
 // update an attitude estimate quaternion with a reading from a gyroscope
 // over the timespan dt. Gyroscope is assumed (roll, pitch, yaw)
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/interface/quatcompress.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/interface/quatcompress.h
index 6242343a8..5ab87d78e 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/interface/quatcompress.h
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/interface/quatcompress.h
@@ -35,11 +35,12 @@ static inline uint32_t quatcompress(float const q[4])
 {
 	// we send the values of the quaternion's smallest 3 elements.
 	unsigned i_largest = 0;
-	for (unsigned i = 1; i < 4; ++i) {
-		if (fabsf(q[i]) > fabsf(q[i_largest])) {
-			i_largest = i;
-		}
-	}
+	//COMMENTED FIRMWARE
+	// for (unsigned i = 1; i < 4; ++i) {
+	// 	if (fabsf(q[i]) > fabsf(q[i_largest])) {
+	// 		i_largest = i;
+	// 	}
+	// }
 
 	// since -q represents the same rotation as q,
 	// transform the quaternion so the largest element is positive.
@@ -51,13 +52,14 @@ static inline uint32_t quatcompress(float const q[4])
 
 	// do compression using sign bit and 9-bit precision per element.
 	uint32_t comp = i_largest;
-	for (unsigned i = 0; i < 4; ++i) {
-		if (i != i_largest) {
-			unsigned negbit = (q[i] < 0) ^ negate;
-			unsigned mag = ((1 << 9) - 1) * (fabsf(q[i]) / (float)M_SQRT1_2) + 0.5f;
-			comp = (comp << 10) | (negbit << 9) | mag;
-		}
-	}
+	//COMMENTED FIRMWARE
+	// for (unsigned i = 0; i < 4; ++i) {
+	// 	if (i != i_largest) {
+	// 		unsigned negbit = (q[i] < 0) ^ negate;
+	// 		unsigned mag = ((1 << 9) - 1) * (fabsf(q[i]) / (float)M_SQRT1_2) + 0.5f;
+	// 		comp = (comp << 10) | (negbit << 9) | mag;
+	// 	}
+	// }
 
 	return comp;
 }
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/interface/static_mem.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/interface/static_mem.h
index f371a5dd3..144925270 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/interface/static_mem.h
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/interface/static_mem.h
@@ -136,7 +136,9 @@
  *
  * @param NAME - the name of the queue handle
  */
-#define STATIC_MEM_QUEUE_CREATE(NAME) xQueueCreateStatic(osSys_ ## NAME ## Length, osSys_ ## NAME ## ItemSize, osSys_ ## NAME ## Storage, &osSys_ ## NAME ## Mgm)
+//COMMENTED FIRMWARE
+// #define STATIC_MEM_QUEUE_CREATE(NAME) xQueueCreateStatic(osSys_ ## NAME ## Length, osSys_ ## NAME ## ItemSize, osSys_ ## NAME ## Storage, &osSys_ ## NAME ## Mgm)
+#define STATIC_MEM_QUEUE_CREATE(NAME) xQueueCreate(osSys_ ## NAME ## Length, osSys_ ## NAME ## ItemSize, osSys_ ## NAME ## Storage, &osSys_ ## NAME ## Mgm)
 
 
 /**
@@ -205,4 +207,6 @@
  * @param PARAMETERS Passed on as argument to the function implementing the task
  * @param PRIORITY The task priority
  */
-#define STATIC_MEM_TASK_CREATE(NAME, FUNCTION, TASK_NAME, PARAMETERS, PRIORITY) xTaskCreateStatic((FUNCTION), (TASK_NAME), osSys_ ## NAME ## StackDepth, (PARAMETERS), (PRIORITY), osSys_ ## NAME ## StackBuffer, &osSys_ ## NAME ## TaskBuffer)
+//COMMENTED FIRMWARE
+//#define STATIC_MEM_TASK_CREATE(NAME, FUNCTION, TASK_NAME, PARAMETERS, PRIORITY) xTaskCreateStatic((FUNCTION), (TASK_NAME), osSys_ ## NAME ## StackDepth, (PARAMETERS), (PRIORITY), osSys_ ## NAME ## StackBuffer, &osSys_ ## NAME ## TaskBuffer)
+#define STATIC_MEM_TASK_CREATE(NAME, FUNCTION, TASK_NAME, PARAMETERS, PRIORITY) xTaskCreate((FUNCTION), (TASK_NAME), osSys_ ## NAME ## StackDepth, (PARAMETERS), (PRIORITY), osSys_ ## NAME ## StackBuffer, &osSys_ ## NAME ## TaskBuffer)
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/collision_avoidance.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/collision_avoidance.c
index 60c40aa7d..d618e5198 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/collision_avoidance.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/collision_avoidance.c
@@ -102,154 +102,156 @@ void collisionAvoidanceUpdateSetpointCore(
   float *workspace,
   setpoint_t *setpoint, sensorData_t const *sensorData, state_t const *state)
 {
-  //
-  // Part 1: Construct the polytope inequalities in A, b.
-  //
-
-  int const nRows = nOthers + 6;
-  float *A = workspace;
-  float *B = workspace + 3 * nRows;
-  float *projectionWorkspace = workspace + 4 * nRows;
-
-  // Compute the cell in a stretched coordinate system for downwash awareness.
-  // See header for details.
-  struct vec const radiiInv = veltrecip(params->ellipsoidRadii);
-  struct vec const ourPos = vec2svec(state->position);
-
-  // We could do some optimizations here to reduce the number of rows, like
-  // leave out very far away neighbors. It would help the average case
-  // complexity, but not the worst case - so we skip it for now.
-  for (int i = 0; i < nOthers; ++i) {
-    struct vec peerPos = vloadf(otherPositions + 3 * i);
-    struct vec const toPeerStretched = veltmul(vsub(peerPos, ourPos), radiiInv);
-    float const dist = vmag(toPeerStretched);
-    struct vec const a = vdiv(veltmul(toPeerStretched, radiiInv), dist);
-    float const b = dist / 2.0f - 1.0f;
-    float scale = 1.0f / vmag(a);
-    vstoref(vscl(scale, a), A + 3 * i);
-    B[i] = scale * b;
-  }
-
-  // Add the bounding box polytope faces. We also use the box faces to enforce
-  // max speed in the infinity-norm.
-  float const maxDist = params->horizonSecs * params->maxSpeed;
-
-  memset(A + 3 * nOthers, 0, 18 * sizeof(float));
-
-  for (int dim = 0; dim < 3; ++dim) {
-    float boxMax = vindex(params->bboxMax, dim) - vindex(ourPos, dim);
-    A[3 * (nOthers + dim) + dim] = 1.0f;
-    B[nOthers + dim] = fminf(maxDist, boxMax);
-
-    float boxMin = vindex(params->bboxMin, dim) - vindex(ourPos, dim);
-    A[3 * (nOthers + dim + 3) + dim] = -1.0f;
-    B[nOthers + dim + 3] = -fmaxf(-maxDist, boxMin);
-  }
-
-  //
-  // Part 2: Use the constructed polytope to modify the setpoint.
-  //
-
-  float const inPolytopeTolerance = 10.0f * params->voronoiProjectionTolerance;
-
-  struct vec setPos = vec2svec(setpoint->position);
-  struct vec setVel = vec2svec(setpoint->velocity);
-
-  if (setpoint->mode.x == modeVelocity) {
-    // Interpret the setpoint to mean "fly with this velocity".
-
-    if (vinpolytope(vzero(), A, B, nRows, inPolytopeTolerance)) {
-      // Typical case - our current position is within our cell.
-      struct vec pseudoGoal = vscl(params->horizonSecs, setVel);
-      pseudoGoal = sidestepGoal(params, pseudoGoal, true, A, B, projectionWorkspace, nRows);
-      if (vinpolytope(pseudoGoal, A, B, nRows, inPolytopeTolerance)) {
-        setVel = vdiv(pseudoGoal, params->horizonSecs);
-      }
-      else {
-        // Projection failed to converge. Best we can do is stay still.
-        setVel = vzero();
-      }
-    }
-    else {
-      // Atypical case - our current position is not within our cell. Forget
-      // about the original goal velocity and try to move towards our cell.
-      struct vec nearestInCell = vprojectpolytope(
-        vzero(),
-        A, B, projectionWorkspace, nRows,
-        params->voronoiProjectionTolerance,
-        params->voronoiProjectionMaxIters
-      );
-      if (vinpolytope(nearestInCell, A, B, nRows, inPolytopeTolerance)) {
-        setVel = vclampnorm(nearestInCell, params->maxSpeed);
-      }
-      else {
-        // Projection failed to converge. Best we can do is stay still.
-        setVel = vzero();
-      }
-    }
-    collisionState->lastFeasibleSetPosition = ourPos;
-  }
-  else if (setpoint->mode.x == modeAbs) {
-
-    struct vec const setPosRelative = vsub(setPos, ourPos);
-    struct vec const setPosRelativeNew = sidestepGoal(
-      params, setPosRelative, false, A, B, projectionWorkspace, nRows);
-
-    if (!vinpolytope(setPosRelativeNew, A, B, nRows, inPolytopeTolerance)) {
-      // If the projection algorithm failed to converge, then either
-      //   1) The problem is infeasible, or
-      //   2) The problem is somehow badly conditioned.
-      // Case 2) is still effectively infeasible -- we're in a real-time system
-      // with a fixed computation time budget, and we've already spent it.
-      //
-      // There's not a lot we can do if our buffered cell is empty. It means
-      // someone failed to stay within their cell in the past. We choose to stay
-      // a fixed position for as long as the cell is empty.
-      setVel = vzero();
-      if (!visnan(collisionState->lastFeasibleSetPosition)) {
-        setPos = collisionState->lastFeasibleSetPosition;
-      }
-      else {
-        // This case should never happen as long as collision avoidance is
-        // initialized in a collision-free state, but we do something reasonable
-        // just in case.
-        setPos = ourPos;
-        collisionState->lastFeasibleSetPosition = ourPos;
-      }
-    }
-    else if (veq(setVel, vzero())) {
-      // Position, but no velocity. Interpret as waypoint, not trajectory
-      // tracking. "Go to this position and stop".
-      setPos = vadd(ourPos, setPosRelativeNew);
-    }
-    else {
-      // Position with nonzero velocity. Interpret as trajectory tracking.
-      if (vneq(setPosRelative, setPosRelativeNew)) {
-        // Set position is not within our cell. The situation has likely diverged
-        // from the original plan, and the nonzero velocity is probably pointing
-        // further away from our cell. Therefore, degrade to the v == 0 behavior.
-        setPos = vadd(ourPos, setPosRelativeNew);
-        setVel = vzero();
-      }
-      else {
-        // Set position is within our cell. In case velocity would take us
-        // outside the cell within the planning horizon, scale it appropriately.
-        // See github issue #567 for more detailed discussion of this behavior.
-        float const scale = rayintersectpolytope(setPosRelative, setVel, A, B, nRows, NULL);
-        if (scale < 1.0f)  {
-          setVel = vscl(scale, setVel);
-        }
-        // leave setPos unchanged.
-      }
-    }
-    collisionState->lastFeasibleSetPosition = setPos;
-  }
-  else {
-    // Unsupported control mode, do nothing.
-  }
-
-  setpoint->position = svec2vec(setPos);
-  setpoint->velocity = svec2vec(setVel);
+  //COMMENTED FIRMWARE
+  // //
+  // // Part 1: Construct the polytope inequalities in A, b.
+  // //
+
+  // int const nRows = nOthers + 6;
+  // float *A = workspace;
+  // float *B = workspace + 3 * nRows;
+  // float *projectionWorkspace = workspace + 4 * nRows;
+
+  // // Compute the cell in a stretched coordinate system for downwash awareness.
+  // // See header for details.
+  // struct vec const radiiInv = veltrecip(params->ellipsoidRadii);
+  // struct vec const ourPos = vec2svec(state->position);
+
+  // // We could do some optimizations here to reduce the number of rows, like
+  // // leave out very far away neighbors. It would help the average case
+  // // complexity, but not the worst case - so we skip it for now.
+  // for (int i = 0; i < nOthers; ++i) {
+  //   struct vec peerPos = vloadf(otherPositions + 3 * i);
+  //   struct vec const toPeerStretched = veltmul(vsub(peerPos, ourPos), radiiInv);
+  //   float const dist = vmag(toPeerStretched);
+  //   struct vec const a = vdiv(veltmul(toPeerStretched, radiiInv), dist);
+  //   float const b = dist / 2.0f - 1.0f;
+  //   float scale = 1.0f / vmag(a);
+  //   vstoref(vscl(scale, a), A + 3 * i);
+  //   B[i] = scale * b;
+  // }
+
+  // // Add the bounding box polytope faces. We also use the box faces to enforce
+  // // max speed in the infinity-norm.
+  // float const maxDist = params->horizonSecs * params->maxSpeed;
+
+  // memset(A + 3 * nOthers, 0, 18 * sizeof(float));
+
+  // //COMMENTED FIRMWARE
+  // // for (int dim = 0; dim < 3; ++dim) {
+  // //   float boxMax = vindex(params->bboxMax, dim) - vindex(ourPos, dim);
+  // //   A[3 * (nOthers + dim) + dim] = 1.0f;
+  // //   B[nOthers + dim] = fminf(maxDist, boxMax);
+
+  // //   float boxMin = vindex(params->bboxMin, dim) - vindex(ourPos, dim);
+  // //   A[3 * (nOthers + dim + 3) + dim] = -1.0f;
+  // //   B[nOthers + dim + 3] = -fmaxf(-maxDist, boxMin);
+  // // }
+
+  // //
+  // // Part 2: Use the constructed polytope to modify the setpoint.
+  // //
+
+  // float const inPolytopeTolerance = 10.0f * params->voronoiProjectionTolerance;
+
+  // struct vec setPos = vec2svec(setpoint->position);
+  // struct vec setVel = vec2svec(setpoint->velocity);
+
+  // if (setpoint->mode.x == modeVelocity) {
+  //   // Interpret the setpoint to mean "fly with this velocity".
+
+  //   if (vinpolytope(vzero(), A, B, nRows, inPolytopeTolerance)) {
+  //     // Typical case - our current position is within our cell.
+  //     struct vec pseudoGoal = vscl(params->horizonSecs, setVel);
+  //     pseudoGoal = sidestepGoal(params, pseudoGoal, true, A, B, projectionWorkspace, nRows);
+  //     if (vinpolytope(pseudoGoal, A, B, nRows, inPolytopeTolerance)) {
+  //       setVel = vdiv(pseudoGoal, params->horizonSecs);
+  //     }
+  //     else {
+  //       // Projection failed to converge. Best we can do is stay still.
+  //       setVel = vzero();
+  //     }
+  //   }
+  //   else {
+  //     // Atypical case - our current position is not within our cell. Forget
+  //     // about the original goal velocity and try to move towards our cell.
+  //     struct vec nearestInCell = vprojectpolytope(
+  //       vzero(),
+  //       A, B, projectionWorkspace, nRows,
+  //       params->voronoiProjectionTolerance,
+  //       params->voronoiProjectionMaxIters
+  //     );
+  //     if (vinpolytope(nearestInCell, A, B, nRows, inPolytopeTolerance)) {
+  //       setVel = vclampnorm(nearestInCell, params->maxSpeed);
+  //     }
+  //     else {
+  //       // Projection failed to converge. Best we can do is stay still.
+  //       setVel = vzero();
+  //     }
+  //   }
+  //   collisionState->lastFeasibleSetPosition = ourPos;
+  // }
+  // else if (setpoint->mode.x == modeAbs) {
+
+  //   struct vec const setPosRelative = vsub(setPos, ourPos);
+  //   struct vec const setPosRelativeNew = sidestepGoal(
+  //     params, setPosRelative, false, A, B, projectionWorkspace, nRows);
+
+  //   if (!vinpolytope(setPosRelativeNew, A, B, nRows, inPolytopeTolerance)) {
+  //     // If the projection algorithm failed to converge, then either
+  //     //   1) The problem is infeasible, or
+  //     //   2) The problem is somehow badly conditioned.
+  //     // Case 2) is still effectively infeasible -- we're in a real-time system
+  //     // with a fixed computation time budget, and we've already spent it.
+  //     //
+  //     // There's not a lot we can do if our buffered cell is empty. It means
+  //     // someone failed to stay within their cell in the past. We choose to stay
+  //     // a fixed position for as long as the cell is empty.
+  //     setVel = vzero();
+  //     if (!visnan(collisionState->lastFeasibleSetPosition)) {
+  //       setPos = collisionState->lastFeasibleSetPosition;
+  //     }
+  //     else {
+  //       // This case should never happen as long as collision avoidance is
+  //       // initialized in a collision-free state, but we do something reasonable
+  //       // just in case.
+  //       setPos = ourPos;
+  //       collisionState->lastFeasibleSetPosition = ourPos;
+  //     }
+  //   }
+  //   else if (veq(setVel, vzero())) {
+  //     // Position, but no velocity. Interpret as waypoint, not trajectory
+  //     // tracking. "Go to this position and stop".
+  //     setPos = vadd(ourPos, setPosRelativeNew);
+  //   }
+  //   else {
+  //     // Position with nonzero velocity. Interpret as trajectory tracking.
+  //     if (vneq(setPosRelative, setPosRelativeNew)) {
+  //       // Set position is not within our cell. The situation has likely diverged
+  //       // from the original plan, and the nonzero velocity is probably pointing
+  //       // further away from our cell. Therefore, degrade to the v == 0 behavior.
+  //       setPos = vadd(ourPos, setPosRelativeNew);
+  //       setVel = vzero();
+  //     }
+  //     else {
+  //       // Set position is within our cell. In case velocity would take us
+  //       // outside the cell within the planning horizon, scale it appropriately.
+  //       // See github issue #567 for more detailed discussion of this behavior.
+  //       float const scale = rayintersectpolytope(setPosRelative, setVel, A, B, nRows, NULL);
+  //       if (scale < 1.0f)  {
+  //         setVel = vscl(scale, setVel);
+  //       }
+  //       // leave setPos unchanged.
+  //     }
+  //   }
+  //   collisionState->lastFeasibleSetPosition = setPos;
+  // }
+  // else {
+  //   // Unsupported control mode, do nothing.
+  // }
+
+  // setpoint->position = svec2vec(setPos);
+  // setpoint->velocity = svec2vec(setVel);
 }
 
 
@@ -258,7 +260,7 @@ void collisionAvoidanceUpdateSetpointCore(
 // with the standard Makefile. Everything depending on FreeRTOS, ARM, params,
 // etc. must go here.
 //
-#ifdef CRAZYFLIE_FW
+//#ifdef CRAZYFLIE_FW
 
 #include "FreeRTOS.h"
 #include "task.h"
@@ -427,4 +429,4 @@ PARAM_GROUP_START(colAv)
   PARAM_ADD(PARAM_INT32, vorIters, &params.voronoiProjectionMaxIters)
 PARAM_GROUP_STOP(colAv)
 
-#endif  // CRAZYFLIE_FW
+//#endif  // CRAZYFLIE_FW
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/controller_indi.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/controller_indi.c
index 7483edaf8..f496cc593 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/controller_indi.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/controller_indi.c
@@ -60,16 +60,17 @@ static inline void float_rates_zero(struct FloatRates *fr) {
 
 void indi_init_filters(void)
 {
-	// tau = 1/(2*pi*Fc)
-	float tau = 1.0f / (2.0f * M_PI_F * indi.filt_cutoff);
-	float tau_r = 1.0f / (2.0f * M_PI_F * indi.filt_cutoff_r);
-	float tau_axis[3] = {tau, tau, tau_r};
-	float sample_time = 1.0f / ATTITUDE_RATE;
-	// Filtering of gyroscope and actuators
-	for (int8_t i = 0; i < 3; i++) {
-		init_butterworth_2_low_pass(&indi.u[i], tau_axis[i], sample_time, 0.0f);
-		init_butterworth_2_low_pass(&indi.rate[i], tau_axis[i], sample_time, 0.0f);
-	}
+	//COMMENTED FIRMWARE
+	// // tau = 1/(2*pi*Fc)
+	// float tau = 1.0f / (2.0f * M_PI_F * indi.filt_cutoff);
+	// float tau_r = 1.0f / (2.0f * M_PI_F * indi.filt_cutoff_r);
+	// float tau_axis[3] = {tau, tau, tau_r};
+	// float sample_time = 1.0f / ATTITUDE_RATE;
+	// // Filtering of gyroscope and actuators
+	// for (int8_t i = 0; i < 3; i++) {
+	// 	init_butterworth_2_low_pass(&indi.u[i], tau_axis[i], sample_time, 0.0f);
+	// 	init_butterworth_2_low_pass(&indi.rate[i], tau_axis[i], sample_time, 0.0f);
+	// }
 }
 
 /**
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/controller_mellinger.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/controller_mellinger.c
index 4a2dd2525..95bb7cd59 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/controller_mellinger.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/controller_mellinger.c
@@ -126,199 +126,200 @@ void controllerMellinger(control_t *control, setpoint_t *setpoint,
                                          const state_t *state,
                                          const uint32_t tick)
 {
-  struct vec r_error;
-  struct vec v_error;
-  struct vec target_thrust;
-  struct vec z_axis;
-  float current_thrust;
-  struct vec x_axis_desired;
-  struct vec y_axis_desired;
-  struct vec x_c_des;
-  struct vec eR, ew, M;
-  float dt;
-  float desiredYaw = 0; //deg
-
-  if (!RATE_DO_EXECUTE(ATTITUDE_RATE, tick)) {
-    return;
-  }
-
-  dt = (float)(1.0f/ATTITUDE_RATE);
-  struct vec setpointPos = mkvec(setpoint->position.x, setpoint->position.y, setpoint->position.z);
-  struct vec setpointVel = mkvec(setpoint->velocity.x, setpoint->velocity.y, setpoint->velocity.z);
-  struct vec statePos = mkvec(state->position.x, state->position.y, state->position.z);
-  struct vec stateVel = mkvec(state->velocity.x, state->velocity.y, state->velocity.z);
-
-  // Position Error (ep)
-  r_error = vsub(setpointPos, statePos);
-
-  // Velocity Error (ev)
-  v_error = vsub(setpointVel, stateVel);
-
-  // Integral Error
-  i_error_z += r_error.z * dt;
-  i_error_z = clamp(i_error_z, -i_range_z, i_range_z);
-
-  i_error_x += r_error.x * dt;
-  i_error_x = clamp(i_error_x, -i_range_xy, i_range_xy);
-
-  i_error_y += r_error.y * dt;
-  i_error_y = clamp(i_error_y, -i_range_xy, i_range_xy);
-
-  // Desired thrust [F_des]
-  if (setpoint->mode.x == modeAbs) {
-    target_thrust.x = g_vehicleMass * setpoint->acceleration.x                       + kp_xy * r_error.x + kd_xy * v_error.x + ki_xy * i_error_x;
-    target_thrust.y = g_vehicleMass * setpoint->acceleration.y                       + kp_xy * r_error.y + kd_xy * v_error.y + ki_xy * i_error_y;
-    target_thrust.z = g_vehicleMass * (setpoint->acceleration.z + GRAVITY_MAGNITUDE) + kp_z  * r_error.z + kd_z  * v_error.z + ki_z  * i_error_z;
-  } else {
-    target_thrust.x = -sinf(radians(setpoint->attitude.pitch));
-    target_thrust.y = -sinf(radians(setpoint->attitude.roll));
-    // In case of a timeout, the commander tries to level, ie. x/y are disabled, but z will use the previous setting
-    // In that case we ignore the last feedforward term for acceleration
-    if (setpoint->mode.z == modeAbs) {
-      target_thrust.z = g_vehicleMass * GRAVITY_MAGNITUDE + kp_z  * r_error.z + kd_z  * v_error.z + ki_z  * i_error_z;
-    } else {
-      target_thrust.z = 1;
-    }
-  }
-
-  // Rate-controlled YAW is moving YAW angle setpoint
-  if (setpoint->mode.yaw == modeVelocity) {
-    desiredYaw = state->attitude.yaw + setpoint->attitudeRate.yaw * dt;
-  } else if (setpoint->mode.yaw == modeAbs) {
-    desiredYaw = setpoint->attitude.yaw;
-  } else if (setpoint->mode.quat == modeAbs) {
-    struct quat setpoint_quat = mkquat(setpoint->attitudeQuaternion.x, setpoint->attitudeQuaternion.y, setpoint->attitudeQuaternion.z, setpoint->attitudeQuaternion.w);
-    struct vec rpy = quat2rpy(setpoint_quat);
-    desiredYaw = degrees(rpy.z);
-  }
-
-  // Z-Axis [zB]
-  struct quat q = mkquat(state->attitudeQuaternion.x, state->attitudeQuaternion.y, state->attitudeQuaternion.z, state->attitudeQuaternion.w);
-  struct mat33 R = quat2rotmat(q);
-  z_axis = mcolumn(R, 2);
-
-  // yaw correction (only if position control is not used)
-  if (setpoint->mode.x != modeAbs) {
-    struct vec x_yaw = mcolumn(R, 0);
-    x_yaw.z = 0;
-    x_yaw = vnormalize(x_yaw);
-    struct vec y_yaw = vcross(mkvec(0, 0, 1), x_yaw);
-    struct mat33 R_yaw_only = mcolumns(x_yaw, y_yaw, mkvec(0, 0, 1));
-    target_thrust = mvmul(R_yaw_only, target_thrust);
-  }
-
-  // Current thrust [F]
-  current_thrust = vdot(target_thrust, z_axis);
-
-  // Calculate axis [zB_des]
-  z_axis_desired = vnormalize(target_thrust);
-
-  // [xC_des]
-  // x_axis_desired = z_axis_desired x [sin(yaw), cos(yaw), 0]^T
-  x_c_des.x = cosf(radians(desiredYaw));
-  x_c_des.y = sinf(radians(desiredYaw));
-  x_c_des.z = 0;
-  // [yB_des]
-  y_axis_desired = vnormalize(vcross(z_axis_desired, x_c_des));
-  // [xB_des]
-  x_axis_desired = vcross(y_axis_desired, z_axis_desired);
-
-  // [eR]
-  // Slow version
-  // struct mat33 Rdes = mcolumns(
-  //   mkvec(x_axis_desired.x, x_axis_desired.y, x_axis_desired.z),
-  //   mkvec(y_axis_desired.x, y_axis_desired.y, y_axis_desired.z),
-  //   mkvec(z_axis_desired.x, z_axis_desired.y, z_axis_desired.z));
-
-  // struct mat33 R_transpose = mtranspose(R);
-  // struct mat33 Rdes_transpose = mtranspose(Rdes);
-
-  // struct mat33 eRM = msub(mmult(Rdes_transpose, R), mmult(R_transpose, Rdes));
-
-  // eR.x = eRM.m[2][1];
-  // eR.y = -eRM.m[0][2];
-  // eR.z = eRM.m[1][0];
-
-  // Fast version (generated using Mathematica)
-  float x = q.x;
-  float y = q.y;
-  float z = q.z;
-  float w = q.w;
-  eR.x = (-1 + 2*fsqr(x) + 2*fsqr(y))*y_axis_desired.z + z_axis_desired.y - 2*(x*y_axis_desired.x*z + y*y_axis_desired.y*z - x*y*z_axis_desired.x + fsqr(x)*z_axis_desired.y + fsqr(z)*z_axis_desired.y - y*z*z_axis_desired.z) +    2*w*(-(y*y_axis_desired.x) - z*z_axis_desired.x + x*(y_axis_desired.y + z_axis_desired.z));
-  eR.y = x_axis_desired.z - z_axis_desired.x - 2*(fsqr(x)*x_axis_desired.z + y*(x_axis_desired.z*y - x_axis_desired.y*z) - (fsqr(y) + fsqr(z))*z_axis_desired.x + x*(-(x_axis_desired.x*z) + y*z_axis_desired.y + z*z_axis_desired.z) + w*(x*x_axis_desired.y + z*z_axis_desired.y - y*(x_axis_desired.x + z_axis_desired.z)));
-  eR.z = y_axis_desired.x - 2*(y*(x*x_axis_desired.x + y*y_axis_desired.x - x*y_axis_desired.y) + w*(x*x_axis_desired.z + y*y_axis_desired.z)) + 2*(-(x_axis_desired.z*y) + w*(x_axis_desired.x + y_axis_desired.y) + x*y_axis_desired.z)*z - 2*y_axis_desired.x*fsqr(z) + x_axis_desired.y*(-1 + 2*fsqr(x) + 2*fsqr(z));
-
-  // Account for Crazyflie coordinate system
-  eR.y = -eR.y;
-
-  // [ew]
-  float err_d_roll = 0;
-  float err_d_pitch = 0;
-
-  float stateAttitudeRateRoll = radians(sensors->gyro.x);
-  float stateAttitudeRatePitch = -radians(sensors->gyro.y);
-  float stateAttitudeRateYaw = radians(sensors->gyro.z);
-
-  ew.x = radians(setpoint->attitudeRate.roll) - stateAttitudeRateRoll;
-  ew.y = -radians(setpoint->attitudeRate.pitch) - stateAttitudeRatePitch;
-  ew.z = radians(setpoint->attitudeRate.yaw) - stateAttitudeRateYaw;
-  if (prev_omega_roll == prev_omega_roll) { /*d part initialized*/
-    err_d_roll = ((radians(setpoint->attitudeRate.roll) - prev_setpoint_omega_roll) - (stateAttitudeRateRoll - prev_omega_roll)) / dt;
-    err_d_pitch = (-(radians(setpoint->attitudeRate.pitch) - prev_setpoint_omega_pitch) - (stateAttitudeRatePitch - prev_omega_pitch)) / dt;
-  }
-  prev_omega_roll = stateAttitudeRateRoll;
-  prev_omega_pitch = stateAttitudeRatePitch;
-  prev_setpoint_omega_roll = radians(setpoint->attitudeRate.roll);
-  prev_setpoint_omega_pitch = radians(setpoint->attitudeRate.pitch);
-
-  // Integral Error
-  i_error_m_x += (-eR.x) * dt;
-  i_error_m_x = clamp(i_error_m_x, -i_range_m_xy, i_range_m_xy);
-
-  i_error_m_y += (-eR.y) * dt;
-  i_error_m_y = clamp(i_error_m_y, -i_range_m_xy, i_range_m_xy);
-
-  i_error_m_z += (-eR.z) * dt;
-  i_error_m_z = clamp(i_error_m_z, -i_range_m_z, i_range_m_z);
-
-  // Moment:
-  M.x = -kR_xy * eR.x + kw_xy * ew.x + ki_m_xy * i_error_m_x + kd_omega_rp * err_d_roll;
-  M.y = -kR_xy * eR.y + kw_xy * ew.y + ki_m_xy * i_error_m_y + kd_omega_rp * err_d_pitch;
-  M.z = -kR_z  * eR.z + kw_z  * ew.z + ki_m_z  * i_error_m_z;
-
-  // Output
-  if (setpoint->mode.z == modeDisable) {
-    control->thrust = setpoint->thrust;
-  } else {
-    control->thrust = massThrust * current_thrust;
-  }
-
-  cmd_thrust = control->thrust;
-  r_roll = radians(sensors->gyro.x);
-  r_pitch = -radians(sensors->gyro.y);
-  r_yaw = radians(sensors->gyro.z);
-  accelz = sensors->acc.z;
-
-  if (control->thrust > 0) {
-    control->roll = clamp(M.x, -32000, 32000);
-    control->pitch = clamp(M.y, -32000, 32000);
-    control->yaw = clamp(-M.z, -32000, 32000);
-
-    cmd_roll = control->roll;
-    cmd_pitch = control->pitch;
-    cmd_yaw = control->yaw;
-
-  } else {
-    control->roll = 0;
-    control->pitch = 0;
-    control->yaw = 0;
-
-    cmd_roll = control->roll;
-    cmd_pitch = control->pitch;
-    cmd_yaw = control->yaw;
-
-    controllerMellingerReset();
-  }
+  //COMMENTED FIRMWARE
+  // struct vec r_error;
+  // struct vec v_error;
+  // struct vec target_thrust;
+  // struct vec z_axis;
+  // float current_thrust;
+  // struct vec x_axis_desired;
+  // struct vec y_axis_desired;
+  // struct vec x_c_des;
+  // struct vec eR, ew, M;
+  // float dt;
+  // float desiredYaw = 0; //deg
+
+  // if (!RATE_DO_EXECUTE(ATTITUDE_RATE, tick)) {
+  //   return;
+  // }
+
+  // dt = (float)(1.0f/ATTITUDE_RATE);
+  // struct vec setpointPos = mkvec(setpoint->position.x, setpoint->position.y, setpoint->position.z);
+  // struct vec setpointVel = mkvec(setpoint->velocity.x, setpoint->velocity.y, setpoint->velocity.z);
+  // struct vec statePos = mkvec(state->position.x, state->position.y, state->position.z);
+  // struct vec stateVel = mkvec(state->velocity.x, state->velocity.y, state->velocity.z);
+
+  // // Position Error (ep)
+  // r_error = vsub(setpointPos, statePos);
+
+  // // Velocity Error (ev)
+  // v_error = vsub(setpointVel, stateVel);
+
+  // // Integral Error
+  // i_error_z += r_error.z * dt;
+  // i_error_z = clamp(i_error_z, -i_range_z, i_range_z);
+
+  // i_error_x += r_error.x * dt;
+  // i_error_x = clamp(i_error_x, -i_range_xy, i_range_xy);
+
+  // i_error_y += r_error.y * dt;
+  // i_error_y = clamp(i_error_y, -i_range_xy, i_range_xy);
+
+  // // Desired thrust [F_des]
+  // if (setpoint->mode.x == modeAbs) {
+  //   target_thrust.x = g_vehicleMass * setpoint->acceleration.x                       + kp_xy * r_error.x + kd_xy * v_error.x + ki_xy * i_error_x;
+  //   target_thrust.y = g_vehicleMass * setpoint->acceleration.y                       + kp_xy * r_error.y + kd_xy * v_error.y + ki_xy * i_error_y;
+  //   target_thrust.z = g_vehicleMass * (setpoint->acceleration.z + GRAVITY_MAGNITUDE) + kp_z  * r_error.z + kd_z  * v_error.z + ki_z  * i_error_z;
+  // } else {
+  //   target_thrust.x = -sinf(radians(setpoint->attitude.pitch));
+  //   target_thrust.y = -sinf(radians(setpoint->attitude.roll));
+  //   // In case of a timeout, the commander tries to level, ie. x/y are disabled, but z will use the previous setting
+  //   // In that case we ignore the last feedforward term for acceleration
+  //   if (setpoint->mode.z == modeAbs) {
+  //     target_thrust.z = g_vehicleMass * GRAVITY_MAGNITUDE + kp_z  * r_error.z + kd_z  * v_error.z + ki_z  * i_error_z;
+  //   } else {
+  //     target_thrust.z = 1;
+  //   }
+  // }
+
+  // // Rate-controlled YAW is moving YAW angle setpoint
+  // if (setpoint->mode.yaw == modeVelocity) {
+  //   desiredYaw = state->attitude.yaw + setpoint->attitudeRate.yaw * dt;
+  // } else if (setpoint->mode.yaw == modeAbs) {
+  //   desiredYaw = setpoint->attitude.yaw;
+  // } else if (setpoint->mode.quat == modeAbs) {
+  //   struct quat setpoint_quat = mkquat(setpoint->attitudeQuaternion.x, setpoint->attitudeQuaternion.y, setpoint->attitudeQuaternion.z, setpoint->attitudeQuaternion.w);
+  //   struct vec rpy = quat2rpy(setpoint_quat);
+  //   desiredYaw = degrees(rpy.z);
+  // }
+
+  // // Z-Axis [zB]
+  // struct quat q = mkquat(state->attitudeQuaternion.x, state->attitudeQuaternion.y, state->attitudeQuaternion.z, state->attitudeQuaternion.w);
+  // struct mat33 R = quat2rotmat(q);
+  // z_axis = mcolumn(R, 2);
+
+  // // yaw correction (only if position control is not used)
+  // if (setpoint->mode.x != modeAbs) {
+  //   struct vec x_yaw = mcolumn(R, 0);
+  //   x_yaw.z = 0;
+  //   x_yaw = vnormalize(x_yaw);
+  //   struct vec y_yaw = vcross(mkvec(0, 0, 1), x_yaw);
+  //   struct mat33 R_yaw_only = mcolumns(x_yaw, y_yaw, mkvec(0, 0, 1));
+  //   target_thrust = mvmul(R_yaw_only, target_thrust);
+  // }
+
+  // // Current thrust [F]
+  // current_thrust = vdot(target_thrust, z_axis);
+
+  // // Calculate axis [zB_des]
+  // z_axis_desired = vnormalize(target_thrust);
+
+  // // [xC_des]
+  // // x_axis_desired = z_axis_desired x [sin(yaw), cos(yaw), 0]^T
+  // x_c_des.x = cosf(radians(desiredYaw));
+  // x_c_des.y = sinf(radians(desiredYaw));
+  // x_c_des.z = 0;
+  // // [yB_des]
+  // y_axis_desired = vnormalize(vcross(z_axis_desired, x_c_des));
+  // // [xB_des]
+  // x_axis_desired = vcross(y_axis_desired, z_axis_desired);
+
+  // // [eR]
+  // // Slow version
+  // // struct mat33 Rdes = mcolumns(
+  // //   mkvec(x_axis_desired.x, x_axis_desired.y, x_axis_desired.z),
+  // //   mkvec(y_axis_desired.x, y_axis_desired.y, y_axis_desired.z),
+  // //   mkvec(z_axis_desired.x, z_axis_desired.y, z_axis_desired.z));
+
+  // // struct mat33 R_transpose = mtranspose(R);
+  // // struct mat33 Rdes_transpose = mtranspose(Rdes);
+
+  // // struct mat33 eRM = msub(mmult(Rdes_transpose, R), mmult(R_transpose, Rdes));
+
+  // // eR.x = eRM.m[2][1];
+  // // eR.y = -eRM.m[0][2];
+  // // eR.z = eRM.m[1][0];
+
+  // // Fast version (generated using Mathematica)
+  // float x = q.x;
+  // float y = q.y;
+  // float z = q.z;
+  // float w = q.w;
+  // eR.x = (-1 + 2*fsqr(x) + 2*fsqr(y))*y_axis_desired.z + z_axis_desired.y - 2*(x*y_axis_desired.x*z + y*y_axis_desired.y*z - x*y*z_axis_desired.x + fsqr(x)*z_axis_desired.y + fsqr(z)*z_axis_desired.y - y*z*z_axis_desired.z) +    2*w*(-(y*y_axis_desired.x) - z*z_axis_desired.x + x*(y_axis_desired.y + z_axis_desired.z));
+  // eR.y = x_axis_desired.z - z_axis_desired.x - 2*(fsqr(x)*x_axis_desired.z + y*(x_axis_desired.z*y - x_axis_desired.y*z) - (fsqr(y) + fsqr(z))*z_axis_desired.x + x*(-(x_axis_desired.x*z) + y*z_axis_desired.y + z*z_axis_desired.z) + w*(x*x_axis_desired.y + z*z_axis_desired.y - y*(x_axis_desired.x + z_axis_desired.z)));
+  // eR.z = y_axis_desired.x - 2*(y*(x*x_axis_desired.x + y*y_axis_desired.x - x*y_axis_desired.y) + w*(x*x_axis_desired.z + y*y_axis_desired.z)) + 2*(-(x_axis_desired.z*y) + w*(x_axis_desired.x + y_axis_desired.y) + x*y_axis_desired.z)*z - 2*y_axis_desired.x*fsqr(z) + x_axis_desired.y*(-1 + 2*fsqr(x) + 2*fsqr(z));
+
+  // // Account for Crazyflie coordinate system
+  // eR.y = -eR.y;
+
+  // // [ew]
+  // float err_d_roll = 0;
+  // float err_d_pitch = 0;
+
+  // float stateAttitudeRateRoll = radians(sensors->gyro.x);
+  // float stateAttitudeRatePitch = -radians(sensors->gyro.y);
+  // float stateAttitudeRateYaw = radians(sensors->gyro.z);
+
+  // ew.x = radians(setpoint->attitudeRate.roll) - stateAttitudeRateRoll;
+  // ew.y = -radians(setpoint->attitudeRate.pitch) - stateAttitudeRatePitch;
+  // ew.z = radians(setpoint->attitudeRate.yaw) - stateAttitudeRateYaw;
+  // if (prev_omega_roll == prev_omega_roll) { /*d part initialized*/
+  //   err_d_roll = ((radians(setpoint->attitudeRate.roll) - prev_setpoint_omega_roll) - (stateAttitudeRateRoll - prev_omega_roll)) / dt;
+  //   err_d_pitch = (-(radians(setpoint->attitudeRate.pitch) - prev_setpoint_omega_pitch) - (stateAttitudeRatePitch - prev_omega_pitch)) / dt;
+  // }
+  // prev_omega_roll = stateAttitudeRateRoll;
+  // prev_omega_pitch = stateAttitudeRatePitch;
+  // prev_setpoint_omega_roll = radians(setpoint->attitudeRate.roll);
+  // prev_setpoint_omega_pitch = radians(setpoint->attitudeRate.pitch);
+
+  // // Integral Error
+  // i_error_m_x += (-eR.x) * dt;
+  // i_error_m_x = clamp(i_error_m_x, -i_range_m_xy, i_range_m_xy);
+
+  // i_error_m_y += (-eR.y) * dt;
+  // i_error_m_y = clamp(i_error_m_y, -i_range_m_xy, i_range_m_xy);
+
+  // i_error_m_z += (-eR.z) * dt;
+  // i_error_m_z = clamp(i_error_m_z, -i_range_m_z, i_range_m_z);
+
+  // // Moment:
+  // M.x = -kR_xy * eR.x + kw_xy * ew.x + ki_m_xy * i_error_m_x + kd_omega_rp * err_d_roll;
+  // M.y = -kR_xy * eR.y + kw_xy * ew.y + ki_m_xy * i_error_m_y + kd_omega_rp * err_d_pitch;
+  // M.z = -kR_z  * eR.z + kw_z  * ew.z + ki_m_z  * i_error_m_z;
+
+  // // Output
+  // if (setpoint->mode.z == modeDisable) {
+  //   control->thrust = setpoint->thrust;
+  // } else {
+  //   control->thrust = massThrust * current_thrust;
+  // }
+
+  // cmd_thrust = control->thrust;
+  // r_roll = radians(sensors->gyro.x);
+  // r_pitch = -radians(sensors->gyro.y);
+  // r_yaw = radians(sensors->gyro.z);
+  // accelz = sensors->acc.z;
+
+  // if (control->thrust > 0) {
+  //   control->roll = clamp(M.x, -32000, 32000);
+  //   control->pitch = clamp(M.y, -32000, 32000);
+  //   control->yaw = clamp(-M.z, -32000, 32000);
+
+  //   cmd_roll = control->roll;
+  //   cmd_pitch = control->pitch;
+  //   cmd_yaw = control->yaw;
+
+  // } else {
+  //   control->roll = 0;
+  //   control->pitch = 0;
+  //   control->yaw = 0;
+
+  //   cmd_roll = control->roll;
+  //   cmd_pitch = control->pitch;
+  //   cmd_yaw = control->yaw;
+
+  //   controllerMellingerReset();
+  // }
 }
 
 PARAM_GROUP_START(ctrlMel)
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/crtp_commander_high_level.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/crtp_commander_high_level.c
index 7d309ccc6..4cef37cd5 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/crtp_commander_high_level.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/crtp_commander_high_level.c
@@ -262,9 +262,11 @@ void crtpCommanderHighLevelInit(void)
   plan_init(&planner);
 
   //Start the trajectory task
-  STATIC_MEM_TASK_CREATE(crtpCommanderHighLevelTask, crtpCommanderHighLevelTask, CMD_HIGH_LEVEL_TASK_NAME, NULL, CMD_HIGH_LEVEL_TASK_PRI);
+  //COMMENTED FIRMWARE
+  //STATIC_MEM_TASK_CREATE(crtpCommanderHighLevelTask, crtpCommanderHighLevelTask, CMD_HIGH_LEVEL_TASK_NAME, NULL, CMD_HIGH_LEVEL_TASK_PRI);
 
-  lockTraj = xSemaphoreCreateMutexStatic(&lockTrajBuffer);
+  //COMMENTED FIRMWARE
+  //lockTraj = xSemaphoreCreateMutexStatic(&lockTrajBuffer);
 
   pos = vzero();
   vel = vzero();
@@ -453,7 +455,8 @@ int takeoff_with_velocity(const struct data_takeoff_with_velocity* data)
     }
 
     float velocity = data->velocity > 0 ? data->velocity : defaultTakeoffVelocity;
-    float duration = fabsf(height - pos.z) / velocity;
+    //COMMENTED FIRMWARE
+    float duration = 1;//fabsf(height - pos.z) / velocity;
     result = plan_takeoff(&planner, pos, yaw, height, hover_yaw, duration, t);
     xSemaphoreGive(lockTraj);
   }
@@ -508,7 +511,8 @@ int land_with_velocity(const struct data_land_with_velocity* data)
     }
 
     float velocity = data->velocity > 0 ? data->velocity : defaultLandingVelocity;
-    float duration = fabsf(height - pos.z) / velocity;
+    //COMMENTED FIRMWARE
+    float duration = 1;//fabsf(height - pos.z) / velocity;
     result = plan_land(&planner, pos, yaw, height, hover_yaw, duration, t);
     xSemaphoreGive(lockTraj);
   }
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/crtp_commander_rpyt.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/crtp_commander_rpyt.c
index 962121d4a..c8eedf066 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/crtp_commander_rpyt.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/crtp_commander_rpyt.c
@@ -24,6 +24,7 @@
  *
  */
 #include <math.h>
+#include "empty_math.h"
 #include <stdbool.h>
 
 #include "crtp_commander.h"
@@ -132,7 +133,8 @@ void crtpCommanderRpytDecodeSetpoint(setpoint_t *setpoint, CRTPPacket *pk)
   if (thrustLocked || (rawThrust < MIN_THRUST)) {
     setpoint->thrust = 0;
   } else {
-    setpoint->thrust = fminf(rawThrust, MAX_THRUST);
+    //COMMENTED FIRMWARE
+    setpoint->thrust = rawThrust;//fminf(rawThrust, MAX_THRUST);
   }
 
   if (altHoldMode) {
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/crtp_localization_service.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/crtp_localization_service.c
index 1468992ca..b44449844 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/crtp_localization_service.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/crtp_localization_service.c
@@ -25,6 +25,7 @@
  */
 #include <string.h>
 #include <stdint.h>
+#include "empty_math.h"
 
 #include "FreeRTOS.h"
 #include "task.h"
@@ -33,6 +34,7 @@
 #include "crtp_localization_service.h"
 #include "log.h"
 #include "param.h"
+#include "cfassert.h"
 
 #include "stabilizer_types.h"
 #include "stabilizer.h"
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/crtpservice.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/crtpservice.c
index 720d7de7e..a3b9a4812 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/crtpservice.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/crtpservice.c
@@ -86,8 +86,9 @@ static void crtpSrvTask(void* prm)
         break;
       case linkSource:
         p.size = CRTP_MAX_DATA_SIZE;
-        bzero(p.data, CRTP_MAX_DATA_SIZE);
-        strcpy((char*)p.data, "Bitcraze Crazyflie");
+        //COMMENTED FIRMWARE
+        //bzero(p.data, CRTP_MAX_DATA_SIZE);
+        //strcpy((char*)p.data, "Bitcraze Crazyflie");
         crtpSendPacketBlock(&p);
         break;
       case linkSink:
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/estimator.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/estimator.c
index fb2df521d..ecf18fdfb 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/estimator.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/estimator.c
@@ -88,7 +88,8 @@ static EstimatorFcns estimatorFunctions[] = {
 };
 
 void stateEstimatorInit(StateEstimatorType estimator) {
-  measurementsQueue = STATIC_MEM_QUEUE_CREATE(measurementsQueue);
+  //COMMENTED FIRMWARE
+  //measurementsQueue = STATIC_MEM_QUEUE_CREATE(measurementsQueue);
   stateEstimatorSwitchTo(estimator);
 }
 
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/estimator_kalman.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/estimator_kalman.c
index f9f6c25f9..3ac426322 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/estimator_kalman.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/estimator_kalman.c
@@ -181,11 +181,12 @@ STATIC_MEM_TASK_ALLOC_STACK_NO_DMA_CCM_SAFE(kalmanTask, 3 * configMINIMAL_STACK_
 
 // Called one time during system startup
 void estimatorKalmanTaskInit() {
-  vSemaphoreCreateBinary(runTaskSemaphore);
+  //COMMENTED FIRMWARE
+  // vSemaphoreCreateBinary(runTaskSemaphore);
 
-  dataMutex = xSemaphoreCreateMutexStatic(&dataMutexBuffer);
+  // dataMutex = xSemaphoreCreateMutexStatic(&dataMutexBuffer);
 
-  STATIC_MEM_TASK_CREATE(kalmanTask, kalmanTask, KALMAN_TASK_NAME, NULL, KALMAN_TASK_PRI);
+  // STATIC_MEM_TASK_CREATE(kalmanTask, kalmanTask, KALMAN_TASK_NAME, NULL, KALMAN_TASK_PRI);
 
   isInit = true;
 }
@@ -232,9 +233,10 @@ static void kalmanTask(void* parameters) {
 
       nextPrediction = osTick + S2T(1.0f / PREDICT_RATE);
 
-      if (!rateSupervisorValidate(&rateSupervisorContext, T2M(osTick))) {
-        DEBUG_PRINT("WARNING: Kalman prediction rate low (%lu)\n", rateSupervisorLatestCount(&rateSupervisorContext));
-      }
+      //COMMENTED FIRMWARE
+      // if (!rateSupervisorValidate(&rateSupervisorContext, T2M(osTick))) {
+      //   DEBUG_PRINT("WARNING: Kalman prediction rate low (%lu)\n", rateSupervisorLatestCount(&rateSupervisorContext));
+      // }
     }
 
     /**
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/eventtrigger.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/eventtrigger.c
index 29ef92812..c0e0d1238 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/eventtrigger.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/eventtrigger.c
@@ -55,12 +55,13 @@ const eventtrigger *eventtriggerGetById(uint16_t id)
 const eventtrigger* eventtriggerGetByName(const char *name)
 {
     const eventtrigger* result = &_eventtrigger_start;
-    int numEventtriggers = &_eventtrigger_stop - &_eventtrigger_start;
-    for (int i = 0; i < numEventtriggers; ++i) {
-        if (strcmp(result[i].name, name) == 0) {
-            return &result[i];
-        }
-    }
+    //COMMENTED FIRMWARE
+    // int numEventtriggers = &_eventtrigger_stop - &_eventtrigger_start;
+    // for (int i = 0; i < numEventtriggers; ++i) {
+    //     if (strcmp(result[i].name, name) == 0) {
+    //         return &result[i];
+    //     }
+    // }
     return 0;
 }
 
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/health.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/health.c
index ec778f18b..a2c512e66 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/health.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/health.c
@@ -284,9 +284,10 @@ void healthRunTests(sensorData_t *sensors)
         for (int j = 0; j < 3; j++)
         {
           motorsBeep(m, true, testsound[m], (uint16_t)(MOTORS_TIM_BEEP_CLK_FREQ / A4)/ 20);
-          vTaskDelay(M2T(MOTORS_TEST_ON_TIME_MS));
+          //COMMENTED FIRMWARE
+          vTaskDelay(MOTORS_TEST_ON_TIME_MS);//M2T(MOTORS_TEST_ON_TIME_MS));
           motorsBeep(m, false, 0, 0);
-          vTaskDelay(M2T(100));
+          vTaskDelay(100);//M2T(100));
         }
       }
     }
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/info.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/info.c
index fb98ee303..91c2c8dc0 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/info.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/info.c
@@ -74,103 +74,104 @@ void infoInit()
 
 void infoTask(void *param)
 {
-  CRTPPacket p;
-  int i;
-  static int ctr=0;
-
-  while (TRUE)
-  {
-    if (crtpReceivePacketWait(crtpInfo, &p, 1000) == pdTRUE)
-    {
-      InfoNbr infoNbr = CRTP_GET_NBR(p.port);
-
-      switch (infoNbr)
-      {
-        case infoCopterNr:
-          if (p.data[0] == infoName)
-          {
-            p.data[1] = 0x90;
-            p.data[2] = 0x00;   //Version 0.9.0 (Crazyflie)
-            strcpy((char*)&p.data[3], "CrazyFlie");
-
-            p.size = 3+strlen("CrazyFlie");
-            crtpSendPacketBlock(&p);
-          } else if (p.data[0] == infoVersion) {
-            i=1;
-
-            strncpy((char*)&p.data[i], V_SLOCAL_REVISION, 31-i);
-            i += strlen(V_SLOCAL_REVISION);
-
-            if (i<31) p.data[i++] = ',';
-
-            strncpy((char*)&p.data[i], V_SREVISION, 31-i);
-            i += strlen(V_SREVISION);
-
-            if (i<31) p.data[i++] = ',';
-
-            strncpy((char*)&p.data[i], V_STAG, 31-i);
-            i += strlen(V_STAG);
-
-            if (i<31) p.data[i++] = ',';
-            if (i<31) p.data[i++] = V_MODIFIED?'M':'C';
-
-            p.size = (i<31)?i:31;
-            crtpSendPacketBlock(&p);
-          } else if (p.data[0] == infoCpuId) {
-            memcpy((char*)&p.data[1], (char*)CpuId, 12);
-
-            p.size = 13;
-            crtpSendPacketBlock(&p);
-          }
-
-          break;
-        case infoBatteryNr:
-          if (p.data[0] == batteryVoltage)
-          {
-            float value = pmGetBatteryVoltage();
-
-            memcpy(&p.data[1], (char*)&value, 4);
-
-            p.size = 5;
-            crtpSendPacketBlock(&p);
-          } else if (p.data[0] == batteryMax) {
-            float value = pmGetBatteryVoltageMax();
-
-            memcpy(&p.data[1], (char*)&value, 4);
-
-            p.size = 5;
-            crtpSendPacketBlock(&p);
-          } else if (p.data[0] == batteryMin) {
-            float value = pmGetBatteryVoltageMin();
-
-            memcpy(&p.data[1], (char*)&value, 4);
-
-            p.size = 5;
-            crtpSendPacketBlock(&p);
-          }
-          break;
-        default:
-          break;
-      }
-    }
-
-    // Send a warning message if the battery voltage drops under 3.3V
-    // This is sent every 5 info transaction or every 5 seconds
-    if (ctr++>5) {
-      ctr=0;
-
-      if (pmGetBatteryVoltageMin() < INFO_BAT_WARNING)
-      {
-        float value = pmGetBatteryVoltage();
-
-        p.port = CRTP_PORT(0,8,3);
-        p.data[0] = 0;
-        memcpy(&p.data[1], (char*)&value, 4);
-
-        p.size = 5;
-        crtpSendPacketBlock(&p);
-      }
-    }
-
-  }
+  //COMMENTED FIRMWARE
+  // CRTPPacket p;
+  // int i;
+  // static int ctr=0;
+
+  // while (TRUE)
+  // {
+  //   if (crtpReceivePacketWait(crtpInfo, &p, 1000) == pdTRUE)
+  //   {
+  //     InfoNbr infoNbr = CRTP_GET_NBR(p.port);
+
+  //     switch (infoNbr)
+  //     {
+  //       case infoCopterNr:
+  //         if (p.data[0] == infoName)
+  //         {
+  //           p.data[1] = 0x90;
+  //           p.data[2] = 0x00;   //Version 0.9.0 (Crazyflie)
+  //           strcpy((char*)&p.data[3], "CrazyFlie");
+
+  //           p.size = 3+strlen("CrazyFlie");
+  //           crtpSendPacketBlock(&p);
+  //         } else if (p.data[0] == infoVersion) {
+  //           i=1;
+
+  //           strncpy((char*)&p.data[i], V_SLOCAL_REVISION, 31-i);
+  //           i += strlen(V_SLOCAL_REVISION);
+
+  //           if (i<31) p.data[i++] = ',';
+
+  //           strncpy((char*)&p.data[i], V_SREVISION, 31-i);
+  //           i += strlen(V_SREVISION);
+
+  //           if (i<31) p.data[i++] = ',';
+
+  //           strncpy((char*)&p.data[i], V_STAG, 31-i);
+  //           i += strlen(V_STAG);
+
+  //           if (i<31) p.data[i++] = ',';
+  //           if (i<31) p.data[i++] = V_MODIFIED?'M':'C';
+
+  //           p.size = (i<31)?i:31;
+  //           crtpSendPacketBlock(&p);
+  //         } else if (p.data[0] == infoCpuId) {
+  //           memcpy((char*)&p.data[1], (char*)CpuId, 12);
+
+  //           p.size = 13;
+  //           crtpSendPacketBlock(&p);
+  //         }
+
+  //         break;
+  //       case infoBatteryNr:
+  //         if (p.data[0] == batteryVoltage)
+  //         {
+  //           float value = pmGetBatteryVoltage();
+
+  //           memcpy(&p.data[1], (char*)&value, 4);
+
+  //           p.size = 5;
+  //           crtpSendPacketBlock(&p);
+  //         } else if (p.data[0] == batteryMax) {
+  //           float value = pmGetBatteryVoltageMax();
+
+  //           memcpy(&p.data[1], (char*)&value, 4);
+
+  //           p.size = 5;
+  //           crtpSendPacketBlock(&p);
+  //         } else if (p.data[0] == batteryMin) {
+  //           float value = pmGetBatteryVoltageMin();
+
+  //           memcpy(&p.data[1], (char*)&value, 4);
+
+  //           p.size = 5;
+  //           crtpSendPacketBlock(&p);
+  //         }
+  //         break;
+  //       default:
+  //         break;
+  //     }
+  //   }
+
+  //   // Send a warning message if the battery voltage drops under 3.3V
+  //   // This is sent every 5 info transaction or every 5 seconds
+  //   if (ctr++>5) {
+  //     ctr=0;
+
+  //     if (pmGetBatteryVoltageMin() < INFO_BAT_WARNING)
+  //     {
+  //       float value = pmGetBatteryVoltage();
+
+  //       p.port = CRTP_PORT(0,8,3);
+  //       p.data[0] = 0;
+  //       memcpy(&p.data[1], (char*)&value, 4);
+
+  //       p.size = 5;
+  //       crtpSendPacketBlock(&p);
+  //     }
+  //   }
+
+  // }
 }
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/kalman_core/kalman_core.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/kalman_core/kalman_core.c
index 1cb0f2b58..c9575ec72 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/kalman_core/kalman_core.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/kalman_core/kalman_core.c
@@ -167,10 +167,11 @@ void kalmanCoreInit(kalmanCoreData_t* this) {
 //  this->S[KC_STATE_D2] = 0;
 
   // reset the attitude quaternion
-  initialQuaternion[0] = arm_cos_f32(initialYaw / 2);
-  initialQuaternion[1] = 0.0;
-  initialQuaternion[2] = 0.0;
-  initialQuaternion[3] = arm_sin_f32(initialYaw / 2);
+  //COMMENTED FIRMWARE
+  // initialQuaternion[0] = arm_cos_f32(initialYaw / 2);
+  // initialQuaternion[1] = 0.0;
+  // initialQuaternion[2] = 0.0;
+  // initialQuaternion[3] = arm_sin_f32(initialYaw / 2);
   for (int i = 0; i < 4; i++) { this->q[i] = initialQuaternion[i]; }
 
   // then set the initial rotation matrix to the identity. This only affects
@@ -185,17 +186,18 @@ void kalmanCoreInit(kalmanCoreData_t* this) {
   }
 
   // initialize state variances
-  this->P[KC_STATE_X][KC_STATE_X]  = powf(stdDevInitialPosition_xy, 2);
-  this->P[KC_STATE_Y][KC_STATE_Y]  = powf(stdDevInitialPosition_xy, 2);
-  this->P[KC_STATE_Z][KC_STATE_Z]  = powf(stdDevInitialPosition_z, 2);
+  //COMMENTED FIRMWARE
+  // this->P[KC_STATE_X][KC_STATE_X]  = powf(stdDevInitialPosition_xy, 2);
+  // this->P[KC_STATE_Y][KC_STATE_Y]  = powf(stdDevInitialPosition_xy, 2);
+  // this->P[KC_STATE_Z][KC_STATE_Z]  = powf(stdDevInitialPosition_z, 2);
 
-  this->P[KC_STATE_PX][KC_STATE_PX] = powf(stdDevInitialVelocity, 2);
-  this->P[KC_STATE_PY][KC_STATE_PY] = powf(stdDevInitialVelocity, 2);
-  this->P[KC_STATE_PZ][KC_STATE_PZ] = powf(stdDevInitialVelocity, 2);
+  // this->P[KC_STATE_PX][KC_STATE_PX] = powf(stdDevInitialVelocity, 2);
+  // this->P[KC_STATE_PY][KC_STATE_PY] = powf(stdDevInitialVelocity, 2);
+  // this->P[KC_STATE_PZ][KC_STATE_PZ] = powf(stdDevInitialVelocity, 2);
 
-  this->P[KC_STATE_D0][KC_STATE_D0] = powf(stdDevInitialAttitude_rollpitch, 2);
-  this->P[KC_STATE_D1][KC_STATE_D1] = powf(stdDevInitialAttitude_rollpitch, 2);
-  this->P[KC_STATE_D2][KC_STATE_D2] = powf(stdDevInitialAttitude_yaw, 2);
+  // this->P[KC_STATE_D0][KC_STATE_D0] = powf(stdDevInitialAttitude_rollpitch, 2);
+  // this->P[KC_STATE_D1][KC_STATE_D1] = powf(stdDevInitialAttitude_rollpitch, 2);
+  // this->P[KC_STATE_D2][KC_STATE_D2] = powf(stdDevInitialAttitude_yaw, 2);
 
   //COMMENTED FIRMWARE
   // this->Pm.numRows = KC_STATE_DIM;
@@ -572,17 +574,18 @@ void kalmanCoreAddProcessNoise(kalmanCoreData_t* this, float dt)
 {
   if (dt>0)
   {
-    this->P[KC_STATE_X][KC_STATE_X] += powf(procNoiseAcc_xy*dt*dt + procNoiseVel*dt + procNoisePos, 2);  // add process noise on position
-    this->P[KC_STATE_Y][KC_STATE_Y] += powf(procNoiseAcc_xy*dt*dt + procNoiseVel*dt + procNoisePos, 2);  // add process noise on position
-    this->P[KC_STATE_Z][KC_STATE_Z] += powf(procNoiseAcc_z*dt*dt + procNoiseVel*dt + procNoisePos, 2);  // add process noise on position
-
-    this->P[KC_STATE_PX][KC_STATE_PX] += powf(procNoiseAcc_xy*dt + procNoiseVel, 2); // add process noise on velocity
-    this->P[KC_STATE_PY][KC_STATE_PY] += powf(procNoiseAcc_xy*dt + procNoiseVel, 2); // add process noise on velocity
-    this->P[KC_STATE_PZ][KC_STATE_PZ] += powf(procNoiseAcc_z*dt + procNoiseVel, 2); // add process noise on velocity
-
-    this->P[KC_STATE_D0][KC_STATE_D0] += powf(measNoiseGyro_rollpitch * dt + procNoiseAtt, 2);
-    this->P[KC_STATE_D1][KC_STATE_D1] += powf(measNoiseGyro_rollpitch * dt + procNoiseAtt, 2);
-    this->P[KC_STATE_D2][KC_STATE_D2] += powf(measNoiseGyro_yaw * dt + procNoiseAtt, 2);
+    //COMMENTED FIRMWARE
+    // this->P[KC_STATE_X][KC_STATE_X] += powf(procNoiseAcc_xy*dt*dt + procNoiseVel*dt + procNoisePos, 2);  // add process noise on position
+    // this->P[KC_STATE_Y][KC_STATE_Y] += powf(procNoiseAcc_xy*dt*dt + procNoiseVel*dt + procNoisePos, 2);  // add process noise on position
+    // this->P[KC_STATE_Z][KC_STATE_Z] += powf(procNoiseAcc_z*dt*dt + procNoiseVel*dt + procNoisePos, 2);  // add process noise on position
+
+    // this->P[KC_STATE_PX][KC_STATE_PX] += powf(procNoiseAcc_xy*dt + procNoiseVel, 2); // add process noise on velocity
+    // this->P[KC_STATE_PY][KC_STATE_PY] += powf(procNoiseAcc_xy*dt + procNoiseVel, 2); // add process noise on velocity
+    // this->P[KC_STATE_PZ][KC_STATE_PZ] += powf(procNoiseAcc_z*dt + procNoiseVel, 2); // add process noise on velocity
+
+    // this->P[KC_STATE_D0][KC_STATE_D0] += powf(measNoiseGyro_rollpitch * dt + procNoiseAtt, 2);
+    // this->P[KC_STATE_D1][KC_STATE_D1] += powf(measNoiseGyro_rollpitch * dt + procNoiseAtt, 2);
+    // this->P[KC_STATE_D2][KC_STATE_D2] += powf(measNoiseGyro_yaw * dt + procNoiseAtt, 2);
   }
 
   for (int i=0; i<KC_STATE_DIM; i++) {
@@ -746,17 +749,18 @@ void kalmanCoreExternalizeState(const kalmanCoreData_t* this, state_t *state, co
   };
 
   // convert the new attitude into Euler YPR
-  float yaw = atan2f(2*(this->q[1]*this->q[2]+this->q[0]*this->q[3]) , this->q[0]*this->q[0] + this->q[1]*this->q[1] - this->q[2]*this->q[2] - this->q[3]*this->q[3]);
-  float pitch = asinf(-2*(this->q[1]*this->q[3] - this->q[0]*this->q[2]));
-  float roll = atan2f(2*(this->q[2]*this->q[3]+this->q[0]*this->q[1]) , this->q[0]*this->q[0] - this->q[1]*this->q[1] - this->q[2]*this->q[2] + this->q[3]*this->q[3]);
-
-  // Save attitude, adjusted for the legacy CF2 body coordinate system
-  state->attitude = (attitude_t){
-      .timestamp = tick,
-      .roll = roll*RAD_TO_DEG,
-      .pitch = -pitch*RAD_TO_DEG,
-      .yaw = yaw*RAD_TO_DEG
-  };
+  //COMMENTED FIRMWARE
+  // float yaw = atan2f(2*(this->q[1]*this->q[2]+this->q[0]*this->q[3]) , this->q[0]*this->q[0] + this->q[1]*this->q[1] - this->q[2]*this->q[2] - this->q[3]*this->q[3]);
+  // float pitch = asinf(-2*(this->q[1]*this->q[3] - this->q[0]*this->q[2]));
+  // float roll = atan2f(2*(this->q[2]*this->q[3]+this->q[0]*this->q[1]) , this->q[0]*this->q[0] - this->q[1]*this->q[1] - this->q[2]*this->q[2] + this->q[3]*this->q[3]);
+
+  // // Save attitude, adjusted for the legacy CF2 body coordinate system
+  // state->attitude = (attitude_t){
+  //     .timestamp = tick,
+  //     .roll = roll*RAD_TO_DEG,
+  //     .pitch = -pitch*RAD_TO_DEG,
+  //     .yaw = yaw*RAD_TO_DEG
+  // };
 
   // Save quaternion, hopefully one day this could be used in a better controller.
   // Note that this is not adjusted for the legacy coordinate system
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/kalman_core/mm_distance_robust.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/kalman_core/mm_distance_robust.c
index e0662bd38..d0d12024b 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/kalman_core/mm_distance_robust.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/kalman_core/mm_distance_robust.c
@@ -25,21 +25,22 @@
 // Reference: https://www.geeksforgeeks.org/cholesky-decomposition-matrix-decomposition/
 static void Cholesky_Decomposition(int n, float matrix[n][n],  float lower[n][n]){
     // Decomposing a matrix into Lower Triangular 
-    for (int i = 0; i < n; i++) { 
-        for (int j = 0; j <= i; j++) { 
-            float sum = 0.0; 
-            if (j == i) // summation for diagnols 
-            { 
-                for (int k = 0; k < j; k++) 
-                    sum += powf(lower[j][k], 2); 
-                lower[j][j] = sqrtf(matrix[j][j] - sum); 
-            } else { 
-                for (int k = 0; k < j; k++) 
-                    sum += (lower[i][k] * lower[j][k]); 
-                lower[i][j] = (matrix[i][j] - sum) / lower[j][j]; 
-            } 
-        } 
-    }
+    //COMMENTED FIRMWARE
+    // for (int i = 0; i < n; i++) { 
+    //     for (int j = 0; j <= i; j++) { 
+    //         float sum = 0.0; 
+    //         if (j == i) // summation for diagnols 
+    //         { 
+    //             for (int k = 0; k < j; k++) 
+    //                 sum += powf(lower[j][k], 2); 
+    //             lower[j][j] = sqrtf(matrix[j][j] - sum); 
+    //         } else { 
+    //             for (int k = 0; k < j; k++) 
+    //                 sum += (lower[i][k] * lower[j][k]); 
+    //             lower[i][j] = (matrix[i][j] - sum) / lower[j][j]; 
+    //         } 
+    //     } 
+    // }
 } 
 
 /* Weight function for GM Robust cost function
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/lighthouse/lighthouse_core.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/lighthouse/lighthouse_core.c
index 2c362c6ff..e60210772 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/lighthouse/lighthouse_core.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/lighthouse/lighthouse_core.c
@@ -443,60 +443,61 @@ static void updateSystemStatus(const uint32_t now_ms) {
 }
 
 void lighthouseCoreTask(void *param) {
-  bool isUartFrameValid = false;
+  //COMMENTED FIRMWARE
+  // bool isUartFrameValid = false;
 
-  uart1Init(230400);
-  systemWaitStart();
+  // uart1Init(230400);
+  // systemWaitStart();
 
-  lighthouseStorageVerifySetStorageVersion();
-  lighthouseStorageInitializeGeoDataFromStorage();
-  lighthouseStorageInitializeCalibDataFromStorage();
+  // lighthouseStorageVerifySetStorageVersion();
+  // lighthouseStorageInitializeGeoDataFromStorage();
+  // lighthouseStorageInitializeCalibDataFromStorage();
 
-  if (lighthouseDeckFlasherCheckVersionAndBoot() == false) {
-    DEBUG_PRINT("FPGA not booted. Lighthouse disabled!\n");
-    while(1) {
-      vTaskDelay(portMAX_DELAY);
-    }
-  }
-  deckIsFlashed = true;
+  // if (lighthouseDeckFlasherCheckVersionAndBoot() == false) {
+  //   DEBUG_PRINT("FPGA not booted. Lighthouse disabled!\n");
+  //   while(1) {
+  //     vTaskDelay(portMAX_DELAY);
+  //   }
+  // }
+  // deckIsFlashed = true;
 
 
-  vTaskDelay(M2T(100));
+  // vTaskDelay(M2T(100));
 
-  memset(&bsIdentificationData, 0, sizeof(bsIdentificationData));
+  // memset(&bsIdentificationData, 0, sizeof(bsIdentificationData));
 
-  while(1) {
-    memset(pulseWidth, 0, sizeof(pulseWidth[0]) * PULSE_PROCESSOR_N_SENSORS);
-    waitForUartSynchFrame();
-    uartSynchronized = true;
+  // while(1) {
+  //   memset(pulseWidth, 0, sizeof(pulseWidth[0]) * PULSE_PROCESSOR_N_SENSORS);
+  //   waitForUartSynchFrame();
+  //   uartSynchronized = true;
 
-    bool previousWasSyncFrame = false;
+  //   bool previousWasSyncFrame = false;
 
-    while((isUartFrameValid = getUartFrameRaw(&frame))) {
-      const uint32_t now_ms = T2M(xTaskGetTickCount());
+  //   while((isUartFrameValid = getUartFrameRaw(&frame))) {
+  //     const uint32_t now_ms = T2M(xTaskGetTickCount());
 
-      // If a sync frame is getting through, we are only receiving sync frames. So nothing else. Reset state
-      if(frame.isSyncFrame && previousWasSyncFrame) {
-          pulseProcessorAllClear(&angles);
-      }
-      // Now we are receiving items
-      else if(!frame.isSyncFrame) {
-        STATS_CNT_RATE_EVENT(&frameRate);
-
-        deckHealthCheck(&lighthouseCoreState, &frame, now_ms);
-        lighthouseUpdateSystemType();
-        if (pulseProcessorProcessPulse) {
-          processFrame(&lighthouseCoreState, &angles, &frame);
-        }
-      }
+  //     // If a sync frame is getting through, we are only receiving sync frames. So nothing else. Reset state
+  //     if(frame.isSyncFrame && previousWasSyncFrame) {
+  //         pulseProcessorAllClear(&angles);
+  //     }
+  //     // Now we are receiving items
+  //     else if(!frame.isSyncFrame) {
+  //       STATS_CNT_RATE_EVENT(&frameRate);
 
-      previousWasSyncFrame = frame.isSyncFrame;
+  //       deckHealthCheck(&lighthouseCoreState, &frame, now_ms);
+  //       lighthouseUpdateSystemType();
+  //       if (pulseProcessorProcessPulse) {
+  //         processFrame(&lighthouseCoreState, &angles, &frame);
+  //       }
+  //     }
 
-      updateSystemStatus(now_ms);
-    }
+  //     previousWasSyncFrame = frame.isSyncFrame;
 
-    uartSynchronized = false;
-  }
+  //     updateSystemStatus(now_ms);
+  //   }
+
+  //   uartSynchronized = false;
+  // }
 }
 
 void lighthouseCoreSetCalibrationData(const uint8_t baseStation, const lighthouseCalibration_t* calibration) {
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/log.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/log.c
index f56da9236..96b44bbb2 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/log.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/log.c
@@ -977,17 +977,18 @@ logVarId_t logGetVarId(char* group, char* name)
   logVarId_t varId = invalidVarId;
   char * currgroup = "";
 
-  for(i=0; i<logsLen; i++)
-  {
-    if (logs[i].type & LOG_GROUP) {
-      if (logs[i].type & LOG_START) {
-        currgroup = logs[i].name;
-      }
-    } else if ((!strcmp(group, currgroup)) && (!strcmp(name, logs[i].name))) {
-      varId = (logVarId_t)i;
-      return varId;
-    }
-  }
+  //COMMENTED FIRMWARE
+  // for(i=0; i<logsLen; i++)
+  // {
+  //   if (logs[i].type & LOG_GROUP) {
+  //     if (logs[i].type & LOG_START) {
+  //       currgroup = logs[i].name;
+  //     }
+  //   } else if ((!strcmp(group, currgroup)) && (!strcmp(name, logs[i].name))) {
+  //     varId = (logVarId_t)i;
+  //     return varId;
+  //   }
+  // }
 
   return invalidVarId;
 }
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/outlierFilter.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/outlierFilter.c
index a6fab9f94..c3d453ea9 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/outlierFilter.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/outlierFilter.c
@@ -71,33 +71,34 @@ bool outlierFilterValidateTdoaSimple(const tdoaMeasurement_t* tdoa) {
 bool outlierFilterValidateTdoaSteps(const tdoaMeasurement_t* tdoa, const float error, const vector_t* jacobian, const point_t* estPos) {
   bool sampleIsGood = false;
 
-  if (isDistanceDiffSmallerThanDistanceBetweenAnchors(tdoa)) {
-    float errorBaseDistance = sqrtf(powf(jacobian->x, 2) + powf(jacobian->y, 2) + powf(jacobian->z, 2));
-    errorDistance = fabsf(error / errorBaseDistance);
-
-    int filterIndex = updateBuckets(errorDistance);
-
-    if (filterIndex > previousFilterIndex) {
-      filterCloseDelayCounter = FILTER_CLOSE_DELAY_COUNT;
-    } else if (filterIndex < previousFilterIndex) {
-      if (filterCloseDelayCounter > 0) {
-        filterCloseDelayCounter--;
-        filterIndex = previousFilterIndex;
-      }
-    }
-    previousFilterIndex = filterIndex;
-
-    if (filterIndex == FILTER_NONE) {
-      // Lost tracking, open up to let the kalman filter converge
-      acceptanceLevel = 100.0;
-      sampleIsGood = true;
-    } else {
-      acceptanceLevel = filterLevels[filterIndex].acceptanceLevel;
-      if (errorDistance < acceptanceLevel) {
-        sampleIsGood = true;
-      }
-    }
-  }
+  //COMMENTED FIRMWARE
+  // if (isDistanceDiffSmallerThanDistanceBetweenAnchors(tdoa)) {
+  //   float errorBaseDistance = sqrtf(powf(jacobian->x, 2) + powf(jacobian->y, 2) + powf(jacobian->z, 2));
+  //   errorDistance = fabsf(error / errorBaseDistance);
+
+  //   int filterIndex = updateBuckets(errorDistance);
+
+  //   if (filterIndex > previousFilterIndex) {
+  //     filterCloseDelayCounter = FILTER_CLOSE_DELAY_COUNT;
+  //   } else if (filterIndex < previousFilterIndex) {
+  //     if (filterCloseDelayCounter > 0) {
+  //       filterCloseDelayCounter--;
+  //       filterIndex = previousFilterIndex;
+  //     }
+  //   }
+  //   previousFilterIndex = filterIndex;
+
+  //   if (filterIndex == FILTER_NONE) {
+  //     // Lost tracking, open up to let the kalman filter converge
+  //     acceptanceLevel = 100.0;
+  //     sampleIsGood = true;
+  //   } else {
+  //     acceptanceLevel = filterLevels[filterIndex].acceptanceLevel;
+  //     if (errorDistance < acceptanceLevel) {
+  //       sampleIsGood = true;
+  //     }
+  //   }
+  // }
 
   return sampleIsGood;
 }
@@ -119,28 +120,30 @@ void outlierFilterReset(OutlierFilterLhState_t* this, const uint32_t now) {
 bool outlierFilterValidateLighthouseSweep(OutlierFilterLhState_t* this, const float distanceToBs, const float angleError, const uint32_t now) {
   // float error = distanceToBs * tan(angleError);
   // We use an approximattion
-  float error = distanceToBs * angleError;
-
-  bool isGoodSample = (fabsf(error) < lhMaxError);
-  if (isGoodSample) {
-    this->openingWindow += lhGoodSampleWindowChange;
-    if (this->openingWindow > lhMaxWindowTime) {
-      this->openingWindow = lhMaxWindowTime;
-    }
-  } else {
-    this->openingWindow += lhBadSampleWindowChange;
-    if (this->openingWindow < lhMinWindowTime) {
-      this->openingWindow = lhMinWindowTime;
-    }
-  }
+  //COMMENTED FIRMWARE
+  // float error = distanceToBs * angleError;
+
+  // bool isGoodSample = (fabsf(error) < lhMaxError);
+  // if (isGoodSample) {
+  //   this->openingWindow += lhGoodSampleWindowChange;
+  //   if (this->openingWindow > lhMaxWindowTime) {
+  //     this->openingWindow = lhMaxWindowTime;
+  //   }
+  // } else {
+  //   this->openingWindow += lhBadSampleWindowChange;
+  //   if (this->openingWindow < lhMinWindowTime) {
+  //     this->openingWindow = lhMinWindowTime;
+  //   }
+  // }
 
   bool result = true;
-  bool isFilterClosed = (now < this->openingTime);
-  if (isFilterClosed) {
-    result = isGoodSample;
-  }
+  //COMMENTED FIRMWARE
+  // bool isFilterClosed = (now < this->openingTime);
+  // if (isFilterClosed) {
+  //   result = isGoodSample;
+  // }
 
-  this->openingTime = now + this->openingWindow;
+  // this->openingTime = now + this->openingWindow;
 
   return result;
 }
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/param.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/param.c
index 35f375fb3..49189bcb4 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/param.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/param.c
@@ -413,8 +413,9 @@ static char paramWriteByNameProcess(char* group, char* name, int type, void *val
     }
     else                          //Ptr points a variable
     {
-      if (!strcmp(params[ptr].name, name) && !strcmp(pgroup, group))
-        break;
+      //COMMENTED FIRMWARE
+      // if (!strcmp(params[ptr].name, name) && !strcmp(pgroup, group))
+      //   break;
     }
   }
 
@@ -564,12 +565,12 @@ paramVarId_t paramGetVarId(char* group, char* name)
     } else {
       id += 1;
     }
-    
-    if ((!strcmp(group, currgroup)) && (!strcmp(name, params[ptr].name))) {
-      varId.ptr = ptr;
-      varId.id = id - 1;
-      return varId;
-    }
+    //COMMENTED FIRMWARE
+    // if ((!strcmp(group, currgroup)) && (!strcmp(name, params[ptr].name))) {
+    //   varId.ptr = ptr;
+    //   varId.id = id - 1;
+    //   return varId;
+    // }
   }
 
   return invalidVarId;
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/position_controller_indi.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/position_controller_indi.c
index 20fdd50cd..989c224c7 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/position_controller_indi.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/position_controller_indi.c
@@ -26,7 +26,8 @@
 
 
 #include "position_controller_indi.h"
-#include "math3d.h"
+//#include "math3d.h"
+#include "empty_math.h"
 
 // Position controller gains
 float K_xi_x = 1.0f;
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/position_controller_pid.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/position_controller_pid.c
index 5cdff4472..2fa55dd5c 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/position_controller_pid.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/position_controller_pid.c
@@ -24,7 +24,8 @@
  * position_estimator_pid.c: PID-based implementation of the position controller
  */
 
-#include <math.h>
+//#include <math.h>
+#include "empty_math.h"
 #include "num.h"
 
 #include "commander.h"
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/position_estimator_altitude.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/position_estimator_altitude.c
index 461aa7681..79d716199 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/position_estimator_altitude.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/position_estimator_altitude.c
@@ -74,7 +74,8 @@ static void positionEstimateInternal(state_t* estimate, const baro_t* baro, cons
   static float prev_estimatedZ = 0;
   static bool surfaceFollowingMode = false;
 
-  const uint32_t MAX_SAMPLE_AGE = M2T(50);
+  //COMMENTED FIRMWARE
+  const uint32_t MAX_SAMPLE_AGE = 50;//M2T(50);
 
   uint32_t now = xTaskGetTickCount();
   bool isSampleUseful = ((now - tofMeasurement->timestamp) <= MAX_SAMPLE_AGE);
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/pptraj.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/pptraj.c
index d24dc2f93..26cd702e6 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/pptraj.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/pptraj.c
@@ -256,12 +256,13 @@ float poly4d_max_accel_approx(struct poly4d const *p)
 	float step = p->duration / (steps - 1);
 	float t = 0;
 	float amax = 0;
-	for (int i = 0; i < steps; ++i) {
-		struct vec ddx = polyval_xyz(acc, t);
-		float ddx_minkowski = vnorm1(ddx);
-		if (ddx_minkowski > amax) amax = ddx_minkowski;
-		t += step;
-	}
+	//COMMENTED FIRMWARE
+	// for (int i = 0; i < steps; ++i) {
+	// 	struct vec ddx = polyval_xyz(acc, t);
+	// 	float ddx_minkowski = vnorm1(ddx);
+	// 	if (ddx_minkowski > amax) amax = ddx_minkowski;
+	// 	t += step;
+	// }
 	return amax;
 }
 
@@ -293,38 +294,39 @@ struct traj_eval poly4d_eval(struct poly4d const *p, float t)
 {
 	// flat variables
 	struct traj_eval out;
-	out.pos = polyval_xyz(p, t);
-	out.yaw = polyval_yaw(p, t);
-
-	// 1st derivative
-	struct poly4d* deriv = &poly4d_tmp;
-	*deriv = *p;
-	polyder4d(deriv);
-	out.vel = polyval_xyz(deriv, t);
-	float dyaw = polyval_yaw(deriv, t);
-
-	// 2nd derivative
-	polyder4d(deriv);
-	out.acc = polyval_xyz(deriv, t);
-
-	// 3rd derivative
-	polyder4d(deriv);
-	struct vec jerk = polyval_xyz(deriv, t);
-
-	struct vec thrust = vadd(out.acc, mkvec(0, 0, GRAV));
-	// float thrust_mag = mass * vmag(thrust);
-
-	struct vec z_body = vnormalize(thrust);
-	struct vec x_world = mkvec(cosf(out.yaw), sinf(out.yaw), 0);
-	struct vec y_body = vnormalize(vcross(z_body, x_world));
-	struct vec x_body = vcross(y_body, z_body);
-
-	struct vec jerk_orth_zbody = vorthunit(jerk, z_body);
-	struct vec h_w = vscl(1.0f / vmag(thrust), jerk_orth_zbody);
-
-	out.omega.x = -vdot(h_w, y_body);
-	out.omega.y = vdot(h_w, x_body);
-	out.omega.z = z_body.z * dyaw;
+	//COMMENTED FIRMWARE
+	// out.pos = polyval_xyz(p, t);
+	// out.yaw = polyval_yaw(p, t);
+
+	// // 1st derivative
+	// struct poly4d* deriv = &poly4d_tmp;
+	// *deriv = *p;
+	// polyder4d(deriv);
+	// out.vel = polyval_xyz(deriv, t);
+	// float dyaw = polyval_yaw(deriv, t);
+
+	// // 2nd derivative
+	// polyder4d(deriv);
+	// out.acc = polyval_xyz(deriv, t);
+
+	// // 3rd derivative
+	// polyder4d(deriv);
+	// struct vec jerk = polyval_xyz(deriv, t);
+
+	// struct vec thrust = vadd(out.acc, mkvec(0, 0, GRAV));
+	// // float thrust_mag = mass * vmag(thrust);
+
+	// struct vec z_body = vnormalize(thrust);
+	// struct vec x_world = mkvec(cosf(out.yaw), sinf(out.yaw), 0);
+	// struct vec y_body = vnormalize(vcross(z_body, x_world));
+	// struct vec x_body = vcross(y_body, z_body);
+
+	// struct vec jerk_orth_zbody = vorthunit(jerk, z_body);
+	// struct vec h_w = vscl(1.0f / vmag(thrust), jerk_orth_zbody);
+
+	// out.omega.x = -vdot(h_w, y_body);
+	// out.omega.y = vdot(h_w, x_body);
+	// out.omega.z = z_body.z * dyaw;
 
 	return out;
 }
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/pptraj_compressed.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/pptraj_compressed.c
index 899d8d5e4..20510fdca 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/pptraj_compressed.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/pptraj_compressed.c
@@ -242,48 +242,50 @@ void piecewise_compressed_load(struct piecewise_traj_compressed *traj, const voi
 
 static void piecewise_compressed_rewind(struct piecewise_traj_compressed *traj)
 {
-  struct traj_eval stopped;
-  compressed_piece_coordinate value;
-  compressed_piece_ptr ptr;
-
-  /* Parse header that stores the start coordinates */
-  bzero(&stopped, sizeof(stopped));
-  ptr = traj->data;
-  ptr = next_coordinate(ptr, &value); stopped.pos.x = value / STORED_DISTANCE_SCALE;
-  ptr = next_coordinate(ptr, &value); stopped.pos.y = value / STORED_DISTANCE_SCALE;
-  ptr = next_coordinate(ptr, &value); stopped.pos.z = value / STORED_DISTANCE_SCALE;
-  ptr = next_coordinate(ptr, &value); stopped.yaw = value / STORED_ANGLE_SCALE;
-  traj->current_piece.t_begin_relative = 0;
-  traj->current_piece.data = ptr;
-
-  piecewise_compressed_update_current_poly4d(traj, &stopped);
+  //COMMENTED FIRMWARE
+  // struct traj_eval stopped;
+  // compressed_piece_coordinate value;
+  // compressed_piece_ptr ptr;
+
+  // /* Parse header that stores the start coordinates */
+  // bzero(&stopped, sizeof(stopped));
+  // ptr = traj->data;
+  // ptr = next_coordinate(ptr, &value); stopped.pos.x = value / STORED_DISTANCE_SCALE;
+  // ptr = next_coordinate(ptr, &value); stopped.pos.y = value / STORED_DISTANCE_SCALE;
+  // ptr = next_coordinate(ptr, &value); stopped.pos.z = value / STORED_DISTANCE_SCALE;
+  // ptr = next_coordinate(ptr, &value); stopped.yaw = value / STORED_ANGLE_SCALE;
+  // traj->current_piece.t_begin_relative = 0;
+  // traj->current_piece.data = ptr;
+
+  // piecewise_compressed_update_current_poly4d(traj, &stopped);
 }
 
 static void piecewise_compressed_update_current_poly4d(
   struct piecewise_traj_compressed *traj, const struct traj_eval *prev_end)
 {
-  struct poly4d* poly4d = &traj->current_piece.poly4d;
-  compressed_piece_ptr ptr;
-  struct compressed_piece_parsed_header header;
-
-  /* First, clear everything in the poly4d */
-  bzero(poly4d, sizeof(*poly4d));
-
-  /* Parse the header of the current piece, extract the storage types and the duration */
-  ptr = traj->current_piece.data;
-  parse_header_of_current_piece(&header, ptr);
-  poly4d->duration = header.duration_in_msec / STORED_DURATION_SCALE;
-
-  /* Process the body */
-  ptr = header.body;
-  ptr = calculate_polynomial_coefficients(
-    poly4d->p[0], ptr, header.x_type, prev_end->pos.x, poly4d->duration, STORED_DISTANCE_SCALE);
-  ptr = calculate_polynomial_coefficients(
-    poly4d->p[1], ptr, header.y_type, prev_end->pos.y, poly4d->duration, STORED_DISTANCE_SCALE);
-  ptr = calculate_polynomial_coefficients(
-    poly4d->p[2], ptr, header.z_type, prev_end->pos.z, poly4d->duration, STORED_DISTANCE_SCALE);
-  calculate_polynomial_coefficients(
-    poly4d->p[3], ptr, header.yaw_type, prev_end->yaw, poly4d->duration, STORED_ANGLE_SCALE);
+  //COMMENTED FIRMWARE
+  // struct poly4d* poly4d = &traj->current_piece.poly4d;
+  // compressed_piece_ptr ptr;
+  // struct compressed_piece_parsed_header header;
+
+  // /* First, clear everything in the poly4d */
+  // bzero(poly4d, sizeof(*poly4d));
+
+  // /* Parse the header of the current piece, extract the storage types and the duration */
+  // ptr = traj->current_piece.data;
+  // parse_header_of_current_piece(&header, ptr);
+  // poly4d->duration = header.duration_in_msec / STORED_DURATION_SCALE;
+
+  // /* Process the body */
+  // ptr = header.body;
+  // ptr = calculate_polynomial_coefficients(
+  //   poly4d->p[0], ptr, header.x_type, prev_end->pos.x, poly4d->duration, STORED_DISTANCE_SCALE);
+  // ptr = calculate_polynomial_coefficients(
+  //   poly4d->p[1], ptr, header.y_type, prev_end->pos.y, poly4d->duration, STORED_DISTANCE_SCALE);
+  // ptr = calculate_polynomial_coefficients(
+  //   poly4d->p[2], ptr, header.z_type, prev_end->pos.z, poly4d->duration, STORED_DISTANCE_SCALE);
+  // calculate_polynomial_coefficients(
+  //   poly4d->p[3], ptr, header.yaw_type, prev_end->yaw, poly4d->duration, STORED_ANGLE_SCALE);
 }
 
 static void piecewise_compressed_advance_playhead(struct piecewise_traj_compressed *traj)
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/sensfusion6.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/sensfusion6.c
index 633e4c9d1..8bfc796bd 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/sensfusion6.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/sensfusion6.c
@@ -262,16 +262,17 @@ void sensfusion6GetQuaternion(float* q_x, float* q_y, float* q_z, float* q_w)
 
 void sensfusion6GetEulerRPY(float* roll, float* pitch, float* yaw)
 {
-  float gx = gravX;
-  float gy = gravY;
-  float gz = gravZ;
+  // float gx = gravX;
+  // float gy = gravY;
+  // float gz = gravZ;
 
-  if (gx>1) gx=1;
-  if (gx<-1) gx=-1;
+  // if (gx>1) gx=1;
+  // if (gx<-1) gx=-1;
 
-  *yaw = atan2f(2*(qw*qz + qx*qy), qw*qw + qx*qx - qy*qy - qz*qz) * 180 / M_PI_F;
-  *pitch = asinf(gx) * 180 / M_PI_F; //Pitch seems to be inverted
-  *roll = atan2f(gy, gz) * 180 / M_PI_F;
+  // *yaw = atan2f(2*(qw*qz + qx*qy), qw*qw + qx*qx - qy*qy - qz*qz) * 180 / M_PI_F;
+  // *pitch = asinf(gx) * 180 / M_PI_F; //Pitch seems to be inverted
+  // *roll = atan2f(gy, gz) * 180 / M_PI_F;
+  //COMMENTED FIRMWARE
 }
 
 float sensfusion6GetAccZWithoutGravity(const float ax, const float ay, const float az)
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/sound_cf2.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/sound_cf2.c
index 5fb238491..597588eaf 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/sound_cf2.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/sound_cf2.c
@@ -276,19 +276,20 @@ static int tilt_freq;
 static int tilt_ratio;
 static void tilt(uint32_t counter, uint32_t * mi, Melody * melody)
 {
-  pitchid = logGetVarId("stabilizer", "pitch");
-  rollid = logGetVarId("stabilizer", "roll");
+  //COMMENTED FIRMWARE
+  // pitchid = logGetVarId("stabilizer", "pitch");
+  // rollid = logGetVarId("stabilizer", "roll");
 
-  pitch = logGetInt(pitchid);
-  roll = logGetInt(rollid);
-  tilt_freq = 0;
-  tilt_ratio = 127;
+  // pitch = logGetInt(pitchid);
+  // roll = logGetInt(rollid);
+  // tilt_freq = 0;
+  // tilt_ratio = 127;
 
-  if (abs(pitch) > 5) {
-    tilt_freq = 3000 - 50 * pitch;
-  }
+  // if (abs(pitch) > 5) {
+  //   tilt_freq = 3000 - 50 * pitch;
+  // }
 
-  buzzerOn(tilt_freq);
+  // buzzerOn(tilt_freq);
 }
 
 typedef struct {
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/stabilizer.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/stabilizer.c
index 158edb2cb..d3ed129de 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/stabilizer.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/stabilizer.c
@@ -175,7 +175,8 @@ void stabilizerInit(StateEstimatorType estimator)
   estimatorType = getStateEstimator();
   controllerType = getControllerType();
 
-  STATIC_MEM_TASK_CREATE(stabilizerTask, stabilizerTask, STABILIZER_TASK_NAME, NULL, STABILIZER_TASK_PRI);
+  //COMMENTED FIRMWARE
+  //STATIC_MEM_TASK_CREATE(stabilizerTask, stabilizerTask, STABILIZER_TASK_NAME, NULL, STABILIZER_TASK_PRI);
 
   isInit = true;
 }
@@ -225,7 +226,8 @@ static void stabilizerTask(void* param)
   // Wait for sensors to be calibrated
   lastWakeTime = xTaskGetTickCount();
   while(!sensorsAreCalibrated()) {
-    vTaskDelayUntil(&lastWakeTime, F2T(RATE_MAIN_LOOP));
+    //COMMENTED FIRMWARE
+    //vTaskDelayUntil(&lastWakeTime, F2T(RATE_MAIN_LOOP));
   }
   // Initialize tick to something else then 0
   tick = 1;
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/system.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/system.c
index 6531dc825..e273155b0 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/system.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/system.c
@@ -104,8 +104,9 @@ void systemInit(void)
   if(isInit)
     return;
 
-  canStartMutex = xSemaphoreCreateMutexStatic(&canStartMutexBuffer);
-  xSemaphoreTake(canStartMutex, portMAX_DELAY);
+  //COMMENTED FIRMWARE
+  // canStartMutex = xSemaphoreCreateMutexStatic(&canStartMutexBuffer);
+  // xSemaphoreTake(canStartMutex, portMAX_DELAY);
 
   usblinkInit();
   sysLoadInit();
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/Makefile b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/Makefile
index 92cbb4ff5..c9a808960 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/Makefile
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/Makefile
@@ -107,7 +107,7 @@ OBJS += build/platform.o
 OBJS += build/platform_utils.o build/platform_$(PLATFORM).o #build/platform_$(CPU).o
 
 # Drivers
-PRO += build/exti.o build/nvic.o build/motors.o
+OBJS += build/exti.o build/nvic.o build/motors.o
 OBJS += build/led.o build/mpu6500.o build/i2c_drv.o build/i2cdev.o build/ws2812_cf2.o build/lps25h.o 
 OBJS += build/ak8963.o build/eeprom.o build/maxsonar.o build/piezo.o
 OBJS += build/uart_syslink.o build/swd.o build/uart1.o build/uart2.o build/watchdog.o
@@ -248,6 +248,8 @@ endif
 
 # Libs
 #OBJS += libarm_math.a
+OBJS += build/ff.o build/ffsystem.o build//ffunicode.o
+OBJS += build/fatfs_sd.o build/pm_stm32f4.o
 
 BUILDDIR =./build
 
@@ -344,6 +346,9 @@ build/%.o : ../lib/vl53l1/core/src/%.c
 build/%.o : ../utils/src/%.c
 	$(CROSS)gcc $(CFLAGS)  -c -o $@ $<
 
+build/%.o : ../lib/FatFS/%.c
+	$(CROSS)gcc $(CFLAGS)  -c -o $@ $<
+
 
 
 
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/activeMarkerDeck.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/activeMarkerDeck.o
index d4ace454eaec7eb40fc3a525cacf43c0640a66db..1802f3b085328cd93a776a8c0387eea5015086f0 100644
GIT binary patch
literal 5744
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
HcQF1R=-V1a

literal 7360
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

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/aideck.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/aideck.o
index ff893923351f447170dde49533864db9a1273c0a..16aec57e1a8e76fe1f4c17c7729328873ab21abd 100644
GIT binary patch
delta 327
zcmew$cR+4}2IGN=npTXLCg!BD$SW{k-FRjT6JyEbM&{#;&o_Ir$TKn)O%7xgXY2rz
z)4=3BFu58`o&u9sz~qC;nrwBGSF`mpF)&OvV>jZ|V1NMO$%X9VnwE?V46;xW5M={p
zO9RE_ki<PEZ)8`V9K+7T7z1R9GiFQ{<Pf*bfvOM%s%Ak_U4X-s8YFRr$*COfjEa-j
za+FVA!@;xJfHQ)LQ-K|#;=$&L+~$mo43kgt)H8Za_T;T+OqhHUNFJE%$=42KU*t3A
Y)L?@s{ybTb-<(r{3&LA4`5~h`002HezyJUM

delta 395
zcmX>g_d#xg2IGf`npT`a3=9lY7-}3QPfSVKcwqw*W6k77=Hra7H+!<kGcsmR4rCQ)
zECZ80U~(3iTm&Z9gUNGX@&=fEGFgzVj@j2JWO5%{-(&@L15X{G`5++8$iN^2VS-5m
zC|ejPE{h~?0cBeP#pRI1T_(?DSGH9^5{ZDa(M?W45=T~FF!>?7xM2xYRupJH3zQ9_
zDxhqTY4S+oEt3m5#3ws&*f1(huH`6aRNnlRBbkZQf*qpf$L2(Cb4Esk$uoKC87n4B
q^42p>m^>3mewZxD*A5g}$Y;*!zy?wLeey#fFMtceTQK<{qdWkc5<*x2

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/collision_avoidance.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/collision_avoidance.o
index a566ddd75eb3b4a7f0d77ff9ac4c02a64c3d386e..3a299ee8411e64bc8bec07efde6d88af79097880 100644
GIT binary patch
literal 4632
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
YA%fTfuK$OOO7V^ScO3doRa-FrFRuvPHvj+t

literal 4104
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

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/controller_indi.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/controller_indi.o
index 45007e75af7d080d7eea64703c972389d7abaf65..904ef29c1e2075314f86453dafbd4ab999a1adbf 100644
GIT binary patch
delta 1337
zcmZ{kO=uHQ5Xbjzs%fw(+cxR$CQX`X(%tOA4=6;TgjOo_P$7kQ5y9<EY7Xs9P>cnI
z9C8Ru4;~7}Tj@y&f(ONV_aK5r@Z!OXJyqzzgMx3~o0Z4PTiBVmzyHiI^Y-n2Y&~7;
z`z5Dp{JR##YS9=s(#ApJ_Tg+P@p;%~dz0l6ih0NVq`?e}o|nmgg6)jWeh6#8MAmlm
zOh$$j5mh)Z)N7<}lKShkT(nSScZGc@><%n(@=UDX3j0;q1U%0k4j)XnSy7}$9Zm7d
z395=N1I)2I^F**KS5c$>k>?e@qQuWAyh-aEk1r@ZRQRmIGdzx8R}E|{+5#kw6pU<)
z`^4j8T!eMUzO<mpY7)mW%2=MR5VO`dHCbKa@!on0SGTgSsk0+`8<1MyUd=kzR6D^e
z_qU>|`!fP-uI*Z;90cb&8x6(%GOFp8s=^<~hMqeHm-&6m9b-L=fk&>xUgL@#z&5uf
zSjyRMg&M@k&nb21VJl~M+N56LYDH1or{n{^Gj+np8osOH--yTe{k!Bh|2q_`^mW7!
zOQ_+y8vX*_=k3lLjru{uPl)47s4CkLeY42t6mBKuL;N5tNDki2M0J&7FxOLZLxuap
z>xCp^6}VBn!0i*X!&k-oqv<;oB@+2RX9}90lj={)LKbX!b#pHX`(DF59)%<60>5G2
zI|Ccs4f3$h-O4x|ac7kws5MOAf{j`u)ukWF7kF8#r^1Y^8Nkn4-5gXP2<H9*?45ba

delta 1868
zcmZ{kO>7%Q6vy9s-DDkHNa8r_ZIaRM+K$&mCT*#RD^-!5=FlRLLYhNS57-GpJz!K!
zPNd4FC5KA%U~7U@4u~KjH9<Y3<Wi6V2vsPDR0<!0OAmnqih4jLQKUu?g*W3ddNO#V
znfLbh{_nln*|BfEvN=)l{LOy&cjTm(gQwvr6#u$5?pRCZgPAXv5m#_lwf5)OfezK*
zUcNp)S-4$xA;p}^-1sNI-!8+c{Mw_zU}+#{Gd-JM+fM1F^BDJV?q1NAcXjxz3+8?R
z!)22=_ad;rcUJSOcFbl@%w=18TjtkGum+yZp0#Y2%i9c_E@)U#`2K8L+Mj(Y?Z!Oj
z7!HeP2Ux;$nVWUllox07-T)iH>BJIj1ZUE7Sg|{lnL>Z6&B(}Fm<xu@K6c?xf3`b4
z7nqE`zt9O)f7VO~u%M1fTGqirq9_)_39&d9jk6$btk4<FjG#Z+(v^AVI#de)6A;X;
z{djn2?q0|*??rO^+o`jqM}woKgPHG^zR_R%`R=);&d@mx`{VeUcSKC<K6;&?!I+|>
zG6wLAh-!bx^$5?S(nf_)E-GbEDW8|o7gcmcMW3|P!mo;`c15o5N#%#A=zyI=L*<8+
z{ZwkcmFt#Rj~D@fc7C_Dix<1T3QiZ_dSjJEOPUtu)o$~AyUL4VJze?2%qzbK`7y#b
zoA5E-5i_+3e$6!fX|;QiYmwY}!g~q7L3khG6~&LC6<4P|>SrgoU598V@J(^FKm-Fp
ze$+Dg87myRT*DCIj@858w8Gj|e!?=f3jaQ4@`4r9R>bp(^}0@E%SyFngK&C8o3hGJ
zyl9!pEv4zhT&g*)9>k7x{=hPQ8a+dzwBxAa;-gSLrnorRIN9NR6aB(}^}bBIMG}-N
z`3m8*@kSHAML4bVgm791g0=q8c-;z0)yQ90T%2Emyzw;AD_2JEsE5<2PZIqd^+SsK
z7@#}7Uk^0!hfTQMTB|Cr7-^7Dyz!IWY~bqs0Tvqq^;!>`@W+JH7x<fSdJ<vv&(N?T
zA5N)&xJ3Q+u4uD_rwAWYyzy#Z{r?7VlhpA@okhuUx1w=+^@E;PO-u5RdIxcRAlB7`
z-WemXWbk*BFNC(uTIv=4MRF*xZSbAsaNu|wKiMx$8O^;g{~XQ5KE8wI#xwk6YB;d&
w@^Wf8bh)FJeu-DxBYY#32(2sfnD3{CLieJz_#i*+4TUbMb9h^-U-H8L0JDAEjQ{`u

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/controller_mellinger.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/controller_mellinger.o
index 9b587cebd896dbef3aa99f2487fe2d2c0b535ff6..7cddb54cef65b19595c6fab9d87ddaab90c01b1e 100644
GIT binary patch
delta 1188
zcmZ9K&rcIU6vy8z)fCdCEiIJN+Lltu28r7yfCNjaN(w|cNH9TTvNUZ&%MU4SwX_F;
zgah#c%}b024>bM*5-$WV;)z5^XrdlWOwf~_us4Di-?UpXyUBjPGvCjfx4W}*GJ1A>
zOBBvbh0YG$`#SlH(^dDG--Sn>F+K+vxdW^3h5*jVZ-!ucb{JrF5Q48lu)8sQba)sz
zIvg9|4zN840Kw{fjB?6;!iY`!=6^d`-+kHINti($Xvq0h^Ik0KE!F`_IMr3y1-*?W
zy#<f;TBBJ-CXpE|)`!YEyNXVu&tPG*IBJlr8KtI6Rg=R4by!zuw~9W;eWF_m^{eO$
zEK~m?)*CmipDHyPFsN$2;*Qa>@<X95D*8*w)o)%_a+j+9kCJ;-xrXtb(}1YT_0_x)
zyb7potpk@DE!bl6vJM<I4YM9Bm?U3_${VRs?W%3JtmG~Q)P7qQ%O;C)Q=!2c#e(_j
z%3M@lT!_tt<x~<9aw`0ICMGY)d6-L7Ez8FfBo}Zw2Xk4O>jc*tsH`E0@)gPdR`AM1
zr9N8GB-e#-Iz1Ur8K0yxFe5*W#S@YF*f@n4YI076BazsA9#V2HoFz>rGLblWYH@xZ
zA`8(<%)JWu=pV|&Q@m$h4lgItax|7sq+-$P=Pc*2r}-IvY<|GJc)#^76S3GTF%OnV
zUC3+_v!l-@q06qtxJ_hcEKp{^eNr8kNxj%+m(bwS;*?!veYj>nWqw?`BGI@=+KnYr
zFEWS3y3j`|Vwlu}1&4%N4lN!yL^gzFngywg=oIOh_niDGYosl>L#o5?q<%EIB&Nk%
zq<~ALW-O9wu;e-wh5$db^)|dzj><Hk;O-UH0sGy7`eWrE2XW1PLpTQ9a|eVz0nf?K
zblBe>5O(V@Pj;ZkJ+e2K@Vq_HWVl>ic%mE~-rS4ho@=Jx4OQ~`;@F{4--O$q7GcAL
Hd!CNJc6a@d

literal 9440
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
Mg1=vslePW70n><>+yDRo

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp_commander_high_level.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp_commander_high_level.o
index 47a7737d61d83d401a4be63be346a2174f7f9030..0c0ecc4c24696122926c45b8721e02676bb29c22 100644
GIT binary patch
literal 10760
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

literal 13512
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

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp_commander_rpyt.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp_commander_rpyt.o
index 2cbfddea5dab0ff82be38877acf1eabbb183f0d0..ccde21281f36d5cd462b7480e0f8ebdfca8fdcb1 100644
GIT binary patch
delta 1060
zcmZ8hO-NKx6#m}4(RnkCKPWjfX3zIDP$Z$i!4zrk2yUW9%($pFy=NsvQK>CTqo*R~
zBFN#kC<vrQq|(APf(H(a{j6%CLV*#aLQ%9a40O<OI(Hn!x^TXG?m6E*fA{ec2Up65
ztF7z%u)A1BWAK8EP81~MbDzpJ`J<3jPkbyTBeoiq##UvF|B<C}qCa461Z7}YLvN%{
zWw!=Ah#5dbSV2(4kjQS)*+Cqm5pf3Apt(?o#7JcE>*(c94V7w(AT`34P^Dh%hK*yo
z3cs!zXT=4?`YYIUj=~z?WDR{z7JurX0JBx<l3YG%<sxalcCDL@Na}t~Z6+~2o?1;p
zu$k`mDlE>N%!VtrRbr)j-i(U2LO_Sp&$>-FT1{e6_M}d%Co<}Es;13@xK#?<yhB2M
zUCH=@VNq#5*;Mk^AZhl)UP`BZ7F9h*yJ&fa_MK6P(S+C1bq2K^dR$<2EZ-d|1spYr
zt#nYd{))(%pdQ$5rHKENa5J4L#>}T=D(szv??fV|tLLdO!^>==0`cA))RjBY5q6-}
z*yxLBKc98}C`Jl2Qt?g-(^O-F4>~HXVwP%iNVSYwF$Q6;M#Ez}V`2A4BN{4HG1LJX
zoK9JmWlYKxg~l?kAu%r=sx8+wcA<!>^(eJQGm`LEs>TV#_r?On7n#3PwGt^il0%;Y
zF!jyxUe*<%(wZPCB1U261YF5*fLT75>yv(Ea77?L;(9J$>uTqpT}{WkE?sR$I2vt<
zv;v2+R}WAge^wXU;jCUvc6yE7)x=H3C!G`+IJJl4++_f#d5kzie1`C?z`$nKyZ^sv
zW&F3|<1327tKEeGL-b0k<UiIu!IEAIJo+We5%rdA(=)iT#~#>YzrkO)eN&5W=8$f4
z-COTocWrwga?@L%Gc6`Y6DsBt-fHOsU+{*cSsus>NsON%9OjP*{d^%W<i45hafs{r
T^=@S2tZ|c0h1vgsL8tP+k)#Il

delta 1095
zcmZ8hT}V@57=F(=bN?Eqxj#GmF;E0SaKknPzm2-6ZelZ#yy&<>=%T`(i%jS&p+X4S
z`nr%VQXyy)FHD0t;9y8WA%T;S?pzXKP*AAZsIlJfY?ILo=Q-bb|DNZ4zp)?9nd9*`
zIb(uDBkGBO8B9=^SV<KGNbE+q)UE*Y`vZJxU*P5s9FWJf$2k-DngHT1h=pH@Wc-y8
z5*Z%+V>RHF1E6qfjQEKjypWj*=eCj~F}_6%VSXvzDn@UCtiVaP2v)Z!U4*m?ATj45
zE4-fgK|}mGElGz2@bc@e;<n&ilC_YRS9QOm0Tf~Nh;Do&t+B(!fzOS#IU`BCG(?#-
zf|m)CjzU`YfFj)kWj7K`?GJ=f2M&@iOuSBJgiD)^AjiU6sQN>(Xdy_nZ71VAzRAO6
zI0POMh+AZ&+X5`PA+{kvtLTEv#%CmwwE7M<NmQ##T|pu#1bJd@5i2CpSx7U|3YmNh
zl()#U%0mL{@*xzuDkGT(l@1zFsU4f$28AVr^cWPtr>?6GClE2-4*BRLC~vSyW##M&
z_VPt<h9~}+r$>fA-Jh`oaP6>H^Z`5wlkcUqb10l$n-qZb6RcPJ8bJvU+96#{I{CM#
z3X<xOPz0qyn#3ZujZGAnsUwQy!HH44Qv<_69{Qv|cfzi(&qsEgw2ANPagsum=Q;?E
z#`aOUfa>J~#+al7?2Nw_s671gdwxwYO!MeNTccU6h5Mr7Hx+-X_>18q-2#1~3v>-#
zyLx>HF5eg(f>Cw~Mk1%feXP8h0h$BbTS`Y2Ptbb3h4a#&-eMzVe*@-ds&Y=zVayq$
zbBK#7?y!8WpJownGPFHove8(rP&%r(KskfOwqA}hc577>2hm$DG?qs^_FrvJ+0UwM
zRaNJ!{CLZU7O(O<mhT$Q@!T}cnz{|0`clp!tv7eqd}L|3wFWAg+qfM%W$s0MhuBXI
owY^-9o<Z!SQ?<Q@czF-AG+T>(bfrE8T3^>~kjj4<5`H=V0p}$r2><{9

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp_localization_service.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp_localization_service.o
index ad22cf9e6e73c1d4e86cda8d690d983190a6204a..a03ebd7e6f00533fc3ca159d6f1349aea03052b7 100644
GIT binary patch
delta 2036
zcmb7EO-x)>6u$TI(*c6aAG~?<(|O}xM#T9sSf-H<GquH%Hk49~t=3GZEn}Nd3QQZv
z6aywTA%+E$LyRF^6jwBHLBpao!DJd;uy8SpstxIay6G&sK;4iisrSBjUOjoPyvaM~
zzVCeJJLmqqSIJfnEku=SsNDHghSjsSN?q=kuwM7GeE#qIa-~7fE3E7dGI!0xb{!dg
zZ^W71-{)nMa|#<NiWqD)bSLIG8~O8O_IAya+1<VV!-_1*8CziDi7-|czI^Vr*<s-q
zpFDe}LbNfpcBZk5x5Z-d%U3R38yhXgi&N+05OD@O1&gt%{P@SC1LGG)OM34CeemFL
z?s$K0I6L_6;gh+6!Q4>xouh|G*1p*DQa!J%-ER3y`N+*Un>BJ7bD-}RT}WJZB8P<^
zMf{e5{)?YLeAR}(50fvb{8PhzY1o^F{m!r(hJ9$*C(?!##jJa_!4x`%daVL?!lc8~
z5VdBZw~@Pw+#iuU^qlb_GG-giP*8L!$2DYl*CNggZ##dbSYX9V;{{f@oG%q%+ZBQ9
zu20~cO9Pktcyqp39G$w_pT9H)1$QURyN_uvqf$Wl*G*BwcEKHwI?#<#kMQ**nnJwY
zh95#aBzzs=pMn!Yt%OlotBXXZ3H}DbD~Q{xZ^+)XDn{)+Jb=d@HTgHuj1kR}*fBZ&
z(*rDfRlWgPuR8M+a-=d&jhrgUjT?w*b_kvzxQ<&OYb6Ojhq!%RizW`gdR^ML$g%I_
zD)4qyTPMnNbyY~Vs{<GDsO&p)6>-^*`Hh)Pl?We&jleXNh1xxmMNe&=;Plis2>vEn
z^#k}_bpDXk!l}V|1d$F^+agig$y3=$YYM*)<Lu!34)qmUcMPNUU7dhC9qP<9$?Yax
z-5^==7%Lc?L)^Lp7QRSy-a@W)>qLjHt777Cx5LFB$xd3M_zlZG9q^f|&d7g~b#D?F
zm36IumDKOH;TFFaak(cwl8ECB!Rg(bN1W`Ei7ddfs=oJ>r0ut~gm>;SU+h<^7japh
z^5+rv3p@#}zJT8;W^(9;WsHk=xj-L>gT9!ebC?n?%HbPdERsO7wF4IU6ejC%-=~5@
zi}Ec<YH?nJys+C)7Ip{jYjK5f_(O{+4h}E+W3a6`z~{@r*M1*N_~hKFJ=d}|bQT`_
z<Gci}KpYYx??@mD3z`>h1cHXnN??cIgympQ^NI&k8{xO$K5@KSs86(VI@H%(!}T8!
z>j~{sqD`<FN-HZG`1hujTTSqRa2NfsBwVQ(HifGNz#mTY3Y-r2DMx~^6izEcEwC9*
cH?6jqbtWL9ryMTx<#WjEJxVGBOZuz-0EMs(y8r+H

delta 1649
zcmZ`&O-NKx6u$SV(^Dj!Kks{Q#_>%=jiWVANKGK)3>YZ{Wg4`Lp+zADqXk6?%_3?R
zEoS;8TnK4xOj`J}anWL`O-tQWixvt68f~l=LP_2G-ZgF$-NiZQec$={?zy~`zDl+f
z(=y?5{LvFyXJ6AuIS?kkoG*KP!%uefj2-C>kkPgKk1ayT1Z+=tV3v^KZ$sH<8~)7B
z&h6K;m6{80ao3Yts(4~_DWlu9w6K(G{Gp+*DL^kG+r;Q~$KG@7Q^zhk_LXB-9s5pL
z^D8C9M<}uD_&|P6xsL2OIR?tj%<RzIoV?88iky>i*prgAJuVvN9mUBBcFFc;DQ@`6
z81uCu>Obwt4h@|+JB(ZYINgtzeuj#_EBDbYAt7FSP{zW2k+GlSH46S+!D|(KTgE}2
zui~{B46p%1Dr>D`QxX@`V@kIk1#egI0-^zC7A0G)t%UUeyE7qKp+r^wLg^V-dZzdm
z#ra2rf~y*e5*O2D=+r-OKX4=HO_r3}4u^HkvVwOi_!_c7M*FcEWah9GU46SNpe<}5
zFWKr%j!RtJLcLu{;??gGL#~CH-SVkK)nP?X3gs4dr$@44mTcqX+*GR6R~uLGzc!}e
z31!NJ#Klcz=&+OS2QIaE%_${E)i5m-4m_7^wZd(QSHI~`1y>bzVu3N*g;9fHk~N-7
zDk}Trzqk9|1<CbGTx?c6>n=VlaWVUd%oT3jnNbik=oHo&YbWx*6`6;W%ub2_*$Wm7
zKYGkY^MO)vRH>Lp(q!!){=;_eaZ|0`Iam*!#D-}g6V~y@YKCDMbOl=$L%(I9Wa*eS
zo6X$;whSn**Lhq(*-Bu=sg2PRuS+~^4WK&|rqdV<C9oFKQ4Gbjd4k2zVR{BLCPO}~
zd#gKLhBus`dBOj8nvPMPV`GNfF068!0c}n2uF2M4v<Jz^v4)b*l~}C9SmbEU_#T46
zy+KqWF<QiCq_@5(SMUj25q`-wTg&ShX-jK{fjRCrbbRLSy@9x$)++TF;qJVJIXg{t
qY}&orvW0jwtxYyyB$}?@Zg2<2un<k@&F;rlY(<Z0vmwOy9rz6j$<?U<

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtpservice.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtpservice.o
index 9da089ea35df32248f3823fc3f38b06cba29927b..ff3d3d66f7facbba26f69c7a37d1d2f45fa8a889 100644
GIT binary patch
delta 804
zcmYjOJ8Tm{5S=+YBIn%td^TZih1ett$b5wOg@6S3M3p8@atah6K*mKx6WdX^2#TYl
zh{Tzp0Eq%Rj3^wSNQFR3LzN(<NrmY^G`65Zgk#rUTQ|kNeecc8&hBm<dV0{$pSfy6
zKkUxV1_lP~-uqDBjX<r5-t4bAtfv6{ss^>~h&Nkn>`g-yDjtH9i$b{>NxjA(aF#SU
zFT7*Y`}8kxZeF%mJb+2*i`Gwm1_74{_id8+NATKr_nnLRK{V-$&S^`JG7V6;-FQgP
z^js#}Ap<?Jk6FUlUCh!-?1or(Vvq16jSX?!kZWdB<RwKfU*%s@_*J^++RAMy)ldk<
z%F<%BR9RjqmW~%;!tDrim1XBv^$twjrW3|0eKxLW05r-@v;C@WL<~Jl*BPf(W@M&A
zs=RYA9D2a`$wftFP1toqdb(F4(4%jR<8vBgJo7^7!=g4C%6UWOIKS8kxh&+qSNoKx
z+7r^(L%K#YaXue*H<T;S68G)Lw%W=0NBSy2?=9sia<*~h{RTQ^j*rUL2_+p+h-#oT
zmCd6AG9ynf%}w@K`5h1+mLflqjy2RTHId#X&T1Es)^OirD~~oEwhFo}n#q`?vNeS+
u)vW?f(+{hl`Efduyo5e2Bnx_Lu$#6{Yso47)lioqwFPU%yR1a*MD9N?!h{I`

delta 902
zcmZuu&ubG=5T3W27B|`5Y<|>jtlCgi0xC2jjR7&+deMWIHV45#Q)9%UV6utY#De()
z1RJIY5fKU=Oz@ECDWZqoA}F?Ep$88scu=SZsU8%X_}=Cvtl&G$%=dls&CIe753e0r
z3f<E*=s&}%3{XIZ-MeopyCRfZq%^%VLn=OirJMleyc5d5E(w*r6mN*7X=+&>4T>9E
zqOZz&8BPuwQNaPGAwYcA0oj)5uda%vk6Z0d{FVSw*0V}yQGT+@K#Q7L{@)NnP01;v
z&}w&1vL0A8kma3DM`w%6%?1C|d_HB)71P19G#0Mjm`?+|JWY=6!JssVPb4pKV_nj*
zBsq=)5NiMT4N)lA_@`WU<6G$t^-elxX<TtWATN-(bkeZmdn>N982C&bUOJ)1oe7?|
znd)qFRU`Pwbx^wkhZZ1Z<})+q?f6{oIyPPR<;%sic@uJZGnFaejC>Jm^0*S@V|?`H
z0sJoOxGl?pQ=A>4Ed3Atmq3rAhm#x+F;8CuxW;Sd8n*En%qsf%MVo4$xoqS2*<6op
z{D_TzjdgnEuqxwoMGm~<3cFvib*<sLq6a?NRCa0as!b%S9%ym3_Z>a;3x-ww#80lW
zuQ|YLmNbglV;dbbk68%7Pq3(t4X`yKTv2^iHI5DSs8t#GP5mJ3C-}-e;SBOqLjwMB
zPmlzLwHQfaR*OkVKK=qWv<Ru;52}<f?1>5I+-Q2vkS5kWF)1W<*M7y{o`|H$U8G{v
O8<C#5yC{uOZS*ft-=s|d

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/deck_analog.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/deck_analog.o
index 6d50f893dbeb54baf37ce7cdd3f6dfd36210bc21..91cc548217ed6fadf42e9c7d258886d14a4e47a7 100644
GIT binary patch
delta 225
zcmdnNy@G3k2Ga|siCSth3=9oH2bklp$ty5l1z}|N#+njFM-B!EPz6##42%p4P(BNk
zHie2Cpox1y#T_OmGMVrv<|XFjrw65`r52^;C8th4!KA?o(%>;!k$F2~!Q`9F=A09l
zAVx?`mSiz!+%P$i#U4mb1d|t8>^TJ(A@T~7C0Wfm4WO!HCPxB!E1*29$&oDb0B30_
A<p2Nx

delta 340
zcmZ3%wS#+t22%y|L@l+64J;ZA3N4ou7*>4x%giv5fq`Ml-|B-a4lu`GlUHEADlfxO
z^gw*R6i{4bV@?SpuMCg{0;)hPFj<gMSk?x}5@KLvFaQYy0S|;?@Bz|b6^fBS7D$By
zRE7mg=Rw5-CMz<T7(2Q+$GfMNIOpe;r4|)u=I4ba=9H!~B<3aN<fjLvrll68<|PC9
z#l@*bCGiD`MTxnSQ<yXi6`-a`Gcqu6LfIh70?L*GigP20M@*i`w4JeGvL~}S=LaT;
zgvaDgW^={^lMgc614%{}5b4Nb&#3^^3jzU?J6X&*3!thSCZ7cIESMp3R+CRM%L4#M
CS3!>e

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/deck_drivers.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/deck_drivers.o
index ae25d4fe7cfbf40430df08c0f3293189d21c012e..30c0c881b5b4540bfe4ce3566fc9b446bba9e401 100644
GIT binary patch
delta 420
zcmeAW>foH95zxWJ00$0WmIDI^13Qq_5Ojb!{+hf3^HmUTVEAFiP*XdZfx+P?NE|4C
z30WS-pWMN?kCAEeK{nCJE=(em3z#G(J20_Lj$;xE5(XM7#J~u)1VnH^S;{~fBrX8u
zOF(HusJH=?4^!^}6?b5mJd0V8KP5Fe+odS8EValvzcjC8vNDU!<W4r}$t&678Koz4
zvdc4iOipAHoovU>C8-G13UUB5)JPcB0d%nVWC13Y$$Qv&B-Me!Aj|Nn5|9O%19KYO
z94I4tG9#1lWE&0@(HBq=4yeD`fPD7Jr5xIvAD|+!V6}TVR5*R1abXG(Vdnt=BdkKa

literal 2312
zcmb_dO>7fa5dPM?;YTeMKP@1E#2PtKNSjschJ!h+?Zmmb5VZ>eaj-YuMOitv>3Tsy
zs+6eep{h7IDhF-|i33Lt2<VMtC2mz)_1G%CSG^@tg_&8uN7gUiTPNC`dEcA)<{Q5k
zdt<Ry&1f2=X?Tgfl|+G`5A4Nu9NIXHL&yOA3b19vE;fMqhGGBoTCe|}#paik);D19
zmVly0-ZQY9h4Ci)U**R?b#2Bq5a*sV_21+}z56-hJ5PMuI%dvmnBOGM4WI>V{_+Fh
zWNF_t>|OlP+~HoVVUqfhhTTc(RVKely~@Cwa@;F3^DXuIXD~P=^)3+q#918A((@#P
zd5?NL0=_<yfkX3cWvJHy>Y)Q4KSHMUg$C#K`pQn(z?M$68<=R71_MVoIM!N!y&X8L
zg*6U6`ctHd=dY3`i1|VDgEak3vo%Q5HffTxvwvT|RH<Atr<X2YHJxsEt-0z39rIQ<
zG^17DEY02yySIWhio)h<5c$pMPUxFOt1w%b%NMPD!JKx(_AEtn7cMYv<xSqn&lN7l
zhnM=|vp4YXU|fPe_GSP&{f#r7m{dC&1KefQPQ=Uo`6mh25<Iff6u7LA{!@V;BF`p0
z$2un1jo9b3I-ZzoLG03<#!%}>I&P%kbUDZ7e?vI)FAJK6@N|!3{Fzuk5dN{im&Ks(
z^?QD^RrkW+t{?WSCUWb@c?dc|WL+#4iV!<Bzav9%#X?+A>E7u?s4vy7luNbxm1^~?
zMW^nR%C*Hh>U(MRUgU<9H-dC;$3#nhG~|j`)u7`Im*soc0&h9+_Q99kwl8L4cY@}T
zXT)n6f1==W-jfP`mW#-k=fhzbzfBR-7YvRh@SKQMp6NvXM~QrSKB`Vf<fuBYr|?H9
z`QHg#)qh{$s{Vcozq}`$pVTk!k*fcBik?>~{J*B;pQe6ns(w@8s{Wk7_kI3}{G@(Z
zy?gD*T_GQZL%%Ac&|h<{$X}0Od2ZywTIuy*HM{M$PuKeYF_UOmTH<FeCbr`@a9!vY
z%YFarXJ~`(v@H{aZ-|RNO+P$r%+FNvo}XrrY>FPn)o;>=N?*=pQ{m4DW6retqg<3Q
z*<V6=3Yc?F0>aDwHx*p=PkJ%pNal`6cqaTo+WmkY*<a3om@rj46Fn8+3tl8l_La~v
R3dYrcFAnsQOcY+Ne+OBj@P7aR

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/deck_memory.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/deck_memory.o
index 0afaa076b2ddd3bd7c09c5f11478090a4a40899b..7cfb235b728e034da496ff631cf8fa7f07740d15 100644
GIT binary patch
delta 541
zcmXv|KWGzS9DUz?m!x->LK|A|xU^{s3MPY;Q@M2U&OcigO+^F;uc=6-Vv#H^n#3L=
z6tUqKq`25Z1{DV-F4-bF2rjjQgNuoqqbXFQL;Wrnzv2CU@A2O6dk^*Yp^c-g@+Lzp
zRUgI4<|s~-qPUPorBF&CVT;+8Fuxb4ugokzQgLx>kJYx0qwh~4aj=HZ9WH18aMT*B
zXaT7I<#;K{l|n~oOvD4NvFf(Gvu@v)G499Zh2)sqzY@XQMj0(nbNhhvrOS~m3cmxl
zcW&aDS)6fSI4JiXAZdLV^Gyf$F7>J~t>Eyi`24UCt4LYbm)!Y)9{@i?ZQ8mj_Wz#y
z;%F69R=~djw*${&2{m~FxuD!4y_05gYb(ixpmzI=y}l%B8l2}(zt62-hLJBz#>$=D
zP4hc9vO%IG8Tnt5p>0aKMsqwZ#rLVekFlrCDu2w_a~h9)noNMf<H9apJRG=7wTMpX
z=q-8@-DN&iV>+u3ura`$0eaMp=|`>&vy%)^hWTJD4|P-MiRSc(#@J2DD7LZ@4PEEy
zhGMf<w5>P-y8>U+tm;Ue7!}o1Y=^d0N12mD^GEuj+RE=p$cQqUO`bYJ%Ub#$$gYX^

delta 606
zcmYjMKWGzC82^3mUH)9sl;#?m^b&IyaflrpQswMoF0orcZ0ewsMi-$VsaK?fm_}O=
zTF~%{6cyTvi%t!7P;j_WaZ<2gr^MOCh)8g#?|LcthVRes&-Z=L9ebF3oTm@%lY+8|
zVVs#9#%U*r852uYCkxGz*=3k=Vq%~4Ml6a;TfeBaHHrSg1AKm(f!5_{b+|sUZJ`ff
z{V&IBrYu!E5+`Z*uxsb-{&WcO<soHOAF=!U0lazHz&kr?OHXmnfZeM}Z7#8?8))>(
zhW+XU(uL+oQ}*|ICiDU_xS){)Ok@kwH|!}1Xa~SgA3Np=w5x;OTYemwLRn&)z<f#i
z?#l&~z}b?6mUmQ1d}PMOnmnz{<hd4FImJ5%>&?0JtoH@CY^~-L#EDboGN|&xvil`B
zx7uK-xy3IVy2DbHKP(mf&QlW`EE)B@!sI4f`z^}+6g}CU=Z}cq3JQD@%YnrB9jVYj
zsB>A!H{>U*h;Cp-aTadh64!%!bXUxTlC*XhpL=n9hxy7h0r7#!OFs_Tqj95>RsUlb
zL_3s>Ee@9Hk{#Xs8j6x!&<$Iv8}zj|MNYNYdoJ31Ow`r<QMse$$raz!BFl$`9yv!H
faV1hzZN;~B#CF6|&B2goqAR<4*ypOErW*eM7x0hc

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/deck_spi3.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/deck_spi3.o
index 6cef5099a5e88d6f18fad4cb8483cbfa6cc418e0..f285bfd6d8f32f42e0f7303547139a3f3de51337 100644
GIT binary patch
delta 182
zcmcb?{ef$O2BX15O?M7PhK5ND3=Nky&ZuBy<e4nUq%11Lz{udh00AOUI%jesQ_18v
zOv<VjP!TCc1_o{@8$<;liSthOWnRq~GWjR7Ip+Z;h=jppOBQp+DU%CX?1AJ)F!_<i
fp7R4#U%+HbR&!1VsOq}Ol|bGHD9>tgC5t=&vu7ZK

delta 280
zcmeysb%T3?2IGv0n(i8ZtM{$^%giv5k)dJIXKsd{!Zr*-3=9pI7#J9)JYW{q`poU{
z^KbQ`6&oum7#VdYe`Hi<6qxu?ShfJDK!|~nApuB(fCz+QXa>?i1tOCjnPP;T^YhX&
z(@Tp|!!t`Vf(uepQzp+~(y(LjfGU<|WMJTivO!b?lr04m=Rpz&Sq1_ialXk<nN~BF
zOrFSW&MCkQ5%-vUk=dMa%fye;lT}z$AdD0cV{#{pJ*NOr7YJlbzQ|(ES-}M1O`R;r
PYR(w}HNk4KAd5TzdAvMl

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/eprintf.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/eprintf.o
index 24a9c03ad96d39fcce2611de37ecdb5e63db38af..ec0193939c4e549c940a0154190ee4856dc6f8e4 100644
GIT binary patch
delta 344
zcmdlX*TFGCLxO{e0S+9%EC&V-26l$Y7nlq<7#JFY4lu`GoBV=f9V64^jXa{0r*Mi)
zKENq4c>*Wf<aL}vntVV#LJW*>GgP1~5vaHUl+Q8wBbO*|L4J8^5kqQ0QD$CA+T?s5
zS^kpLiV_CBl*E!m2EC->;>jy`0+<-2C;#M;XR=_JEX6A)sR%RyWIi+0Bp6izbdUJt
z1WuO8Yj}Ai)q%o5_u^G0APX`F<|4Q`P)79RKu+PwIeaRjH=rUgnhnTjpS+Y$n{xxy
VqcUK%Z}?O=&p<^?!6HDH004_(IP3rb

literal 3896
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
bQntlU&9BBNz{5)V{p$a@E)A&enfm_$?~B>u

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/estimator.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/estimator.o
index bb2534a8bf8ba11fea5662c1c8fad00e890d6dcc..c5fc42bcb53129b940d5193fd1308dddeacd92ec 100644
GIT binary patch
literal 10384
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
M!Q4(`aAyAh0BnLD00000

literal 14528
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
G_5TA=rcw?7

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/estimator_kalman.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/estimator_kalman.o
index 918557966a7be006a2dc372b37d901723bc6d3c9..d789768199fa22aca14ce4b1ed35eff56d7ddb1f 100644
GIT binary patch
literal 7520
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

literal 18520
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
Mj0-|!DSiw5-v9tf_W%F@

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/eventtrigger.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/eventtrigger.o
index e4144b488bf46d96fbcc228e56ca1c1df6e48c70..1f4e3cffa29c26a6d827f39dad58a60cfba12bbd 100644
GIT binary patch
delta 255
zcmeAW_`y3tgJ}oLM6EI&28M=92bklp$ty5l-E717g;9%x0Rm<MDIo?%h5{&G0!lA~
ziceseT*SP5vI2|w<Or4mFPJi6Mg|5Js8SGB0%gmgiBEuvqpP0+G?sN6(*lOcT5M)q
z3z#9wZZJ&FVl!iWF!>^*^yEEkDnQmpHu1?n*ff|PFicirx8rmGnhydqCTFsnbKYQr
T@D5L23FK8k9b`3mC7V0|0H-TW

delta 518
zcmeyt+aWMPgXsk8M6I&=ztwwJ{$*yE`1m=~ro}U7e)=5DxKfybVL}p<!_TkLOe>3l
zbO?j+=_&u5Cr_zko;{z5p|F>UA>=DF!>TE441o!Y7$!2ZHUv#!S~#1Dfk9*eBSXkT
zX3<p%Kz-ksg;y~!Fia^1s;OrZd9CpOzv%;Ju~nag9anyhc3Szj`mpSZ1I+Q)#26Yb
zfdoO4PzkX3#x-9UIp+Y40D+m44VlE1764g742%pQ1OgHeieW8~28k;$PCmu7oUOQ|
zC^@%aasji&<mJqTj3tv7GK))AK-F3T_3}d5AgW<9Ba3+b0jP*HP?jIc22)U*gn={*
zk~j-gTn<fK0f%}OsJJMadIr7X%G{E~$@MHVnG6^wOR<`91wiewV4NJqYQ|K+IN6a=
zZ1M_L4Z#AaAsjG=Ouon}KKTc$1W1t(n;qu`sDcfXBiYP38<-*LPEDQ(<aMw@cvh2V
HvdRMhr4w<}

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/exti.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/exti.o
new file mode 100644
index 0000000000000000000000000000000000000000..3516a2e18f3561e995313540a1c816fdbb97360e
GIT binary patch
literal 2552
zcmeH}&ubG=5XUEtzlsXAq6msUrD%(0*-abm_Ow!Jjfm7zq0~dVO|~R9zu2r0MKEVC
z_Tb5r2mb)UgC2{2fr5JWKT!Vxb!I!$>`v2@9(`eV=KGoV=DmGyvdPoA+c$<X8IYEN
zchFZt0p1_%`(EsNFbs#t+suIH`T&LV&|Ac@?pC(+^_<Cmp^M^xabaR5{$Ka^iuUAR
z><7%x&d!+e`8)T_Qma)jSN&SkthYiFRReQ9*A83jwK{rXxmt^Ya`Z3^jBDj{dE0R<
zCvV36u#rR0o|qtRIff#RoiD@(Kk!C1vk!j$9u&+DtSEpieg?HHX3{OLv;lbzW5-OQ
zztrw%oM3kz!dciKN0YY`C`J?cPjT=pbHn-w+e^%C)-uyHb5HRi^999Mn6E0n!Mv^b
z6Xrd|pEJiVTij$luTfpV=X$k`cXsM6^EZlrV7{gJC*~g&|HhmwHJSH2`ZVv4nD+TE
z=Cak&|0o_D^&jB_6n=)eQT#G<Tk#p@p5nKdFDSmkd{yxW%-f1TX5Lf$8S_oWA?QXm
zs|;gZsCA0XS_EU2n8iK?mx4|NbIVIbyHs4fd(&@L>OmL-M}xculNwBE;Fby+Ifat5
zYc9Jq>(}dRetCnZPRV>aI+>PJX<10it7&;HEvM7cO-o#7Y8{TFv|5;>R_3Us;iK>5
z<HBTf9M4T^j*$2#6(8aLnj7Xi&)6RQ!RkC}ME)AuDBQMH@xq|)TM^a<SQS6=!CLEd
zz$&*Iji4EEzP~jF6HuuhP>DR&FSw2+EYB_aG&;0Lo&d4@KcUN-@>8nq_cwsNS1&Tx
zzW|@ryqqS^AwJnFcu~&1#_Kd%J2;k@jaRbC{P&X(eHov$L#hu+o1x7MqwN^ROFus`
gy>>*f%0EpnWg>#ul!Rl*2959X{?Ejt`ZqoP4*}{|2LJ#7

literal 0
HcmV?d00001

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/fatfs_sd.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/fatfs_sd.o
new file mode 100644
index 0000000000000000000000000000000000000000..94a84779ec66e7628af426b2383a01447d1b6ec3
GIT binary patch
literal 1248
zcmbtU%}(1u5FTSxK&nK`3DHU{2nixJR%{80^nij=$^{_=?WH}q8^=*r*m1kwh?EPw
z2|4r~dhJWlGq2DmfLSx^SSz2(NcK1L&EI-vlk3Cdk8_R#MjZGJGt005_j5D7Q>YzS
zgarV0(Ej6wf7h9Nrytu60e;*s+^(4z+h%ZcW_&u|!Fn5SVZ~uiQ5TN7-S=$g=;Sl|
zlx0aY<YL4InPh4hvxDY$nGHmOnv8}*#gQ7zn6<s28MOSi=Lc+u%e0AFtI^QB=QHi`
zTfy$^d+IbjgL(M(Q0H@NCj{U^Wk{7o7d^JTEQq>E>pJsxI4mQxQt7)$5u3!nBHQpj
z@r?MVegON#w=Djc_zv-=&KKfOi8p;<z||lR^S&3s)&$N!gnf};gkmI=;EA}3ODb1f
zjq}o!G4GegrNpI`mdGNNl$H`{EOEaPfS3PF74IP``GiBGsd%Em>vP4y>*YCkQI@9h
zNYQbh4R5f5-qH)JQitqs7GKVX_zgszZ{L6^`E9Uo#5M-#UHotUJIvKJ&Aw4BWJ>sz
z(17V*#oAj<0eggcKKO4?oK@Fa)i0DKeC)GpevgVK+Ng->YpB<#)aC!8eEVl?=RX42
C;e59M

literal 0
HcmV?d00001

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ff.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ff.o
new file mode 100644
index 0000000000000000000000000000000000000000..10a0c4f1d4604ba816e0db6a6857c86071fc2c10
GIT binary patch
literal 30784
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

literal 0
HcmV?d00001

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ffsystem.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ffsystem.o
new file mode 100644
index 0000000000000000000000000000000000000000..5d56696b4edb40e6680db1076b1bda4b8caf52f9
GIT binary patch
literal 888
zcmbVKy-ve05WX}O6p4imiN#E`60wp<3`Gn<6?8#NFfpaUQ6e=Ba*WhYyaJEFTku>w
z0o<jw8aZaErSo_9-F-g)ecV0V4?GXd@ZcMEkzoPW9WrU@1V(TOFrUq?*?9i=%%19c
znH6cdVtFl@Dg?U?-ejGZOY~$`luBgkT?#hkaS(^mlt(cer?Lvr3nvredBi9ah4Iy{
zx67mL4B_Y3mGhk^0PtbpDo5V`hadL&Ja0CQ5*5z?c(bWgx<FKNi-qx&SS#SKsY-z_
zng)1QSCv?){(}24XDFjPII!f26`Qd0d@Xg3GjaCGlQ!F*Z2bk6jL`PgU!s=Q4AHtH
z(ZNfXMBnu9qU$xkwC+<Q-47Y<mB#57;0V#)JEcP1;8@ogFnvvYf{sgnqYLftYwQ02
D?ol`x

literal 0
HcmV?d00001

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ffunicode.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ffunicode.o
new file mode 100644
index 0000000000000000000000000000000000000000..380e51bbc37405693a0b4adbd6f8f37b92754766
GIT binary patch
literal 2936
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

literal 0
HcmV?d00001

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/flowdeck_v1v2.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/flowdeck_v1v2.o
index 6012d21e811d8d93803f5d6f8eefe107f06e9adc..7338442313cba619b4d3eb392a2cc97f7e628eac 100644
GIT binary patch
delta 1895
zcmZ9NPfT285Wweq`@r3H7g(3&EzklnZ32bTU9j!a!}=Ck{@Ar(TGO6<OS)@VrC@;8
zf`@Gry%_@;4;*Z=9*oBH(1e;0;(?kTdhp;u8%aFuK@&}kF+C|4o$q_|ZNBaoGJk$E
z-^{$>@u<G?;QVHPU$O)0$5oaK9T128fcLbwFYpt7B^Fu=mOFL_;Ox8wTYWb6Sj)n~
zPpqC7>B43VU<<$<D^NnASp}PSh6B%R%LaTYn0c*@vgDcb6^xL!KtO^0&se*pC6_<)
zXnu)o$*Tgt4rW9d{|HWrbxehv&bt&6U{lyXd=oZtKIDihu7{??G(IBxt(}8VMToyJ
zd(;s&eoiu`WVez7N}g3Ri(6qQb(LyGA;^WHZrxD)*?&3`=8O;UQP>e5<3V`!#M_I@
z?_XXkPL^+%im*xs`A}Y+St_rkSdU;KavJYNhE5er*WaBiFBK<N%C|}@<Lj5^Z<N5B
z%Fm8x^WN;_<mKEI?@D$&pYzabNkk@cuU_<~=4NKSnb}di)sl-`zqztfT3UO3d9A#>
zgnKO`Xt%akI%rP2K0Uw*wqwL!AUnx^KkIk{A7b83T<1vSGS_w3g$aWX08})GX|{9&
z9mumWMh#ABNLs%pvhkq77ulAL%?Epr`STA<{cm$XHa0J88imYFd}`#Ie4BaWChi+`
z=!xs+fwb^uYpk-%Ox`?Qj{`hrTkp_i|B1o%D=pFY%=HRg_G<<=^MCa@e%TsL{mD7c
zuLmGZGs)Aq&Nkd?b1Ll|ZM>B<Zpj_#U+&Ay^@N(InK$k(Z`3h&H|O&T$hTrh4d{z&
zMj>;RMWc`$$mKf=1~*r;$XpMq^Y0kkGTvVJkOT4whPk*@Rpxqs?81FE^yV~wXylul
z+hwi?Qky$Q4Zh_-<LZ9EH=<7Gk48Cjfj{HjsB`icjyC>n)r^{hcsxGZMW0V~lD+~#
zzT6jmY~P6w#|w-X%rJdJW4IqLiWHvgI79MHB|lQ~8zp~JGVaJ|&KadI?z%Hb_7}=N
za6ADxmN+8>mJ=SP6A7#(67)~yUt+K`(0Nrv{^rS4XVtRWl{iuj`;%<j_+8gID{0|j
zSEeZ~M^-s=-ThYD!j0~XH66e`Qt2ojlG+X6g<~1(Nfb9o?Nf|Yjbai~?0Cldhhn6D
zw{eeDupJLcO*i3%o{Y8KjvJ)*n{clubEL1?pQ2`?)q5@kM}7AmW_!<vuEl-tDW;lw
F{|8n+-5&q|

literal 8096
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
JsoMPZ{{SPB0>c0R

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/gtgps.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/gtgps.o
index f80236e5061f3295c45971c003b503f665d8e5e0..6d444a023c27a6df47613a2a61bb6b51be4e1208 100644
GIT binary patch
delta 1519
zcmZWpOH30{6n*ctf&L&!XPg!iJ7UF&E?PGTi7739zzDHw7bGsQ)dGzMDHP*M#D&4c
zMVrfl7!!?g194;AxG?@!YC?hw6BZ`6Yy?**{z!~?Uwa29^(DRM&N=7acW35Jr`u**
z^9JaeqYyTN_r$eR>!<mg!dQMrutLeE%&&Ly!uK;`?q@UG(2$1@c71Xx#R^e0Gsb47
zUSV#l<ljVe<0t;UW8n{*HXqP!?~69?yz~`2V;v?2@+`{)O9Tv-of6TGB4>%tTRhuh
zXWOR#Y$l3tcecyA>w<07SZdX53{B5bT;1H%KBD;(B82V3&|VXVd`<h~rJ6M%))+Lp
zTK&7QlrtN~%2EmU!AY0K+aTi#`MZ$g%ub5TE9)3MLeFt{<LVYG*v@^K_rXnfH}8jc
z?vQ^FU5#jNAbXK;6u3v@H_CCQ9Pi4we-8C+?CYl4-o%H*JE;CV;iGcxvvOQ0$M-Ud
z5`$B9A$U;N7Z}P7jgBXh;}_UKckhX=Snt4zqeo94Nem=nUA;#JAYR`Tn@Eo3_8%L`
z<X9@hQWJxNtju($bLWPWW9;0ek?~6x)A5PQWqNchGm;x*S7g^iW9eir4Oi=RxL0o^
zbsEfzlmC07j0K5TtN3<{KR~&JgOoR;U#DEcVJOvW{x~sGZLz5RQk^s(PIc|5rAoI{
z<tXpKZt^Uc>k1{3H|LksE#hVW-IPn1spOMP3au95HRaU>ix%GM|4qDnh;~aK^VDsx
z;vIM`m-GkNWaUCek432cN3#av<=e3G3i0xetpoXpmp8D-(nq)OTkk>cA0$CeBsU0C
zkwLuNV27nqn0Rv_(;p>XZfscmJ;eX_B+vsNydJowI$&7w)CeT-GZ)HU-UticX1{sh
zbn3>jlbkRLNhQR4pnx$BFO?9SRUGh3F(8j<s0O@1>_=QfT=F(RTy=0AvZ@A8RD<Uq
zm(*G=`Z;{w-sbW-EA1Br?A6-DEQgd95i1<-YZ2!P4SyR}wF6>WK#LDGH>7+K+Y7-U
z=2qc}&k$h`ETi%o4gQGe@jwb;+6MO#X6s<tA8{_yH+BZTIJ|JMDX50&z^swdfP?IS
aiKcx{o&G%5%igC=LFcc!%9MAA@%#l(3HCVv

literal 6920
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
HhdcNmaHV~n

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/health.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/health.o
index 05f25bbb5fdb1c4ce84bec5c2e30ac9c2746e803..c372474f5c42841844726142477ecc464d68dbd0 100644
GIT binary patch
delta 374
zcmZY2F-yZx5C`ygNog7=(udZxc1SbS#_Hyf!67a}1(!%c1AYiQJNQNs3YLF|baQl2
zP_pRg;^5XIf{S$Q;Lx!kSg)@*d2qkSySsO98YR({PszhZh3FvNqa#DAvS^*Zi1vPo
z&sWhF>76+=8bcvO&lKv=;3UqGxz?E1R9@-cnI+oZ&#d*1r>sjm_{fH|iLw<^1+leF
zOKHdY&Kr{~E>}KNRqPO?vz+>l%25l?u0tp2x(+68P8Las3@`tSQ+QQ}dWhI-?XC8a
zb^lGj>E1~DrJZUske)*&)<x4R&{i6IGm~}^*8+R8y7;V$ek~w{K`o>U$o07qJ3^No
qW56bm^^gjP*fF{+&$CTPKeTTOi%s{4{lGphE^Z0>e!y=Ae*G5{o@1u~

delta 475
zcmZ{eu}i~X5XJ9WNg8peVjHzXB3M%wv2}<AAqomQ2(1Kka4G1dgFz6~ido%S&Y^>g
z&_M^mkfp1Ow9=`6fK+g|-BMKQmqa8EF2C>I<K4Tjl6Uf@6gt*S0<meY;#O!FCP2S<
z0;4g;-e)jO`##(X37Y_L1;r&IlS{;ZmFu4IVBCE5^%mW65~|eTG*n37H56%`pT|M_
zoc|aK0Z*r+FIcvhV^tj4$mnpa7moH<_6`astOo4&_+=!$#<?><0s%7q=y50D&jtKl
zDoYak{@--*Cmmz{Kp<_>qa<RLx{MDrDNE!?QLMXqy!p@0o0sl*{PdC$-mi48&IZ~?
z$&y8C%Mq%{QCy%`S;R%VC-=jcqu!J%$fBRlQ8uY!iHxL%6|y{b89S7o*3cn?@s=#c
mL+W}?TG6mg2IDqaiYC;eep8)#iYk~fUtLo+rLr9(rF;YM&~Tjq

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/kalman_core.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/kalman_core.o
index 563d5e817e9c5422eb2458c1eb223714987d37dd..cb23373c42718a47fa3b5369a9c44fb790d9b76a 100644
GIT binary patch
delta 1212
zcmY*ZO>7%g5T3WY@z2_+*7k1f(rDL-LrrLmjZ{j7pnXY`(jHoc5Jg0)h#l7lloSW2
zsJN|U7X<_ohnnF4r$P?UR2(Yx5~D6uQ7@o!i3IYEKqV;R5;aJ~h{(*dcN_SmnQz`V
z^JZt?{xs4X*3~B}8$oyk-i|l~Apkp<zFv9zV0C>*h8lzF#8v>BTQc0Bl8?x)$^bRc
zo-*0y7wfaLtR@4uvn5Y$c8RC*A3`m!LMo?%UAYV^xyx)NH==A;)|Bn+6xdc={(*X~
z6W4w-re^^DV6E0<Wtr8t0=&6%Y3=$QdFDq^<{F#6KC%4QyAx|SKQBqzkSWtheULPj
zEUS$Y|12vvHpqUF<tJ4Dy#mr)6>WL0B06dD0rQ=IT9X3+wnBEl)rz{E72wStx)Jbk
zJ23$D0Ues-y*w59;AHAJX`vvu!|xqWo%JP6LphPsC%GNZfPFTsS)g%yDeSSvd~s9u
zCCm}30biflN9@(9-=0X$8tVyJk>|NRqH0$71Z|cK>obpLEge2&Y6IN9AJnZvkJk!i
zxIL?Sti(a6Z$Q`@_E0=Z1C4{7;9x%v-c-NhPl3*x2@UFT&bFVvBd2h)YgPaL-n|!u
z(WBu2)uY5m@wVsot*UoH!nm4YNqk9-?iC3JGWduE=rr0mg;&%lJA<F7*9Kkf8f6$&
z=uVBRf9dEkykbP~Pydj&-c~&LO(1%}?d)tK`j#wAom`0bN1%Z$7=7+1ibVEPArV$P
z1WjV0XPu3A9bKoj&@&Q#7fgiC6>^KGi?1yfUM!c2Gv(X`40QJ=MslShER>4*c4|1E
zpSk$|<y&Pu)}7qHTXO#VZoznQad$CQn8)SrB>vj{%&EED{JGrg$BL!GXdz#Gb78*l
z%Cs{U#GGIs&9~1LiF=(mLb`i`LW<)Xd(yZX;!MM4D9wU67*4YoPLtR1eexRC$@}nk
z@(S*aq#4{g8R=tqL4Oq+dR%Hq__uy2bkpCtM7BfV$6+Ha#bhiQNBl$dp$hb3*|4x-
z#H5Uj4~_l(V<d{Bb@HO7jR%e}&hRV4#7$k95@YjD_L0}<D-&3dIxJ@JkhzcFJ&u=2
w6PL-5{TGM3@L|sp<KwQ5_`qo+x;}<u(F6Xf(`gXP(P!1F^P4&Ycrj}J3lSg!1poj5

literal 6104
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
MC+&Jw|MUC*7wAMKN&o-=

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ledring12.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ledring12.o
index 3c84e8e04e00618f008fb59349a149907c8f0fc7..ae25ecf6cb0eab30aeebf41ca9074adf9523c367 100644
GIT binary patch
delta 3989
zcmZ{nZERE58OP7Lxqu-_YsZEgJEqty>YNgSP5csjCfJY?Qt|<4kYLi3n8d_UAaRU?
z2(4r@wNkV(HR-ce={AXE+Dp4tQ)s%a;ll{1s`#);sa7#mRa4M9iAvEHRyHLFwmrx9
zx#8q$xsva5&+q@d-E+>huP5K;OW)&TK4m&_?S(t4I#<?tXXc^$UIk?B->S5>MAb1i
z?p@&H2?n3pzfo|sL=)95QLoBuUN@^^X!l#$5X0-FLq$!EwsF?+G4j-j9~@7f_)V@8
z`OR0Se&l_e`jc1X<sUPC<d9X3?(nmr&FK3x#>OYzEzuhoyMwWz1?{S9(yc}(J!(|6
zvw^X(DfD61hUXM7gSQ<0HrIiX`x<+~82i2@;d!pO6RNiU!}$!K6-0@%Dvm*33|c6&
z|MDkQGp=p_Rtg3~pRunwlCug+%yzP}{*1yp%8)&I<@fJCDP!Zc@#O4R<!q&qZ5Z!n
zi4~D!XPnPoWlI0OO;=r~@19;xu>E%gzs!rrzba3xJbC5TJDAtu=~Bl96W4g4Vf+7!
z2iln(u9b}iRUkaRgCB))Hc#NEC5l}TFXC;B;|g{yj!FCof9obOVmR^o@oO}Kdx%dH
zzd?MS_>vw_V1FcGu0r?hq5_{0_dKKX&vnE8Mw~sXgHMUC5MLnv8s*u7Ry35g>5lc}
zzpcdGoK2FTQa~*QOjph9-5FN+Co_GungSEgTMKDi7LK=SxKaem5#K<-;I9+kXyQL6
zzRARYLEK{Ezti~(tbzn%wm+f(tBKFUv9D`=cS)@#wU%!EFT~@fsDBbqnEd}kJVTsT
zifzF*#B}6=`v#SNsgUzs;5PWu*UGm;pstngf)PAN;bz?)@YkvEu+9N<y5;BLL7m25
zFP+Cq=O32NKNn}``<S{4lUp^t=Pb2;tEApV)y8Nip)x`0Uxljt9UIvN<-NJog}(eq
zdtYw`%Id!jZ`Qw22!vU8symbJIh5*2cl4c0H$*~#2<sls<<bNB<LMqT_8a5YTsl1<
zNWdTm&JLGC_OdgSfSn!eemQrcqp!QaO+<&HEPL+dd@7$V4a0txK9|jp9L%J0y=j=-
zy-f*5;ltfW_64JQl7oY12XibhWTSyb8m`t45-`e#AkonKVt6mh_jO~<aDerW<OWam
zVFSTnq%`=ZK4@a6b2tI{f%N(FD2DuN$B_V3@A+<}z{6+Gq;n0Ca0sUN{1z_y<8Z_8
zocXiAPT`*eZ`Ak#OzqXU6#{r2FP)2!!t2*c*P}4rs5!6Dx5QT5DY$7?4+q>t)xA*%
zLd6waJ;sE}KM?1DpH{U7efn2D7+WN6H^nZ&v7pvgVbNX9nd8JowzE>U+nfKtzYnej
zHK)H^SItp9B{fUi-(2fcu!S^8ge=e%a-TRSRa=xI<XKrJF6s<O{_e`B^#>(h3sYEO
zK2(kK|4B&Wlcn<)z{8sJKE;Un*@7|E6t@V0u-3Ljs_0o(A4-*sM@$4hHf8frHU{@1
zTANB=$woFqwV1e%qO8QleacmQ@BllnH%0j=DhS?)21g^7q){h9%HehLwM%?}e1++N
z%Mq<`(p2X#d2~rpa(6uvACj`E^aEqev~iaeCVrG+tU3p+$=2p3ALEXUSPyaY4An|p
z?jZ<6O`5Yw$|motMWGg!)=@21y)pBXR6$(yCO@54;-WXX2lqPMr}F|c2P~{p0Kdvh
zhcTgD`jDx_jma{&#pHjI{H<&JYZx;G2MMdQ3p{486wg71LOt*xs@dwL#HAU4RLl<b
zu?lC<oPpxva4e>^CDs&vy2snsiF(gmhqBFqH>MRnl2kV-!rYds$lO|`JDJxlvko66
zZeIT@IxjGDqWe<7nr$W(komIYFK?vBlE2I?cKrtQ{nDrp#M!Y%c*_4k+}JQhn2Os^
zi1jRz(_NFtMdAy@jV)#HFC>4twfm5YYlTHpSN9KPdniST>SM&0O;rr8mfpWv>A}d7
zuP_zFjr*A(&8l;KMMMEZaIcfdcv~_rt%Kg8%qv?>T=<I>Y@)&*;@eBS^QllT1)L{m
zVOoesF(5DTEO8g|VTr#gb9hi=heX1nWNq+L;*fKi_KAlAI0h?ty#VhfI$g%=y7BdG
zsO(wTnQY+r=9|P{jid##NuSgB*J7-*;p~BHNzG~e<rp;;numKyjeB4vxo4~K|At(c
z$Z!hw9rzW`!<Pr%;0_o$c!OJJqAfc(&&-^9v6m}F4Q?F@Zz=B9gDjPxw1$;A4Pvd$
zn~h)QVYu8HQCKxxZ*5j4obU*Z#|5#&&B|yDE}{9*1=rCWjl&}}OQ^LqE5$fmLbHq-
znhDg<Bx)e`5<=9_jMl()G$;4LBQ)>0A$Fu$$?S(qXqMb?{YdlHquce?eDtOxmZKjk
V+jnigNIyv`B-<m(ZH#Jv{(pvN2rmEt

delta 5401
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

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/lighthouse.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/lighthouse.o
index 0ae8aed52372ff57b114402443984a3391433275..0723a497f8c8465a4ac89fdd0eb883c4a0cddfc2 100644
GIT binary patch
delta 917
zcmZ8eO=uHA6n-<i*>tm;-%Z%2HYKHjhPD_HwL~OYgNFvZSmLo5F~!D;BCS#=*u-N`
z4KIft<3X@T>0M$@JzBxiLl5F9N1-4D3HWAzLg>J}@4aun_cJs7nUmx}c5h_@M$582
z3t|w3;qKR?p#-f<4F(3lL6uwi4ujhyX)}rmX<LI?fR+y$KWelk+Wcl?RcO-CSgmr%
zUuxE1xZC^Om7bgt4-Z#_1*ok*+ax%iXGaV>TtP*O;dibWKKppwMDdiH$v9CQsI|K)
zF3#ao$@GWpNXGjtfo&;nS5iFb2p901loMz8SBmi#U_ibuLKd(SE3%WQj}koR7B=M^
zE8!Q}WRGpTY1{Y0Cih7eg@7jp?@2#m)R$vtLW6x@c&Y}O9e7!PzOlXW`t8<w`Bi-z
z>RSSENtwqN%3b`eykk1P@tZ7yv#Pl_=@z|47dJ-@0H$5vAb$MC(qp`rE2xai=SiP*
zeF0h5Ph6>U&*5Vr8c(?*0S{=bxun-#Fy3t$DO0$nnyDE<yKDSZ3>v|fY9ux9n9v(R
z<a7E511(ifIUnlCuGW|kHGEDrHLz%V>EnDL%vc4>+H#=lKFK-YzIKPTsj7)pCgX*c
zq3BfeA|12(q<ZL1vw&rNnV$fD&<p%f!Jb}Ve=sT=7!NM-Uka9j1(wBTu*kE1>``z7
zS*XY@KbArTwu8-3F>y}U5UbA}j1ZXkGqk97Wrz8PkLZ%q;f&hxJIp7WxzP0gjjfJQ

literal 3944
zcmb`KUuYaf9LIlmn`jmP#aOYe+D(m;YO~}H3%TOMCYL`aoJO0I22?Jay@|KxE_>{4
zB%z`wC<?wLH27p6g|_(6xAvhzzz6%R=yMf>zDf-kA?WY7Gr!zqZx?)U!tL)jpZU)3
zH#@U4yZLy!Jd@32fJ+8$K)1#e;O>K6-;P`x9)|()o;Yb5Kl5+@;&)f~4cNLjpSd~+
zu(_DE3p;&qc6Si=!Ypi|ejDR&qTL(<*y@MQj{x>w4XuH{Y`$}zG;mDXEb993_p1Rf
zes&7BKE*zyv(cW4`oi{~*hYPJ4Y&p%`}KWjU;52Bdad)3eTno#O1nE~@0qAs%tGPb
z{KVD$i{D?_F{;0mOBex5L)0o>Qv|XGP!sM7`Acrud#@hW{k67u8SCxPZ&kUG#R-<?
za{Gsu1}=XkXZ6-&2_i&zpZ}?RlA@}o@J<Sc*<$gWIWqhDTV}=g8*bh4R?THUFvGeq
zCq`R=zw9;83*5RF3O8H}gjuliqxrF1!OG>$5hrMlqBnN>G;u3uQcG?ue>N?l<TML?
z@W($%DkJg912FI}sTde3ULJ{noNK*}p46-sU+-x^zb=h@GrIQj=a5qzUdEe|4nXSl
zsInoCCZmm$M^;e$h?K#CvSbXnPpe7Sj7%?|MxN31BT^n+4dCcqXhv=?rz0Sv>BqZW
za6H=PS6s&F<<xAzLrT>(X5{wrIpi5lU+Q+jIC3>L1n**n=U(Sw3jaKXUryoIQ~0eE
zzLUa#O5wk!@V}7{X!Fb~G=S@pbiZd(_)H3i#=-GrxiGwbaL|>U)mlTqa7|OZy6T1C
zwIdVKX*jvIyo_gJQ#AcxV@fPTwc2t5r`eWAU^jNr4@8-d(8D;2R-G-+O-_`nb2BsZ
z)0JvvVzNA4)iP86iql?!b-ES<;e-NS%U7^Y<B(uJbVARSl35W}Ja?t&udRkkG%Hp`
z;JHP=*~EK;THt*kf@*g#@i9-~5kJ##+I10J2=K7ehNCr|7mhwfTFV=O-x5LSiT0ao
zBG|x%)XH&Ok7HW>Y2^<h*G~&m@h4;ajN(UQd`$5Z$d4<Z485DEQ2hI)8(n!n6F;Hx
zSCmijb^Vm$1>`(tLKVd+?=#9L^Nz-!)%c?Fc|81F*EFub`&x?Acyzw5aT+Jb=_pR)
zIjMXyUufJ^KACOhlU^U^w;CT(KAD@!kFN_$=-i}t0v8?^@nME&c@GnRUgNr+?#ond
zY)SvHVq`{?Pn_n5<0=fqbrz5RloFcCl3vfN$Jd`vetuX##tE(VMl*Dlz-otqv~~6Z
z(QvF#tcPILoX`Plsoe%E@To%boHdSB5=8_(Z0sdg!*`tqbKI;`(T=v_J6eW{&Lu1Q
zGP7Jf0tB85|3fh`22Pdsrj<c$Y2dc9Z1goCMthFt)5f1(7SyJ@L&32;ia&CB-FUrT
zP(1!6bVT*T=0hcp=^UY$Y5f-u_3q|poI{6V()WyBIR7~vqR->!ameqK-uxvc7)j~R
z*hVL5{>C4Wijor2{Lxnu=jZvmfQ(Yb@4uz;^Ye|8sBnL-(?2Ci`8x^usW12E{64az
z{8v<d)^omi{r!~uw^e@5L-$W#W!#_nCbFdb*H!)!w(EuaGy4*qr2D_4@-HeO<)^Pa
z?$7zZMn<U)&JFab{H5~0EvpAtg`++Msjj~dSh%3zrdn9qcl5rE=ci%D*PdeB?WZfi
Z3MZ7+gS@I5{imDM-&UW%->@*H|G&aHTMqyL

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/lighthouse_core.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/lighthouse_core.o
index ecff545b6401c3d5168e88901a7791be8b908c14..7a2dd26b484123793b371a898aaff4943225a9e6 100644
GIT binary patch
literal 8744
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

literal 15968
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
H+5f)*zI!(X

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/lighthouse_geometry.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/lighthouse_geometry.o
index e038d52e549332cbfc5452dc9414c74889d931fb..1d81ec6421f72d261ce63da238603e64dfc57caa 100644
GIT binary patch
delta 662
zcmZ9I%P#|Q5XWcx>toAS)N1PyY(k<U^=v4IrX((0grfsZB-*4=!GZKpaTJoRaquVD
zb@2}nj|(>>+$0r|I7(>Z((wCjXGKi1^Z3kfzBAePrmq@3oR7KS*AiBi058aJ&gLK6
zH1=SB|LYefndRK6QD#tBa3&%jvy!0#=xYurJTuk&WDc`5=P-h|P$)4lx%5Gi1<d3)
z6hyw|PDF|<*kvZSD}Wbf^0Ja^ur>2BJ7$#T#*K3B>PRfdTBggQVHGFN&j5haI{2?^
z!8=!|v6CZ-cWbGoP>iDF4oPurbob_`IIH8YY_ql2iQBU_-y^QkzzW4P;yTs46yJzz
zv_d8hne<X>J%w41+SjoNtI5s&o@i`v2(qi`rS!5@!~`A?c$lzNjNrE?h(%BRzC4LJ
zd7{;ljFPa*7um-O6hpr^Bu(Ru+}>~h0KqfDack!9eU;Sm8<Y#K;A_>fFHEOf4ZLux
zcv9U^m7*m&;C=OwBPF5V6+}%5i*!<ni?E}_1J^WtNYTS(6ns*;y$h_eilN^(?ENCW
IQS>WqKT?Z#V*mgE

literal 3440
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
MkFAa)o6G3nU)ZNo@Bjb+

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/log.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/log.o
index d388b0a20bc1d902647e1c836fed71f449d25265..439845cf17de60698da633eac99bc5a7f3a505fd 100644
GIT binary patch
delta 732
zcmZ9HJxIe)6oubQ6{1vH`xj%2v{<z`*`;<+V^QnkpipRID(E6rTm%IL!BQL?h3nA8
zK{tN}C6myhLI*+o85JB_(9Ok7#KD)o`ye#K3->$s9L_zg(DE%kib-YtW_Z=tMo7_P
zX8biuOQ0$yEt!wX<q+LAceQ87zD)S{BoX2vlq~!B97g_zyokJr{0lkpa}YxQi#&|n
zjlA8#^GC!!Z3_Lwg~EJ*Zyur{h`b&!rRjGGKGTcl<ZQtW)vTQIGB-PnByqWb?fP1{
zXf5_}ogBbjR-soAXYVz9XBAc4AvQ&_3=260k~wFWOPJX|3f;P*&fzVso{Z(`mhm7<
z?PQ(;M079g=}y&+ieD(0?1NKXiHA@PGF7y&7B*~o_S?50#azcW*9_)azlzP(Y=K%8
zHrWL=R9l<eTTKRDY?<~Zb>zLQ;S8KCK1d${ST_=#%W0ne>VXR*L8H(xG#Z0Q-g;N^
un)IW<S$=}b&|s(sB1>Aw&KUPpVQp!&BRR#VK{&T2oliQX#=Y=oIR62UYGMxn

delta 1127
zcmZ9KPe@cz6voeeZxTmF8lC4{CquMNCb>}3nWCH-$EI~E&Yve(GayC<P6{myW~3Ga
zwHP@r+NILMH_<|dK*5Cz7Xw8_rMPf0fr~alAz~AZ_O9=|7~Wmn%l)12eCM3|-ph5C
z-C(&6sa9R>oKVu0*$u5C!~CHtX-xpRcM{Am_XO6*0a8D0FyhwPj?NB-ndXAb7X>my
zM@d=xBSZd3X8BqGB?QnnY73MXYM@~{Vdg9M-%2pD+!`o<m)-f2+?)?hPWuMH_5A6v
z-wOZ>nd6h2y-T{FB=dZ`9%$E1L}0UW(wpgr#)ILYcBl?$N6C;@ncZ61l*e}j6Zg`|
zt055+ys)5bF_yrXyTB5Kdj94j`&wA<|0LUsx}8`bF&O0OZ3&<e7_{k=iq&?y1C)pd
zh-Zi&5Z@$zo;Z^YpAvB=aR>2Vrk)uAx4~P$$qkUDgbS3g$P1mJJ*j4T=27zD6rKsI
zh4Jt`r)Nwtgf894MmgfRgAEbRrttPCXEPX#@JmHfw&==Wm9k{zI2Uo%3ojq3IxrRC
zX>)XIr9m2{$<o0C;zD1iI|ayXs!CtY%_lVd&FV!%kB=h_9`iYc<}CS%V;`6FX&rbs
z%DWZ)hZL)o`uXoe-0Wx4kiiFJQSSLnQ89(+%8Y))?kG?1QB=I0=_k@J)7P^0e1*8R
zhY{k!CrtIl@ubS9x_ZXo6JR#IMoG^o!P;)t!cBdSxOIR<;^#y|*cE#(z2^8g)>jv}
zWmKAU;k9@l+s9Pg&wk+Q>Ha(Jm)4rGN9|`tOsRghi>s>N?z>^+>|$B<+MR>OtqZS?
SdF?B4;}*lY>n?l|cl-l@hrFx+

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/lps25h.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/lps25h.o
index 84fa40873ca2032d205250dd5704f8b79e77b0ca..bb5120c15be34dcbaa6241b85ce03732f9420391 100644
GIT binary patch
delta 124
zcmeAWe8E3KgDHb`qZT_OI|~E<0p|E?n-?%DFfnpWzR5gib1jQ9<K!Kz8<>7DOwM96
z<NU$Q00s(^SF)KiT1<Y(W)CD4*+FC?kPMl;klmhh10zJ$hRHA4%{ddGdZtcRWD=fi
N!=b_`F*%V#9RNAR9_s)A

delta 287
zcmaFC-yt|bgNcJ}qZT`3J%htu2?YhY90rCE1{MbX1I+Q)7R;O*w4i@Q(ckL*D;v9J
z1v#ErUi6olVImWQx||{qJ4h(VF)%PpNla@BT3EEAh*>~Su3_K&poS`-y6S@~lz?g&
zER^LKK{SVw9D{_S9LQXt9)^OV)Z*gOqErwY1U7px3NY~kZ3ly?KvH1xMn;jziOf@Y
z3i8X-pb`v|9a+RT3$So7@@g<b#H4|=&}3fL-AplzlTWdlaW=3(BrGO#vY9i^ne51B
u4<s9b<bufuf#jaajO_ND5=;<PCnkHcn{z&3hVW)h?qoM-+%fqeyE*_}nMK$D

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/lpsTdoa2Tag.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/lpsTdoa2Tag.o
index e230a4e697b3232b837bce6a0be3b47be4c51156..d43febb0b07ed7d6c278da6325d0c49bef418882 100644
GIT binary patch
delta 290
zcmX>g{Xu$y2BX17&E+hN3X?Cgh)WtUK!5_2wgS?O49pAxlNnjt1q*;YK_CwX6ec&a
zmW!8`CxxWsCmMw$raR`O=NDy`WaI)>O#aU5$QUr$l1-m6WO62ujF>zVNXAS)2_zFH
z{{)gLlQr4(88aqF0?C}ooj}rH@=hRWGWjKtw3sZ(q0eYD*%L@QOs)iyE|XURNsq}l
zfuzr5PELKGt1W?~(&S7asWN#ckW`y|5=d%H{s|<tCTnu(GwMu^1d@82JGsIc84D&q
o<lfGt!8UmoPaETg$%?$@oC{bX{%M_@2;|-1g788nFXWa70Efdw$N&HU

delta 244
zcmXZWF-rn*9LDkc$=&5$SDYYd8064!2f@D~FvY>aL7|}_2w#GmW4(dMt@tjvwN+y@
zgj=g^j*g9Oj=A-~^$eefXM5I-&&GXb-dq0co5#|xRZ_1=^S?WM`!&+wnx|kw7WV9z
zap>%XnLK47yKH2Se9Kv%ksL6UXUt{FkF2s+c2;L7_qmZxUgaSxnGr?Kj%Z7du`Dr@
zJ_{MLk!AAOS<FZ#Oy%zTJianJr;>b>egnReTYKbUrxo1=#r+8nS}$?2E?I6L`~kLQ
BIqU!c

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/lpsTdoa3Tag.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/lpsTdoa3Tag.o
index a4f95e6fb180fa842b3c89e970ba2dd9519a60f7..c53d4cfeacc3c4957c80d684098aea29271376bc 100644
GIT binary patch
delta 154
zcmeytc7T0?2IGN=n(x{989;z};zH5MGK?a2LO_ln12b3<L@2;mIR(WbDfx-UA&KdF
z$qXtf45j5sFagJ$^!%dCl8oHVc8pStf^a=hy&RJ>neurLKzVFHntk$9CT-3HMu?F5
OWJzXo#`ej9%<2GOava(K

delta 89
zcmX@W{)26T24lrU&G(ZH7$x`^atew=Qt}gxLlV>Vk~g<8N-<7WU{aWTfGL4@0s{oF
e0V%f0y3E>~28<99{>h2V=A8CWp6O&oCV2oZ*%E;O

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/lpsTwrTag.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/lpsTwrTag.o
index 2616de8729482728f3332653b089c5819c76cd78..993ede871d5fae48341a6473b2a430189b4fe8e3 100644
GIT binary patch
delta 231
zcmX@0@<C;S2IGf~n%mhJ8zw(w6PN5@fB+6CZ3?6r8CV!5OcrE+F4zX-2?BWuP+5h^
zAK81wOUsi&%8No0(;ait^NTV|GIGJvn`=21Gc$HfR^-uVoG>{MNOn$c1d<acZv>KE
zlOF=fNs|S6^%=V-I|9kclM8`l&*X(ba?0e3K(co-BcDFw)Xj!`>WqvVCP(tOGtQX&
ukbgVlgUK@m>X`(1CQAvnF=|X+C}_?p0Cn-q$q#|N20n-jGbcN;$O8aemOEVl

delta 189
zcmeyMazJH*2IGN^n%mhJ6DB`o6PL_jfB+6CZ3?6r8CVz!CJVAZpDe)9ws{@LB4);n
z$$>ojj0KY$fn?_7jX<(+@<Sk*HCd2XpRs7NBaqCVTnHqKCocq&Ig>8}$&$&8eEN*J
zlMR7n>E=W}bw<X9$({V|j1`jw1-3J8n0!*8p6LPiWG}%sMuEu}1<g5sutVI@Hd#=}
PoHKwA!pofO$RZB_7Nsym

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/motors.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/motors.o
new file mode 100644
index 0000000000000000000000000000000000000000..d29acf81fc1b6dbcf5043b849c920ef2c38a5667
GIT binary patch
literal 2640
zcmb_d%}*0i5PxO;79$uB1`fUhF(r{rTQmXVVFeY9R0vdKqDfiWg*NGSo85;(I9N}5
z#KeO~O+4tuc++?hZ~g=N7kKcf-igla&cN$q8xA_j?#%q&Z$94i?d!uU(^q>k8Nref
z@5PSCs1SVzcWfs%9dS(bicPEh?X<MM^0Sw}wf^Z%MzrU)Eb&x;hE&hcmzwR6y|w=N
zHLfir{z<H{SN^nhY`68mkGuBs<=FHKq(@1gOLU}yR$|3;@gdW)KK9(`K@aDGh6T?f
zc+v#d(&T^P?X={GO-)W-klCr5w`3^@8kL$`Z_1@0l&a>*OCzl?SgJR`3M;j`@+xX2
z^yIi*7%AlP<95Cvvu@~*fR!5_M%>OzT*>DO=ere5aGc3L@#{|-%St^-IKT91Sdht-
zBQcP6A~DZ?lMZJRWjBtfB@UqKkc8h2-`x)eTSEI7C|i<eH{J*98I8X|d{mY=ta*t!
z2<n73H|`)yIOaoPd=zZtO9Vj}p8y;2T#O2Fk#v#p7WvG-M|j)7mkH;-nSY<~7Y6?^
z`2E_P579b&>@m(h@8fxl|Ng@`>z6Uk)!_c2Ji-rD5Jq-I46TZxswkHm!EzLTvB}D1
z?|QSYh*t6<Hs?Jx=c;-@D;jC4b7jKwT11*{xND`L>1l4!YXsFbp&)S-tTd~lI8&OL
zn@<=;mm<p{mWrTfhx#6bBizq>06pCWztaV;5k6q#;d$W|uAgE_e8!oV)$jqbQH^Oh
z=HYoe8jgJaMP@Y|`KQR|{;@9dxo*wiOY&P9j{IKo+ZvAfxo=@dYrb+9L8~y)HMT;p
z;o8buRl=^i$`$rv6bU;F&_R0M9%C0YlHu&w_;+Ae0^j$Vii-Y&k`N19@Axe+or5os
zSBctw^PCyL?;mIEFhF{NuCxX6@m|C_JYSyw8N$sQ_B+Ly3Ulak797lJ#{VFa*)P}U
z9C<J>XMq9I9FOa|a6I?nz#`f`Itgq^1l}hvb3FTazaiD^e~jWcm`K`;zXo{P{5NU-
zKPe99kGDO?b6>Xs!%{hTbooN{@9H4f1b1k2?--IL@CoUofE|a&tdIXF=H3Ak?{HHf
ZZxgls=K2ia9hDl7A0bFNQQL1b{x6he;|~A;

literal 0
HcmV?d00001

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/multiranger.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/multiranger.o
index 53d37adf73b7b073c1279f93d845b3a1eb655fb2..bf1b6da25775c6af1817eff673138b1fdced94e1 100644
GIT binary patch
delta 1324
zcmZ{jQAkr^6vywmcS4RC8=KyH-R9kN<K9inS)mB(G^FfpR)mlb6ATmz)Dnscu_qsb
zc0E1#Ae2z#hEQt{?Lkm`DiSgw^daIJK3D`6)mviUclQl0i#_arzVrWm-#O=gyEk=d
z`(jE1Nsn~dH#v@b_+_QL{j`3oO;rNINBTRsy_`M}IQ`cJNV_>Mb)Dz*8?TS*e=hUs
z$$NhNy;|wX(36JX(f38Hh5D-Q2aD&AaB7_)xHBs_1b)Gjd4<#9tuTb@%yV1-1)kv=
z(MPxgUg!4Vp;+uk<1DYjCdT+N8_ja_yr%|+F)N913g1d``2~=Mv}Yl3y(ID+a0v{`
zA|!L|@>zh-I9<C1@36-!!go^zTp(+&sg0&~ntI06K~t}pI*Bd5W=NUqIjWfQNx15h
zNIhC(3oHFwxa+@*<8?XIl$hMXM)8u-8rYhKJ{(t?F|TyslH!0xl8Gn<9Owu*Aa7=U
zEPF#U*gyz~ux+jlbG>J-f8bi6VM?`B_OVN#9W{&JQN|xE<KHRc&;Re&nQhh?aFZCZ
zG~U4eART=tD4sLeo^}!&EqivEPls-@_`jJ?YaX%qf6-Mh0*B-EqHN;}fSx^W+2g|n
zLPLzwj>jxi!w-Zul{uS4Xb|OLMyttLo8{~Xwh%hQD4oq^q4#l!(3FMJ$-CK(In)Ww
zm(V^&mvN2IPbD<LsDVET<%B|7ypsV&Z5RxZ=PjX0Mm6jww3pGEk|(-~(;=~QjM38P
zonbz`;bvBkhLpvR;nPr~t2omL+w}xpVNqVR)TMV(q)XTn7OU17ttHh@;Fa)6Imw(D
zs{(}3D@o+C;VB^BLW|mF-zdCw++GDvsI9!yhFMz;uBuvvlm1tzN8PiU22PA<aq@wU
z5|uEm#rb>)ziC~Nz(^!cUZGK<1DGZ%;a8%MF%pg2IjPXwu;E0s)o%C-=|14gXlv!o
La3P(?tg8G2T!`G9

delta 1603
zcmZ`&TSyd97(V~3S;}hbC1+MwXI9tUS);t-1<X|t>?KIEkb+nrf+CY$v@nWXgC2q)
zhrh@NA$<r|DNyubv!Dw-7)S~Q`XHpyLy!;J1vC;nXXYq}rJaZGpYwg+|NZBjVV2ql
z&kX9YVE7v{+Xx{K$jwG%^~<ZqI>`vvsM|MQjBVS9@$(dnWf3yiBN3zbcE0iZoHTaz
zZMre<!(?!zXOFY46<hZBuOcwe0s4`q`_Z-)AKB80uOMQNnDId4naMI|jmLI&9zi|H
zBzOg6_XJ;QB+{nQF0$l4PZYg?xr20O6z_lvBlrYVZHRk=|M7m@*^zM_d?|ZJLPZKq
z4N8t2=)zG&hLiYQ2{>N^O{UMVRY)_f5&;s#45tjCDZjG?;0K0t7vUY2=gBZ{;<}0Z
z(V&cKVyTHuCbpV**2ECHU8Qi>e1FIgBQ6D=;s9mmO!l*h-|@X`(RQMu9Utf4I(V(U
zv*&X2g|5!)r@MPEb)l<ZS|S8L6jVSNf+|BZ8mf$Cs*={hcb-R2;>BZX3*OW05XEw;
zM^$^8m+P#=Om-=bon@@^lb9p)ESu`r1nQcZ7}4y-;+##vtqWOpY;w!}3cqu<W51x*
z3VeyccO>BZ67WL__?X3)5H?sGu*@5>Xgw?pUcs<ihHq@s&UNl#y+wj&6G!Qh{tD_*
zLABGb#vYb@z<M<?oAY&)FBN!&^M~U6F3z**WrDxT;`{doXk4sMFrYDRz^=bJ!GI9w
z*#VM-!M#FG62b1mRA(Qja^kE*XcWrMVWA;I2pYjRRE-KMyQfC(n8gjM&c&(6xw?k#
zBKl?G)RSCwU@KL#ZPs%4Mt6UgDjc9{ZJZk9z3n(j)tg+6KYRpNi)7S2nxB1-3f{v?
zly@+`Qs5`B$s;?bg*>+D5O>5d?2(IK3VRXNWzOf)%qo25se}-&dSnPrZF%|uR`9yF
zCRJChtmDZz<E;h_H@pFg<vxaCiZPs|sN;q&AccytLT`W|hILb*co8=!E?~Jo023JY
h2T~o1mFU=qGydvSE#F$&B>dyAPATKR`!H^K)qh^I`lSE>

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/num.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/num.o
index 4d9fd5f2d3727fd6f0485968050b44b455ae3d73..413d95c8446bf5eba5281680099e9e1bd956a610 100644
GIT binary patch
delta 240
zcmcb>dxL9&hIj-s0~|PjSq=;w4D1{21sO#cSQz*ZFvnk$S75#h!XWnK7mOv76PU~x
znI=zU5uH4RNo4W?Cb`M$n1m*OV2Y6BfEs22q=gt5859^H0xXkPGTU>cq$Z{$CFZ3}
z_GgiuT*wkVS%8&g@)Z^tMwQ7QS>zcNCkL{MGo>&BO%|Knz$(C~K6xUtfXL)4tRjpl
olV7sh3m$+P46}f3vL%~7=L05)b&it@*~~c=p?))+T*xX90EuHVS^xk5

delta 617
zcmZXRyGz4R6vofZO*QpdU)Wkq;?f#aR1jZ?rr^*;C|FQIkd!nk7{SLNI5@d0$Ho6Z
zHyvHX`WJLjx(W_i9V>)*Z*yY>FI;}-eEGhU98znmc3zDRUdix#%tmEG9F)hE9&$lV
zUG>kO?|ll_I;*{Q@biooyUcn+ICES#egFLRj%odxPT!&%WxXtM4dzuuE}<LhCqOYd
zqN@`Gim+g)UN-0Q8839_9c1WceX1$2ms|!x5e!594uV0n$thNej5RWg8L1ZwQWEDS
zmBesE+V7lc>;W*(n7|6@i!Ddh@G7f%fk1(Trp*wrCLI0vA<gYNu65>s<L)0iV3#es
zWF6YzSfvvuw2zB)nz3C>;4p<g#MtpixBvLNnmX!qSUxTvShz&D`9eg;TdI*ee4^S`
zni=`uF`I!#rErm*d<bY^<ntBLCj~P?r=pMG;j}z9z}^3!e9>%bTI8mpfS`v*@=8x$
d3fn!gQY%*E$@qg9wT^XpE?y8{xQKPC{Qz+SYq9_U

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/nvic.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/nvic.o
new file mode 100644
index 0000000000000000000000000000000000000000..4b12e11efccfe6a33d29b2460e6c9234bbbea697
GIT binary patch
literal 1528
zcmcJO&2AGh5XUE7K3Z`ps0RcGe5g<>k=1S_4y}Z=P)J*ew1}oBBwA<VHY@fc@;WFz
z0TPeEffwKz=#c}j0Pn#Qz|3~M*;+Y)7|EIc{Khl3*Ur0V&$|n)7FcV+SC~bX0-Sp@
z9aS=dC0K-S-qFu{!uw$drdF&b@8<tU4BJ~<n__Ky?@;uMB8^8f$;C;bg&8UFxINaz
zNs^+{@hCAWHWRJHhTmy-f^fqRJ7P`htc@yIUnlN|f-+&yc{n?>tLPhDfnUE}PO&%l
z3leX9#73cqom^Y2z`UEFK3Co8a0AJ$#=5rS3iD;IuzVF`%Q#iJ5PzwUU})z*Vjehr
zpLyi)*UVoye9ZjV;UAb&p3JWM2{rBKJwY_fA%C01ehjPAO6}%}frGQMpTuvDc4R(G
zl?H=BS1a|hzkdLGz1=#oBlWN=C#k8)SSPuuG4xc{les)q^@Jyr@^ZytiRsJesTxd9
zdqrLs;eMB^T?5>~t6XATIlny1j2wVp8hznMR%w+=->9hpe<+Ove^8d-$3>Q@+%$Xq
zgBDmzuj`uABjWg@!|gdNzKeqHBC>$}F+cI!98-T<=i)sBSbm?m`;Yj}b*`fxO?!X=
z_59m<dgs(Lz|l0j{;MWLZP#!51!oS0f+u`te;pYO_x$u0+`S`$b8h;Df`-|3ExL(f
OUj3Berk%*%t^Wf6ZKY8F

literal 0
HcmV?d00001

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/oa.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/oa.o
index 56905475c647a3ab8d1f2f64a4f28ae20a0d3c6b..01a6eaf2beefcf71cb6fa7049f7915a76e786669 100644
GIT binary patch
delta 632
zcmYk2KS(1%6vp41jfOP@q9$2)v!JBfScu_@pn_{7Xkp<WM7Sn`h3P!hh?NR=T<h{I
z#7csN*~Wxz6f9zAshyp%Q&3P&Q9;p}-JH(Ae7x`Xz4r#@tiRT`Y2i>cqq4Q*^1A}g
zzey~&18gobaF$BwJpE+lVhNn(G&;{IcwI?@0{~kH>l1ZFb46WOlCJRIJkj9sFP={`
z=YLNy6U<&I&@JX?J11~e1OZ66v(vJVyL8LU(A~#}=EamssI|s>#WDD0fKc(y!z+k8
z-l%$sI7L@28s>%4LZk!#`kuU_$S_h{w20vSi4KHuj!xnlF8TV~*DYW7gzCr4e*)SO
zAQY6o)(Cle(MVG~?UB+tJ;b%OYbouO(tBxV6X)}MTAW9Ti}Jp~Um85Yz1;sMak<}A
z{B_M>@PRCiC4XSW+ejWT?4qomQ?00<!!G^Ob1bjWcvF&Uy2U^1Mz^_U3>z&f7&bdi
zkZTNzfTI{?QZ~+0fvZJjt}(jdIzk!K#u+M@wtCnc>^`NcnN!yzfh*Aicl%o4wyCOj
FegZdbiq8N5

delta 738
zcmZ9F%}X0m6vgj-<JU9_m1HuRNx&vu7+u&H!Pr(hp|s$}jkTrX##snTgB!o0V3t{C
zxGoyHQ8y)lT4kUVO2PgIvk?pkjk_)_rKpQy-+MEyLm$kUdw%bobC2$O52{)84hK}W
z^|}6A0q5s4tVaQ=%M6^A3_8DNS$!=7&gvdG7fHCfxQh+|Y$KGXT1vbj=9Z#0gumf2
z$>;Xa`OD`r?B6Ui{czQHM>#Hb1i6Q=i_}u|pwKTqQ(#b(+f%qHLcWhR>=!p)EFq7j
zy1rju>!Q&;X9sP)r~JJ*CjS^9c<y26I^w=NpngNl)7M)%K9;&b>Bv2-$oZ|*ckW{3
zDMlyr)37#eFTZ*+U$Qr!FRd(==zaIPo9!9v#1h#t-PmAq2_z9<$RDMaDXr;PmAWJK
zK<bfD<1|P`d8#dxYSC^~-?|KS=0dli_(tp+4)LxK&xiQ!fQv2doG<XdII$2HtIh+S
z@cAfc{{>P(K=5#2Jm4nhBlJZZLC^i6ePCFm-9$mH^vHGK(OIIv$_fp)$0=uIu}m|D
z#kIzDf|`cKUdG8ZABhXo!X2t{tx%KeCo+;2=4giN3Dvl6P%~+%CmnwGC8bjZ)r<J<
PBiY=IC4BdW(njAOrzM*a

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/outlierFilter.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/outlierFilter.o
index 4027af9286a3fb491bb98c413a71727e14af63cd..58a074805d869daf741fabd5941f9158c42f13b1 100644
GIT binary patch
delta 574
zcmYjOJxc>Y5S_iR<Z^pKV`72|NecD+LPP{X&<kiMA~t@2#uO1n3sJGMNRc0)zCsY}
zZLDl9VyB>BqgY#53APpr?j{p)Vdu?z^LCcmt##Gfjstv}(hEtikUWZ=Oces6%0kU7
zzGQRev)*r_k`PhqYic>JU*8#yAq<qv6dtVPY23oM)q!^_fzWoaW;d|vYs_HRb~?@a
zO*&Ydbt@EPl7(A4g?77tWUQ{(Tqk<{%Sibm|5ziP!HAPyE-R8yokFfh8LO<%Gnb5K
ztgka~`fn6(C4*I>03tGo<wy}9k#V`PwR2G3n=K!fclNR5PKzWi++h_T>+z=^hhkb;
zjg1NmC$Vh^?+7)|Le=Z?H~$)|1SO|U<RN6*xFmGQ9?^?}OuJ8PilQX52&FnIlg1O_
zTv<ZxcLUMzydp2NVgk2bCg3Nla7j<3rRHQA?mCBppEk(Aia(iJ=Sjc#kgH5Bxbg?w
VCH|p%<m1`Xc*ebS8Vwe;@C)thTO9xZ

literal 3648
zcmcJRO>7%g5P)aBPH>wDIi-ct7JEY-l2*jB14s@+bmKHhkqo7YDMcVT&SqU(wX@E8
z(;pR7M+B*d9$L`@;nE<eXnN`eQ45S(xD?b%<pAx0g9}Jhh(l43pb{a>?7o-0Z0r+a
zqTQMKcHYdqx9_cUVjwZ-ktE<E!Kbj|aSEWe2)1pi&<ZUepH{m)<#@N$s#a%WN&vR0
z)v?&)0Xc-eFBDLaX};}&xZe{59|Zl%_CW2{xh+@Z)b~L}{%-Mjb$(HXGj}^Z1)r(}
zC?CwkyFHk%iE_l+0}|%cC^wXc&-*$8l(!GL=9h!*tx_<ebOcTTB=2^{3ya6Ux<I)l
zzY<WqYIUIn?k~vFMQr)(I?PXebiG<7f5#5yKj`=h`o!T;M>heS_Tn`M>irL~_B38)
zfU2aZRZmE*_?7lRlNXXHfXP8G?0XS=XbwSzo`C}2rhG7|U76m}j?Z>^A=>xPQWD3X
zk-TbU7s!V$dLVgKE)PpSsLUWgu@NTU_ClqG{5;mw-hAubg%<Tb&Fh1#_Bqw7y?SoT
zbSqT(JX0aNc3b}MrR1HZrAKZoE+suawL(1=(2is6pJZvL2W$L-&!yKc3@bPf%8Pj_
z;+oO>_)#ivz<zeDyq_=T!Pg$3ceF4f%`eDs@ej;L>ohkzJ6xXs*p#3%Fxu>_$2-_N
z_@OO02b0&)z9YlV(PpTOdDIHkO~J-PU*kH7WBI(!dZZT11C@o5zWK%DU)t{x*KuD^
zh3Gdpmm2o=8_ofm%ELVGujHfLxPJY4M<;fXet&k>*2ry*NF{DeS^1o9X2>QPo6-*H
zR)py&(>+W-#q`sV*0h9v7(h48-88Ob8O4;4Y?@#lX|BTv{onk726Y?pa)Wpn>hFJ6
z=^A?J6(wmHc`cjHO(+?|RIIG7^mP|aBa_RcWop@+rEAudsVlwVp6;GVv^N~>QM%G*
zp&P9T9ya9Rs6tPok)CH76?8a#gS_zjQoSg-?iUI`#=m+ZV<xw>*?_976&dj4yJVy7
zH{xsSI`M1k(q@%}et1L&<J{-EmvNt6pVq{YeT=udIJt72-R1PNcGsotJS+S*%je|b
zRaf97nj3`me~vvm!??=)Q*3E3q3>r*RG&29pEclD8}M7m+l2Stg+9s8cu}7>Ss#3z
z{$#wy_(v2>!p`zwE^p~(ScA|}2#wQmH_Y9+l9is&bSRqo;hZs5a)Mr%7}t*iZhsum
zpEpYSZatqq)^AKrAfOM1UbKhdcSFxZDwQ`5mR3F)tLp7f=X2v}OHYm)>5*KanAcbL
zv+B8}7fVnyj%1)TX<8Y`q{m7bNDU?S#`_Yfy@P`z1IbjfFP<1kvF_{+N~=>2>m}V<
zjd+zr?qJr+;ym?{Bf4I+m*;|g2iS`1=IkX0TyDUxHQ+Y|zKPkS_`ak34-5PUW<P}7
z{?IeOCUAZx2+?~d>BacXj%nZTG5ay(VtfRBl1(nYrvX2}xI6z}jJx~iCy4&VS~+C^
zid_}I1&s4E!uKz6>Yw)-bH($ysRAd)_xZ~Lr@9LB4+xy%`Mb;toZ@*OMS)ZNHs+TF
zPVo`upA<O7hnWAKz$re){5gTsTzUVO1WxfP^DhgWuMMGV0;l*r%!hF4Siwq<p|(s%
zXSrqKc@10oQ47L&_|gy_E0rK@8st!TG#o>hg7D~umw)WTno%g|6Be)VpR|Ib@l~(d
z8<bF`8_JBw(fsb`2Gd(n(>kck=c>!+STRbDvJNjY8D2gcPcZKO1-r)TcHwhT_;}8q
zM1z=n{5>|_-LLr0C`S}8>Z^wwLHPLn0wa^xXVZcKWMsSR?_uCJ4HATp=SW4P-ujKw
zf}xaIA#!P7@$sAKA<76|6vFpEF%pGM^mWHwzVp6C?Rv#_Y?+Ne$sVppx&beDed^0S
gcS_)6|LASwg$Sa!T>R~<KfXo<QQmOW^4&fDUkW0_X8-^I

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ow_syslink.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ow_syslink.o
index 30460c75456711b5dce4abc6e960daac2c45e3e2..73b818d0bdaca516ceaa06e5ad0130ad64c72d49 100644
GIT binary patch
literal 5616
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

literal 5944
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

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/param.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/param.o
index 30cf4e65bb813b56e70a9cfd252cf9a569b13ed3..650a7c70d74bf3fc7b6da6ce0798dd53dfd01b25 100644
GIT binary patch
delta 2990
zcmZ`)U2IfE6h3qBQnuT_?Xqx}pSru)n5C6;3tPw<Loby?9(-tFA5apz{Df3fu_bEC
zkM1ru(Fi8H853Vfx-~wul?O>RvBU^8Xm}t-F&g57xnLiR7*P@1HNbk#otZFP?0q;h
z^UXQm`OdlL?mB}L2Z{+Jkv!A3t7hQr<Xsa=Hsp8Q-fc`S2Pl4OK<S^OtaNK9oBU)i
zl%}skX?~wMS$PyH0PtQkW`2Lo3{O!Eo%1zz8hmglyA(1}9}MSd^}}$i4l;#+ogTke
z?J6JSzt>nf18x+m)l5Hny}JrBGY6sMm@B7<W!{7-+Rule^uA%8Aj~l>_fGkE&kJsh
z@F^IP6FsOX4se3}*M=cY9M`1Jyve4XzYm0`;$YRqgV0<sl;guCu}U>V<>s*riv6Nm
zwaUNRX{Q#t#zXeZDB|4!!wm*x$~C+((B9{R3}m5{1Go{#QccK*wxX=jMo90))xpNS
z8G!V0%vuPE%wv+ZT=yXB`g>Kux`I0aKhM?%b5Sr|+Uppy)(0Wxw=4bB>mX$M>v3(u
z6}ua2gv?sVUnygUNjSZ$Jf@`dbUuRd@td1B$B_e&qZ>K$7~72;4#svPhmC8Y(M~gf
z^k3*d{vt$6*y1aWxxyu(4$Pgi4?oa>4SXRG%7v%&0(+&}F)WzWlIn6mD0Xm4NU?)w
zSMh5?ab7C^Qe<8<@k@88Np=M*>04svcNiFF@|M6->{**fM=NsenR~G6m|s*)Q%hAl
zHCS~>RDBBlZ|&SVd3$%y<ov#;@C&djcaMHGao+6zff}K@o0VFN=x?z5cr3?6+uy;9
z<61yj28<$J*kF%fix1<6LHh;VSKbi&&u~9;RK?21I5PHC#9a{*SDY^+?utNs8@=nS
z6!8L)2JFL>>;Ub1M6!Lfud!z+Sr+#+@EBJFuxF^!>A{8~W3&8j<9BR!`rD?D82f;~
z-uyEj_JnTwjmtj1WA#tQHJIM8=8%yK0fS&265vxW78pZr!tp1;ebz|)w8U+R=OunY
z;^!qEmiX5a$Dwhb2%hQrQR2`5PrJZL*8=<^FNzHU@Jal(#LE(QBoQ-&(0tSM@#q-i
ziFj^$BA)QGA<o)5*j3(%_HVQn&$dOFkC)mkR`1$~Ym=_E$>w$~71>rJ`8t`Hmi-#u
zuHnZt{4ot*&~TmSm|r*%e_ZoFDRBN)d-KX~7V$~(GwoLAK<)oCj4p!DQ51WUH$QH%
zjB5v7JK@^%uDwb&rzT(-YLjGcs<3=>EgoD=2Km!VlCmKo{U7n*YGRbXDu0{s&%tsT
zpe_a_5d|zkFd{F8Bu@T1u13#Wz(vhpFYJ!S?*sh#R~7i=N8qjCl*E-FCA93p2js<v
z5?4Z%|AYs3{Zn}RvAm%1XjR_0#^lVa)+wP0eqp_p+b(Y@Dyc;cX;IWC^}OQ2mD~}D
zd*vSU;L3kg;631#t3KUT9zmD1#OkvqQJ49jSVpo@2=sm%_^0MR-tpM3`L7c$t{u_v
zxQ4&I2v1Sq&$(sjM4vAba8XO3`~RWgdSc)#X?6OWgcd4Kk6I&f?@-0~aEG<BRo;5v
zNrI1eSe;3YQ=gZNhU-f9yGjPNTV2V7#MP9k-kqi>Hb*x1+aj?L6yDw{d>&lQj$h*5
zy6Qc+@(&9<^w6xO_#PCujd!AbhF?fVINNxxAuDNIQM|8Z8Fw~D0wYl&vNy<$)Fz`G
z<bBIl@ZMB{wntK1XgP~ZqM84Ti`~qh=-OfgBm79$mcWqw`C0Js*{)5s11*B9iL*_c
OYcF+()3bbQD*7K)cJi$N

delta 3904
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

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pm_stm32f4.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pm_stm32f4.o
new file mode 100644
index 0000000000000000000000000000000000000000..3251a86b6f6bb5c7290298cf6dcf6eb7b3092d49
GIT binary patch
literal 5128
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

literal 0
HcmV?d00001

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/position_controller_indi.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/position_controller_indi.o
index de200ab3c098cfa81390ffeac62320e753cb653e..6e2ce2aa138d811106f568b9fe84bca319bd25ed 100644
GIT binary patch
delta 2375
zcmZ{mO-NKx6vywI85<qOkDTPa89(NYnrTg=Mr29IAO<a36u6KOoeIRjGLS&rJcV%6
zKm%tp3l|a=4{BlPBBVt^gn<he8nX#(5x8)d3z=MW@4M&C93S2X-t*4ye?IQlQ<ul=
zhq=zQ-Ni~z+IdT}8dl9%fYpBWkN=FD{yp*I^<8akOS2oSO02QSZ9UUi9r`YRjod^Y
zK>Hqf5Bg!BeEEPpjlLWI9r=Caw`Bt#`vsf2uKk6Cp+}26=sfeY&zdaeCTsA3tCgGz
zb=9NR!2(weRBexH!Y4!5I^c(quX-{)Gr?w_KA(V0v?=gxeEKoGi7xhLWH;8xQ+0e7
zW=g^5;ZaQ2vSRFAQpDH_zAmz&+X}Vds0Rx5NT?P+B<B&cH84^bu>s=ouA-fA8h=y4
zhZKBRa?5Ez3uQ>csqItnR|=jZoYr4H#Vxr?F@8KHl=&CJ>4bI(rwtAi{D|;U9jIum
zwMrgudI4{=ci-JFAjYdi%adax7$4!>z2HI~Mc&}yQzX7w){%R#f<m(=VF&pw&Ra<1
zV?~1#5+5h=oqp+fCzSN#8HffZNf^ciu`+yh)DcpM@+>-H0hH&_5%m+K{*ucrF0>M1
z#T7VjBYd(#I^t+zgdY%2kMf9cdO_H^avi}-cQEV`+#XGY(*|h;zo+1%XLF0aAOfA~
zyn<&5rxVH(PV3l&)A(-==j-?0_FYB7KH;>%p@N?%xDhNL0skFXe%h%}#_T%bwDDa9
zA0eEsc=8PH^q(aHZID%PTfx@}r;WE2ybxq#&N{^r(8h;~gcAjy#lP|5GixV1cMQK1
z`n5nvBJuU(=jDK;f)9n(23y|-wHEl()vd*$;c~ZT!W}*);3Xeh;T<2_V2_U%q2kKF
z>MT}r%JTmLB48$sP#%}G6@<a$4c|@(=8^-xTo^W_DRQ%41N~PAd>IqwxLK};4Q^I1
kL6Mu;2=u20stOS~{TwW$`l=>zW4mE9)#vN!f?}%UKaCirLI3~&

delta 2882
zcma)-Ur1Y59LLYS$<ibyoi(vHG4?k9T5tZ<4x~$ANVI!!nSIduAgj!%oixyxkpxz#
zc%As*pbv)Ahd%5f4q0R8pkoeXD7Zcp$9&k+@Sy`+#wg-LhX|Hd-0$9d;(ojC!Y<tW
z?)iMr`Tl<Ao^x)hA5}h{mE=l{99=2(DMd~aCmDMEd2hg5EganWaRKlw+~orkDL=nD
z)jOPdPzaC~F)%yXJNM^<0`YgOZnv6q_WBFrixyMv1JES6KkV>}yVtmdT@!g&B9pzu
z8W8tf<kj94uAKJz#qF3~PHbN%tLaEo{GoxAqu!{Pf<ch%9+&c~&+-Hxkta-%phpq|
zU=T{i#IO_;gUO&cB89|hDJFKp9q@$3PPorW0deRwml%QP5j#oz+v_BFy^Xx&|6}H4
zW)95^3L#d%IB6k0?q*VuCz`<27vZ5W6C~%70Vqf*4vK=CctTKINHj}+G1K5pbi(tn
z#giybk#Z(PNZ&&~wYqkADC}PASlDx=UcG3!lG|>5KX-8FNp;OM_}h0ktBtl94kiNE
zm$ZCZ@Xo<g1L4RlqYhpb$=8a?eWU!o^N97Sm^96-1@a5yj~IW?stM0k=Y43LA||rJ
zoNJ>F=}(Z?0#s3#bgGm71!^Nx7j^0x8W05UIi}9*)EMm%?qB#cU(A-W`LV(5*o`dw
zWJ`mi*;}Pg3Pn;H8XG0K!Tc~8$rndSF*`O&6CQy^Joz@L)}fV8T;R*5q>_5Zm8viw
zr_VeBx32!W>6}-P*H}e9h)ryi5;hF@7UDkCf5(8oK^*&AwN<kaH8D;21R2}K*`n&p
zN+OQ?cOj0`^dXM>XO44Ooy~0|V54covC(}4K5xL64EP$a<=5T^da)a5050ec1O5_m
zTxe|{C~p*V2iqS$Stm5t1mHMv8{*ig%YgSGj(u+Gcu#H8C7n>?6~>#OAfW~!E;Fti
zg4&T)<Q00VS&%o7s(f5)mzi}vqZ@UR@yo!^);dG%XIwc_ILiR)???S-G%geUfV*fw
z01a4TTz{6A8P}iX9mbUjusN!3`^Y~?*sfBPH%JJf#OAlOhBD(Y;_DWzq3jqh;$0{H
z;dnv&5I@=&O8(4$3BYd|@NvX(f{FoOG~g@1FDtd`zaqb)0Y{ZWzb(w^w`T<zr{Bk_
zV#_Wo`xDV;2^;V>1D-;hRi&+7_i;f@Jz&6ZBaSC9ZNTp#j$cRB%65<bo3V@r-~{Ui
zd=qh;V8?)4ZQ83n_Dyov1lW=|aom6>5yy$U5yw6QI?kGeY*NlIr2Ff%x|EZ0o~^zT
zZZNJtqIV7WeBJkH|5qnyv*e)rEn(UXQIf)R9AZDjMTj#HpF&)g!d#gCF12#!sWbAL
z->IYa=q0;{m7TKEbo3H`(Ltx8?fgq8eXIpO*3PHuX(xpKAf19h-1ISoYJ~FfcH5>~
ptN%KE=5o=2c-WR~)JT<n5r5aV<<VMg^k-;EF|GBP+WTqT@i&?86{Y|H

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/position_controller_pid.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/position_controller_pid.o
index 123e9a3fedd8f76f3176e589a24aa02fe0c26775..537a71ec57cf7a626a10a95faf651f54b2c29fb8 100644
GIT binary patch
delta 1169
zcmaixJxE(o6vyvP45$cs=ELhV)g-SDK}2*i5%Il%gBFDd4&C%o2rcwO(IF|6Rtm+z
zA#xU5Ty*N-RtgO`NbBGt>Y!$DaFpWU>el;ll*5D22k(FH`<-+C_uTWYr)$q@xhX5l
z9v@HdJZ7;dV=XLt5MH=QXTs;|{onVF*E!dUP8GSv7?(cgdEg(AX9D~)@?qo&ZZ_Xw
zvs2i+7%d?^!1bq!@;_RSl{%N0X@yPw4QBpD&LS`n`x<@mZl%mtUcD`|@*BTWhTpMS
zu;VEhix1f)Q_1486kRl#hqbuyS23EB(G>30vfYFqHsLo-cn2&e#E6G&_XJK^LLTgG
z6^aQleS}ffTQB;nr9pTf;dg}7d<G*)@o_L@Qk9z^Re8d@2`@F_i-c333gKzuQ!_lq
z)WI~c2WJVv_f>Ot9{)^m5aY0!6#i?BDhHcbZxK#g*(01@$!amh>Nh+gK9jK4CH&_Y
z4UYRI;dI;^gwt_v6HfCF^(j{*N~>-Or&S#h(`axq7V@OL3tm?zc0*AJp3$1qI;=IX
zb?V2mIBDZEP|S|<EvRN)UW0np4SB8LN4mgra@>Q0<A!qW@ZOo=zo728yae}B8&G)a
i@>8fv{SI}h4Y-$@heE&0KS8zMZClTncE133(*FP+YIiCC

delta 1132
zcmZ{hF)RaN6vw}>h^t6kd)IzFitFjnnwXf}5rc}sh!|KJO++*nLlc{b7|QFw#voC#
zNEZW1S&Z7f!wm*C84V=vyZgw?$=&e2?|%RH{`cO!^1PiZXA-tf{vOM{Swtp%<YGG#
zR;ec)!efMKC(cWhP@)T37w08cY0ZrfZhUg%GmlzRRM{cV>rGU>a<%7OsEtloiJn1+
zve3PgCp(3$JS-?f@EuJ+Nl9wDS4$M9xI^6ek%n7^?ac}@;HU|tZU*p50KW_1tpF~2
zql}V%--j(v_}A_%6jio&DpcNXzp&=V72*Sk|Nduxej_0N3-KiKk-QDe5N<Sx1YNAg
z&&LqQMsv_q8C~NsS3)^>m?OmTFp^lGf0MoN7-LY6Nz1$o9d)-MDmceoln}?$*n;z=
zXvjx}+c;a#bb5%p;eIC($NjD%j`KGW$N3fhmD~+dan(KIxT+<%|F77t+Z(Df&_o{r
z{4;<Pm}ZPhZcNlJ*h`oup_rPW8&FM|&O+NMGbBrJ+!Y7Q$WR#yh8g+{!?iI*51?(B
oREO+{Nw1*b#B-=RaTnSy$)-)my5Ph`sHV;ElJ0f7597x04~UL%zW@LL

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/position_estimator_altitude.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/position_estimator_altitude.o
index 661302b06c2fc3f14784ce209afc038df264a423..fd8753b5e4a7ef17eae2ccf494af1d6357687865 100644
GIT binary patch
delta 432
zcmZ9Jze@sP7{{OI?$lRPF@+96?@nuIh@c^CaCkL`prz2kQU8Rf!EnfiX!Up-8f^)5
z3T!awg`_2@rJ=R?M!_7!4twvs8hYXR_2u*BdEo7&N2&Ju;V1-ukGdU&C`7<+@~$m|
zX{lfnYG~s!cE4n)H<qC{Nx*a>V^82$=MsI80onk#ufM>NWnPrz1f801>9|VmS_*ir
z2z*>FbnWJ|IZKy1A<CZsD!XCIrP!uc+*#EqF|-<>UI#F<3gwxY2$IzhU5$Uv=c;bV
zAHUH*z?Omvd-v(d8*xS)5Mt<_57kA10n7Mr*{grs=Ll;I11fH?Es^sqLsZ;j^?;hJ
zc=U>JD_-xEDl-Ln;^qb$ioWH#?j08nT>a5e*eF1j|GO=h{dOqUB6(E%oXn)4<zH;L
k>kpT5h}UcyKEo<Ija(vS7|jI@4;Zq7m>S;S9E(Z+0UE?;q5uE@

delta 428
zcmew$vp{x&Myvui0~|PjSq=<*47?0~tM{z@%giwGg*3xo4hIFf&%ul<KQl9|a$su+
z`ohe#>T5L9%5Th!tAJXjd}U_P0?|!O4m+6{7$z_=FnRB1V#<CzvC@S(+G*v)1F}NW
z4u2D581^POG3@;u?6~r8^^uA1Wf>1l=4BLTR$ySBtj;LAIe@W&g;8MgMOJy%$w2c2
zCMPlpGcKL{kyV^^50o!5S&^-e+1Ds!@;Wv%Lk*xP2uL$BFo;5!VA24}28oLyiCau&
zWEY=oz|JxG2fF}c$YeuyamfUzyckd|3zFKD$%*XZj16G2W%5KIyJzx8cKOK`K%Gax
zq9=fSamh0{^nU@#GI20Yw&Dn4l-S(M@tbLKKahW7^F(fQM#dA9Px90=c1-r<ZD)*_
be393j(}E3R($UF+eCC`hxFEb@AWt3uWiMaS

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pptraj.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pptraj.o
index fd62e0b8bc789a00ca7335ad1004c35c4a7c3d17..470285b1f02f82a526ac15900537ecef129f6b07 100644
GIT binary patch
delta 1861
zcmZ{kPe>F|9LL|xZ0WkY?LT*Cciq*^E{m<YhV+M0)<uG%!x|A0Rs<b1q!c?S1-o>K
zC}{Ob?V*DQ53Lj^o{R{M4qXC^ERSP&kS;}b(8E^m&3s25Q}Yh<gU|Q-e!t)R-ppI+
zDjzDP<Z^hv<*~AmbmWwiuParBOsp$p_O7q^amz(^f`pVtWip{D!C6Aclr<6u@ou@Y
zJJs87o-HX?J~t(mRXR{Rkp81cAGCYf%EptP3fV&{+VSk-*GIXEBP3O1k6a-gWRZC$
z_@;%lEAEg3ReIXnEIX_81`DK0C%tXbuZ3lAyA)-miNexYSB&oWtI-6*lAtDGi_t#6
zDmBwVe|xl*u>f-oONN+&=O~?L8FEmUpmst%OV^ot32H_$a1!bu^#{~bBT$P_(@@93
z=fKy%3*aS(0eZn7(2;;zn1rf9Ekm6KFJcJ&;4i>6aI^E5;K{v)(e%FuFM^x?F9t7=
zB?x9)-?710V<f6K0{IP|v2Y(7As=)eJOcj#@L_OsOzq&)I%ie0ID>8oTCI^`2>d*F
zzRuv=C~(u{F4|I`qL=Ge>9J6j-Va^%WMsn=WR@CQ4XIHyq2mY+D8^JTZ4Ijh4^r~*
z4hPY|)Ud!K7&zymKW)RaHvHVbyiqT6O%TMwGju+zN^|=26@Nz8;N&l`PiQeudsMYh
z!h!Ne+3&o&$~Ju3hR=cXDq@~b;C#54m0n}b;1@~AB4|PZ@x?X;-mu#yAwO)mn=VJx
zf)AgEwMrb^dTtqk>-P#Ooe+3TsD4J^NrB%nc!BT&qHw`!xUBQ&2e&pl1a57#C~&dS
zhXRigew$!T34-5*EIzg2GdBFW4Sy@}q?w=B-}s-v_*?v;{LRd3gYVn4;cgdKi9S)$
z-wV#aJdu;O(Q)dI&v-iB#zy_guF)V}iAU<#HKeb+gZ_*kmT$RfUp!2+iIhC%rq>hQ
sJj}9CcGGW(?$9=pjNv-q=j)+ejR&2>J|j_yjx-)|=JCzuXh)*yFQMG66#xJL

delta 3188
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

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pptraj_compressed.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pptraj_compressed.o
index 5948fab43d8341736425fe9204614cf99909fcb5..731adc68d5c515104e6b3531cb0302f4527b5b2a 100644
GIT binary patch
delta 654
zcmZ8fO=uHA6n?Xt&HkmBq=`w1Y&H?<Vh<JtAs}YjUWz{u{5dJOX@!dDRgfN<3f{Xs
zLA+?tgUud9!5kD9T12THJoMnfQ_^|}=%H9^Sz%dclC6jjhVOgd`(<W2BWwGXto*bD
ze~tDT1r1biwjNj8tw024`#foFi{SobXXld8+Sw$|uUX>s4#jS&)HEPT{h7nmTYNwH
zX14(TuBf<80_~%?Di*4%VR+w8gI^b@*NnkSo>{WWMo-MT9Wmoxdq%yoWf?GG8snw1
z@i7Q5n3d9A9FN873wFQ8G&aL9$7{O`zq4&NMB)bXUJJIKuJcVbXq@{t1<oS^uNncg
z?hJvyn4-Q2kl8p$Z=WK9-Vt^8F59Wg>g_OW1FWr6GHY~Fy&nYT9zwou0G%-!5_rM<
z+vOGUiu9S^%adt|kbCIFi{v=Ii09-A6A4Hd#&h^7o*t<&Kh2aTLvBej!0R|6=Tf(r
z!=uk5^#(qWi}*!0u&NZ$Q8Kuoj9ol4D1l*?B}beC@69dypZ;|qLxJguh;uj*P3i0S
zPMyN6b{fYu32n_BIw1U$%C;NErj}2!*Xf%b1!er89T6@ISkm@mQn&VKP0!=9o)l~W
wU+bf!f?Yi)Tov%Qeloifb*@G871m3~vxzY^8FgPmq8G85$g2?jyh*P70Y@vKXaE2J

literal 3296
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

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pulse_processor_v1.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pulse_processor_v1.o
index 08f84dcffeea7de3463a27b785e2ed1386208004..148b8a1f8f30a89ae8443c2814c013b519b010d8 100644
GIT binary patch
delta 1883
zcmZuye{2(V6o22l_IlTjt#m&+wz1v~t)pU=;9zzptXBy9(GcBniAI*RTMekigqDB!
zQM_)T3<}D5B$6zVDn=;51o21s8Wy_|CyOyr7K#74p+xy%f-uB|jry+L=9qkwci;DY
z@7;T!_v5~IRQ#d#aHDqE0kbPm-~u234^z8nc8Uf4&IXdb!@{WwG2p+uk;&d=nN#<o
zY<8t3K)n#~w>Sek#(7vlcyGE|1bryE+Yp^H9m<Jmu8d1x?jTFS0t-EL5Eq?<9^ydd
zZ2@|7|NF|p{MT9{8YFrwXw?s7_qc|)_9(v}CweKs;q{PGB7u%`<fF3oHgQS(ngFV2
z(iVRl<u@5nBct#mhde>T94gu@5Vs1@%s_xzQFi5L>0GK5R0(-NU>d*;k$}n|@HOc3
z82WtmftFXp(@y_<kXJn-`;+Og4fxn~2dGgXx<=R=1NZYP!=x^mx=7HXW1)^j8Up?Z
zz=~0}@|1ZVWh;DlHptn#8-v+<(bd_hUEiL}vEj=g%5-1NTQ2#<cN7^ii5vqV=l~Z3
zHb+<k5*y!ltS0}!79Yd?2t$0$7HHm7>P_di$}~ryIe<ZPTL~3$uP^~D=lmvb2FU~o
zof~*2sHwlag;4Xo+xfiPtjOoM58T5<utG!FlHXzh`cx1sp&+6Og541YAvXMXUd^E)
zEQ5A=>X<U-$s{}ovUf7Cb{SKwhYT8vEl+9!3#!%tel0<$wiBrb=>QUf8^-rd0K^6~
zf;OI7LOo9tnnC#$cKuQSrceQZ5{GAdNxb)VUi}3iK1hH{aHvK{yUokj`nNZLzL|$+
zPCTl7T%Ao=oxb|c``wBpoYWE*;E8$|?Nb014ai?V(XG6O<t4~>owe!$0su%|lCj_B
zY^3a<f(7&-&Vt7Yf5~}lcMO4TL)wM32dSL%3+2$<xk{#yAg7PBf^Q;b$?p7Wzw%Pa
zhl#6AFd-!?+Z&QvYhQ5kWkXJOha`(UV)nl?DAPrC;EKF!(~CxruxXVk)IlP8`c37+
ziA=)JrfQgz-AWe%zuFX-7+^?9>{vS@VMi!{ACkxWCSq%{Fu7?2_A<3hyvH@x^|m4z
z)LNzien%cm?R89T^o`2)PJ}5VO!u>dlBCopAwn^k3NZjK(GD$SolL9N5o$&;BZ$yY
z4=<4Zv9Z0bC0H($J4`vjUR7bwGS}TLRZWDlVM3WGq3zfg8Hb1CA<Z|*KKk9Q-6In4
z1!rwwk6j$kt0iHXUSn-OJ}OiGn`LR<!KW=ooO5ei04PCeDrNO_n|!#NnpP4|(q0Rf
z?i5HG8pZk{;L{&4$nyxV`my@VPVafIvpBO}C(vGmF*n^RgzIkkf6BkIjBk*^tEmms
zZX?>mc|S+`FQB7Gjet4VF4U0_z8IQUuZ^VtjHz2KQx<DhwR)a@1L^++^_|%1nJyPQ
zY|A9fuXn&WWUE~eLG?`IbDw=-i!#g~R-?vVPdW_A?k3yJ=c4^MS1urM%Zd!Hy~Pbq
z7i<QNPwj5|_b4-MQk-$g9yR=q_wc3zNKTuU6TqqeZ`I-1T(!8D6xqUa*&O+TIr1|&
zJmy+F&(AAtQEvLd>w0z_WT6nh5MZuiCI=IcbJiT-pXuEEC|@{7J~=I)p8#-0qssY!
zX620!XPlZ=%s83}-pd(13%+E|b4F|FN}<|bbo-34qqK#Y<czbWtMG<4ZWp)ZWvhgU
ct!Q%5*iqIZGz!Jj4TIw8`RU(iE1o?60t&SJUH||9

literal 4120
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
JiprX9|6d@udlUcw

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pulse_processor_v2.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pulse_processor_v2.o
index 45338a2da47f3d15e423a4282b708fec56a7756d..53534f1b6192cbb308d7c9c4089fa87fdd3752be 100644
GIT binary patch
delta 514
zcmbOs{Xk-ZhQb3*1~_m4vm6+>7&sXYFvnk$S75%n@x%c(MHZ+MA0REnz{nr~<*Ps?
zA}3E|7iUZdlX)OgvI(lv0jlB(RL6XfEaz6Jtit3%j_ApEIl7q`TqZYiiq{{2Dida8
zU|@r?LDUf_TNF+F0+0^^(m<LA!UU6lki>bB#BG=$9FTfs@jVdndayx!NE*%{X+Rcl
zfci@cXb?A&`Ug0~8CVe(!$J=%qE}p*TauW>pjTW{R5JM<*DOYj$(7vZoD(=88aO8J
z<Thu_nEa939!MJUfXG4~d(IV51EVKTWD}lzhDU{y0~%l(CjaCy=iI>#(SI2%@58IY
OIRhHgPGAup9v%QAzCN7*

delta 722
zcmZ`#JuCxJ9RI&Nz23X?QG}Kz=PHt(#2}W7M7TBvLx(b0L{uaV5+6~6ASs)HgggVA
zt*wbzHEBc41~DUs?p+v~c<=6&N8%0tkKb3`doQ80@UfK*>F|9VcXB`j47HtNp(ewL
z6c{inQEA0;OaoaF1JhpB;j=2kB@CNJMC~;YK#^Kc5#`L7Y4p=x-+}JT%XTMsK9zdQ
zZPaxVL?Z_3kGLUBP>IG@QVJBSy7O7vxyzU2x##PNl7bH?%T9vC{6RG7)@fF|W+~bR
z2##GIps&FjmR-%3TeGf`aAk=rp19+RvG{?r7o^~y31pU5)3C6XNyGf+{OVAe$m(I&
zAUA~Rdxc*Ehn%QElw>u#E@+zg%-X$xw+OgHv)E~;UGYY@j&r=@51y1f5xaw!v+Lnm
zU_?L&x)lr}J|h1FwF>&gKREb2Q8&$R7WAoKc<_hW;{>}<J2}EPC{JRVjTf<}StR?K
zEmeHv6?c+H&8m+9-9i;ItdB{SLbml$e8B(ZgOqg}@2Q^souEb=KWg3<CuObY3y;%e
AeE<Le

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/sensfusion6.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/sensfusion6.o
index 51584dcf1f92e6ed6a2cf0e47c15ebd691c1148c..50ca6a6655fd911341f2ef9bf002f884f11c6dd2 100644
GIT binary patch
delta 305
zcmeyMe?WVJ29tx(MlCgFmIKW3*EWZ+%w^MLfB;2C1_mJpMg|3D2ww*(?gSMNVBYM-
zt<N~QjVFAv2Cu;84?H`VBw>n$fr?n58bFlF<b(X;UK&uNK(bIKSd9ggBa0>;fTSK|
z8V^`C149V&W+B1-%#6&FFNv6O&ESRzCooSI5;X@3dWqTt$u2N?3P`d{<`T1G`oTBZ
zOU#~;b#fPw!y!2N6p+I<nM>TBgAJnpz~n%2b50E|2rqZ?L?G{kAcR*wIgm{r0QpHO
AO#lD@

delta 838
zcmZ9IO=uHQ5XWctZPINM%9`C$P3_y=wlrHm8t`B%NV1JRcr&&+grYQSAXFs9FA(e@
z#IuK#ms7!mo|2rDTm%W`;?aW_k>aT!l%5JPU?`!^W;gWF2Q%~L_n(=^y!O@Oc*PQ*
zYM-vmlM(@_<N<d3J74O30=u9r(!&@j9>t~NR?WWNSr_UZ0*${!Xgmqqt*#2aE)g4w
zY0&Qh$jG)q-5HO-?m1{Vv=rE_JjPj!fVL{nP}Eu}d6r5F=pYMvzCv{Ktx(dzGAIC4
z%Z1un?xehCjMknDI22Y4x&SdMqnYvoH7{E9y$CoEsv_zR>NZ*mwG?V^d<`(~s&?-v
zzFGw2hp{`w9BQ5Qm3n{YTdhqte}a;rfD6bEg9iO^dOF$6kaxkbfV1(K7!~$RQUliT
zHnWJg2nb+EUd=Txz&)R*rDk+2E`*(z&i0K0I4>S=7uelUmi-B-&5xna;w1%t$vrA|
z_(KM{#>(T9r3|M=2i$X6pWni+DULtjxchy>ljHdG5Mtco_+^e)Jzjz-d|;jv+J1w}
zV;uj@alU@|G3VEt^LL#%x3=YTx1PZ5vlo_qVR|5(@if=qUc<hWk(vkNUx^^G50RT=
zzkHmQ*g<3oVN^|`-x&Bk^Z~Z7CPeE3i)u+B$TqZuxU8~0Oh(wgmXt@lvB%7uSQ^cS
SyzDh|F#D%^*(-KGp#KMbNP{Q<

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/sound_cf2.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/sound_cf2.o
index 7adbba040211ff555d568e44530e7eb26f887fe3..de37641d302ba66b4683fcc78ac5e97a6cf2e19c 100644
GIT binary patch
delta 1724
zcmZ8gO-NKx6h8Mo#U^YT8=r4RCuaPeNy(qARH|u`=*KphZ6Z;}KNKtnEl^s_1QrEB
z#<4{Z5z(S(krqMjlr|MDYEjfG3m4fYH$_2F_uO}`yyn3D&N<&b_q+F<d*Ab;3vJV}
zSf&)#ETN(VYy>YXnBDKf5%aAc*Agl05!Zzme~1o=ZAORXh57F%Tkrol_v{{(%hfXr
zUVLOUZfQ-lfC)PmMdnySj${$c)2sn7og>F56RM{Gt_}2}*K884c))CXJZm-=q~)wK
zOQHb+e4O{Qk1(I%ypw$u^GlrPv){`6D(70ifqA)wvSr8Nx58jvT*bNAo@3!nt5C!r
z&skw1;`pYhTVjK48>@hAc31GHtQ3&5c1jk5zqn}Io;;b-YykHKqCrPB&)LU?emozj
zld^LGTa@4n8CPRL&=!q^!97xAlT=w{=_y`$P}Lk!*rhN<n7+XE8QE$w-G{5pPiOJB
zn7_@u?hlNQo;}^)-8Z<cwht;M;LPyI8HYPQd}?3}#)roSPDAfxDmgw5ql1HRYG7ov
zf6|j0Nlwb?ihfKLKg4*+F2s_H9({{`Y!BJk9P)_(CPQHy3i;C8or8j3o+QdKxn_>7
zEIz|L)telX)19GuH-Cj|LRtK*!>1v8;wdjEmJ4b*Cij}-?E3f2XV)(=uMetQyZoO{
z2gn!V*cbNMLi+6zU&l4%@?}m&8)yy6eb^ATMGs-i4A+!M@BWxqF5a#An|VLBgrn&I
zzY1DSe~h*e^R%;mVKf(U@f7NNk1<bo<L0-!c(=}Ohff1-yiM;a{eE6Re4~r+bn*H@
z(X{>zbc^(XrntUH>QL)6uYV7xULHyJb;iJ#k*c7+iU98|_=5mFrF8<ZMd7f*8wy`2
z{H1V98P%Lncv<1R!j-bR!%M8#EEUPLaz<qUN3(dQVI2olPc8IevfQ6bQ2-~)Yc^99
zk%KIu(9xz3E5t>vjp2v#8nvn(Jry5~y9R!(*tve9*jdqIVs+(CbJ+l#vn-sbjCoeM
zgF|?~vS}^bg)5a!q8>}D_8Nx@u(v91yx)v>q?_G@pQSq#!Ln#v#4s7%YhCg?@`+r>
hZ;-AQpG0ds&$+=5a3$L0Sy$@JPhfkYAAd*l{{cg@%0>VH

delta 2359
zcmZ{mVN6?96vyv<k4-Sjpgj88(v`MU1Tn%G1BPVl78A!lRhf%ABa{`jNreK{pj%R0
zNF;u0JtP{VNioKZWty2KW*D=S=?6Y)Vl**J28P6a@PlMCei7q2_niyRX1htxIrn$|
z_ug~wyYE5y<XWQ8=39t~ofcP7T<jCIqL|3$x6fT)-Zn*13Q>p%QM@xOmo1DJ4N+V-
ztxF9U&tQzh7L7sS(K^bF)ruA368UH#{#MfC^fyfL*k}~{UZ+3mjj!YbPTXvXsmnr~
zLjB5};bZN~+vjdv#7Qg?MfT2l#Ch2y)}N>!#Q`YT$rrDEB13Rm4x_y!hZ{p;<*zfx
zG5y`evN`fI)lm+C$2i!2A%0kx;?Sy`dp3^0WUI5Xfjg<fA5}MxJ01TNCX7CL0X{cQ
z2D9nh+1GH6nOt%#ok_nvK8+o0)03IZ)jy2EdYOVHtNHzC6?|`5`4FZIAw^b+grFTz
zYr!A!Fdh@NmmDYB(G#Cz{t)vn<^|?hpK3kKOUyT!lQYF$xMkI2DOc}WK`EP{-aCSJ
z%4-|@B)sQ++5b1nq^J^gJWNmfFG$-?SK*|T^;KkRnFlMl%{<JUYZ4*mu?l@F^EQas
zk7AjPLOj5dUDpjsyOWM{(YE9OEZd!O2)1lnKBw%6vS*dekoCWbvwE=Z0zOA-^Ntg9
zN;9wQ2g)v!9k|Z=u;~c(k*_iDs^GsckDKs~FXWk-d}AVYD*ZZMgjh=C(wQ9m?rVk`
z|Cb?kSJEkUH_$m(hZG~POpi~&*Zx6&X7bgi$8)EX(?coY#6uG~ksO<WE&sdv+#7I3
z{bZ=dDkuhQSq-ZJ8w!DHSPRraIZ&M^T?g-$TpP!Y6?~RC>D>o@-lcbQeS%tF&ANsE
z>!U&^3a$m*g)dU!`42hUgv)nxOs>SSUPf>KGv>4nDogV#%q!<9yZAwl$^GEOc|il*
ziJL4UPA`;hcR2_kKcpdg3;Wb6d6+qEfG>^G#hB9uOp#Yina4R1tQe5E4}YF{<-*zf
z=x6VxPvO#YoY0l(hcsU?k>(5cnh597pCc-$cXwanGSmlcc?FIIZ72nOLp}U1(h0jy
zGUMXz@gFm%`g9F6eF>I=cK(`cRKIK0Z(XD4qJ%kDc5x0>W{o@aT-^L87kAHd)8Wnq
zI?R)k+vEYXy#W{h$Hkv?as8>$+Y56p#<#}H+tyrvf*d`5p!Avam~dl%t6x6`{boqs
zPzhwHQ<mU>vPor&%C0KArEH{`G|wpej<R1VyV2ZvKwp%8oRONISzmR1Q#H@Rv2eqF
zI<zjO-+c(AAl?sC;f_5N#bGII`(vz2u-Cd1@FVLIAS1Vor%d=Q()*x~|LCk$K{VQH
z&YJ?ZtVYO2+iD7Ydb6+;?c3>{fsJUN{1f~wM~!L^yx4NYSP#QT=&}v)E4oAr1Y$?z
pZFnJewDAP~OGEAU9>+h7t{c9Hb<}hP9I^=;u|A_N27yOf{{!amE5ZN(

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/stabilizer.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/stabilizer.o
index b801696e1ce13bd23385ee7ab54a8f47aaa8d113..a8ffbc684256fd5fd961b599349a2c64d590f739 100644
GIT binary patch
literal 12984
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

literal 17912
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
JzDy2L{Wss+zzYBX

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/system.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/system.o
index 280cc8eaad2b005f8d86bbf4c36a267b6e39d8d2..407d40b2d5c67f9aaa162e963369f4be6155618f 100644
GIT binary patch
literal 11904
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
X68Fn!B?#5ppIRSkJj9BWN8A4gAaX2Y

literal 12128
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

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/usddeck.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/usddeck.o
index 6b50c3cd43edd195c03648adf2a56c0401c2ff2c..d61346ea057789eeede12a04299f619e26d2fc3f 100644
GIT binary patch
literal 11344
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

literal 13376
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

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_api.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_api.o
index 3f910fdffa068840202ec4bfc562458c8970d8cd..e334a4d7d5067376b3434ecd4e5a3ad99c0c7af5 100644
GIT binary patch
delta 4426
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

delta 4956
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

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/zranger.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/zranger.o
index bd24ca0092ba73c6c374841bc6ae4214b3bb302b..526da1c9f94964adea3a848358d3c9cdb5783396 100644
GIT binary patch
delta 895
zcmZ9JO=uHQ5Xa}e-6Wf)n~f%ElD6PR0u3s(3Qf(SVH-VI^k6>_!9cQ@pry7*BSq|?
ztMpJkbs51RJ*X#h5ygvML~>G(LOti`xxLs!z}d~)P<G(GnfIUH%$wc!S8t{F^4n<z
z24=XC0Wr|vyHx#iMwbq})!X{k?nz)DEwOeSV9(@6G0R~(L2-?P{gfNWXTe$o9c*gz
z(xP(!tlw8@F=8b0Spb_~B8Kuhu~b(q9xctadt06N{tKNVoeHvG6it9>paO@1{soD5
zoM(t}EloQE8N6@NabBL`Zvmgln`|79<;jcZ2surVXR-(iLXU}aUHCH21yby`yVu<P
zfwN~G3*Hi(F8q#@<*xw`gA=)x=KT7~Bd9kvp;~=tZkTJ$YQ1rH6`m}b>-QQP%Vu*G
zqskS$rCg@@Y$dhe^%<cNz1f`BdC@;k`iO`fcR|ESA3r7ZBK}k+whiw@6us2IZivX~
z8XTwq%OZBVp42NsA0s_;g7^NGe`>4G;49_S?2h35lkN)LU%M~#QMzjk)yO1E;%p?v
zMsb111B}!Nu0^gh`201ZG5!Yd*KlE|7U-AVXE>x5SeM`wPDwIW)LghLTITV&I>Wnw
z9ks+`40*J~e+01{ElJlH;3qkWt!SRdLfE0qO#-wM&xf$AmBKB$*s(j9mEyRs<&yt|
i@`d*^QE~}9(9VZHiWmIgvg5H_csJB%Ubsp{9sUnyJ%_yj

literal 4200
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
G#QzH`)tLAI

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/zranger2.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/zranger2.o
index 78fad7ca3378b8c09a6d1e575e66c2ec07ea5443..f0d6f5bd68a43db2c0b148e8af634a1d5bb18866 100644
GIT binary patch
delta 917
zcmZ9K&ubGw6vt;~H$OJrB<p6AF^#cl5Dlr2L?kqq5V4{M!IH+aNi`5uu-Ynx2Fy{=
zL)X`X2SF<$jr5>Yq=zCw5WFfXUhQ9?^duPYO*0Ea12f<6e!g$s439i0{?4xESTXG8
zj~52ol^+us?Yp;zD<AqpjktSrv>zj6waIFg9wDdq=FaqoD<9ok>1K_QMvvA0Qj8}F
zaS0)7!VBgjy|04JplZ0-sa{>=8Pcma8L7xN8{%5EhsUwj+3K=yKIjAw!z`{rzz^?(
zd76Y@!Sn1DfxK~#reWPE&?)$0@X|D%u?Zy>s`%+6A?Hv9&&cnmQtLoN{Bb}BJ><{@
z@j<)$`@{Vm#Lk`(u+0KoHc#k{*5VCVG%t-U3wQQTyS3B?Es}*?Bu7ueWQ5-@%GL=S
zgLl0^Gm^)UC#4s1LE#~VUzEOr_2UYkl|GJKt#6EYo}@5HDF>R;i$+Hjehm&qd8s3b
zXy;ebo6?JJX@xJq?I=$!Ng{f3CGEm`l(!x!XOAlBn)C-p^HTDIFWit^j7+@E8|@~P
zEFRvL>9}|ywCw_H+Gg0Rp-2<(hs9uE>omOe$-YY24*p}Da_F-$I%+Yv?v&|2a04mW
zagL#T>u}h1EO>7CAriM4p^%MN*)oNBl$;M<p!^(zU6iH|vWY6om@tph!3<^Egk6+3
lnDJ`d@<ytSZj7QN;4YsES@I3<2)yQH<B2&c0O&gt{{cN*mP7ym

literal 6152
zcmeI0Uu+a*5Wwed1q-4At%!oh7ElV<qb-nlhJ-uXQV1<H*TX+WJ+^n-_R{<3?iO1?
zy`m4skk~2@#0SG0l*Giu1WAO1L?3uE#6%Ml6N>mi3=a~5NMciGcE34>yIWs;GGQ*e
zGvDu<`DXUpy>Gv}_d2_G1_J?L3BcEIuf-JLQvE$U>Y7nl0*lF-1c*j1YRR8g>DrI8
zhc8UeYA|)HFEEWElLv#*NC{xet-jdw?BQ=ulV5`y1CtZM=v|DT!sGa=m0*=LNR*Ia
z{>et<x9j2VXwd5?HV;ZaP(Sr`psnE%Y%9enzO?ZA4*)}-lMS#s6j;0|)Ci@x5rhck
zhUJZ+lk?%i?fU3lu0!VH`Y^tMu7i)+!)MFaLv<g=dTwbAXKo(|PT#%~nEF!-PTfgq
z(|4`~rj}#>^>q*Be%~}NcVjcmQY|y+OFD+NupQWXtZXwQpZ1SW$A9fP8XxFAWyP+3
z7B|wTtPHFR?ZIOM9y8nFZUfG(u6frSI1>GIMtjm7f9^^kLN#C2o;Wk3)w@i`oHQ<=
zpIgh7SOn(gwp`Vgm3^*nj=jVFtl{UzH%?;ghfCodSiU|)v8AQa@vFt7@l_BQsr!2_
zQ3q>6FsX+o=0`8oE!Y@>h#rEv#t>Xw?fNgmdMR!K#|kbEhajeh8k<&!8tXQ={QJ4N
zC$S&;<83eM{mtpZTY23!^LD|~5A56X`a<d>>5s?uc6G+vyjE@how42B9FaCtBjh`f
z>W>@wA=6Tkwo@o3xswNbpdZY@gBkc=%)t4_s>@tdjeN<3PtULqFZpojYHxp0Z|d5+
zUr!VY+0?L+$?Jo-YB|HE9&0XIg~3b~Eh{ygam<u6YMFW@+}7OI(i#c3w&_iVm1{<;
zW&L{M;Z~h`T3gz-`X%%@zW?AMxH(tLORM?D2GH<ROEes*QoOmOEY+gHyejy(OZ<5C
z_)F10Ao6mirxfQ1)~gk-bMpWMl_sUZe9`huubyh&jNJj@|D~7`4IcIxr<z~Gf&;?;
z1re#i0@3nJubyg7y&62?<6q5N(K8_YcZo<19u+Om+>UA~MzHXAq+4-!$A<QI%HdVi
z%oK7}!H2))!{7JepZM_4kW-yAs7YQ^C7(jORy|+&@N+)=k`KS)!~gW*Yq73c^=$Lu
zdwqD^hY$Gh2_JsUhkxP2&-(CheE2WOmx$+?zkl$y<!z_JDOfuOYtxXicjq$>m}ABE
zf;l({Zhtas*bb!4Ly$}s4a>;c-lpqqwHZs8*v$<$KH1g1Z%3><xo_vrzRpB45!=z-
znZyxNBRfWIIF#MGIomqsdZr4vJ<OWDqYkdR7MMjVlXnKoqa_S`1jgvxZkdK-Lbfn8
z2==(`n7NmYjML{BmIE(!Z{6J8n(V{vV2^3oxIE{~{5@<s9U0p(@+q^YkT%QSrX!pa
znOr76v|}_qggBG33VkM)mbS~@lt}n{MRl1@B9j_vFN|Wkp0)%WqEb7|tTDbn?_{zZ
zjea7w!*GnaX{5)6yYQr0#ab!?yj#&{x;IDNn9ls0qvojDf%|OtR_xAq+D;~CI0XyR
zR_2gtCHW55+$PuKbHQsfepSl$vI@SEI#DY9b(aEE`fpL3{GV1fDPCWR^BP8c8=X)h
z$X9r#dyXpmi3<M?#aAHb+6eV3PUAeIY*GnjQ(pNtc|~y=U-E;3%lSzwPI>7E56iGJ
zczj*8i%L^HtCUU3Q8wq*Rr>>_X?$jcCIxR)HmQ@!uAKk#idW9VMa8+!7S;YvX|9L)
zWyPPydgS%q5aY=E_=gxr@<kX=LV4wUu2h_^m-YrMv_6v%U*nnXxkd1`g44Q9LjKQs
zrhD!X{5ipQ3BFG7qT)0Uvd%H#-z5A$5PZGhCj{Rh_({R#IHv{QDE!Y0{=DFq1ef!3
zS#Wv1zX?uzCzb}a0i$^fGeo^oa5+C)1m7h5`F%ovInnoszgK*X#A#2+!p|4+<qU-;
z?(MZaSUG;L^3|38x4iN`^7_O6!zv!a_IS=Q22eYer-#|Ha4`=%=9mNFG_Kna9<Xf)
zTLo&6du#Xw2&Ymx50kUogJI}|jxNC$Ux&LMhwopHy>9oN8g~E32&W1;_ua*n{U@zs
zG*0DxYa0z1r4!0Fbw9mU^`3~<Vw%4wJ1DKI-)+5Wa;Zsq_&)JHrDu@1*q&nx;7CPY
z7vhP0rO-1^WBSFH|4>pv@?I12_SpdCKbn+ZN#(axn-$m3bwshFR{ejec=@}7#^89e
zNqX?86@Qw(Bq;nmdadgCUD#1;{)_a(3x)bgX#O9@gY)zJCy~|4Kcn)qKf1Y6+3rVL
zEB`r_pYu?D`c=g7%-=;;EB|$se;4*k;do}_Xw=GoS>->d94SBj%Hnv={}D3E&+84E
zuC&l(p&am3`AohfQrCJ^Csq6j^}x|uML8?;)0|X3yNIAky&P|HB7!ItP298Bj&D)_
M+tVMwQYz#B0m_&eRR910

diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/empty_math.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/empty_math.h
new file mode 100644
index 000000000..0bc261b6e
--- /dev/null
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/empty_math.h
@@ -0,0 +1,24 @@
+#ifndef EMPTY_MATH_H
+#define EMPTY_MATH_H
+
+float cosf(float x)
+{
+    return 0;
+}
+
+float sinf(float x)
+{
+    return 0;
+}
+
+float fmaxf(float a, float b)
+{
+    return 0;
+}
+
+float sqrtf(float x)
+{
+    return 0;
+}
+
+#endif
\ No newline at end of file
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/eprintf.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/eprintf.c
index c7ba68b0e..2a9d110b7 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/eprintf.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/eprintf.c
@@ -28,7 +28,8 @@
 #include <stdarg.h>
 #include <stdint.h>
 #include <stdbool.h>
-#include <ctype.h>
+//COMMENTED FIRMWARE
+//#include <ctype.h>
 
 static const char digit[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 
                              'A', 'B', 'C', 'D', 'E', 'F'};
@@ -154,153 +155,153 @@ static int itoa16(putc_t putcf, uint64_t num, int width, char padChar)
 static int handleLongLong(putc_t putcf, const char** fmt, unsigned long long int val, int width, char padChar)
 {
   int len = 0;
-
-  switch(*((*fmt)++))
-  {
-    case 'i':
-    case 'd':
-      len = itoa10(putcf, (long long int)val, 0);
-      break;
-    case 'u':
-      len = itoa10Unsigned(putcf, val);
-      break;
-    case 'x':
-    case 'X':
-      len = itoa16(putcf, val, width, padChar);
-      break;
-    default:
-      // Nothing here
-      break;
-  }
-
-  return len;
-}
-
-static int handleLong(putc_t putcf, const char** fmt, unsigned long int val, int width, char padChar)
-{
-  int len = 0;
-
-  switch(*((*fmt)++))
-  {
-    case 'i':
-    case 'd':
-      len = itoa10(putcf, (long int)val, 0);
-      break;
-    case 'u':
-      len = itoa10Unsigned(putcf, val);
-      break;
-    case 'x':
-    case 'X':
-      len = itoa16(putcf, val, width, padChar);
-      break;
-    default:
-      // Nothing here
-      break;
-  }
-
-  return len;
-}
-
-int evprintf(putc_t putcf, const char * fmt, va_list ap)
-{
-  int len=0;
-  float num;
-  char* str;
-  int precision;
-  int width;
-  char padChar;
-
-  while (*fmt)
-  {
-    if (*fmt == '%')
-    {
-      precision = 6;
-      padChar = ' ';
-      width = 0;
-
-      fmt++;
-      while ('0' == *fmt)
-      {
-        padChar = '0';
-        fmt++;
-      }
-
-			while(isdigit((unsigned)*fmt))
-			{
-				width *= 10;
-				width += *fmt - '0';
-				fmt++;
-			}
-
-      while (!isalpha((unsigned) *fmt))
-      {
-        if (*fmt == '.')
-        {
-          fmt++;
-          if (isdigit((unsigned)*fmt))
-          {
-            precision = *fmt - '0';
-            fmt++;
-          }
-        }
-      }
-      switch (*fmt++)
-      {
-        case 'i':
-        case 'd':
-          len += itoa10(putcf, va_arg(ap, int), 0);
-          break;
-        case 'u':
-          len += itoa10Unsigned(putcf, va_arg(ap, unsigned int));
-          break;
-        case 'x':
-        case 'X':
-          len += itoa16(putcf, va_arg(ap, unsigned int), width, padChar);
-          break;
-        case 'l':
-          // Look ahead for ll
-          if (*fmt == 'l') {
-            fmt++;
-            len += handleLongLong(putcf, &fmt, va_arg(ap, unsigned long long int), width, padChar);
-          } else {
-            len += handleLong(putcf, &fmt, va_arg(ap, unsigned long int), width, padChar);
-          }
-
-          break;
-        case 'f':
-          num = va_arg(ap, double);
-          if(num<0)
-          {
-            putcf('-');
-            num = -num;
-            len++;
-          }
-          len += itoa10(putcf, (int)num, 0);
-          putcf('.'); len++;
-          len += itoa10(putcf, (num - (int)num) * power(10,precision), precision);
-          break;
-        case 's':
-          str = va_arg(ap, char* );
-          while(*str)
-          {
-            putcf(*str++);
-            len++;
-          }
-          break;
-        case 'c':
-          putcf((char)va_arg(ap, int));
-          len++;
-          break;
-        default:
-          break;
-      }
-    }
-    else
-    {
-      putcf(*fmt++);
-      len++;
-    }
-  }
+  //COMMENTED FIRMWARE
+//   switch(*((*fmt)++))
+//   {
+//     case 'i':
+//     case 'd':
+//       len = itoa10(putcf, (long long int)val, 0);
+//       break;
+//     case 'u':
+//       len = itoa10Unsigned(putcf, val);
+//       break;
+//     case 'x':
+//     case 'X':
+//       len = itoa16(putcf, val, width, padChar);
+//       break;
+//     default:
+//       // Nothing here
+//       break;
+//   }
+
+//   return len;
+// }
+
+// static int handleLong(putc_t putcf, const char** fmt, unsigned long int val, int width, char padChar)
+// {
+//   int len = 0;
+
+//   switch(*((*fmt)++))
+//   {
+//     case 'i':
+//     case 'd':
+//       len = itoa10(putcf, (long int)val, 0);
+//       break;
+//     case 'u':
+//       len = itoa10Unsigned(putcf, val);
+//       break;
+//     case 'x':
+//     case 'X':
+//       len = itoa16(putcf, val, width, padChar);
+//       break;
+//     default:
+//       // Nothing here
+//       break;
+//   }
+
+//   return len;
+// }
+
+// int evprintf(putc_t putcf, const char * fmt, va_list ap)
+// {
+//   int len=0;
+//   float num;
+//   char* str;
+//   int precision;
+//   int width;
+//   char padChar;
+
+//   while (*fmt)
+//   {
+//     if (*fmt == '%')
+//     {
+//       precision = 6;
+//       padChar = ' ';
+//       width = 0;
+
+//       fmt++;
+//       while ('0' == *fmt)
+//       {
+//         padChar = '0';
+//         fmt++;
+//       }
+
+// 			while(isdigit((unsigned)*fmt))
+// 			{
+// 				width *= 10;
+// 				width += *fmt - '0';
+// 				fmt++;
+// 			}
+
+//       while (!isalpha((unsigned) *fmt))
+//       {
+//         if (*fmt == '.')
+//         {
+//           fmt++;
+//           if (isdigit((unsigned)*fmt))
+//           {
+//             precision = *fmt - '0';
+//             fmt++;
+//           }
+//         }
+//       }
+//       switch (*fmt++)
+//       {
+//         case 'i':
+//         case 'd':
+//           len += itoa10(putcf, va_arg(ap, int), 0);
+//           break;
+//         case 'u':
+//           len += itoa10Unsigned(putcf, va_arg(ap, unsigned int));
+//           break;
+//         case 'x':
+//         case 'X':
+//           len += itoa16(putcf, va_arg(ap, unsigned int), width, padChar);
+//           break;
+//         case 'l':
+//           // Look ahead for ll
+//           if (*fmt == 'l') {
+//             fmt++;
+//             len += handleLongLong(putcf, &fmt, va_arg(ap, unsigned long long int), width, padChar);
+//           } else {
+//             len += handleLong(putcf, &fmt, va_arg(ap, unsigned long int), width, padChar);
+//           }
+
+//           break;
+//         case 'f':
+//           num = va_arg(ap, double);
+//           if(num<0)
+//           {
+//             putcf('-');
+//             num = -num;
+//             len++;
+//           }
+//           len += itoa10(putcf, (int)num, 0);
+//           putcf('.'); len++;
+//           len += itoa10(putcf, (num - (int)num) * power(10,precision), precision);
+//           break;
+//         case 's':
+//           str = va_arg(ap, char* );
+//           while(*str)
+//           {
+//             putcf(*str++);
+//             len++;
+//           }
+//           break;
+//         case 'c':
+//           putcf((char)va_arg(ap, int));
+//           len++;
+//           break;
+//         default:
+//           break;
+//       }
+//     }
+//     else
+//     {
+//       putcf(*fmt++);
+//       len++;
+//     }
+//   }
   
   return len;
 }
@@ -309,10 +310,10 @@ int eprintf(putc_t putcf, const char * fmt, ...)
 {
   va_list ap;
   int len;
-
-  va_start(ap, fmt);
-  len = evprintf(putcf, fmt, ap);
-  va_end(ap);
+  //COMMENTED FIRMWARE
+  // va_start(ap, fmt);
+  // len = evprintf(putcf, fmt, ap);
+  // va_end(ap);
 
   return len;
 }
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/filter.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/filter.h
index fcb53b6e1..2e811c160 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/filter.h
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/filter.h
@@ -101,13 +101,14 @@ struct SecondOrderLowPass {
 static inline void init_second_order_low_pass(struct SecondOrderLowPass *filter, float tau, float Q, float sample_time,
     float value)
 {
-  float K = tanf(sample_time / (2.0f * tau));
-  float poly = K * K + K / Q + 1.0f;
-  filter->a[0] = 2.0f * (K * K - 1.0f) / poly;
-  filter->a[1] = (K * K - K / Q + 1.0f) / poly;
-  filter->b[0] = K * K / poly;
-  filter->b[1] = 2.0f * filter->b[0];
-  filter->i[0] = filter->i[1] = filter->o[0] = filter->o[1] = value;
+  //COMMENTED FIRMWARE
+  // float K = tanf(sample_time / (2.0f * tau));
+  // float poly = K * K + K / Q + 1.0f;
+  // filter->a[0] = 2.0f * (K * K - 1.0f) / poly;
+  // filter->a[1] = (K * K - K / Q + 1.0f) / poly;
+  // filter->b[0] = K * K / poly;
+  // filter->b[1] = 2.0f * filter->b[0];
+  // filter->i[0] = filter->i[1] = filter->o[0] = filter->o[1] = value;
 }
 
 /** Update second order low pass filter state with a new value.
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/lighthouse/lighthouse_geometry.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/lighthouse/lighthouse_geometry.c
index 86a6654af..4c7f38bcb 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/lighthouse/lighthouse_geometry.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/lighthouse/lighthouse_geometry.c
@@ -57,47 +57,48 @@ static float vec_length(const vec3d vec) {
     float pow = vec_dot(vec, vec);
 
     float res;
-    arm_sqrt_f32(pow, &res);
+    //COMMENTED FIRMWARE
+    // arm_sqrt_f32(pow, &res);
     return res;
 }
 
 static bool intersect_lines(vec3d orig1, vec3d vec1, vec3d orig2, vec3d vec2, vec3d res, float *dist) {
     // Algoritm: http://geomalgorithms.com/a07-_distance.html#Distance-between-Lines
-
-    vec3d w0 = {};
-    arm_sub_f32(orig1, orig2, w0, vec3d_size);
-
-    float a, b, c, d, e;
-    arm_dot_prod_f32(vec1, vec1, vec3d_size, &a);
-    arm_dot_prod_f32(vec1, vec2, vec3d_size, &b);
-    arm_dot_prod_f32(vec2, vec2, vec3d_size, &c);
-    arm_dot_prod_f32(vec1, w0, vec3d_size, &d);
-    arm_dot_prod_f32(vec2, w0, vec3d_size, &e);
-
-    float denom = a * c - b * b;
-    if (fabsf(denom) < 1e-5f)
-        return false;
-
-    // Closest point to 2nd line on 1st line
-    float t1 = (b * e - c * d) / denom;
-    vec3d pt1 = {};
-    arm_scale_f32(vec1, t1, pt1, vec3d_size);
-    arm_add_f32(pt1, orig1, pt1, vec3d_size);
-
-    // Closest point to 1st line on 2nd line
-    float t2 = (a * e - b * d) / denom;
-    vec3d pt2 = {};
-    arm_scale_f32(vec2, t2, pt2, vec3d_size);
-    arm_add_f32(pt2, orig2, pt2, vec3d_size);
-
-    // Result is in the middle
-    vec3d tmp = {};
-    arm_add_f32(pt1, pt2, tmp, vec3d_size);
-    arm_scale_f32(tmp, 0.5f, res, vec3d_size);
-
-    // Dist is distance between pt1 and pt2
-    arm_sub_f32(pt1, pt2, tmp, vec3d_size);
-    *dist = vec_length(tmp);
+    //COMMENTED FIRMWARE
+    // vec3d w0 = {};
+    // arm_sub_f32(orig1, orig2, w0, vec3d_size);
+
+    // float a, b, c, d, e;
+    // arm_dot_prod_f32(vec1, vec1, vec3d_size, &a);
+    // arm_dot_prod_f32(vec1, vec2, vec3d_size, &b);
+    // arm_dot_prod_f32(vec2, vec2, vec3d_size, &c);
+    // arm_dot_prod_f32(vec1, w0, vec3d_size, &d);
+    // arm_dot_prod_f32(vec2, w0, vec3d_size, &e);
+
+    // float denom = a * c - b * b;
+    // if (fabsf(denom) < 1e-5f)
+    //     return false;
+
+    // // Closest point to 2nd line on 1st line
+    // float t1 = (b * e - c * d) / denom;
+    // vec3d pt1 = {};
+    // arm_scale_f32(vec1, t1, pt1, vec3d_size);
+    // arm_add_f32(pt1, orig1, pt1, vec3d_size);
+
+    // // Closest point to 1st line on 2nd line
+    // float t2 = (a * e - b * d) / denom;
+    // vec3d pt2 = {};
+    // arm_scale_f32(vec2, t2, pt2, vec3d_size);
+    // arm_add_f32(pt2, orig2, pt2, vec3d_size);
+
+    // // Result is in the middle
+    // vec3d tmp = {};
+    // arm_add_f32(pt1, pt2, tmp, vec3d_size);
+    // arm_scale_f32(tmp, 0.5f, res, vec3d_size);
+
+    // // Dist is distance between pt1 and pt2
+    // arm_sub_f32(pt1, pt2, tmp, vec3d_size);
+    // *dist = vec_length(tmp);
 
     return true;
 }
@@ -116,14 +117,15 @@ bool lighthouseGeometryGetPositionFromRayIntersection(const baseStationGeometry_
 }
 
 void lighthouseGeometryGetBaseStationPosition(const baseStationGeometry_t* bs, vec3d baseStationPos) {
-    // TODO: Make geometry adjustments within base station.
-    vec3d rotated_origin_delta = {};
-    //vec3d base_origin_delta = {-0.025f, -0.025f, 0.f};  // Rotors are slightly off center in base station.
-    // arm_matrix_instance_f32 origin_vec = {3, 1, base_origin_delta};
-    // arm_matrix_instance_f32 origin_rotated_vec = {3, 1, rotated_origin_delta};
-    // mat_mult(&source_rotation_matrix, &origin_vec, &origin_rotated_vec);
-    baseStationGeometry_t* bs_unconst = (baseStationGeometry_t*)bs;
-    arm_add_f32(bs_unconst->origin, rotated_origin_delta, baseStationPos, vec3d_size);
+    //COMMENTED FIRMWARE
+    // // TODO: Make geometry adjustments within base station.
+    // vec3d rotated_origin_delta = {};
+    // //vec3d base_origin_delta = {-0.025f, -0.025f, 0.f};  // Rotors are slightly off center in base station.
+    // // arm_matrix_instance_f32 origin_vec = {3, 1, base_origin_delta};
+    // // arm_matrix_instance_f32 origin_rotated_vec = {3, 1, rotated_origin_delta};
+    // // mat_mult(&source_rotation_matrix, &origin_vec, &origin_rotated_vec);
+    // baseStationGeometry_t* bs_unconst = (baseStationGeometry_t*)bs;
+    // arm_add_f32(bs_unconst->origin, rotated_origin_delta, baseStationPos, vec3d_size);
 }
 
 void lighthouseGeometryGetRay(const baseStationGeometry_t* baseStationGeometry, const float angleH, const float angleV, vec3d ray) {
@@ -172,35 +174,36 @@ bool lighthouseGeometryIntersectionPlaneVector(const vec3d linePoint, const vec3
 // }
 
 bool lighthouseGeometryYawDelta(const vec3d ipv, const vec3d spv, const vec3d n, float* yawDelta) {
-    float spvn = vec_length(spv);
-    float ipvn = vec_length(ipv);
+    //COMMENTED FIRMWARE
+    // float spvn = vec_length(spv);
+    // float ipvn = vec_length(ipv);
 
-    const float minIntersectionVectorLength = 0.0001f;
-    if (ipvn < minIntersectionVectorLength) {
-        return false;
-    }
+    // const float minIntersectionVectorLength = 0.0001f;
+    // if (ipvn < minIntersectionVectorLength) {
+    //     return false;
+    // }
 
-    // Angle between vectors
-    float a = vec_dot(spv, ipv) / (spvn * ipvn);
+    // // Angle between vectors
+    // float a = vec_dot(spv, ipv) / (spvn * ipvn);
 
-    // Handle rouding errors
-    if (a > 1.0f) {
-        a = 1.0f;
-    }
-    if (a < -1.0f) {
-        a = -1.0f;
-    }
+    // // Handle rouding errors
+    // if (a > 1.0f) {
+    //     a = 1.0f;
+    // }
+    // if (a < -1.0f) {
+    //     a = -1.0f;
+    // }
 
-    float delta = acosf(a);
+    // float delta = acosf(a);
 
-    // Figure our the sign of the angle by looking at the cross product of the vectors in relation to the normal
-    float nt[3];
-    vec_cross_product(spv, ipv, nt);
+    // // Figure our the sign of the angle by looking at the cross product of the vectors in relation to the normal
+    // float nt[3];
+    // vec_cross_product(spv, ipv, nt);
 
-    if (vec_dot(n, nt) > 0.0f) {
-        delta = -delta;
-    }
+    // if (vec_dot(n, nt) > 0.0f) {
+    //     delta = -delta;
+    // }
 
-    *yawDelta = delta;
+    // *yawDelta = delta;
     return true;
 }
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/lighthouse/pulse_processor_v1.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/lighthouse/pulse_processor_v1.c
index 739f0715d..f1ca0320d 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/lighthouse/pulse_processor_v1.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/lighthouse/pulse_processor_v1.c
@@ -445,47 +445,48 @@ TESTABLE_STATIC bool getSystemSyncTime(const uint32_t syncTimes[], size_t nSyncT
   // If the samples are wrapping, all samples bellow PULSE_PROCESSOR_TIMESTAMP_MAX/2 will
   // be pushed by (1<<TIMESTAMP_BITWIDTH) to correct the wrapping
   bool isWrapping = false;
-  int wref = syncTimes[0];
-  for (size_t i=0; i<nSyncTimes; i++) {
-    if (abs(wref - (int)syncTimes[i]) > (PULSE_PROCESSOR_TIMESTAMP_MAX/2)) {
-      isWrapping = true;
-    }
-  }
-
-  int32_t differenceSum = 0;
-  int32_t reference = syncTimes[0] % FRAME_LENGTH;
-  if (isWrapping && syncTimes[0] < (PULSE_PROCESSOR_TIMESTAMP_MAX/2)) {
-    reference = (syncTimes[0] + (1<<PULSE_PROCESSOR_TIMESTAMP_BITWIDTH)) % FRAME_LENGTH;
-  }
-
-  int minDiff = INT32_MAX;
-  int maxDiff = INT32_MIN;
-
-  for (size_t i=1; i<nSyncTimes; i++) {
-    int diff;
-
-    if (isWrapping && (syncTimes[i] < (PULSE_PROCESSOR_TIMESTAMP_MAX/2))) {
-      diff = ((syncTimes[i] + (1<<PULSE_PROCESSOR_TIMESTAMP_BITWIDTH)) % FRAME_LENGTH) - reference;
-    } else {
-      diff = (syncTimes[i] % FRAME_LENGTH) - reference;
-    }
-
-
-    if (diff < minDiff) {
-      minDiff = diff;
-    }
-    if (diff > maxDiff) {
-      maxDiff = diff;
-    }
-
-    differenceSum += diff;
-  }
-
-  if ((maxDiff - minDiff) > MAX_FRAME_LENGTH_NOISE) {
-    return false;
-  }
-
-  *syncTime = ((int)syncTimes[0] + ((int)differenceSum / (int)nSyncTimes)) & (PULSE_PROCESSOR_TIMESTAMP_MAX);
+  //COMMENTED FIRMWARE
+  // int wref = syncTimes[0];
+  // for (size_t i=0; i<nSyncTimes; i++) {
+  //   if (abs(wref - (int)syncTimes[i]) > (PULSE_PROCESSOR_TIMESTAMP_MAX/2)) {
+  //     isWrapping = true;
+  //   }
+  // }
+
+  // int32_t differenceSum = 0;
+  // int32_t reference = syncTimes[0] % FRAME_LENGTH;
+  // if (isWrapping && syncTimes[0] < (PULSE_PROCESSOR_TIMESTAMP_MAX/2)) {
+  //   reference = (syncTimes[0] + (1<<PULSE_PROCESSOR_TIMESTAMP_BITWIDTH)) % FRAME_LENGTH;
+  // }
+
+  // int minDiff = INT32_MAX;
+  // int maxDiff = INT32_MIN;
+
+  // for (size_t i=1; i<nSyncTimes; i++) {
+  //   int diff;
+
+  //   if (isWrapping && (syncTimes[i] < (PULSE_PROCESSOR_TIMESTAMP_MAX/2))) {
+  //     diff = ((syncTimes[i] + (1<<PULSE_PROCESSOR_TIMESTAMP_BITWIDTH)) % FRAME_LENGTH) - reference;
+  //   } else {
+  //     diff = (syncTimes[i] % FRAME_LENGTH) - reference;
+  //   }
+
+
+  //   if (diff < minDiff) {
+  //     minDiff = diff;
+  //   }
+  //   if (diff > maxDiff) {
+  //     maxDiff = diff;
+  //   }
+
+  //   differenceSum += diff;
+  // }
+
+  // if ((maxDiff - minDiff) > MAX_FRAME_LENGTH_NOISE) {
+  //   return false;
+  // }
+
+  // *syncTime = ((int)syncTimes[0] + ((int)differenceSum / (int)nSyncTimes)) & (PULSE_PROCESSOR_TIMESTAMP_MAX);
 
 
   return true;
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/lighthouse/pulse_processor_v2.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/lighthouse/pulse_processor_v2.c
index f5b865ddb..a1e8fe960 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/lighthouse/pulse_processor_v2.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/lighthouse/pulse_processor_v2.c
@@ -232,10 +232,11 @@ static bool processFrame(const pulseProcessorFrame_t* frameData, pulseProcessorV
 }
 
 void pulseProcessorV2ConvertToV1Angles(const float v2Angle1, const float v2Angle2, float* v1Angles) {
-    const float tant = 0.5773502691896258f;   // tan(pi / 6)
+    //COMMENTED FIRMWARE
+    // const float tant = 0.5773502691896258f;   // tan(pi / 6)
 
-    v1Angles[0] = (v2Angle1 + v2Angle2) / 2.0f;
-    v1Angles[1] = atan2f(sinf(v2Angle2 - v2Angle1), (tant * (cosf(v2Angle1) + cosf(v2Angle2))));
+    // v1Angles[0] = (v2Angle1 + v2Angle2) / 2.0f;
+    // v1Angles[1] = atan2f(sinf(v2Angle2 - v2Angle1), (tant * (cosf(v2Angle1) + cosf(v2Angle2))));
 }
 
 static void calculateAngles(const pulseProcessorV2SweepBlock_t* latestBlock, const pulseProcessorV2SweepBlock_t* previousBlock, pulseProcessorResult_t* angles) {
diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/num.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/num.c
index 0b20be6ab..e77a3fff3 100644
--- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/num.c
+++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/num.c
@@ -102,22 +102,24 @@ uint16_t limitUint16(int32_t value)
 
 float constrain(float value, const float minVal, const float maxVal)
 {
-  return fminf(maxVal, fmaxf(minVal,value));
+  //COMMENTED FIRMWARE
+  return 0;//fminf(maxVal, fmaxf(minVal,value));
 }
 
 float deadband(float value, const float threshold)
 {
-  if (fabsf(value) < threshold)
-  {
-    value = 0;
-  }
-  else if (value > 0)
-  {
-    value -= threshold;
-  }
-  else if (value < 0)
-  {
-    value += threshold;
-  }
+  //COMMENTED FIRMWARE
+  // if (fabsf(value) < threshold)
+  // {
+  //   value = 0;
+  // }
+  // else if (value > 0)
+  // {
+  //   value -= threshold;
+  // }
+  // else if (value < 0)
+  // {
+  //   value += threshold;
+  // }
   return value;
 }
-- 
GitLab