diff --git a/AMS_Master_Code/Core/Inc/battery.h b/AMS_Master_Code/Core/Inc/battery.h
new file mode 100644
index 0000000..42e6cf1
--- /dev/null
+++ b/AMS_Master_Code/Core/Inc/battery.h
@@ -0,0 +1,15 @@
+#pragma once
+#ifndef __BATTERY_H
+#define __BATTERY_H
+#include "config_ADBMS6830.h"
+#include "stm32h7xx_hal.h"
+
+#include <stdint.h>
+#include <stddef.h>
+extern uint16_t min_voltage;
+extern int16_t max_temp;
+
+void battery_init(SPI_HandleTypeDef* hspi);
+void battery_update();
+
+#endif // __BATTERY_H
\ No newline at end of file
diff --git a/AMS_Master_Code/Core/Src/battery.c b/AMS_Master_Code/Core/Src/battery.c
new file mode 100644
index 0000000..240bf12
--- /dev/null
+++ b/AMS_Master_Code/Core/Src/battery.c
@@ -0,0 +1,29 @@
+#include "battery.h"
+#include "ADBMS_Driver.h"
+
+uint16_t min_voltage = 0xFFFF;
+int16_t max_temp = -1;
+
+void battery_init(SPI_HandleTypeDef* hspi) {
+    AMS_Init(hspi);
+}
+
+void battery_update() {
+    if (AMS_Idle_Loop().status != ADBMS_NO_ERROR
+) {
+        // Handle error
+        return;
+    }
+    for (size_t i = 0; i < N_BMS; i++) {
+        for (size_t j = 0; j < N_CELLS; j++) {
+            if (modules[i].cellVoltages[j] > min_voltage) {
+                min_voltage = modules[i].cellVoltages[j];
+            }
+            if (modules[i].cellTemps[0] > max_temp) { 
+                //refactor this to use ntc_mv_to_celsius
+                // max_temp = ntc_mv_to_celsius(modules[i].auxVoltages[j]);
+                max_temp = modules[i].cellTemps[j];
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/AMS_Master_Code/Core/Src/can.c b/AMS_Master_Code/Core/Src/can.c
index d53f0e3..21c8375 100644
--- a/AMS_Master_Code/Core/Src/can.c
+++ b/AMS_Master_Code/Core/Src/can.c
@@ -3,7 +3,7 @@
 #include "imd_monitoring.h"
 #include "main.h"
 #include "shunt_monitoring.h"
-//#include "slave_monitoring.h"
+#include "battery.h"
 #include "soc_estimation.h"
 #include "ts_state_machine.h"
 
diff --git a/AMS_Master_Code/Core/Src/soc_estimation.c b/AMS_Master_Code/Core/Src/soc_estimation.c
index cd31eb0..dd71f10 100644
--- a/AMS_Master_Code/Core/Src/soc_estimation.c
+++ b/AMS_Master_Code/Core/Src/soc_estimation.c
@@ -1,7 +1,7 @@
 #include "soc_estimation.h"
 
 #include "shunt_monitoring.h"
-#include "slave_monitoring.h"
+#include "battery.h"
 
 #include "stm32h7xx_hal.h"