Automated Candle Dipper

Over the summer, my dad and I are building an automated, computerized candle dipping machine. For several years now, my dad has run a fairly successful candle business, making very unique and high-quality candles. Up until now, he has bought blank white tapers from a supplier. We're building this machine so that we can have more control over the process. He is doing most of the hardware and I am doing the most of the software. I'm using an 8051 Development Board as an interface between an old Palm V and the equipment. We are designing it to be very precise and use a stepper motor to control the dipping so that we can eventually make shapes other than tapers.

After getting quite familiar with the Palm/8052 combination, I've decided to pretty much drop the palm. We are putting all of the logic on the 8052 now but still using the palm to download the applications. The software is very close to dipping candles but still needs a few tweaks.

Full Cycle 2.1
This is the program that we are currently using to dip candles.

I'm writing many small assembly applications to familiarize myself with assembly language and the 8051 processor. Here are few of them. Since most of what the end application will be doing is controlling a stepper motor, all these applications drive a stepper motor. Each one has different features.

Wimpy
My first stepper program, pretty simple. The hardware was 4 TIP120 transistors. It drives each one in sequence. This drives a unipolar stepper.
Fast Stepper
Due to using timer mode 0, wimpy couldn't go very fast. To remedy this, I created fast stepper. Instead of timer mode 0, it puts the timer into auto-reload mode. This gives you a much wider range.