diff --git a/src/main.c b/src/main.c
index 6f332b2602afb9e6df210a74b36b944f9f9241b7..82dada6002f8b3ad5f6a3c115efc26f11603be40 100644
--- a/src/main.c
+++ b/src/main.c
@@ -154,7 +154,7 @@ void init_pwm()
     gpio_set_function(28, GPIO_FUNC_PWM);
 
     volatile uint slice_num = pwm_gpio_to_slice_num(28);
-    pwm_set_clkdiv(slice_num, 133);
+    pwm_set_clkdiv(slice_num, 125);
     pwm_set_wrap(slice_num, 0xFFFF);
     pwm_set_chan_level(slice_num, PWM_CHAN_A, 10);
     pwm_set_enabled(slice_num, true);
@@ -162,10 +162,18 @@ void init_pwm()
 void pwm_echo_init()
 {
     volatile uint slice_num = pwm_gpio_to_slice_num(27);
-
-    pwm_set_clkdiv(slice_num, 1);
+    /*
+    // Count once for every 100 cycles the PWM B input is high
+    25 pwm_config cfg = pwm_get_default_config();
+    26 pwm_config_set_clkdiv_mode(&cfg, PWM_DIV_B_HIGH);
+    27 pwm_config_set_clkdiv(&cfg, 100);
+    28 pwm_init(slice_num, &cfg, false);
+    29 gpio_set_function(gpio, GPIO_FUNC_PWM);
+    */
+    // count once for every 42 cycles the PWM B input is high
+    pwm_set_clkdiv(slice_num, 42);
     pwm_set_wrap(slice_num, 0xFFFF);
-    pwm_set_clkdiv_mode(slice_num, PWM_DIV_FREE_RUNNING);
+    pwm_set_clkdiv_mode(slice_num, PWM_DIV_B_HIGH);
     pwm_set_enabled(slice_num, true);
 }
 int a = 0;
@@ -199,10 +207,11 @@ int main()
     init_pwm();
     pwm_echo_init();
 
-    gpio_set_irq_enabled_with_callback(27, GPIO_IRQ_LEVEL_LOW, true, &callback);
+    gpio_set_irq_enabled_with_callback(27, GPIO_IRQ_LEVEL_HIGH, true, &callback);
 
     while (1)
-        ;
+    {
+    }
     /*
     timer_hw->dbgpause = 0;
     gpio_init(27);