Inside the Novag 2Robot

Inside the Novag 2Robot

Avatar of chrislamuk
| 0

Introduction

The Novag 2Robot was a chess computer with a robotic arm that moved its own pieces. It was released in 2008 to great interest but customers soon realised how unreliable the arm was. It played a reasonably strong game with an Elo rating of 1800. It was the spiritual successor to the Novag Adversary which was the original chess robot from 1982. Only around 1500 were made and were surprisingly cheap at around £200. We now know they were so cheap because corners were cut and a great many failed early on. Nowadays it's hard to find but I managed to buy one sold for spares on eBay which I got working again (well, mostly... see my other blog "My Novag 2Robot Repair").

We'll start with the arm and finish with a look inside the computer base.

Before opening your 2Robot take care to earth regularly by touching a radiator, or wear an anti-static strap. Take photos as you go along to help reassembly.

The 2Robot Arm

The arm has three parts: 

- the Upper Arm which houses the controller circuit board (PCB), shoulder gearbox/motor and elbow gearbox/motor
- the Lower Arm which is hollow with the hand wiring passing through
- the Hand which comprises of the finger gearbox and finger mechanism

Tip: Should the arm fail completely you can disconnect it and the computer will work and play chess fine (easiest way is to remove the shoulder pillar from the base and disconnect the wiring).

Controlling the Arm

Before taking the arm apart a quick overview of how the arm works. The chess computer tells the arm where to go and what to do there. When the computer is turned on the arm is instructed to

OPEN FINGERS
RAISE FINGERS
GO TO START
GO TO REST

These commands are at a "high level" and the arm controller implements each action at a "low level" by switching motors on/off and checking the state of various encoders and switches.

Before the arm can move to a destination it has to assume the START  position where the upper arm is swung all the way back and the lower arm tucked in. This position is reached by moving both arms back until they hit their limits as detected by limit encoders (a rotating plastic cam with a light sensor). From here it knows how to get to any destination by moving the arms through pre-defined angles using a look-up table with minor adjustments from the calibration process.

The REST position is where the upper arm is parallel with the back of computer, lower arm tucked in. This position can be defined as a square along with all the outside positions where the captured pieces are parked.

In a game the computer may tell the arm to move the pawn from e7 to e5:

GO TO START
GO TO E7
PICK UP
GO TO START
GO TO E5
DROP
GO TO START
GO TO REST

These various actions can be defined (simply) as:

GO TO START:
    APPLY -6V TO SHOULDER MOTOR UNTIL LIMIT DETECTED
    RESET XCOUNTER
    APPLY -6V TO ELBOW MOTOR UNTIL LIMIT DETECTED
    RESET YCOUNTER

GO TO @SQUARE:
    LET X_TARGET = LOOKUP_X(@SQUARE)
    APPLY +6V TO SHOULDER MOTOR UNTIL XCOUNTER >= X_TARGET
    LET Y_TARGET = LOOKUP_Y(@SQUARE)
    APPLY +6V TO ELBOW MOTOR UNTIL YCOUNTER >= Y_TARGET

PICK UP:
    APPLY +6V TO UP/DOWN MOTOR UNTIL DOWN LIMIT DETECTED
    APPLY +6V TO FINGER MOTOR UNTIL CLOSED LIMIT DETECTED
    APPLY -6V TO UP/DOWN MOTOR UNTIL UP LIMIT DETECTED

DROP:
    APPLY +6V TO UP/DOWN MOTOR UNTIL DOWN LIMIT DETECTED
    APPLY -6V TO FINGER MOTOR UNTIL OPEN LIMIT DETECTED
    APPLY -6V TO UP/DOWN MOTOR UNTIL UP LIMIT DETECTED

Both XCOUNTER and YCOUNTER measure the angle moved by using a counter encoder (a rotating plastic disc with slots with a light sensor) to count "angle ticks" (a single slot on the disc). As the motor turns the counter increases until the required angle is reached.

This is a simplification of the actual process. In reality both arm motors move at the same time. There are timeouts to catch errors.

The Hand

In order to open the whole arm we need to start at the hand. To make life easy turn on the computer and get it to stretch its arm out and then switch off computer. Undo the six screws to remove one half of the red shell. Undo the rack screw and lift the finger gearbox out. Prise off the rack.  The red cam collar is held in place by three screws - it has a gently rounded triangular-ish cam profile underneath which presses the sprung fingers to open and close as the palm rotates.

The Finger Gearbox

The gearbox comprises of two motors, one to turn the palm disc and the other to move the gearbox and fingers up and down. Each motor's movement is constrained by a pair of switches. The up/down motor has its own little gearbox which is only accessible by removing the palm driveshaft.

The final gear of the palm driveshaft is superglued on... this gear has split along its side, not a good sign.

The Lower Arm

The wiring passes through the lower arm into the upper arm. Undo two screws underneath to open. The lower half eases off the elbow driveshaft.

The Upper Arm

Undo six screws to open the lid of the upper arm. Inside is the controller circuit board (PCB), shoulder gearbox/motor (labelled A) and elbow gearbox/motor (labelled B). The two gearboxes look identical but you can't swap them round (I tried... you can swap them but the upper arm moves oddly). Two connectors link the hand to the PCB.

The Controller PCB

Each gearbox has three sets of wires to the PCB: motor power, counter encoder (slotted disc that measures angle of arm) and limit encoder (cam-like wheel which defines the boundaries of arm movement). Each encoder has an optical sensor known as a photo interrupter... basically an LED with a light sensor. On the PCB the shoulder gearbox is labelled "X" and the elbow "Y".

Most components are surface-mounted, e.g. ICs, resistors and transistors. Only the capacitors, diodes and crystal are easily serviceable unless you're comfortable with replacing surface-mounted components.

There are three ICs... the larger square one in the middle is a Renesas H8/36014 microcontroller which takes commands from the Chess CPU and turns motors on/off and tests the states of encoders and switches. The smaller one is a Koitech MD6750G microcontroller which acts as a motor controller. A microcontroller is basically a complete computer on a chip with CPU, RAM, ROM and I/O interface with the software flashed on. Plenty of info on the web on the former but hardly any on the latter other than it appears in a toy called Roboraptor and no doubt thousands of other cheap gadgets. There must be at least four H-bridges on the Koitech as all motor power lines end up there. It would be interesting to find a pin-out diagram and datasheet for the MD6750G.

The 14 pin chip is a MM74HC00 Quad 2-Input NAND Gate. Not sure why four logic gates are needed outside the two ICs. The four encoder outputs appear to go to each of the four gates. Also not sure how the calibration settings are persisted. The crystal (silver sausage thing) is a clock.

There are three power wires - GND, 5V and 6V, the latter to drive the motors. The data link connector allows the Chess CPU in the base to communicate with the arm.

Two pins are labelled "Emulation", used for testing. The five wire connector next to it was used for testing the arm before fitting to the base unit, and is redundant.

Note there are at least two versions of the controller PCB. One has a cluster of 6 capacitors on one side (my PCB) and another has two capacitors on one side and one on the other. Mine is dated "05/08/08" in the centre. I would be interested to see detailed pics of the other PCB, the one I include here is very blurred. Seeing the wiring is so messy I would guess it's the prototype and my one is production.

The Gearbox

Each gearbox has a motor and a set of gears driving the counter encoder, limit encoder and arm itself. There are also two circlips which hold two axles in place... I assume they help reduce play between gears for greater movement accuracy though I've found they're not strictly required (see my blog "My Novag 2Robot Repair"). Circlip pliers are needed to fit the clips back in place.

A simple test is to apply 6V to the motor and make sure it rotates smoothly in both directions. There's usually a capacitor between motor terminals but missing here... there's a tiny PCB so perhaps that does something similar.

Reassembly

Take care not to snag or trap cables, especially in the hand. Ensure the cables in the upper arm don't press against the PCB or catch the encoders when the lid is replaced.

If you need to test the arm after repair there's no need to completely reassemble. Just tie the lower arm upside down to the upper arm with a reusable cable tie. And you get to see the encoders whizzing round!

Inside the computer base

To complete our tour of the 2Robot we need to look inside the base unit. Undo the thirteen screws and gently lift off the back as the speaker is attached to it. The reset button will fall out. There's surprisingly little to see... a tiny little circuit board sits in the middle. Other components are the keyboard, touch sensitive chess board, LCD display, speaker and power switches.

The 9V from the mains adapter is converted to 5V for the electronics and 6V for the motors. A 5V line is sent back to the on/sleep switch for the user to determine which state the chess computer should be in.

Note the Gxxxx-xx code on the PCB... similar codes are on the arm PCB as well as the encoder sensors.

Only seven wires to the arm... but there are twelve coming out of the shoulder to the controller PCB. This is because five of them were used for testing the arm in isolation. So the Chess CPU communicates with the arm via a data link of four wires, probably some kind of serial port like RS-232... the other three wires are power - GND (black wire), 6V (red) and 5V (orange).

A small rectangle of 10 holes on the left of the PCB is labelled as "ISP" and I think this is something to do with "In System Programming", a way to update on-board software after manufacture.

So where's the gubbins that plays chess? It's hiding underneath the circuit board in the form of a black blob known as a "chip-on-board" where the IC is wired directly to the PCB and covered in epoxy. It's a cheap way to manufacture electronics.

Why is the arm controller separate from the chess PCB? Surely cheaper and simpler to put it all on one board. That controller PCB needed a lot of design to cram it into the arm. However it does allow the arm to be tested in isolation.

How Novag Could Have Done It Differently

Instead of parking captured pieces on either side of the board they could be dropped into a storage tray, and do takebacks manually. This would speed up play and reduce the computer size and the board itself could be slightly larger, the arm shorter and more compact, and the circlips removed. There would be no need for arm accuracy beyond the board itself. It's unnecessary for the controller PCB to be squeezed into the arm... much simpler for it to sit in the base. There is no need for the arm to keep returning to the rest position... save time by having it ready at the START position (arm thrown back) after each move. A demo mode where the arm continually moves both sides would have been nice... ditto a button or option to override the arm when it acts up as repeatedly trying the same move when it's erroring is silly. If the move involves a capture and it parked the captured piece ok but errors later it does insist on parking the captured piece again even though it did that bit fine! The fixing screws for the hand should perhaps be on the other side, out of sight. Some software options for how the arm behaves. Also better features on the chess side like clocks would be nice.

Conclusion

The Novag 2Robot is certainly a unique chess machine, it's looks fabulous and is quite a sight to behold as its arm sweeps across the board. It's cleverly done especially the hand mechanism with its fingers. And I'm a big fan of the chess pieces themselves. However the arm is prone to failing and it's not easy to disable it mid-game once it starts acting up. If you're lucky to own one keep your fingers crossed it'll keep working.

Hope you enjoyed this tour of the 2Robot. Please see my other Novag 2Robot blogs. If you have any info to add or spot any errors, let me know and I will update. I would be interested to hear of your experiences owning a 2Robot or any attempts at repair, successful or otherwise!

Bye & thanks for reading 

Disclaimer

I have tried to be as accurate as possible with all details. Usual disclaimers apply