   // KickFFT<int32_t>::fft(fs, 0, 4, FFT_SIZE, fftBuffer, mag, startIndex, endIndex);
   fft_phase(fs, 0, 4, FFT_SIZE, fftBuffer, mag, phase, startIndex, endIndex);
   updatePhase(mag, phase, startIndex, endIndex);
-  //float hz = fs * _phaseRateAverage / 2 / PI;
-  //Serial.print("BPM: "); Serial.println(hz * 60);
-  Serial.print("radsPerUpdate: "); Serial.println(_phaseRateAverage);
+  float hz = fs * _phaseRateAverage / 2 / PI;
+  Serial.print("BPM: "); Serial.println(hz * 60);
+  //Serial.print("radsPerUpdate: "); Serial.println(_phaseRateAverage);
 
 
   // each sample changes the phase _phaseRateAverage rads


        _phase_avg = _phase_avg * 0.9 + phase * 0.1;
        _phase_avg = norm_rads(_phase_avg);
        //Serial.print("Phase    : "); Serial.println(phase);
        Serial.print("Phase: "); Serial.println(_phase_avg);
    }
    _old_phase = norm_rads(phase);
    _old_max_index = maxIndex;
}



    if (maxIndex == _old_max_index && maxIndex > 0) {
        float phaseDiff = norm_rads(phase - _old_phase);
        Serial.print("Phase: "); Serial.println(phase);
        Serial.print("Old Phase: "); Serial.println(_old_phase);

        // Only update the rate if we are in the same fht bucket.
        _phaseRateAverage = _phaseRateAverage * 0.9 + phaseDiff * 0.1;
