Index: ctrl/firmware/Main/CubeMX/Core/Inc/i2c.h
===================================================================
--- ctrl/firmware/Main/CubeMX/Core/Inc/i2c.h	(revision 88)
+++ ctrl/firmware/Main/CubeMX/Core/Inc/i2c.h	(revision 89)
@@ -35,4 +35,6 @@
 extern I2C_HandleTypeDef hi2c1;
 
+extern I2C_HandleTypeDef hi2c2;
+
 /* USER CODE BEGIN Private defines */
 
@@ -40,4 +42,5 @@
 
 void MX_I2C1_Init(void);
+void MX_I2C2_Init(void);
 
 /* USER CODE BEGIN Prototypes */
Index: ctrl/firmware/Main/CubeMX/Core/Inc/main.h
===================================================================
--- ctrl/firmware/Main/CubeMX/Core/Inc/main.h	(revision 88)
+++ ctrl/firmware/Main/CubeMX/Core/Inc/main.h	(revision 89)
@@ -64,4 +64,8 @@
 #define TX1_LED_Pin GPIO_PIN_6
 #define TX1_LED_GPIO_Port GPIOE
+#define EEPROM_I2C_SDA_Pin GPIO_PIN_0
+#define EEPROM_I2C_SDA_GPIO_Port GPIOF
+#define EEPROM_I2C_SCL_Pin GPIO_PIN_1
+#define EEPROM_I2C_SCL_GPIO_Port GPIOF
 #define POWER_4V_EN_Pin GPIO_PIN_15
 #define POWER_4V_EN_GPIO_Port GPIOF
Index: ctrl/firmware/Main/CubeMX/Core/Src/gpio.c
===================================================================
--- ctrl/firmware/Main/CubeMX/Core/Src/gpio.c	(revision 88)
+++ ctrl/firmware/Main/CubeMX/Core/Src/gpio.c	(revision 89)
@@ -105,12 +105,12 @@
   HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
 
-  /*Configure GPIO pins : PF0 PF1 PF2 PF3
-                           PF4 PF5 PF6 PF7
-                           PF8 PF9 PF10 PF11
-                           PF12 PF13 PF14 */
-  GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
-                          |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7
-                          |GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
-                          |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14;
+  /*Configure GPIO pins : PF2 PF3 PF4 PF5
+                           PF6 PF7 PF8 PF9
+                           PF10 PF11 PF12 PF13
+                           PF14 */
+  GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
+                          |GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9
+                          |GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13
+                          |GPIO_PIN_14;
   GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
   GPIO_InitStruct.Pull = GPIO_NOPULL;
Index: ctrl/firmware/Main/CubeMX/Core/Src/i2c.c
===================================================================
--- ctrl/firmware/Main/CubeMX/Core/Src/i2c.c	(revision 88)
+++ ctrl/firmware/Main/CubeMX/Core/Src/i2c.c	(revision 89)
@@ -26,4 +26,5 @@
 
 I2C_HandleTypeDef hi2c1;
+I2C_HandleTypeDef hi2c2;
 
 /* I2C1 init function */
@@ -70,4 +71,51 @@
 
 }
+/* I2C2 init function */
+void MX_I2C2_Init(void)
+{
+
+  /* USER CODE BEGIN I2C2_Init 0 */
+
+  /* USER CODE END I2C2_Init 0 */
+
+  /* USER CODE BEGIN I2C2_Init 1 */
+
+  /* USER CODE END I2C2_Init 1 */
+  hi2c2.Instance = I2C2;
+  hi2c2.Init.Timing = 0x00300B29;
+  hi2c2.Init.OwnAddress1 = 0;
+  hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+  hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+  hi2c2.Init.OwnAddress2 = 0;
+  hi2c2.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
+  hi2c2.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+  hi2c2.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+  if (HAL_I2C_Init(&hi2c2) != HAL_OK)
+  {
+    Error_Handler();
+  }
+
+  /** Configure Analogue filter
+  */
+  if (HAL_I2CEx_ConfigAnalogFilter(&hi2c2, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+  {
+    Error_Handler();
+  }
+
+  /** Configure Digital filter
+  */
+  if (HAL_I2CEx_ConfigDigitalFilter(&hi2c2, 0) != HAL_OK)
+  {
+    Error_Handler();
+  }
+
+  /** I2C Enable Fast Mode Plus
+  */
+  HAL_I2CEx_EnableFastModePlus(I2C_FASTMODEPLUS_I2C2);
+  /* USER CODE BEGIN I2C2_Init 2 */
+
+  /* USER CODE END I2C2_Init 2 */
+
+}
 
 void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)
@@ -109,4 +157,37 @@
   /* USER CODE END I2C1_MspInit 1 */
   }
+  else if(i2cHandle->Instance==I2C2)
+  {
+  /* USER CODE BEGIN I2C2_MspInit 0 */
+
+  /* USER CODE END I2C2_MspInit 0 */
+
+  /** Initializes the peripherals clock
+  */
+    PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2C2;
+    PeriphClkInitStruct.I2c123ClockSelection = RCC_I2C1235CLKSOURCE_HSI;
+    if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
+    {
+      Error_Handler();
+    }
+
+    __HAL_RCC_GPIOF_CLK_ENABLE();
+    /**I2C2 GPIO Configuration
+    PF0     ------> I2C2_SDA
+    PF1     ------> I2C2_SCL
+    */
+    GPIO_InitStruct.Pin = EEPROM_I2C_SDA_Pin|EEPROM_I2C_SCL_Pin;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+    GPIO_InitStruct.Alternate = GPIO_AF4_I2C2;
+    HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
+
+    /* I2C2 clock enable */
+    __HAL_RCC_I2C2_CLK_ENABLE();
+  /* USER CODE BEGIN I2C2_MspInit 1 */
+
+  /* USER CODE END I2C2_MspInit 1 */
+  }
 }
 
@@ -134,4 +215,24 @@
   /* USER CODE END I2C1_MspDeInit 1 */
   }
+  else if(i2cHandle->Instance==I2C2)
+  {
+  /* USER CODE BEGIN I2C2_MspDeInit 0 */
+
+  /* USER CODE END I2C2_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_I2C2_CLK_DISABLE();
+
+    /**I2C2 GPIO Configuration
+    PF0     ------> I2C2_SDA
+    PF1     ------> I2C2_SCL
+    */
+    HAL_GPIO_DeInit(EEPROM_I2C_SDA_GPIO_Port, EEPROM_I2C_SDA_Pin);
+
+    HAL_GPIO_DeInit(EEPROM_I2C_SCL_GPIO_Port, EEPROM_I2C_SCL_Pin);
+
+  /* USER CODE BEGIN I2C2_MspDeInit 1 */
+
+  /* USER CODE END I2C2_MspDeInit 1 */
+  }
 }
 
Index: ctrl/firmware/Main/CubeMX/Core/Src/main.c
===================================================================
--- ctrl/firmware/Main/CubeMX/Core/Src/main.c	(revision 88)
+++ ctrl/firmware/Main/CubeMX/Core/Src/main.c	(revision 89)
@@ -142,4 +142,5 @@
   MX_TIM6_Init();
   MX_I2C1_Init();
+  MX_I2C2_Init();
   /* USER CODE BEGIN 2 */
 
Index: ctrl/firmware/Main/CubeMX/FATFS/App/fatfs.c
===================================================================
--- ctrl/firmware/Main/CubeMX/FATFS/App/fatfs.c	(revision 88)
+++ ctrl/firmware/Main/CubeMX/FATFS/App/fatfs.c	(revision 89)
@@ -23,4 +23,8 @@
 FATFS SDFatFS;    /* File system object for SD logical drive */
 FIL SDFile;       /* File object for SD */
+uint8_t retEEPROM;    /* Return value for USER */
+char EEPROMPath[4];   /* USER logical drive path */
+FATFS USERFatFS;    /* File system object for USER logical drive */
+FIL EEPROMFile;       /* File object for USER */
 
 /* USER CODE BEGIN Variables */
@@ -32,4 +36,6 @@
   /*## FatFS: Link the SD driver ###########################*/
   retSD = FATFS_LinkDriver(&SD_Driver, SDPath);
+  /*## FatFS: Link the USER driver ###########################*/
+  retEEPROM = FATFS_LinkDriver(&EEPROM_Driver, EEPROMPath);
 
   /* USER CODE BEGIN Init */
Index: ctrl/firmware/Main/CubeMX/FATFS/App/fatfs.h
===================================================================
--- ctrl/firmware/Main/CubeMX/FATFS/App/fatfs.h	(revision 88)
+++ ctrl/firmware/Main/CubeMX/FATFS/App/fatfs.h	(revision 89)
@@ -27,4 +27,5 @@
 #include "ff_gen_drv.h"
 #include "sd_diskio.h" /* defines SD_Driver as external */
+#include "eeprom_diskio.h" /* defines USER_Driver as external */
 
 /* USER CODE BEGIN Includes */
@@ -36,4 +37,8 @@
 extern FATFS SDFatFS; /* File system object for SD logical drive */
 extern FIL SDFile; /* File object for SD */
+extern uint8_t retEEPROM; /* Return value for USER */
+extern char EEPROMPath[4]; /* USER logical drive path */
+extern FATFS EEPROMFatFS; /* File system object for USER logical drive */
+extern FIL EEPROMFile; /* File object for USER */
 
 void MX_FATFS_Init(void);
Index: ctrl/firmware/Main/CubeMX/FATFS/Target/eeprom_diskio.c
===================================================================
--- ctrl/firmware/Main/CubeMX/FATFS/Target/eeprom_diskio.c	(revision 89)
+++ ctrl/firmware/Main/CubeMX/FATFS/Target/eeprom_diskio.c	(revision 89)
@@ -0,0 +1,167 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+  * @file    user_diskio.c
+  * @brief   This file includes a diskio driver skeleton to be completed by the user.
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2025 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
+  */
+ /* USER CODE END Header */
+
+#ifdef USE_OBSOLETE_USER_CODE_SECTION_0
+/*
+ * Warning: the user section 0 is no more in use (starting from CubeMx version 4.16.0)
+ * To be suppressed in the future.
+ * Kept to ensure backward compatibility with previous CubeMx versions when
+ * migrating projects.
+ * User code previously added there should be copied in the new user sections before
+ * the section contents can be deleted.
+ */
+/* USER CODE BEGIN 0 */
+/* USER CODE END 0 */
+#endif
+
+/* USER CODE BEGIN DECL */
+
+/* Includes ------------------------------------------------------------------*/
+#include <string.h>
+#include "ff_gen_drv.h"
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+
+/* Private variables ---------------------------------------------------------*/
+/* Disk status */
+static volatile DSTATUS Stat = STA_NOINIT;
+
+/* USER CODE END DECL */
+
+/* Private function prototypes -----------------------------------------------*/
+DSTATUS EEPROM_initialize (BYTE pdrv);
+DSTATUS EEPROM_status (BYTE pdrv);
+DRESULT EEPROM_read (BYTE pdrv, BYTE *buff, DWORD sector, UINT count);
+#if _USE_WRITE == 1
+  DRESULT EEPROM_write (BYTE pdrv, const BYTE *buff, DWORD sector, UINT count);
+#endif /* _USE_WRITE == 1 */
+#if _USE_IOCTL == 1
+  DRESULT EEPROM_ioctl (BYTE pdrv, BYTE cmd, void *buff);
+#endif /* _USE_IOCTL == 1 */
+
+Diskio_drvTypeDef  EEPROM_Driver =
+{
+  EEPROM_initialize,
+  EEPROM_status,
+  EEPROM_read,
+#if  _USE_WRITE
+  EEPROM_write,
+#endif  /* _USE_WRITE == 1 */
+#if  _USE_IOCTL == 1
+  EEPROM_ioctl,
+#endif /* _USE_IOCTL == 1 */
+};
+
+/* Private functions ---------------------------------------------------------*/
+
+/**
+  * @brief  Initializes a Drive
+  * @param  pdrv: Physical drive number (0..)
+  * @retval DSTATUS: Operation status
+  */
+DSTATUS EEPROM_initialize (
+	BYTE pdrv           /* Physical drive nmuber to identify the drive */
+)
+{
+  /* USER CODE BEGIN INIT */
+    Stat = STA_NOINIT;
+    return Stat;
+  /* USER CODE END INIT */
+}
+
+/**
+  * @brief  Gets Disk Status
+  * @param  pdrv: Physical drive number (0..)
+  * @retval DSTATUS: Operation status
+  */
+DSTATUS EEPROM_status (
+	BYTE pdrv       /* Physical drive number to identify the drive */
+)
+{
+  /* USER CODE BEGIN STATUS */
+    Stat = STA_NOINIT;
+    return Stat;
+  /* USER CODE END STATUS */
+}
+
+/**
+  * @brief  Reads Sector(s)
+  * @param  pdrv: Physical drive number (0..)
+  * @param  *buff: Data buffer to store read data
+  * @param  sector: Sector address (LBA)
+  * @param  count: Number of sectors to read (1..128)
+  * @retval DRESULT: Operation result
+  */
+DRESULT EEPROM_read (
+	BYTE pdrv,      /* Physical drive nmuber to identify the drive */
+	BYTE *buff,     /* Data buffer to store read data */
+	DWORD sector,   /* Sector address in LBA */
+	UINT count      /* Number of sectors to read */
+)
+{
+  /* USER CODE BEGIN READ */
+    return RES_OK;
+  /* USER CODE END READ */
+}
+
+/**
+  * @brief  Writes Sector(s)
+  * @param  pdrv: Physical drive number (0..)
+  * @param  *buff: Data to be written
+  * @param  sector: Sector address (LBA)
+  * @param  count: Number of sectors to write (1..128)
+  * @retval DRESULT: Operation result
+  */
+#if _USE_WRITE == 1
+DRESULT EEPROM_write (
+	BYTE pdrv,          /* Physical drive nmuber to identify the drive */
+	const BYTE *buff,   /* Data to be written */
+	DWORD sector,       /* Sector address in LBA */
+	UINT count          /* Number of sectors to write */
+)
+{
+  /* USER CODE BEGIN WRITE */
+  /* USER CODE HERE */
+    return RES_OK;
+  /* USER CODE END WRITE */
+}
+#endif /* _USE_WRITE == 1 */
+
+/**
+  * @brief  I/O control operation
+  * @param  pdrv: Physical drive number (0..)
+  * @param  cmd: Control code
+  * @param  *buff: Buffer to send/receive control data
+  * @retval DRESULT: Operation result
+  */
+#if _USE_IOCTL == 1
+DRESULT EEPROM_ioctl (
+	BYTE pdrv,      /* Physical drive nmuber (0..) */
+	BYTE cmd,       /* Control code */
+	void *buff      /* Buffer to send/receive control data */
+)
+{
+  /* USER CODE BEGIN IOCTL */
+    DRESULT res = RES_ERROR;
+    return res;
+  /* USER CODE END IOCTL */
+}
+#endif /* _USE_IOCTL == 1 */
+
Index: ctrl/firmware/Main/CubeMX/FATFS/Target/eeprom_diskio.h
===================================================================
--- ctrl/firmware/Main/CubeMX/FATFS/Target/eeprom_diskio.h	(revision 89)
+++ ctrl/firmware/Main/CubeMX/FATFS/Target/eeprom_diskio.h	(revision 89)
@@ -0,0 +1,43 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+  * @file    user_diskio.h
+  * @brief   This file contains the common defines and functions prototypes for
+  *          the user_diskio driver.
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2025 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
+  */
+ /* USER CODE END Header */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __EEPROM_DISKIO_H
+#define __EEPROM_DISKIO_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* USER CODE BEGIN 0 */
+
+/* Includes ------------------------------------------------------------------*/
+/* Exported types ------------------------------------------------------------*/
+/* Exported constants --------------------------------------------------------*/
+/* Exported functions ------------------------------------------------------- */
+extern Diskio_drvTypeDef  EEPROM_Driver;
+
+/* USER CODE END 0 */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __EEPROM_DISKIO_H */
Index: ctrl/firmware/Main/CubeMX/FATFS/Target/ffconf.h
===================================================================
--- ctrl/firmware/Main/CubeMX/FATFS/Target/ffconf.h	(revision 88)
+++ ctrl/firmware/Main/CubeMX/FATFS/Target/ffconf.h	(revision 89)
@@ -156,5 +156,5 @@
 /----------------------------------------------------------------------------*/
 
-#define _VOLUMES    1
+#define _VOLUMES    2
 /* Number of volumes (logical drives) to be used. */
 
Index: ctrl/firmware/Main/CubeMX/charger.ioc
===================================================================
--- ctrl/firmware/Main/CubeMX/charger.ioc	(revision 88)
+++ ctrl/firmware/Main/CubeMX/charger.ioc	(revision 89)
@@ -149,4 +149,7 @@
 File.Version=6
 GPIO.groupedBy=Group By Peripherals
+I2C2.I2C_Speed_Mode=I2C_Fast_Plus
+I2C2.IPParameters=I2C_Speed_Mode,Timing
+I2C2.Timing=0x00300B29
 KeepUserPlacement=false
 MMTAppReg1.MEMORYMAP.AppRegionName=DTCMRAM
@@ -210,91 +213,95 @@
 Mcu.IP0=CORTEX_M7
 Mcu.IP1=DEBUG
-Mcu.IP10=RTC
-Mcu.IP11=SDMMC1
-Mcu.IP12=SPI2
-Mcu.IP13=SPI4
-Mcu.IP14=SYS
-Mcu.IP15=TIM3
-Mcu.IP16=TIM6
-Mcu.IP17=TIM8
-Mcu.IP18=USART2
-Mcu.IP19=USART3
+Mcu.IP10=RCC
+Mcu.IP11=RTC
+Mcu.IP12=SDMMC1
+Mcu.IP13=SPI2
+Mcu.IP14=SPI4
+Mcu.IP15=SYS
+Mcu.IP16=TIM3
+Mcu.IP17=TIM6
+Mcu.IP18=TIM8
+Mcu.IP19=USART2
 Mcu.IP2=DMA
-Mcu.IP20=USART10
+Mcu.IP20=USART3
+Mcu.IP21=USART10
 Mcu.IP3=FATFS
 Mcu.IP4=FREERTOS
 Mcu.IP5=I2C1
-Mcu.IP6=MDMA
-Mcu.IP7=MEMORYMAP
-Mcu.IP8=NVIC
-Mcu.IP9=RCC
-Mcu.IPNb=21
+Mcu.IP6=I2C2
+Mcu.IP7=MDMA
+Mcu.IP8=MEMORYMAP
+Mcu.IP9=NVIC
+Mcu.IPNb=22
 Mcu.Name=STM32H723ZETx
 Mcu.Package=LQFP144
 Mcu.Pin0=PE2
 Mcu.Pin1=PE3
-Mcu.Pin10=PE7
-Mcu.Pin11=PE11
-Mcu.Pin12=PE12
-Mcu.Pin13=PE13
-Mcu.Pin14=PE14
-Mcu.Pin15=PE15
-Mcu.Pin16=PB10
-Mcu.Pin17=PB14
-Mcu.Pin18=PB15
-Mcu.Pin19=PD8
+Mcu.Pin10=PG0
+Mcu.Pin11=PG1
+Mcu.Pin12=PE7
+Mcu.Pin13=PE11
+Mcu.Pin14=PE12
+Mcu.Pin15=PE13
+Mcu.Pin16=PE14
+Mcu.Pin17=PE15
+Mcu.Pin18=PB10
+Mcu.Pin19=PB14
 Mcu.Pin2=PE6
-Mcu.Pin20=PD9
-Mcu.Pin21=PD10
-Mcu.Pin22=PD11
-Mcu.Pin23=PD12
-Mcu.Pin24=PD13
-Mcu.Pin25=PC6
-Mcu.Pin26=PC7
-Mcu.Pin27=PC8
-Mcu.Pin28=PC9
-Mcu.Pin29=PA8
+Mcu.Pin20=PB15
+Mcu.Pin21=PD8
+Mcu.Pin22=PD9
+Mcu.Pin23=PD10
+Mcu.Pin24=PD11
+Mcu.Pin25=PD12
+Mcu.Pin26=PD13
+Mcu.Pin27=PC6
+Mcu.Pin28=PC7
+Mcu.Pin29=PC8
 Mcu.Pin3=PC14-OSC32_IN
-Mcu.Pin30=PA13(JTMS/SWDIO)
-Mcu.Pin31=PA14(JTCK/SWCLK)
-Mcu.Pin32=PA15(JTDI)
-Mcu.Pin33=PC10
-Mcu.Pin34=PC11
-Mcu.Pin35=PC12
-Mcu.Pin36=PD2
-Mcu.Pin37=PD3
-Mcu.Pin38=PD4
-Mcu.Pin39=PD5
+Mcu.Pin30=PC9
+Mcu.Pin31=PA8
+Mcu.Pin32=PA13(JTMS/SWDIO)
+Mcu.Pin33=PA14(JTCK/SWCLK)
+Mcu.Pin34=PA15(JTDI)
+Mcu.Pin35=PC10
+Mcu.Pin36=PC11
+Mcu.Pin37=PC12
+Mcu.Pin38=PD2
+Mcu.Pin39=PD3
 Mcu.Pin4=PC15-OSC32_OUT
-Mcu.Pin40=PD6
-Mcu.Pin41=PD7
-Mcu.Pin42=PG9
-Mcu.Pin43=PG10
-Mcu.Pin44=PG11
-Mcu.Pin45=PG12
-Mcu.Pin46=PG13
-Mcu.Pin47=PG14
-Mcu.Pin48=PG15
-Mcu.Pin49=PB4(NJTRST)
-Mcu.Pin5=PH0-OSC_IN
-Mcu.Pin50=PB6
-Mcu.Pin51=PB7
-Mcu.Pin52=PB8
-Mcu.Pin53=PB9
-Mcu.Pin54=VP_FATFS_VS_SDIO
-Mcu.Pin55=VP_FREERTOS_VS_CMSIS_V2
-Mcu.Pin56=VP_RTC_VS_RTC_Activate
-Mcu.Pin57=VP_RTC_VS_RTC_Calendar
-Mcu.Pin58=VP_SYS_VS_tim7
-Mcu.Pin59=VP_TIM3_VS_ClockSourceINT
-Mcu.Pin6=PH1-OSC_OUT
-Mcu.Pin60=VP_TIM6_VS_ClockSourceINT
-Mcu.Pin61=VP_TIM8_VS_ControllerModeReset
-Mcu.Pin62=VP_TIM8_VS_ClockSourceINT
-Mcu.Pin63=VP_MEMORYMAP_VS_MEMORYMAP
-Mcu.Pin7=PF15
-Mcu.Pin8=PG0
-Mcu.Pin9=PG1
-Mcu.PinsNb=64
+Mcu.Pin40=PD4
+Mcu.Pin41=PD5
+Mcu.Pin42=PD6
+Mcu.Pin43=PD7
+Mcu.Pin44=PG9
+Mcu.Pin45=PG10
+Mcu.Pin46=PG11
+Mcu.Pin47=PG12
+Mcu.Pin48=PG13
+Mcu.Pin49=PG14
+Mcu.Pin5=PF0
+Mcu.Pin50=PG15
+Mcu.Pin51=PB4(NJTRST)
+Mcu.Pin52=PB6
+Mcu.Pin53=PB7
+Mcu.Pin54=PB8
+Mcu.Pin55=PB9
+Mcu.Pin56=VP_FATFS_VS_SDIO
+Mcu.Pin57=VP_FATFS_VS_Generic
+Mcu.Pin58=VP_FREERTOS_VS_CMSIS_V2
+Mcu.Pin59=VP_RTC_VS_RTC_Activate
+Mcu.Pin6=PF1
+Mcu.Pin60=VP_RTC_VS_RTC_Calendar
+Mcu.Pin61=VP_SYS_VS_tim7
+Mcu.Pin62=VP_TIM3_VS_ClockSourceINT
+Mcu.Pin63=VP_TIM6_VS_ClockSourceINT
+Mcu.Pin64=VP_TIM8_VS_ControllerModeReset
+Mcu.Pin65=VP_TIM8_VS_ClockSourceINT
+Mcu.Pin66=VP_MEMORYMAP_VS_MEMORYMAP
+Mcu.Pin7=PH0-OSC_IN
+Mcu.Pin8=PH1-OSC_OUT
+Mcu.Pin9=PF15
+Mcu.PinsNb=67
 Mcu.ThirdParty0=STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0
 Mcu.ThirdPartyNb=1
@@ -525,4 +532,14 @@
 PE7.Locked=true
 PE7.Signal=GPIO_Output
+PF0.GPIOParameters=GPIO_Label
+PF0.GPIO_Label=EEPROM_I2C_SDA
+PF0.Locked=true
+PF0.Mode=I2C
+PF0.Signal=I2C2_SDA
+PF1.GPIOParameters=GPIO_Label
+PF1.GPIO_Label=EEPROM_I2C_SCL
+PF1.Locked=true
+PF1.Mode=I2C
+PF1.Signal=I2C2_SCL
 PF15.GPIOParameters=GPIO_Label
 PF15.GPIO_Label=POWER_4V_EN
@@ -600,5 +617,5 @@
 ProjectManager.UAScriptBeforePath=
 ProjectManager.UnderRoot=true
-ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-MX_MDMA_Init-MDMA-false-HAL-true,4-MX_RTC_Init-RTC-false-HAL-true,5-MX_SPI4_Init-SPI4-false-HAL-true,6-MX_SDMMC1_SD_Init-SDMMC1-false-HAL-true,7-MX_USART3_UART_Init-USART3-false-HAL-true,8-MX_TIM3_Init-TIM3-false-HAL-true,9-SystemClock_Config-RCC-false-HAL-false,10-MX_FATFS_Init-FATFS-false-HAL-false,11-MX_TIM8_Init-TIM8-false-HAL-true,12-MX_SPI2_Init-SPI2-false-HAL-true,13-MX_USART2_UART_Init-USART2-false-HAL-true,14-MX_USART10_UART_Init-USART10-false-HAL-true,15-MX_TIM6_Init-TIM6-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
+ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-MX_MDMA_Init-MDMA-false-HAL-true,4-MX_RTC_Init-RTC-false-HAL-true,5-MX_SPI4_Init-SPI4-false-HAL-true,6-MX_SDMMC1_SD_Init-SDMMC1-false-HAL-true,7-MX_USART3_UART_Init-USART3-false-HAL-true,8-MX_TIM3_Init-TIM3-false-HAL-true,9-SystemClock_Config-RCC-false-HAL-false,10-MX_FATFS_Init-FATFS-false-HAL-false,11-MX_TIM8_Init-TIM8-false-HAL-true,12-MX_SPI2_Init-SPI2-false-HAL-true,13-MX_USART2_UART_Init-USART2-false-HAL-true,14-MX_USART10_UART_Init-USART10-false-HAL-true,15-MX_TIM6_Init-TIM6-false-HAL-true,16-MX_I2C1_Init-I2C1-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
 RCC.ADCFreq_Value=125000000
 RCC.AHB12Freq_Value=100000000
@@ -767,4 +784,6 @@
 USART3.SwapParam=ADVFEATURE_SWAP_ENABLE
 USART3.VirtualMode-Asynchronous=VM_ASYNC
+VP_FATFS_VS_Generic.Mode=User_defined
+VP_FATFS_VS_Generic.Signal=FATFS_VS_Generic
 VP_FATFS_VS_SDIO.Mode=SDIO
 VP_FATFS_VS_SDIO.Signal=FATFS_VS_SDIO
