I recommend a 'Sleep' app on your phone. I set it to 7am and it'll wake me up anywhere from 6:30-7, depending on my sleep cycle. Never felt drowsy on 6:30 days.
It tracks your sound or movement (either via the microphone or the accelerometer) as you sleep to determine your sleep cycles. You set a baseline of typical sleep for 5 days, and after that the app can predict when to wake you up.