Site map :

Various stuff
Rotation sensor
Security device
The Robot pages
Lego Ants
Robotarm v1.0
Robotarm v3.0
Tutorial 1
Tutorial 2
Physics of Lego
Measuring strength
Combining motors
Stepper motors
Lego ratchet
Electronic ratchet
1-to-2 multiplexor
2-to-7 multiplexor
RCX Mindstorms
Survey of RCX programming
The famous machines
Turing machine
New Page 1
References and links

Last upgrade to the site:
august 10th, 2002.

There has been 

access to my Lego pages since creation.

This is an unofficial LEGO® web site.
LEGO® is a trademark of the LEGO® Group of companies which does not sponsor, authorize or endorse this site.
You can visit the official LEGO website at:

Copyright 1996, 2000, Denis Cousineau


The smallest adder-subtracter ever designed!

  1. Origin of the adder-subtracter

  2. The adder-subtracter device was first described in Leo’s Lego pages (see the links section). The idea of this mechanism is to add the power of two motors together, so that the output turns at the speed of both motors added. In addition, we can also subtract the rotation speed of one motor from the other, so that if both turns at the same speed, the net rotation speed of the subtraction is null.

  3. Purpose of the adder-subtracter

  4. This mechanism is perfect for controlling a tank. One motor is used to move forward of backward the tank while the second controls the direction of the tank, making it turns right or left.

    The same mechanism can be used in crane, where one cable moves the bucket closer or further away from the tower while the second moves it up or down. As the bucket goes away from the tower, the cable that moves it up must also extend, so that it remains at the same altitude.

  5. My implementations of the device

  6. The first implementation was adapted from Leo’s Lego Design. There is some little difference since I used the different model of differential. In both case, it is rather cumbersome, and still requires supplementary gears to connect a motor to it.

    adder-old1.gif (236969 bytes)

    By working out the problem, and trying to simplify it, I came with a much more compact implementation of the adder-subtracter. In fact, I don’t think it can be reduced anymore using Lego. Also, with the cable attach on the inner side, and bracing on top of the motors, this structure is very sturdy, and never broke.

    adder2.jpg (33883 bytes)

  7. How to make it

    Here is the instruction, along with the LDRAW file to realize the adder. Missing are the two "cables" visible in the above picture that squeeze the motors on top of the differentials (they should be inserted on step 2).

    Add01.gif (5759 bytes)Add02.gif (8030 bytes)Add03.gif (8278 bytes)Add04.gif (8360 bytes)
    Add05.gif (10962 bytes)
    Add06.gif (10944 bytes)Add07.gif (12156 bytes)Add08.gif (15443 bytes)
    Add09.gif (14713 bytes)
    The full instructions are in LDRAW format: add-sub.dat.

  8. Utility and sample program

    I mounted the adder-subtracter on a wheel robot. Its purpose is to wander in a room, taking notes of every obstacle it meets in its datalog, and sending the datalog back to the computer when it is full so that the PC can make a picture of the room.

    adder1.jpg (36454 bytes)adder3.jpg (36416 bytes)

    The avoid procedure turns the robots until the touch sensor is not pressed anymore, then the robots continues straight for the next obstacle.

    The following program was done using PRO-BOT. That way, it is easy to retrieve the datalog and call a program on the PC to make the map when it is full. It is located on my RCX pages at Project 3.

  9. Another implementation

    Brian Long noticed that the above adder-subtracter has a low gear ratio, resulting in a fast but less powerful device. He also noticed that the gravity center is rather high, which is not convenient for some robots. Here is his revised version of the adder-subtracter, using a worm gear for speed reduction, along with the LDRAW file.