diff --git a/stmhal/servo.c b/stmhal/servo.c
index 57f1eb5d188183c0f9f6fb5acb0a464c70dbcdd8..2c9461420759d90198052fb74a40844fe1fc99a2 100644
--- a/stmhal/servo.c
+++ b/stmhal/servo.c
@@ -29,7 +29,7 @@ STATIC const mp_obj_type_t servo_obj_type;
 
 STATIC pyb_servo_obj_t pyb_servo_obj[PYB_SERVO_NUM];
 
-TIM_HandleTypeDef servo_TIM2_Handle;
+TIM_HandleTypeDef TIM2_Handle;
 
 void servo_init(void) {
     // TIM2 clock enable
@@ -40,12 +40,12 @@ void servo_init(void) {
     HAL_NVIC_EnableIRQ(TIM2_IRQn);
 
     // PWM clock configuration
-    servo_TIM2_Handle.Instance = TIM2;
-    servo_TIM2_Handle.Init.Period = 2000; // timer cycles at 50Hz
-    servo_TIM2_Handle.Init.Prescaler = ((SystemCoreClock / 2) / 100000) - 1; // timer runs at 100kHz
-    servo_TIM2_Handle.Init.ClockDivision = 0;
-    servo_TIM2_Handle.Init.CounterMode = TIM_COUNTERMODE_UP;
-    HAL_TIM_PWM_Init(&servo_TIM2_Handle);
+    TIM2_Handle.Instance = TIM2;
+    TIM2_Handle.Init.Period = 2000; // timer cycles at 50Hz
+    TIM2_Handle.Init.Prescaler = ((SystemCoreClock / 2) / 100000) - 1; // timer runs at 100kHz
+    TIM2_Handle.Init.ClockDivision = 0;
+    TIM2_Handle.Init.CounterMode = TIM_COUNTERMODE_UP;
+    HAL_TIM_PWM_Init(&TIM2_Handle);
 
     // reset servo objects
     for (int i = 0; i < PYB_SERVO_NUM; i++) {
@@ -83,9 +83,9 @@ void servo_timer_irq_callback(void) {
         }
     }
     if (need_it) {
-        __HAL_TIM_ENABLE_IT(&servo_TIM2_Handle, TIM_IT_UPDATE);
+        __HAL_TIM_ENABLE_IT(&TIM2_Handle, TIM_IT_UPDATE);
     } else {
-        __HAL_TIM_DISABLE_IT(&servo_TIM2_Handle, TIM_IT_UPDATE);
+        __HAL_TIM_DISABLE_IT(&TIM2_Handle, TIM_IT_UPDATE);
     }
 }
 
@@ -115,10 +115,10 @@ STATIC void servo_init_channel(pyb_servo_obj_t *s) {
     oc_init.Pulse = s->pulse_cur; // units of 10us
     oc_init.OCPolarity = TIM_OCPOLARITY_HIGH;
     oc_init.OCFastMode = TIM_OCFAST_DISABLE;
-    HAL_TIM_PWM_ConfigChannel(&servo_TIM2_Handle, &oc_init, channel);
+    HAL_TIM_PWM_ConfigChannel(&TIM2_Handle, &oc_init, channel);
 
     // start PWM
-    HAL_TIM_PWM_Start(&servo_TIM2_Handle, channel);
+    HAL_TIM_PWM_Start(&TIM2_Handle, channel);
 }
 
 /******************************************************************************/
diff --git a/stmhal/servo.h b/stmhal/servo.h
index 277ccdd1c3ead83e2827f9e4d921e7e7e9cb2d9c..753ca495981ea9215f1903a3be6147d8ef37f880 100644
--- a/stmhal/servo.h
+++ b/stmhal/servo.h
@@ -1,4 +1,4 @@
-extern TIM_HandleTypeDef servo_TIM2_Handle;
+extern TIM_HandleTypeDef TIM2_Handle;
 
 void servo_init(void);
 void servo_timer_irq_callback(void);
diff --git a/stmhal/stm32f4xx_hal_msp.c b/stmhal/stm32f4xx_hal_msp.c
index a8587c384a8b8eb47500b8d501260994294125a3..15dca56517d866cea46305f0d79dca54211e71f8 100644
--- a/stmhal/stm32f4xx_hal_msp.c
+++ b/stmhal/stm32f4xx_hal_msp.c
@@ -149,7 +149,7 @@ void HAL_RTC_MspDeInit(RTC_HandleTypeDef *hrtc)
 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
     if (htim == &TIM3_Handle) {
         USBD_CDC_HAL_TIM_PeriodElapsedCallback();
-    } else if (htim == &servo_TIM2_Handle) {
+    } else if (htim == &TIM2_Handle) {
         servo_timer_irq_callback();
     }
 }
diff --git a/stmhal/stm32f4xx_it.c b/stmhal/stm32f4xx_it.c
index cfd24dd3313d1fc2e673ab5d38fc563b466ce368..bd324a030dd8ac8e2490dda259b8dc7b470237a0 100644
--- a/stmhal/stm32f4xx_it.c
+++ b/stmhal/stm32f4xx_it.c
@@ -352,8 +352,7 @@ void RTC_WKUP_IRQHandler(void) {
 }
 
 void TIM2_IRQHandler(void) {
-    // servo timer is TIM2
-    HAL_TIM_IRQHandler(&servo_TIM2_Handle);
+    HAL_TIM_IRQHandler(&TIM2_Handle);
 }
 
 void TIM3_IRQHandler(void) {