Reader DTAAX submitted the following:
After building a robot that fired Bionicle balls at a light, my son suggested I use the same platform to build a Sundial Robot. The robot uses the NXT brick, 3 motors, Compass Sensor, Light Sensor, Touch Sensor and ~270 other parts. Three non-standard parts are used: The big wheel from the Star Wars Hailfire set, a cardboard tube to enclose the light sensor, and a PDA. The PDA is used to perform the trigonometric calculations required (because I was too lazy to implement trigonmetric functions on the NXT). In operation, the robot rotates 360 degrees to calibrate the Compass Sensor. It then rotates in 5 degree increments, the light sensor is swept from vertical until the Touch Sensor is pushed. During the sweep the maximum light level seen is recorded. Once the robot rotates from 70 to 270 degrees magnetic, the NXT sends via bluetooth the magnetic heading where the maximum light level was seen. The PDA then calculates the time and sends the result to the NXT. The NXT then sets the clock to the time. In practice, the robot is accurate to within 15 minutes or so.