The Vintage Computer Federation is the world’s largest group of collectors and restorers of historic computing systems. Member activities include hands-on exhibitions conducted at all manner of tech-themed gatherings around the United States, in addition to the federation’s own Vintage Computer Festival events. At the World Maker Faire in New York City, in October, two of our mid-Atlantic chapter members born in the 1970s decided to demonstrate computers and robotic kits from the 1980s, using programming languages developed in the 1960s.
The results were Charlie and Artie.
Charlie was built using the Capsela construction system. This system was first sold by the Mitsubishi Pencil Co. in Japan in 1975 and later licensed by toy manufacturers in other countries (and can now be found on eBay). Capsela was designed around interlocking plastic spheres with various functions—one sphere might have a motor, another a set of gears.
Charlie uses three motors: The first drives a pair of wheels forward and back, the second steers the wheels left and right, and the third turns a decorative propeller. We used a Capsela gear unit that reduces speed but increases torque, and worm gears to create 90-degree turns in the various drive shafts. We also added an infrared sensor.
For Charlie’s control system, we used a Commodore 64 (C64) running BASIC. Powered by a version of the 6502 processor, millions of C64s were sold worldwide following its launch in 1982, making it probably the most successful home computer of the 8-bit era. Connecting the C64 to Charlie was done via the Multibotics Robotic Workshop, a 1987 Capsela kit that came with an interface that plugs into the C64’s user port. The interface needs six AA batteries and has six output lines, plus an infrared sender and receiver.
The Multibotics Robotic Workshop also included a Robot Operating System, or ROS, which is a program that extends the C64’s standard BASIC with additional commands: “MOTR 2,15” will activate motor 2 with a speed of 15. (Full speed is assigned a value of 30; negative numbers move the motor in the opposite direction.) “JOY” simplifies the preexisting Commodore BASIC methods for using the joystick by eliminating the need to access memory addresses directly to determine the joystick’s state. These and other ROS commands are all designed to simplify the robot-building process for children.
We based Charlie on one of the 50 sample projects described in the Multibotics documentation, modifying it in various iterations, including on the spot at the Faire, when a broken gear needed a work-around. Charlie can be controlled by a two-axis Epyx 500XJ joystick via a simple BASIC program: Left and right steers the robot, forward and back sets the speed and direction, and pressing the joystick’s button stops any motion.
Artie is a Lego robot programmed in the Logo language on an Apple IIe. Artie relies on a 1987 kit that Lego sold only to schools, the Dacta TC Logo. Lego provided an expansion card that fit inside the Apple II. This card connected via a ribbon cable to an external interface with control ports for things like motors. (Lego also shipped an expansion card for IBM PCs, but we didn’t use this because of problems with ports not responding correctly. We believe the problem was a timing issue, as our test bed was a Compaq Portable 386 running at 20 megahertz, while the card was designed for an IBM PC running at the typical early-1980s speed of 4.7 MHz.)
Unfortunately, while we had the external interface, our kit was missing the interface card. Fortunately, we were able to get a copy of the schematics and built a replica using a home-brew Apple prototyping card put together by our colleague, Jonathan Chapman.
The external interface is a box with its own power supply, which has eight ports, labeled 0 through 7. Ports 0 through 5 are for controlling motors and lights. Each port spins a motor in just one direction; however, there are also ports A, B, and C, which combine ports 0 and 1, 2 and 3, and 4 and 5, respectively, for bidirectional movement. Ports 6 and 7 are reserved for reading infrared and touch sensors. An additional (unlabeled) port provides always-on power, which we used for Artie’s front and rear lights.
The Dacta TC Logo kit came with a customized version of Logo. It has the usual commands to move a graphic “turtle” on-screen, such as FD (forward), RT (right), LT (left), PD (pen down), and PU (pen up), as well as commands to control physical parts via the external interface. A line like “IF BUTTON? 0 [TTO “B” ONFOR 20]” would drive the motor on port B for 20 milliseconds when the button on paddle 0 is pressed.
As with Multibotics, the Lego Dacta TC kit provides scores of sample projects to teach engineering concepts. As with Charlie, we started with a sample project and highly customized it to respond to two paddles—one that steered, and one that moved the robot forward and backward.
Charlie and Artie behaved admirably at the World Maker Faire. We requested an indoor booth in order to have a solid flat floor, but we were given an outdoor booth where the floor was a paved parking lot. This proved challenging for the small motors in both kits to maneuver consistently, so we improvised, using a large sheet of cardboard on the ground as the demo surface.
Both robots survived thousands of curious adults and children—and a few crashes. Both computers worked flawlessly all weekend. We taught every child and adult who’d listen that computerized robot toys are not a new invention from the current generation. Many visitors were fascinated to see 1980s computers and Capsela/Lego toys at all, let alone combined as programmable robots. Several people offered to donate Capsela parts to us, and several more commented that they didn’t recall such parts in their Lego Mindstorms kits—so we explained it’s because these parts are from a full decade before Mindstorms existed. The shock of some visitors at this statement is what makes our efforts with vintage systems worthwhile.