Index: ctrl/firmware/Main/CubeMX/charger.ioc
===================================================================
--- ctrl/firmware/Main/CubeMX/charger.ioc	(revision 63)
+++ ctrl/firmware/Main/CubeMX/charger.ioc	(revision 64)
@@ -8,5 +8,7 @@
 CORTEX_M7.default_mode_Activation=1
 Dma.Request0=SPI4_TX
-Dma.RequestsNb=1
+Dma.Request1=USART3_RX
+Dma.Request2=USART3_TX
+Dma.RequestsNb=3
 Dma.SPI4_TX.0.Direction=DMA_MEMORY_TO_PERIPH
 Dma.SPI4_TX.0.EventEnable=DISABLE
@@ -27,4 +29,40 @@
 Dma.SPI4_TX.0.SyncRequestNumber=1
 Dma.SPI4_TX.0.SyncSignalID=NONE
+Dma.USART3_RX.1.Direction=DMA_PERIPH_TO_MEMORY
+Dma.USART3_RX.1.EventEnable=DISABLE
+Dma.USART3_RX.1.FIFOMode=DMA_FIFOMODE_DISABLE
+Dma.USART3_RX.1.Instance=DMA1_Stream1
+Dma.USART3_RX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE
+Dma.USART3_RX.1.MemInc=DMA_MINC_ENABLE
+Dma.USART3_RX.1.Mode=DMA_CIRCULAR
+Dma.USART3_RX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+Dma.USART3_RX.1.PeriphInc=DMA_PINC_DISABLE
+Dma.USART3_RX.1.Polarity=HAL_DMAMUX_REQ_GEN_RISING
+Dma.USART3_RX.1.Priority=DMA_PRIORITY_LOW
+Dma.USART3_RX.1.RequestNumber=1
+Dma.USART3_RX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
+Dma.USART3_RX.1.SignalID=NONE
+Dma.USART3_RX.1.SyncEnable=DISABLE
+Dma.USART3_RX.1.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
+Dma.USART3_RX.1.SyncRequestNumber=1
+Dma.USART3_RX.1.SyncSignalID=NONE
+Dma.USART3_TX.2.Direction=DMA_MEMORY_TO_PERIPH
+Dma.USART3_TX.2.EventEnable=DISABLE
+Dma.USART3_TX.2.FIFOMode=DMA_FIFOMODE_DISABLE
+Dma.USART3_TX.2.Instance=DMA1_Stream2
+Dma.USART3_TX.2.MemDataAlignment=DMA_MDATAALIGN_BYTE
+Dma.USART3_TX.2.MemInc=DMA_MINC_ENABLE
+Dma.USART3_TX.2.Mode=DMA_NORMAL
+Dma.USART3_TX.2.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+Dma.USART3_TX.2.PeriphInc=DMA_PINC_DISABLE
+Dma.USART3_TX.2.Polarity=HAL_DMAMUX_REQ_GEN_RISING
+Dma.USART3_TX.2.Priority=DMA_PRIORITY_HIGH
+Dma.USART3_TX.2.RequestNumber=1
+Dma.USART3_TX.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
+Dma.USART3_TX.2.SignalID=NONE
+Dma.USART3_TX.2.SyncEnable=DISABLE
+Dma.USART3_TX.2.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
+Dma.USART3_TX.2.SyncRequestNumber=1
+Dma.USART3_TX.2.SyncSignalID=NONE
 File.Version=6
 GPIO.groupedBy=Group By Peripherals
@@ -99,4 +137,6 @@
 NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
 NVIC.DMA1_Stream0_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true\:true
+NVIC.DMA1_Stream1_IRQn=true\:0\:0\:false\:false\:true\:true\:false\:true\:true
+NVIC.DMA1_Stream2_IRQn=true\:0\:0\:false\:false\:true\:true\:false\:true\:true
 NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
 NVIC.ForceEnableDMAVector=true
@@ -371,5 +411,5 @@
 STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0.FileOoSystemJjInterfaces_Checked=true
 STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0.FileXCcFileOoSystemJjFileXJjCore=true
-STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0.IPParameters=TX_APP_MEM_POOL_SIZE,FX_APP_MEM_POOL_SIZE,TX_APP_GENERATE_INIT_CODE,TX_APP_CREATION,TX_ENABLE_STACK_CHECKING,TX_NO_FILEX_POINTER,TX_LOW_POWER,FX_ENABLE_EXFAT,FX_ENABLE_FAULT_TOLERANT,FX_FAULT_TOLERANT,FX_FAULT_TOLERANT_DATA,FX_DRIVER_SD_INIT,TX_TIMER_TICKS_PER_SECOND,ThreadXCcRTOSJjThreadXJjCore,ThreadXCcRTOSJjThreadXJjLowOoPowerOosupport,FileXCcFileOoSystemJjFileXJjCore,InterfacesCcFileOoSystemJjFileXOoSDOointerface
+STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0.IPParameters=TX_APP_MEM_POOL_SIZE,FX_APP_MEM_POOL_SIZE,TX_APP_GENERATE_INIT_CODE,TX_APP_CREATION,TX_ENABLE_STACK_CHECKING,TX_NO_FILEX_POINTER,TX_LOW_POWER,FX_ENABLE_EXFAT,FX_ENABLE_FAULT_TOLERANT,FX_FAULT_TOLERANT,FX_FAULT_TOLERANT_DATA,FX_DRIVER_SD_INIT,TX_TIMER_TICKS_PER_SECOND,ThreadXCcRTOSJjThreadXJjCore,ThreadXCcRTOSJjThreadXJjLowOoPowerOosupport,FileXCcFileOoSystemJjFileXJjCore,InterfacesCcFileOoSystemJjFileXOoSDOointerface,TX_APP_MSG_QUEUE_CREATION,TX_MSG_QUEUE_NAME,TX_NB_MSG
 STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0.InterfacesCcFileOoSystemJjFileXOoSDOointerface=true
 STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0.RTOSJjThreadX_Checked=true
@@ -377,6 +417,9 @@
 STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0.TX_APP_GENERATE_INIT_CODE=false
 STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0.TX_APP_MEM_POOL_SIZE=8192
+STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0.TX_APP_MSG_QUEUE_CREATION=1
 STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0.TX_ENABLE_STACK_CHECKING=1
 STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0.TX_LOW_POWER=1
+STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0.TX_MSG_QUEUE_NAME=gsm queue
+STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0.TX_NB_MSG=512
 STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0.TX_NO_FILEX_POINTER=1
 STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0.TX_TIMER_TICKS_PER_SECOND=1000
