diff --git a/ports/esp32/machine_pwm.c b/ports/esp32/machine_pwm.c
index 489833e7c27705c20d4816b5d69b6adf431f97cc..4d6c59f0fa7e9694671d689b8938cbc574891dfe 100644
--- a/ports/esp32/machine_pwm.c
+++ b/ports/esp32/machine_pwm.c
@@ -131,6 +131,7 @@ STATIC void esp32_pwm_init_helper(esp32_pwm_obj_t *self,
         }
         channel = avail;
     }
+    self->channel = channel;
 
     // New PWM assignment
     self->active = 1;
@@ -148,7 +149,6 @@ STATIC void esp32_pwm_init_helper(esp32_pwm_obj_t *self,
                 "PWM not supported on pin %d", self->pin));
         }
         chan_gpio[channel] = self->pin;
-        self->channel = channel;
     }
 
     // Maybe change PWM timer