Lego Mindstorms NXT




An Orrery is a mechanical apparatus which illustrates with balls of various sizes the relative motions and positions of the earth, moon, sun etc. I decided it would be impossible to make the planet sizes to scale as even if the Earth was only 1cm in diameter, Jupiter would be over 11cm and the Sun would be over 1 meter. Likewise if I tried to make the distances from the Sun to scale, with the Earth at 10cm, then Neptune would be at 3 metres.

So I decided to just try and make the various planets orbit the Sun at their relative speeds. This meant that if the Earth takes 5 sec to make one orbit then Jupiter would need to take about 59 secs, and Neptune over 13 minutes! I also decided not to include Pluto, partly because it is not currently considered a try planet, but mostly because I couldn't figure out how to do it.

Mercury takes 0.2408 earth years to orbit the Sun, so I decided to use one motor to drive both the Earth and Mercury, with Mercury geared to go 4 times as fast as the Earth. Likewise Mars takes almost 3 times as long as Mars so I figured I would drive those two with another motor. Then Saturn takes 2.5 times as long as Jupiter so a third motor would drive them. These six planets are all attached to a tower make up from several turntables with six axles up through the middle of the stack.

This left Uranus and Neptune, both of which had to move very slowly. So I built a two tier 'highway' and two 'trains' driven by Power Function motors to drive along them.

Mercury and Venus have no moons so I didn't make then rotate but I added Earth's moon and Mars two moons and made them each rotate as a unit i.e. the Moon rotates with the Earth, not independently. The rest of the planets have lots of moons and rotate very fast and after a couple of failed attempts I put this into the too hard basket.

The Sun is made of Lego, but as I did not have enough yellow pieces it has rather a lot of sunspots. Mars is a Bionicle sphere but all the other planets are polystyrene painted to vaguely look like the relevant planet, mostly because of weight, but there are no suitable Lego parts anyway. The larger plates sit on axels and the smaller ones on toothpicks.

Side Top


Uranus Carriage Neptune Train


Uranus Neptune

The Robot uses quite a lot of gears but only a few sensors and the program is pretty simple. It simply drives the various motors, measuring the time it takes for a rotation of each planet and adjusting the power if necessary to keep the relative periods of rotation as close as possible. To be frank this was by far more of a mechanical challenge than a robotic one.


Jupiter and Saturn tend to move in a rather jerky manner. Even though I lubricated the turntables internal friction is still pretty high and they are moving very slowly. But we are dealing with plastic here and several years of building NXT robot has taught me not to expect to achieve to high a precision.


The only sensors used are HiTechnic IR Link sensor which controls the PF motors that carry Uranus and Neptune, two HiTechnic EOPD sensors which measure the speed of the Uranus truck. The idea was to adjust the speed if required but this was really a waste of time as the PF motors can only be controlled in steps so any fine control is impossible, but I hate having empty sensor ports so there they are.


Thanks to Xander Soldaat ( for his RobotC driver suite which I used or modified as needed.



The Planets    

    Home    The NXT Step    Nxtasy    RobotC    Bricklink    HiTechnic    Mindstorms Home    Contact Me

LEGO, MINDSTORMS and NXT are registered trademarks of The LEGO Group.