A Peek Inside Phil Edwards' Caterpillar 235
(Click on a picture to enlarge it, then use your browser's 'back' button to get back to this page)
The article by Phil Edwards in the July issue of the Newsletter, describing the methods he has developed for producing plans for scale models, prompted several inquiries from readers who wanted to know more about the workings of his Caterpillar 235 excavator model.
When put through its paces, this computer controlled model never fails to draw a fascinated crowd. Not only is it able to perform all of the functions of the prototype through manipulation of the joysticks in its cab, but it can be "taught" to perform a precise routine entirely on its own.
From all external appearances, Phil's "digger" looks every bit like any other fine Meccano model. Internally, however, it is something else entirely: an incredible maze of sophisticated circuitry which, though a little dated by today's standards, was truly the cutting edge when Phil designed it. We asked Phil to tell us more about it. Here's his response:
By Phillip Edwards
As I mentioned in my article, I built it back in the 80’s. I started the design in 1984, the year I left University in England. I finally had it finished the year I emigrated to LA in 1989.
It weighs about 100lb and is a little under 5’ long when the digging arm is outstretched. All controls are via the cab, where I have miniature joysticks mimicking the original cab layout. I have the operator’s guide to the original machine and all controls are as close as I can make to exactly correct. All of the actuator speeds are variable from a crawl to the correct scale speed. This is done by using 7 motors.
The tracks are driven by 2 computer tape drive motors and powered from my own design electronic speed control system that senses the motor’s back EMF and pulses the motor accordingly. Although I use 12V motors, I power the model with a home built 30V, 10Amp power supply (running from the power line). The use of 30V allows me some voltage drop through all of the cabling and also allows for sub-optimal power feeds in large exhibition halls. This is a particular problem in the UK at the larger model shows, where there may be many hundred models all powered off the power line. The motor control circuits for the carbody (track assembly) are driven through a parallel cabling assembly coming from the off-model computer system.
As I started on the conceptual design of the computer system in 1982, I used a British home computer designed using the 6502 processor. When I purchased the computer, it loaded it’s programs from audio tape. This dates it doesn’t it ! Once a company came out with a dual disk drive for it, I purchased that as I thought I had a real computer at last. I then realized that I needed to write the code to run a model in machine code, to get the speed of operation that I required from a 1MHz clocked 8 bit processor with all of 64K of RAM. I therefore wrote my own assembler as there was not such a thing written for the computer at that time. There was one written in a form of BASIC, but it was way to slow and only ran from the tape drive. The disk controller I/O clashed with the memory locations used for the assembler program, so I was forced to write my own. As you can see, the computer as it now exists is practically a custom design for controlling models.
In the upper section of the model there are 5 motors. 1 for swing (rotation of the superstructure); 3 for the digging rams and 1 final one for a noise simulator. This little motor operates a series of 3 lifters, so designed to sound like a diesel engine. The motor speed is controlled by the computer, so it revs up and down to fully simulate the real machine’s sounds. It serves no other practical use, other than to cover up the noise of all the other 6 motors ! Let us say that it gives some continuity to the fact that the model is supposed to be a scale model of a real machine, other than a toy robot.
The swing motor is a lovely little computer tape drive motor that I found in the UK in the late 70’s. Very quiet and powerful when driven from my electronic controller circuitry. I use another of these to drive the bucket rotation ram and then the two largest motors are used for the boom and stick operations. (The boom attaches to the to superstructure; the stick attaches the bucket to the boom !) The boom is not operated by it’s rams; they are dummy. I have a rack and pinion system running inside the rear of the superstructure that moves the boom up and down. At full speed it takes 5 seconds to raise the boom and the force on this rack assembly when the stick is right out (i.e. the bucket is furthest from the cab) is around 200lb (measured !) These 2 motors are British truck windshield wiper motors, easily capable of drawing 10Amp at 30V if they need to. I limit the drive current to around 8Amp per motor, so when all motors are running my power supply is feeding around 200W to the model. The motors draw around 4Amp when running under minimal loading. The voltage starts to drop when I hit the 10Amp point as this is the limit of the transformer design, but I can live with a 10V drop in power, down to 20V; at which point the power supply is feeding well in excess of 350W to the model.
To handle all of this power, each motor’s controller is built to withstand 20Amp peak and 10Amp continuous feed. All of the motor control circuits are given 4 bit speed digital data (16 speeds) and a direction to rotate. There is also a feedback circuit within the controller boards to sense the back EMF and all of these signals go into a custom programmed ROM chip to figure out which of the 4 motor drive transistors to turn on. These transistors are configured in the form of a ‘H’. The end result of all of this is that the motors go at the required speed, irrespective of loading.
I should mention here how I run the model in it’s robot mode. 50 times a second, the digitized joystick positions are relayed to the computer system, down a bi-directional serial data bus. This data is used to determine the motor speeds. This speed and direction information is then serialized and sent back to the model and the motors thus rotate at their required speeds. 20mS later, the whole thing happens again. As I have very precise control over the motor’s speeds, and as I tell each motor what to do every 20mS (precision timed), I do not need to know the model’s position. I have a little switch in the cab to send the model into what I call a ‘home’ position. This is where the model rotates to a defined angle ( set up using a sensor on the main power/signaling commutator inside the turntable assembly ).
Mechanically, each ram is controlled by a double acting wire cable arrangement. I used bicycle brake cables running inside a British net curtain railing (much like the outer jacketing for brake cables, but slimmer). One end of one cable is attached to the end of the ram (inside the outer actuator housing) and this runs back into the main part of the model and is wound onto a winding drum. Another cable pulls in the opposite direction and opens the ram. The cable exits the outer housing running under a ½" pulley attached to the outer housing of the ram. This then goes into it’s own outer cabling and finds it’s way back to another winding drum. By contra rotating the drums (i.e. winding one in while letting the other out), the ram moves. Both the rams and winding drums were made on my lathe as there are no Meccano parts suitable for the task. This overall system is remarkably efficient despite all of the friction in moving the cables within their outer jackets and allows phenomenal power to be transferred to the rams.
Each of the rams also goes to one extreme of travel and operates a limits switch that both shuts down the motor directly and also signals to the computer system. Once at this defined position all I have to do is store in memory the joystick positions in a giant lookup table and drive the model through it’s learning process. Once taught, (up to 3 minutes worth of data) I can then re run the data and feed it to the model from memory rather than using the data processed from the joysticks. This way, the model will repeat the taught sequence; extremely accurately. Using the basic mathematical formula: distance = velocity x time ; the fact that I record the speed information at a precise repetition frequency, the distance traveled is also precise; providing that the speed of operation is maintained to be exact. This is why I went to such lengths to drive the motors in such a manor.
Overall, there are some 50 or so integrated circuits used external to the computer system, placed on 11 pcbs around the model and a mass of wiring harnesses using ribbon cable. It took me around 2 years to get all of the electronics hardware working and another 2 years to write the 5000 lines of assembler code to operate the model. If I hit a major circuit/electronics/electrical problem now, after 10 years, I will have my work cut out to get the model running again !! Occasionally ICs need to be re seated in their sockets to get good contacts, but on the whole the model behaves itself remarkably well.
Using more modern electronics I could easily scrap the computer and use a little microcontroller programmed in ‘C’ or something similar. I have no intention of doing this as the model continues to work perfectly, so I see no reason to redesign what works OK.
Last Updated: September 28, 2000