Just wanted to add another fan of the gro clock. DS1 was exactly the same and was always an early riser (once he got out of the newborn phase). The gro clock doesn't work overnight (or in a couple of weeks) - well it didn't for us, but we took it gradual. We started when he was about 2.5yrs and we used to set it at his usual awake time for the first few weeks so he got the hang of it (he loved setting the star at night and seeing the sun in the morning) and then we started moving it forward in 10 minute increments, we'd do that for a few days/weeks, and when we felt he'd got that, we'd add an extra 10 minutes on.
Eventually we got him waking up at the same time I got up for work (6:15) and now (a year or two down the line and me being on maternity leave and not working) we set his clock for 7:15 during the week and about 7:30 at weekends - sadly he's a creature of habit, so we don't get long lies at weekends, but the later rises during the week make it worth it!
We did it slowly so never had any crying or hysterics and our deal was that once the sun was up he could come through to our room and get into our bed. A few times he'd talk to us on the monitor (we still use one in his room for chatting to him) and say can he come through, and we'd ask if the sun was up, and then he'd say no, and stay in his bed.
Good luck, I always find that anytime after 6am is bearable, but the 5am wakenings are just too early!!
We also found the gro-clock a bit bright at first - we put it on a low setting, but it still seemed a bit bright, however after a few days DS1 (who also liked a dark room) never commented on it.