diff --git a/.gitignore b/.gitignore
index 68d5f6e5fb38d07046ae2d8dc3a73ef36c1739bd..fdaacd9e06d26b875196e39f7c9704ccbc7071ce 100644
--- a/.gitignore
+++ b/.gitignore
@@ -34,4 +34,6 @@ __pycache__
 /scripts/generators/scxmls
 
 scripts/logdecoder/logdecoder
-doc/output
\ No newline at end of file
+doc/output
+
+build-host
\ No newline at end of file
diff --git a/.sbscache b/.sbscache
new file mode 100644
index 0000000000000000000000000000000000000000..21d5ef9575002cf8bdb24b781bc8c61160922600
--- /dev/null
+++ b/.sbscache
@@ -0,0 +1 @@
+toolchain.cmake=/home/david/Skyward/skyward-boardcore/libs/miosix-kernel/miosix/_tools/toolchain.cmake
diff --git a/src/entrypoints/sx1278-serial.cpp b/src/entrypoints/sx1278-serial.cpp
index ef258523c3c4d77881bb177d15ae2b637ccff91e..ae0e6f41ae36a2b43fec40d02a6cbc7232e1d1d5 100644
--- a/src/entrypoints/sx1278-serial.cpp
+++ b/src/entrypoints/sx1278-serial.cpp
@@ -78,8 +78,8 @@ using sck  = radio::sck;
 using miso = radio::miso;
 using mosi = radio::mosi;
 
-using txen = radio::txEn;
-using rxen = radio::rxEn;
+using txen                         = radio::txEn;
+using rxen                         = radio::rxEn;
 
 #define SX1278_SPI SPI4
 
@@ -239,11 +239,11 @@ int main()
 #elif defined SX1278_IS_SKYWARD433
     printf("[sx1278] Confuring Skyward 433 frontend...\n");
     std::unique_ptr<Boardcore::SX1278::ISX1278Frontend> frontend(
-        new Boardcore::Skyward433Frontend());
+              new Boardcore::Skyward433Frontend());
 #else
     printf("[sx1278] Confuring RA01 frontend...\n");
     std::unique_ptr<Boardcore::SX1278::ISX1278Frontend> frontend(
-        new Boardcore::RA01Frontend());
+         new Boardcore::RA01Frontend());
 #endif
 
 #ifdef SX1278_IS_LORA
@@ -273,14 +273,14 @@ int main()
     config.enable_crc = false;
 
     sx1278 = new Boardcore::SX1278Fsk(sx1278_bus, cs::getPin(), dio0::getPin(),
-                                      dio1::getPin(), dio3::getPin(),
-                                      Boardcore::SPI::ClockDivider::DIV_256,
-                                      std::move(frontend));
+                                            dio1::getPin(), dio3::getPin(),
+                                            Boardcore::SPI::ClockDivider::DIV_256,
+                                            std::move(frontend));
 
     printf("\n[sx1278] Configuring sx1278 fsk...\n");
     if ((err = sx1278->init(config)) != Boardcore::SX1278Fsk::Error::NONE)
     {
-        // FIXME: Why does clang-format put this line up here?
+              // FIXME: Why does clang-format put this line up here?
         printf("[sx1278] sx1278->init error\n");
         return false;
     }
diff --git a/src/shared/drivers/adc/InternalADC.cpp b/src/shared/drivers/adc/InternalADC.cpp
index 3ef4957ba856a051cb7e9d78a1435df241f21eda..525c56e10a1a35c15c2606c6a2eec11eaefee154 100644
--- a/src/shared/drivers/adc/InternalADC.cpp
+++ b/src/shared/drivers/adc/InternalADC.cpp
@@ -39,9 +39,9 @@ static const float CAL_V_DDA    = 3.3f;
 #elif defined(STM32F767xx) || defined(STM32F769xx) || defined(STM32F756xx)
 #define CAL_PT1_VALUE ((uint16_t volatile *)((uint32_t)0x1FF0F44C))
 #define CAL_PT2_VALUE ((uint16_t volatile *)((uint32_t)0x1FF0F44E))
-static const float CAL_PT1_TEMP = 30;
-static const float CAL_PT2_TEMP = 110;
-static const float CAL_V_DDA    = 3.3f;
+static const float CAL_PT1_TEMP           = 30;
+static const float CAL_PT2_TEMP           = 110;
+static const float CAL_V_DDA              = 3.3f;
 #else
 #warning This micro controller does not have a calibrated temperature sensor or is not currently supported by this driver
 #endif
diff --git a/src/shared/sensors/BME280/BME280Data.h b/src/shared/sensors/BME280/BME280Data.h
index 769fdd0b82befadbb4b173f94bb5a339fb2f247f..6ec071df93f57321f35e5df568a101c2e731fdd3 100644
--- a/src/shared/sensors/BME280/BME280Data.h
+++ b/src/shared/sensors/BME280/BME280Data.h
@@ -32,8 +32,8 @@ struct BME280Data : public TemperatureData,
                     public HumidityData
 {
     BME280Data()
-        : TemperatureData{0, 0.0}, PressureData{0, Pascal(0)},
-          HumidityData{0, 0.0}
+        : TemperatureData{0, 0.0}, PressureData{0, Pascal(0)}, HumidityData{0,
+                                                                            0.0}
     {
     }
 
diff --git a/src/shared/sensors/BMP280/BMP280Data.h b/src/shared/sensors/BMP280/BMP280Data.h
index b2af8ef10d1098a4394675cf722cd4e2b451ee68..60f12f1cc36bb6102cfcfe5042f42de9d871f03e 100644
--- a/src/shared/sensors/BMP280/BMP280Data.h
+++ b/src/shared/sensors/BMP280/BMP280Data.h
@@ -33,8 +33,8 @@ struct BMP280Data : public TemperatureData, public PressureData
 
     BMP280Data(uint64_t timestamp, float temperature, Pascal pressure,
                float humidity)
-        : TemperatureData{timestamp, temperature},
-          PressureData{timestamp, pressure}
+        : TemperatureData{timestamp, temperature}, PressureData{timestamp,
+                                                                pressure}
 
     {
     }
diff --git a/src/shared/sensors/BMX160/BMX160Data.h b/src/shared/sensors/BMX160/BMX160Data.h
index fb6be4601aebdc8289a3a7fdb3f7692d018fdd67..0e76ced64a6adc01f86bd1ef7c76f46bcf02e1cb 100644
--- a/src/shared/sensors/BMX160/BMX160Data.h
+++ b/src/shared/sensors/BMX160/BMX160Data.h
@@ -34,8 +34,9 @@ struct BMX160Data : public AccelerometerData,
     BMX160Data()
         : AccelerometerData{0, MeterPerSecondSquared(0),
                             MeterPerSecondSquared(0), MeterPerSecondSquared(0)},
-          GyroscopeData{0, Degree(0), Degree(0), Degree(0)},
-          MagnetometerData{0, 0.0, 0.0, 0.0}
+          GyroscopeData{0, Degree(0), Degree(0), Degree(0)}, MagnetometerData{
+                                                                 0, 0.0, 0.0,
+                                                                 0.0}
     {
     }
 
diff --git a/src/shared/sensors/LPS22DF/LPS22DFData.h b/src/shared/sensors/LPS22DF/LPS22DFData.h
index 2663b9d0db1f63a87d664bf33acc8ef7738fba4a..b305736c8b5893ebff99b80b77d070e5ffaee71a 100644
--- a/src/shared/sensors/LPS22DF/LPS22DFData.h
+++ b/src/shared/sensors/LPS22DF/LPS22DFData.h
@@ -32,8 +32,8 @@ struct LPS22DFData : public PressureData, public TemperatureData
     LPS22DFData() : PressureData{0, Pascal(0)}, TemperatureData{0, 0.0} {}
 
     LPS22DFData(uint64_t timestamp, Pascal pressure, float temperature)
-        : PressureData{timestamp, pressure},
-          TemperatureData{timestamp, temperature}
+        : PressureData{timestamp, pressure}, TemperatureData{timestamp,
+                                                             temperature}
     {
     }
 
diff --git a/src/shared/sensors/LPS331AP/LPS331APData.h b/src/shared/sensors/LPS331AP/LPS331APData.h
index a212e99431c3ec6ed90e2bf4b7d670258bba81e5..3fa803fcd792e50cddd216913a08ba7e861786c3 100644
--- a/src/shared/sensors/LPS331AP/LPS331APData.h
+++ b/src/shared/sensors/LPS331AP/LPS331APData.h
@@ -34,8 +34,9 @@ struct LPS331APData : public PressureData, TemperatureData
 
     LPS331APData(uint64_t pressureTimestamp, Pascal pressure,
                  uint64_t temperatureTimestamp, float temperature)
-        : PressureData{pressureTimestamp, pressure},
-          TemperatureData{temperatureTimestamp, temperature}
+        : PressureData{pressureTimestamp, pressure}, TemperatureData{
+                                                         temperatureTimestamp,
+                                                         temperature}
     {
     }
 
diff --git a/src/shared/sensors/MS5803/MS5803Data.h b/src/shared/sensors/MS5803/MS5803Data.h
index c89192c4a673b4b2f1fee0efec3874f567810f88..dac4c206754b8a3f3303cdb4b47394ae8100a6d9 100644
--- a/src/shared/sensors/MS5803/MS5803Data.h
+++ b/src/shared/sensors/MS5803/MS5803Data.h
@@ -47,8 +47,9 @@ struct MS5803Data : public PressureData, TemperatureData
 
     MS5803Data(uint64_t pressureTimestamp, Pascal pressure,
                uint64_t temperatureTimestamp, float temperature)
-        : PressureData{pressureTimestamp, pressure},
-          TemperatureData{temperatureTimestamp, temperature}
+        : PressureData{pressureTimestamp, pressure}, TemperatureData{
+                                                         temperatureTimestamp,
+                                                         temperature}
     {
     }
 
diff --git a/src/shared/sensors/VN100/VN100Data.h b/src/shared/sensors/VN100/VN100Data.h
index fe2e0a44693cc17df0d4a113e0337e4b85bbab30..d07e53212bb0ec073b867ab076acea5ffd6bc95d 100644
--- a/src/shared/sensors/VN100/VN100Data.h
+++ b/src/shared/sensors/VN100/VN100Data.h
@@ -45,8 +45,8 @@ struct VN100Data : public QuaternionData,
      */
     // cppcheck-suppress uninitDerivedMemberVar
     VN100Data()
-        : QuaternionData{0, 0.0, 0.0, 0.0, 0.0},
-          MagnetometerData{0, 0.0, 0.0, 0.0},
+        : QuaternionData{0, 0.0, 0.0, 0.0, 0.0}, MagnetometerData{0, 0.0, 0.0,
+                                                                  0.0},
           AccelerometerData{0, MeterPerSecondSquared(0),
                             MeterPerSecondSquared(0), MeterPerSecondSquared(0)},
           GyroscopeData{0, Degree(0), Degree(0), Degree(0)},
diff --git a/src/tests/radio/sx1278/sx1278-init.h b/src/tests/radio/sx1278/sx1278-init.h
index 3262b8163a87369ad30e669056f999e10c83e54a..f304948729a401b0045b907b2d971592d5c03742 100644
--- a/src/tests/radio/sx1278/sx1278-init.h
+++ b/src/tests/radio/sx1278/sx1278-init.h
@@ -76,8 +76,8 @@ using sck  = miosix::radio::sck;
 using miso = miosix::radio::miso;
 using mosi = miosix::radio::mosi;
 
-using txen = miosix::radio::txEn;
-using rxen = miosix::radio::rxEn;
+using txen                         = miosix::radio::txEn;
+using rxen                         = miosix::radio::rxEn;
 
 #define SX1278_SPI SPI4
 
@@ -208,11 +208,11 @@ bool initRadio()
 #elif defined SX1278_IS_SKYWARD433
     printf("[sx1278] Confuring Skyward 433 frontend...\n");
     std::unique_ptr<Boardcore::SX1278::ISX1278Frontend> frontend(
-        new Boardcore::Skyward433Frontend());
+              new Boardcore::Skyward433Frontend());
 #else
     printf("[sx1278] Confuring RA01 frontend...\n");
     std::unique_ptr<Boardcore::SX1278::ISX1278Frontend> frontend(
-        new Boardcore::RA01Frontend());
+         new Boardcore::RA01Frontend());
 #endif
 
     // Initialize actual radio driver
@@ -240,14 +240,14 @@ bool initRadio()
     Boardcore::SX1278Fsk::Error err;
 
     sx1278 = new Boardcore::SX1278Fsk(sx1278_bus, cs::getPin(), dio0::getPin(),
-                                      dio1::getPin(), dio3::getPin(),
-                                      Boardcore::SPI::ClockDivider::DIV_256,
-                                      std::move(frontend));
+                                            dio1::getPin(), dio3::getPin(),
+                                            Boardcore::SPI::ClockDivider::DIV_256,
+                                            std::move(frontend));
 
     printf("\n[sx1278] Configuring sx1278 fsk...\n");
     if ((err = sx1278->init(config)) != Boardcore::SX1278Fsk::Error::NONE)
     {
-        // FIXME: Why does clang-format put this line up here?
+              // FIXME: Why does clang-format put this line up here?
         printf("[sx1278] sx1278->init error\n");
         return false;
     }