From a20ac4270203c49279b9110542aae13d55b22147 Mon Sep 17 00:00:00 2001
From: Matteo Pignataro <matteo.pignataro@skywarder.eu>
Date: Mon, 3 Apr 2023 13:56:52 +0000
Subject: [PATCH] [max31855] Fixed temperature sampling using 2 complement

---
 src/shared/sensors/MAX31855/MAX31855.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/shared/sensors/MAX31855/MAX31855.cpp b/src/shared/sensors/MAX31855/MAX31855.cpp
index c55d08065..75ab83dc4 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;
 }
-- 
GitLab