Restore Puma260 Robot and Update Controller

Restore Puma260 Robot Arm (2018~2021)

I purchased a vintage Puma Mark II 260 Robot (Unimation 1984) from the E-bay at 2017

  • Replaced the rechargeable Battery on CMOS Board
  • Repaired broken 15-foot cable to connect controller to robot arm
  • Find spare Teach Pendant
  • Purchased a High-Density Floppy Disk (VAL-II OS ) from the third party , cloned the image , mastered how to clone the image onto any other 5.25 floppy disk with one Vintage PC.

Upgrade Mark II Controller

As the first generation robot (1980s), the vintage Mark II controller (LSI-11 CPU based) does not provide network connection for high throughput communication and available high speed communication with external device is over Q-bus based parallel bus. A natural thought is to find a network adaption device: It not only has an Ethernet controller/connection on one end but also has enough GPIOs , i.e., at least two 50-pin expansion headers to support DRV-11 Parallel I/O board. Such kind of programmable device is FPGA board , such as De2-70 (Altera Cyclone II) (See user manual).

Basic System Concepts

Figure 1 give a simple schematic of the basic elements of updated puma260 control system.

Robot Controller

DRV11-J Parallel Board (EK-DRV1J-UG_002_DRV11J_UG.pdf)

DRV11-J is a vintage double-height parallel line board in in LSI-11 microcomputer system. To realize duplex communication, Port A, B, C, D , 4 I//O buses have to be configured as (signal in, out, data in, and out) and proper configured and connected over two ribbon cables.

Build and run “mopper” in the robot controller (readme_moper.txt)

The Unimation controller for Puma260 robot arm is closed controller where manufactor-suppliered VAL software (on a floppy disk) is required to be loaded to the memory over floppy drive. The only available source code available to replace VAL software and support parallel I/O is “mopper” ( RCCL/RCI- John LIoyd, 1992). The mopper image is essentially a data concentrator, which run in sync with the trajectory control task on host machine. In addition to handling joint servo commands, it collects feedback data from the joints and other input devices attached to the controller, such as teach pendants, analog-to-digital converters, and force sensors, and sends it back to the host system. On Unimation controllers, the moper software is downloaded to the robot controller form the host system and replaces the manufacter-suppliered VAL software. Please notes that mopper program was only capable to be compiled in very old gcc such as :gcc version 2.7.2.3 , the last gcc compiler version to support PDP-11 assembly language. In addition, to compile “mopper” code ( mixed C and PDP-11 assembly), you also need install very old Linux such as: Red Hat Linux 5.0 ( Hurricane, Kernel 2.0.32, 1997).

Network Proxy

As its name hints, network proxy device is responsible for translate messages between PC (from TCP socket and Robot controller (to Parallel bus). The first board that I adopted was an Altera DE2-70 Development and Education board(Cyclone II FPGA :FPGA_DE2_70_User_manual_v105.pdf) , you can find this old device from the E-bay with very low price. It is also a very good EVM to learn SOPC (System-on-a-Programmable-Chip) over one single FPGA chip. it can run NIOS II /uCOSII (real-time OS) and develop your application on it. Alternatively, you can also find similar Xilinx zynq 7010 board(e.g. EBAZ4205). If you have some hand-on soldering skills you run your Linux on the FPGA with a microSD card…

The drv11J device driver for NIOS II : gpio_drv11j_2.tar

The Conduit program running on NIOS II consists of two sub-layers: Network client (BSP) and Network Server ( application), Enclosed is project folder (without FPGA code): conduit_software.tar

Lesson Learned (Summary):

Overall, it was challenging and winding learning experience. vintage and new knowledge intervwined , some lesson learned from this project:

  • Master vintage Unimation Mark II controller .
  • Pdp-11 assembly language development. Very concise Assembly language
  • Explore Altera’s System-on-a-Programmable-Chip (SOPC) and Xilnx’s FPGA SoC (System on Chip) and experiences. Although it was cheat to get second-hand development boards. However, their development tools such as Altera Quartus II IDE is not free ( need license).
  • Need install old Linux and gcc compiler so as to build and modify “mopper” and run it on LSI-11/73. Docker for such old Linux kernel does not exist. I can only install it on same era laptop such as IBM Thinkpad T23. Even though, the network card driver can not be installed. It was nightmare to copy the file and source code control unless I need tear down HDD and mount it on other machine.

The commutation protocol between host PC and puma has been evolved since then and applied in the Hex7Bot project. See published book – Chapter 9: hardware Communication.(PDF)