Index: ctrl/firmware/Main/CubeMX/charger.ioc
===================================================================
--- ctrl/firmware/Main/CubeMX/charger.ioc	(revision 70)
+++ ctrl/firmware/Main/CubeMX/charger.ioc	(revision 72)
@@ -66,4 +66,13 @@
 Dma.USART3_TX.2.SyncRequestNumber=1
 Dma.USART3_TX.2.SyncSignalID=NONE
+FREERTOS.INCLUDE_uxTaskGetStackHighWaterMark2=1
+FREERTOS.INCLUDE_xTaskGetHandle=1
+FREERTOS.IPParameters=Tasks01,configENABLE_FPU,configENABLE_BACKWARD_COMPATIBILITY,configUSE_TICKLESS_IDLE,configRECORD_STACK_HIGH_ADDRESS,configCHECK_FOR_STACK_OVERFLOW,INCLUDE_xTaskGetHandle,INCLUDE_uxTaskGetStackHighWaterMark2
+FREERTOS.Tasks01=mainTask,24,128,mainTaskStart,Default,NULL,Static,mainTaskBuffer,mainTaskControlBlock
+FREERTOS.configCHECK_FOR_STACK_OVERFLOW=2
+FREERTOS.configENABLE_BACKWARD_COMPATIBILITY=0
+FREERTOS.configENABLE_FPU=1
+FREERTOS.configRECORD_STACK_HIGH_ADDRESS=1
+FREERTOS.configUSE_TICKLESS_IDLE=1
 File.Version=6
 GPIO.groupedBy=Group By Peripherals
@@ -75,16 +84,17 @@
 Mcu.IP0=CORTEX_M7
 Mcu.IP1=DEBUG
-Mcu.IP10=TIM3
-Mcu.IP11=TIM8
-Mcu.IP12=USART3
+Mcu.IP10=SYS
+Mcu.IP11=TIM3
+Mcu.IP12=TIM8
+Mcu.IP13=USART3
 Mcu.IP2=DMA
-Mcu.IP3=MEMORYMAP
-Mcu.IP4=NVIC
-Mcu.IP5=RCC
-Mcu.IP6=RTC
-Mcu.IP7=SDMMC1
-Mcu.IP8=SPI4
-Mcu.IP9=SYS
-Mcu.IPNb=13
+Mcu.IP3=FREERTOS
+Mcu.IP4=MEMORYMAP
+Mcu.IP5=NVIC
+Mcu.IP6=RCC
+Mcu.IP7=RTC
+Mcu.IP8=SDMMC1
+Mcu.IP9=SPI4
+Mcu.IPNb=14
 Mcu.Name=STM32H723ZETx
 Mcu.Package=LQFP144
@@ -121,11 +131,12 @@
 Mcu.Pin36=PG13
 Mcu.Pin37=PG15
-Mcu.Pin38=VP_RTC_VS_RTC_Activate
-Mcu.Pin39=VP_SYS_VS_tim7
+Mcu.Pin38=VP_FREERTOS_VS_CMSIS_V2
+Mcu.Pin39=VP_RTC_VS_RTC_Activate
 Mcu.Pin4=PH1-OSC_OUT
-Mcu.Pin40=VP_TIM3_VS_ClockSourceINT
-Mcu.Pin41=VP_TIM8_VS_ControllerModeReset
-Mcu.Pin42=VP_TIM8_VS_ClockSourceINT
-Mcu.Pin43=VP_MEMORYMAP_VS_MEMORYMAP
+Mcu.Pin40=VP_SYS_VS_tim7
+Mcu.Pin41=VP_TIM3_VS_ClockSourceINT
+Mcu.Pin42=VP_TIM8_VS_ControllerModeReset
+Mcu.Pin43=VP_TIM8_VS_ClockSourceINT
+Mcu.Pin44=VP_MEMORYMAP_VS_MEMORYMAP
 Mcu.Pin5=PF15
 Mcu.Pin6=PG0
@@ -133,5 +144,5 @@
 Mcu.Pin8=PE7
 Mcu.Pin9=PE11
-Mcu.PinsNb=44
+Mcu.PinsNb=45
 Mcu.ThirdParty0=STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0
 Mcu.ThirdPartyNb=1
@@ -140,26 +151,29 @@
 MxCube.Version=6.13.0
 MxDb.Version=DB.6.0.130
-NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
-NVIC.DMA1_Stream0_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
-NVIC.DMA1_Stream1_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
-NVIC.DMA1_Stream2_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
-NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
+NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
+NVIC.DMA1_Stream0_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
+NVIC.DMA1_Stream1_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
+NVIC.DMA1_Stream2_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
+NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
 NVIC.ForceEnableDMAVector=true
-NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
-NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
-NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
-NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
+NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
+NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
+NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
+NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false\:false
 NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
-NVIC.SDMMC1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
-NVIC.SPI4_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
-NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
-NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false
-NVIC.TIM3_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
-NVIC.TIM7_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:true
-NVIC.TIM8_CC_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
+NVIC.SDMMC1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
+NVIC.SPI4_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
+NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:false\:false\:false
+NVIC.SavedPendsvIrqHandlerGenerated=true
+NVIC.SavedSvcallIrqHandlerGenerated=true
+NVIC.SavedSystickIrqHandlerGenerated=true
+NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:true\:false
+NVIC.TIM3_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
+NVIC.TIM7_IRQn=true\:15\:0\:false\:false\:true\:false\:false\:true\:true
+NVIC.TIM8_CC_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
 NVIC.TimeBase=TIM7_IRQn
 NVIC.TimeBaseIP=TIM7
-NVIC.USART3_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
-NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
+NVIC.USART3_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
+NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
 PA13(JTMS/SWDIO).Mode=Serial_Wire
 PA13(JTMS/SWDIO).Signal=DEBUG_JTMS-SWDIO
@@ -459,4 +473,6 @@
 USART3.SwapParam=ADVFEATURE_SWAP_ENABLE
 USART3.VirtualMode-Asynchronous=VM_ASYNC
+VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2
+VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2
 VP_MEMORYMAP_VS_MEMORYMAP.Mode=CurAppReg
 VP_MEMORYMAP_VS_MEMORYMAP.Signal=MEMORYMAP_VS_MEMORYMAP
