I picked up a Big Trak programmable vehicle from a car boot sale a few years ago where it promptly got lost in my to be used in a cool project (aka junk) pile. The recent Dorkbot @ Newcastle project session saw me dig it out of my attic with the goal of swapping out the original controller board an replacing it with an Arduino.
To make this work I needed a motor controller circuit to drive the wheels of the Big Trak. There are a number of Arduino motor controller shields I could have used but I already had a couple of ST L6203 H-Bridge Driver chips left over from a previous project so I put together a quick dual motor controller design using these.
A pdf of the initial schmatic design is here

Hello,
Got any more photos or updates for your project? I’ve got several L6203 I would like to have controlled by an Arduino. Your schematic show using the motor sense, very cool. Would a copy of your sketch file be too much to ask? Thanks for any details.
Regards,
Tom
Hi Tom
I’m afraid there’s no updates at the moment, I’ve gotten side tracked onto another project.
LOL! I hear ya, doing the same here but the motor controller is the side track. I did not understand how you were going to use motor sense, or current sense, on the L6203.
This will be my first Arduino project so I don’t know if this will be of any help but here is what I’ve worked out for a 32KHz PWM. Still unfinished, needs forward and reverse added and some other stuff. Looking at the Wii Nunchuk for the PWM control, direction and buttons for control.
/*Tom’s 32 KHz PWM DC motor controller for Basic Altitude and Azimuth Control
*/
int inputAltVariable = 0; // Alt Motor assigns value of 0
int inputAzVariable = 0; // Az Motor assigns value of 0
int pinA = 3; // pins 3 11 are PWM output
int pinB = 11;
void setup(){
//__ set TIMER2 for PWM 32KHz
byte mask = B11111000;
TCCR2B &= mask;
TCCR2B |= (0<<CS22) | (0<<CS21) | (1<<CS20); // same as TCCR2B |= B00000001; TCCR2B is now xxxxx001
//__pinmode
pinMode(pinA,OUTPUT);
pinMode(pinB,OUTPUT);
}
void loop(){
inputAltVariable = analogRead(1); // set variable to value of analog pin 1
inputAltVariable = map(inputAltVariable, 0, 1023, 0, 255); //map to value 0-255 to use for PWM
analogWrite(pinA,inputAltVariable); // Alt PWM output
inputAzVariable = analogRead(2); // set variable to value of //analog pin 2
inputAzVariable = map(inputAzVariable, 0, 1023, 0, 255); //map to value 0-255 to use for PWM
analogWrite(pinB,inputAzVariable); //Az PWM output
}
Credit for the 32KHz: Tom Pawlofsky http://www.caad.arch.ethz.ch
Tom’s code is short and effective.
Here is an Arduino Shield that can be useful for Bigtrak development: http://iskudo.com/products.html
Nice looking shield. Yes, it would be useful for as a controller