diff --git a/bin_delivery/final/death-stack-entry/death-stack-entry.bin b/bin_delivery/final/death-stack-entry/death-stack-entry.bin
new file mode 100755
index 0000000000000000000000000000000000000000..cfb4816667dcc01eff8f1d078a1b70e042966130
Binary files /dev/null and b/bin_delivery/final/death-stack-entry/death-stack-entry.bin differ
diff --git a/scripts/flashentry.sh b/scripts/flashentry.sh
index 389aae65d0cdf1cf828bbd1b286b73016c127eb0..7e9ed530b586a41268390ca12ed520520b527ffb 100755
--- a/scripts/flashentry.sh
+++ b/scripts/flashentry.sh
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-st-flash write bin_delivery/final/death-stack-entry.bin 0x8000000
+st-flash write bin_delivery/final/death-stack-entry/death-stack-entry.bin 0x8000000
diff --git a/skyward-boardcore b/skyward-boardcore
index cf503554420c3dba5f58326bafe06c29caabc55c..aa1c891fdf2693331bf9d3f8f072f58ae79105cb 160000
--- a/skyward-boardcore
+++ b/skyward-boardcore
@@ -1 +1 @@
-Subproject commit cf503554420c3dba5f58326bafe06c29caabc55c
+Subproject commit aa1c891fdf2693331bf9d3f8f072f58ae79105cb
diff --git a/src/boards/DeathStack/SensorManager/SensorManager.cpp b/src/boards/DeathStack/SensorManager/SensorManager.cpp
index a5259b05cb92d521df7c843679d1d5f0f78107e5..231fd750e3bfa89571b3830e5b12980547f4a271 100644
--- a/src/boards/DeathStack/SensorManager/SensorManager.cpp
+++ b/src/boards/DeathStack/SensorManager/SensorManager.cpp
@@ -41,6 +41,7 @@
 #include "sensors/LM75B.h"
 #include "sensors/MPU9250/MPU9250.h"
 #include "sensors/MPU9250/MPU9250Data.h"
+#include "sensors/MS580301BA07/MS580301BA07.h"
 
 #ifdef USE_MOCK_SENSORS
 #include "Sensors/Test/MockGPS.h"
@@ -95,11 +96,13 @@ void SensorManager::initSensors()
 {
     i2c1::init();
     spiMPU9250::init();
+    spiMS5803::init();
 
     // Instantiation
     adc_ad7994        = new AD7994Wrapper(sensors::ad7994::addr);
     temp_lm75b_analog = new LM75BType(sensors::lm75b_analog::addr);
     temp_lm75b_imu    = new LM75BType(sensors::lm75b_imu::addr);
+    pressure_ms5803  =  new MS580301BA07Type();
 
     imu_mpu9250 =
         new MPU9250Type(MPU9250Type::ACC_FS_16G, MPU9250Type::GYRO_FS_2000);
@@ -126,7 +129,7 @@ void SensorManager::initSensors()
     sensor_status.lm75b_analog = temp_lm75b_analog->init();
 
     // // TODO: lsm6ds3h
-    // // TODO: ms5803
+    sensor_status.ms5803 = pressure_ms5803->init();
 
     sensor_status.ad7994 = adc_ad7994->init();
 
@@ -143,6 +146,7 @@ void SensorManager::initSamplers()
     sampler_20hz_simple.AddSensor(adc_internal->getBatterySensorPtr());
     sampler_20hz_simple.AddSensor(adc_ad7994);
     sampler_20hz_simple.AddSensor(adc_internal->getCurrentSensorPtr());
+    sampler_20hz_simple.AddSensor(pressure_ms5803);
 
     sampler_20hz_simple.AddSensor(temp_lm75b_imu);
     sampler_20hz_simple.AddSensor(temp_lm75b_analog);
@@ -308,6 +312,8 @@ void SensorManager::onSimple20HZCallback()
         logger.log(*(ad7994_data));
         logger.log(lm78b_imu_data);
         logger.log(lm78b_analog_data);
+        logger.log(lm78b_analog_data);
+        logger.log(pressure_ms5803->getData());
     }
 
     ada->updateBaro(ad7994_data->nxp_baro_pressure);
diff --git a/src/boards/DeathStack/SensorManager/SensorManager.h b/src/boards/DeathStack/SensorManager/SensorManager.h
index 3852cb780e66d2b3e255531cb06054f9a4ab2930..19a699400bf41ee89042a63d6557357b5fcd4377 100644
--- a/src/boards/DeathStack/SensorManager/SensorManager.h
+++ b/src/boards/DeathStack/SensorManager/SensorManager.h
@@ -157,6 +157,7 @@ private:
     LM75BType* temp_lm75b_imu;
     LM75BType* temp_lm75b_analog;
     ADCWrapper* adc_internal;
+    MS580301BA07Type* pressure_ms5803;
 #ifdef USE_MOCK_SENSORS
     MockPressureSensor* mock_pressure_sensor;
     MockGPS* mock_gps;
diff --git a/src/boards/DeathStack/SensorManager/SensorManagerData.h b/src/boards/DeathStack/SensorManager/SensorManagerData.h
index e7095d9ea8f590639128d30ce95f7321c8f00f23..06f8b545b9141b1c2a08f804e1449f507973843c 100644
--- a/src/boards/DeathStack/SensorManager/SensorManagerData.h
+++ b/src/boards/DeathStack/SensorManager/SensorManagerData.h
@@ -54,8 +54,8 @@ enum class SensorManagerState : uint8_t
 
 // Nominal value returned by SensorStatus.toNumeric() when every sensor was
 // initialized successfully.
-// 127 = 1 in every bit of the SensorStatus struct
-static constexpr uint16_t NOMINAL_SENSOR_INIT_VALUE = 127;
+// 255 = 1 in every bit of the SensorStatus struct
+static constexpr uint16_t NOMINAL_SENSOR_INIT_VALUE = 255;
 
 struct SensorStatus
 {
@@ -76,6 +76,9 @@ struct SensorStatus
     // External ADC
     uint16_t ad7994 : 1;
 
+    // Digital pressure sensor
+    uint16_t ms5803 : 1;
+
     /**
      * Converts data in the struct to a single uint16_t value
      * @return uint16_t representing the struct
@@ -90,13 +93,14 @@ struct SensorStatus
     static std::string header()
     {
         return "mpu9250,lm75b_imu,lm75b_analog,piksi,current_sensor,battery_"
-               "sensor,ad7994";
+               "sensor,ad7994, ms5803\n";
     }
 
     void print(std::ostream& os) const
     {
         os << mpu9250 << "," << lm75b_imu << "," << lm75b_analog << "," << piksi
-           << "," << current_sensor << "," << battery_sensor << "," << ad7994;
+           << "," << current_sensor << "," << battery_sensor << "," << ad7994
+           << "," << ms5803 <<"\n";
     }
 };
 
diff --git a/src/entrypoints/deserializer/LogTypes.h b/src/entrypoints/deserializer/LogTypes.h
index 32204a38007c032fa5bbe5cee34e5bf874f82fba..f7f20c2b3857e96dc18a8f60ea2201e932961557 100644
--- a/src/entrypoints/deserializer/LogTypes.h
+++ b/src/entrypoints/deserializer/LogTypes.h
@@ -43,6 +43,7 @@
 #include "logger/LogStats.h"
 #include "scheduler/TaskSchedulerData.h"
 #include "sensors/MPU9250/MPU9250Data.h"
+#include "sensors/MS580301BA07/MS580301BA07Data.h"
 
 using std::ofstream;
 
@@ -112,6 +113,8 @@ void registerTypes(Deserializer& ds)
 
     // ds.registerType<StackData>(print<StackData>, StackData::header());
     ds.registerType<ReferenceValues>(print<ReferenceValues>, ReferenceValues::header());
+
+     ds.registerType<MS580301BA07Data>(print<MS580301BA07Data>, MS580301BA07Data::header());
 }
 
 #endif
diff --git a/src/tests/drivers/test-all-sensors.cpp b/src/tests/drivers/test-all-sensors.cpp
index 972410fffb41bc5cf1d4b23bdc4159580be809cd..fd4d5a5ccb1cf1f630bcf5480ecc674ffc97ded6 100644
--- a/src/tests/drivers/test-all-sensors.cpp
+++ b/src/tests/drivers/test-all-sensors.cpp
@@ -30,6 +30,7 @@
 #include <sensors/ADIS16405/ADIS16405.h>
 #include <sensors/LM75B.h>
 #include <sensors/MPU9250/MPU9250.h>
+#include "sensors/MS580301BA07/MS580301BA07.h"
 #include <sensors/SensorSampling.h>
 
 #include <interfaces-impl/hwmapping.h>
@@ -40,6 +41,7 @@ using namespace miosix;
 typedef MPU9250<spiMPU9250> MPU9250Type;
 //typedef ADIS16405<spiADIS16405, sensors::adis16405::rst> ADIS16405Type;
 typedef LM75B<i2c1> LM75BType;
+typedef MS580301BA07<spiMS5803> MS580301BA07Type;
 
 AD7994Wrapper* adc_ad7994;
 ADCWrapper* adc_internal;
@@ -49,6 +51,7 @@ MPU9250Type* imu_mpu9250;
 
 LM75BType* temp_lm75b_analog;
 LM75BType* temp_lm75b_imu;
+MS580301BA07Type* pressure_ms5803;
 
 Piksi* piksi;
 
@@ -67,6 +70,8 @@ void init()
     imu_mpu9250 =
         new MPU9250Type(MPU9250Type::ACC_FS_16G, MPU9250Type::GYRO_FS_2000);
 
+    pressure_ms5803  =  new MS580301BA07Type();
+
     piksi = new Piksi("/dev/gps");
 
     Thread::sleep(1000);
@@ -78,6 +83,7 @@ void init()
     printf("Testing adc_ad7994... %s\n", adc_ad7994->init() ? "Ok" : "Failed");
     printf("Testing battery sensor ... %s\n", adc_internal->getBatterySensorPtr()->init() ? "Ok" : "Failed");
     printf("Testing current sensor... %s\n", adc_internal->getCurrentSensorPtr()->init() ? "Ok" : "Failed");
+    printf("Testing digital pressure sensor... %s\n", pressure_ms5803->init() ? "Ok" : "Failed");
     printf("\n\n");
 }
 
@@ -90,6 +96,7 @@ void update()
     adc_ad7994->onSimpleUpdate();
     adc_internal->getBatterySensorPtr()->onSimpleUpdate();
     adc_internal->getCurrentSensorPtr()->onSimpleUpdate();
+    pressure_ms5803->onSimpleUpdate();
 }
 
 void print()
@@ -100,8 +107,10 @@ void print()
            imu_adis16405->accelDataPtr()->getZ()); */
     printf("LM75B imu Temp:     \tT: %.3f\n", temp_lm75b_imu->getTemp());
     printf("LM75B analog Temp:  \tT: %.3f\n", temp_lm75b_analog->getTemp());
+    printf("Digital temp:   \tP: %f\n", pressure_ms5803->getData().temp); 
     printf("HW Pressure:    \tP: %f\n", adc_ad7994->getDataPtr()->honeywell_baro_pressure);
     printf("NXP Pressure:   \tP: %f\n", adc_ad7994->getDataPtr()->nxp_baro_pressure);    
+    printf("Digital Pressure:   \tP: %f\n", pressure_ms5803->getData().pressure*100);  
     printf("Battery voltage:\tV: %f\n", 
         adc_internal->getBatterySensorPtr()->getBatteryDataPtr()->volt);    
     printf("Current sens 1: \tC: %f\n",