diff --git a/src/shared/sensors/MAX31855/MAX31855.cpp b/src/shared/sensors/MAX31855/MAX31855.cpp
index c55d0806597b7967bb2140e9768c32094f8a217e..75ab83dc487139e53601dd00a5d0fc2716d14d9d 100644
--- a/src/shared/sensors/MAX31855/MAX31855.cpp
+++ b/src/shared/sensors/MAX31855/MAX31855.cpp
@@ -68,18 +68,19 @@ bool MAX31855::checkConnection()
 
 TemperatureData MAX31855::sampleImpl()
 {
-    uint16_t sample;
+    int16_t sample;
 
     {
         SPITransaction spi{slave};
         sample = spi.read16();
+        sample = sample >> 2;
     }
 
     TemperatureData result{};
     result.temperatureTimestamp = TimestampTimer::getTimestamp();
 
     // Convert the integer and decimal part separately
-    result.temperature = static_cast<float>(sample >> 2) * 0.25;
+    result.temperature = static_cast<float>(sample) * 0.25;
 
     return result;
 }