R.O.B.

From NESdev Wiki
Revision as of 21:37, 9 November 2019 by Lidnariq (talk | contribs) (missed a command, h/t forum thread 11445)
Jump to navigationJump to search

R.O.B. (Robotic Operating Buddy) is a toy robot accessory for the Nintendo Entertainment System (NES). It was launched in July 1985 as the Family Computer Robot in Japan, and October 1985 as R.O.B. in North America. Its short lifespan yielded only two games in the Robot Series: Gyromite and Stack-Up.

The R.O.B. unit's height is 24 cm (9.6 in). It has a head movement range of a 45° horizontally centered tilt. The arm movement range is 240° left and right with five stopping points, 7 cm (2.75 in) up and down with six stopping points, and 7 cm (2.75 in) between hands when open. The unit has five accessory slots around the hexagonal base, numbered clockwise, starting at the rear-left from the robot's point of view; and notches on the hands allow for specialized parts to be attached for each game. The tinted filter can be optionally attached over the eyes like sunglasses, to compensate for bright televisions or sunlight. The unit is powered by four AA batteries.

- from wikipedia

The protocol consists of a series of flashes of light, one bit per vertical sync. It takes 13 vertical syncs to send a command:

000101w1x1y1z

Ten commands are known to exist, but the encoding could possibly afford sixteen:

wxyz command
0101 Up half step
1100 Up full step
0010 Down half step
1101 Down full step
0100 Turns the body left
1000 Turns the body right
0110 Close the arms
1010 Open the arms
1001 Turn the head LED on
0001 Reset = open arms, seek rightmost/upmost, then go back to center.

If Z is 1, the following field must be 0. [1]

Nocash additionally documents that an endless stream of 30Hz flashes should also cause the head LED to turn on.

A dump of the firmware has been made here but it has not yet been disassembled.

It is not known how wide R.O.B.'s field of view is, but the light sensor is that same as the Zapper's.

See also: Controlling R.O.B. with a microcontroller