This is the projects home page. The plan is that there will be links to all of the project descriptions from this page. Of course other documents may link to a project as well if they refer to it, but this will be the central repository for those links.

If your wondering I format my pages to look best on Firefox. The reason for that is that it is cross platform, free, and its developers are dedicated to making it compliant with all web standards. Strange how much of CSS (standardized in the 20th century) a browser like Internet Exploder chokes on.

Booting a PC

This is a page that links to some pages Ray Knightly has done on what it takes to boot a PC. This is extremely useful to the person who is writing an embedded operating system for a PC motherboard as it explains what the BIOS expects to happen when it loads and executes sector zero of the "C:" drive. Read all about it...

The Emergency Easter Egg Locator Beacon

So its April and we've just had another hunt for easter eggs, What happens when you forget where you hide them? If they are full of chocolate they fill quickly with ants and make a mess! Here is a project I did that makes at least one of them easy to find, its a radio beacon using only 3 parts! Read all about it ...

PIC Programming using USB

If you are like me your current laptop no longer has a serial port, and soon it may not have a parallel port. What's an experimenter to do? Get your gear running on USB, the next wave in I/O connectivity. I recently bought a USB based PIC programmer and assembled it, next step will be to write custom firmware for it. Read all about it ...

The Servo Gizmo

The Servo Gizmo is a Microchip PIC16F628 based board that can be adapted to a number of jobs. I originally designed it to control some pneumatics on a Battlebot. Since that time it evolved into a general purpose unit that has been made into:

Read all about it here.

Tools for Robots

As part of a display at the Tech Museum in San Jose I had written up some web pages describing the tools you needed to do robotics. I've kludged them into a set of pages. More...

Fun with Casting

Can't find the perfect wheel for your BoeBot? Need to create a leg joint for your walker? There are problems that can be solved by casting plastic. After seeing a demo at the SFRSA meeting I had to try it. More ...

Building your Own Jumpers

I get asked about the jumpers I use on my projects. You can see them on the pulse measurement pictures and elsewhere on this site. I figured if I wrote up where I got them others could benefit. More ...

Using Rotary Mechanical Encoders

Input devices tend to consume precious I/O pins on your projects. A new breed of input device, the Rotary Mechanical Encoder, has come down in price (from the high $20 each range to under $5) so that you might consider using them. I set up a PIC program to do just that. More ...

16 Bit PIC Operations

Doing 16 bit operations on the PIC microcontrollers is a pain. I've been collecting snippets as MACROS to make it easier. More ...

Hacking the DinoTrack Toy from Radio Shack

A long time ago I spent some time modifying "Dinotrack" R/C cars to be small autonomous robots More ...

Pulse Measurement with the LAB-X3

This project was designed to allow me to create the software for the Servo pre-processor. The first step in this project was a program that could capture pulses using the PIC16F628 CCP unit. More ...

PIC Trainer Comparison

Both Microchip and microEngineering Labs have PIC trainers that leverage the rapid prototyping abilities of the Microchip Flash PIC chips. I recently bought one of each to give me the ability to program the newer flash PICs and to learn about some of their new features. More ...

The first program I managed to get running on the LAB-X3 using assembly was BLINKY.ASM. This flashes the LEDs using a loop that watches the state of the T0IF flag. The trick is that when using MPLAB you must put both LVP_OFF and_LP_OSC in the fuses line or it won't work. 

The second program was IBLINKY.ASM, yes the interrupt driven version of BLINKY.ASM. Not a huge leap perhaps but by this time I have Visual SlickEdit editing/assembling/programming the pic all from the IDE. Way more fun than the MPLAB IDE. 

And now for something completely different, I give you LCD0.ASM which is your basic Hello World type program that writes its message to the LAB-X3's LCD display. So far, I've code code to exercise the LEDs, the Buttons, and now the LCD. Next stop is no doubt the Servo bit.

Of course after that, you need to put numbers on the screen so LCD1.ASM does that.

Hacking the Wild Cougar

Perhaps one of my most widely seen robots, the Wild Cougar was a Radio Shack R/C truck with treads that I turned into a robot. Two links of interest are:

Cougar.ps.gz -- A gzipped postscript file writing up my experiences. (note: use shift-click to down load it, otherwise you'll get the binary data which isn't what you want!)

Cougar.pdf -- A pdf version of this paper. For some reason the pages are in reverse order, sorry about that. At least more people can read it!

Cougar.zip -- A zip file with the source code used (written using the icc11 cross compiler.)

Infrared Scanner - A compressed tar file with the sources to the PIC program that implements IR scanning on the Cougar. (here is a listing of the program.)

The ARBE-ONE Robot

This robot was built from a kit, sold to me by Ray Butts. and is called the ARBE-ONE. Mine came with a TCOMP, but I used a Miniboard on it instead. It is made entirely out of polystyrene plastic and some simple bolts. Unlike simple robots that followed it, the ARBE-ONE used toy DC motors (not R/C servos) to power the wheels. The linkage is simply a friction connection between the shaft of the motor rolling against the top of the rubber wheel.

The Servo Speed Controller

Perhaps one of the most popular things I've done is the electronic speed controller. The image on the left is the prototype I built using the MicroEngineering Labs PICProto-18 board. The PIC is on the left, the opto-isolator in the middle, and the four darlington power transistors are on the right. I'm thinking about doing this again with the PIC 12C509 as that controller has plenty of I/O pins and could make a smaller overall board. The transistors are limited to about 3 amps but they are very inexpensive and not as finicky as the MOSFET version I built.

The High Power Speed Controller

The original Servo Speed controller was great for little robots, but I needed something to replace a Vantec RDFR38E in my BattleBot. To that end I decided to go back to the drawing board and build another speed controller. This time the goal is 200 amps in continuous operation.

Dealing with Spikes

The new high power controller has a serious issue with voltage surges! This is a writeup of my notes on how I eliminated those for BattleBots.

Wheel Encoders

These are a set of wheel encoders I made up for my talk on them. Links are here:

PIC Servo Pre-processor

This is a project that converts the output of an R/C receiver into something a microcomputer can use quickly.