User Tools

Site Tools


Giant Robot Arm

Some notes on the Microbot Alpha II (or 'Teachmover') robot arm.


The base of the arm contains one PCB, marked “Microbot Inc. Alpha Motor Drive Assy: 10131 Rev A” (serial 636). It contains 12 single-phase stepper drivers (a combination of RIFA and ST PBL3717 ICs), as well as two LM339N quad comparator ICs.

The PBL3717 drivers can output 5-1200mA per phase at 10-50v, with 5v logic, and rather than 'typical' step/dir control, they have a 'phase' and two-pin selectable current level input. They are capable of full or half stepping.

Serial Comms

Baud SW1 SW2 SW3
110 ON ON ON
1200 ON ON OFF

SW4 is unused



Power socket pinout, as seen facing the board

 |          _______         |  | | |
 |         |       |        |1 | | |
 |         | o   o | +5v    |0 | | |
 |         |       |        |0 | | |
 |     RST | o   o |        |µ | |_|
 |         |       |        |F |
 | +VMotor | o   o | GND    |  |
 |         |_______|        |__|
          DB-50 Connector

Robot arm handover notes, email from 11sth May 2015…

Hi All,
It's long overdue, but I've finally got around to putting together some handover notes for the robot arm - hopefully they're of interest / help to someone. I still subscribe to the -discuss list, and I'm happy to answer any questions if I can. I'll also look at adding this to the wiki - I've got various bits of background material (manuals, photos etc.) which are probably also worth including as well. I can't guarantee that these notes are free from errors, but hopefully they're a good starting point.

Ed has kindly agreed to act as the arm's 'adoptive father' in my absence, so it's probably best to check in with him before undertaking any hacking on it.

Finally, if you manage to do anything interesting with the arm, please let me know - I'm curious to see just what it can do for someone who can devote a bit of time to it.




The arm is a Microbot Teachmover II (also known as the Microbot Alpha II, or "your metal pal who's fun to be with"), a product which dates from the mid-80's. This particular unit appears to be from no earlier than 1989 based on IC date codes. The arm is marketed as a teaching tool, but is also suitable for light automation tasks. There's a nice video [0] dating from 1983 which shows the earlier Mark I in action.

The arm has 5 degrees of freedom (base, shoulder, elbow, left wrist and right wrist) - the 6th (gripper) is missing on this particular arm, but could probably be added without too much drama. The individual joints are driven by steppers using a system of gears and cables, rather than being driven directly. The manual states that the resolution of the arm can be as fine as 0.011" with a speed of between 2" and 7" per second, depending upon load. The cables may need to be re-tensioned in order to get that level of accuracy though. Full specs can be found on the manufacturer website [1], where it's still sold for $5800.

A typical setup would be:

    [ Teach Pendant ] --> [         ]
                          [ System  ]
        and/or            [ Control ] <----> [ Robot Arm ]
                          [ Unit    ]
    [ PC ] <------------> [         ]

System Control

In recent hardware revisions, the System Control unit appears to have been integrated into the base of the arm, however the version supplied is roughly the size of a desktop PC base-unit. It's a 6502-based machine with the following ports:

 * 1x DB-50 for connect to the arm (see 'Interface' section below).
 * 1x DB-25 serial port to connect to a PC. [2]
 * 1x DB-25 serial port to connect to 'peripheral' (according to the PCB silkscreen). I suspect this is used for daisy-chaining multiple controllers or arms.
 * 1x DB-15 port for 'Operator Control' (unknown).
 * 2x 14-pin connectors (unfamiliar type) for driving auxiluary motors.
 * 1x 24-pin connector (same unfamiliar type) for connecting to the Teach Pendant.

The teach pendant is a handheld controller used to control the arm, optionally record sequences for later playback. It's unclear whether there's actually any intelligence in the pendant itself, or if it's simply a bunch of switches talking to the SCB. The pendant wasn't supplied with our arm, but it would be a nice little project to put one together.

Also, there is space on the PCB for 18 opto-isolators (3 already populated), providing 10 inputs lines and 8 output lines for interfacing with other hardware.

Given the size, age, lack of documentation, cabling and software, it's the System Control portion of the setup which I've been working on replacing. I may get around to documenting the original System Control hardware at some point and dumping the EPROMs, but that's a project for a later date.

Arm Hardware

The steppers are driven by 7 pairs of 3717 controllers [3] located in the base of the arm, with each controller driving one winding of a stepper. The controllers (as numbered on the PCB) are paired as follows:

Controller     Function
----------      --------
U1 & U2         Elbow
U3 & U4         Shoulder
U5 & U6         Rt. Wrist
U7 & U8         [Unused]
U9 & U10        Base
U11 & U12       Gripper (not present)
U13 & U14       Lt. Wrist

The steppers may be driven in either full-step, half-step or quarter-step modes, depending upon the stepping sequence used (see datasheet).

The only other chips in the base are a pair of LM339 comparators [4]. I'm not sure what these are used for - possibly for use with motor limit sensors or grip sensors?


We communicate with the arm via a DB-50 (female) port on the base. Despite appearances, it's not a serial port, but simply a dumb pass-through to the 3717 pins, as well as motor power and sensor outputs.

The pinout (looking at the arm) is as follows:

\                                                              /
 \     01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17     /
  \                                                          /
   \    18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33     /
    \                                                      /
     \ 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 /

Probing the board with a multimeter, I've established that the pins are mapped as follows:

Pin     Usage
---     -----
01      U14 Phase
02      U13 Phase
03      U5 I0
04      U6 I0
05      U12 Phase (Currently unused)
06      U11 Phase (Currently unused)
07      U3 I0
08      U4 I0
09      U10 Phase
10      U9 Phase
11      U1 I0
12      U2 I0
13-16   ????
17      GND
18      U14 I0
19      U13 I0
20      U5 Phase
21      U6 Phase
22      U12 I0 (Currently unused)
23      U11 I0 (Currently unused)
24      U3 Phase
25      U4 Phase
26      U10 I0
27      U9 I0
28      U1 Phase
29      U2 Phase
30-33   ????
34      Grip sensor pin2
35      Grip sensor pin4
36      GND
37      GND
38      ????
39      +12v at 4.5A (motor supply)
40      +5v  (logic supply)
41-50   ????

4 of the remaining '????' pins probably map to the phase and I0 pins of U7 and U8 (not currently unused). The other 15 pins are likely to be used either for returning sensor data to the controller (limit switches?) or are unused.

The pneumatic connections on the base are not used as part of the arm's operation - they were presumably used to drive some form of actuator in place of the gripper.

Replacement Controller

Using the above mappings, I've created a sketch for the Arduino to drive the arm. It should serve as a decent starting point for your projects, though I realise it's missing a few 'nice to have' features. Given the number of pins required, it's pretty much limited to running on an Arduino Mega.

You can find the code at

Questions, pull requests and forks all welcome, though I can't guarantee I'll be doing much more development on it going forward.

There are a couple of outstanding 'TODOs' on my list which might be a nice starting point for someone digging into the code:

 * Clean up the Serial.Print debug code - these calls have a significant performance impact when made during a motor movement and should be made only when strictly necessary.
 * Implement separate timers for each motor, allowing them to run simultaneously at different speeds.
 * Implement some other input sources e.g. serial, network, SPI, Ed's mind-control helmet... [5]


Arm Serial# plate:
    MICROBOT Alpha
    SERIAL NO. 1564

Arm base PCB:
    ASSY: 10131
    REV. A
    Serial No. 636

System Control unit PCB:
    ASSY 10060
    REV 1985
    Serial No C0190002
    1564 [6]




[2] The latest version of the software is named the 'Microbot Control Center', but manuals found online also show earlier DOS and Java versions which are fairly similar.



[5] The Pixy camera would also be a nice input source:

[6] Note that this matches the number marked on the arm itself - the base and the arm were definitely supplied together.

projects/giant_robot_arm.txt · Last modified: 2023/10/10 16:40 by andy