DerbyDecider
The DerbyDecider is an electronic finish line for a Pinewood Derby track. This was my first microcontroller project, and actually quite complex for a first attempt. The project cost me about $300 for the development tools, prototyping and supplies, but it turned out very nice. I might consider developing it to sell as a kit later on.
Features:
- Supports 4 lanes and a starting gate sensor
- Records times to four decimal places (0.1ms accuracy)
- Front-panel LED modules display finish order and times (rounded to three decimal places)
- Operates either standalone or controlled by a PC over an RS-232 serial cable
- Supports lane masking, ending the race early, and did-not-finish results
- Maximum race time: 10 seconds
- Firmware upgradable via the serial port (with a DIP switch option for recovery from a bad flash)
Component selection
This being my first project, I went a bit overkill on some of the components. If I were to do it again, I could tone down the power supply circuitry and change the way some of the other components are connected.
- Microcontroller: Microchip PIC24HJ32GP202
- I chose the PIC line of microcontrollers because I could get a working programmer/debugger, C compiler and IDE for around $30. The 16-bit PIC24H line is C-friendly and has all the peripherals I needed along with ample code space, run-time self-programming, and separate interrupt handlers for separate events.
- LED Driver IC: Freescale MC14489B
- This IC is great for driving multiple LED displays using only three GPIO pins on the PIC. Each IC can drive 5 digits, and the IC's can be daisy-chained on one SPI channel.
- RS-232 Driver IC: Dallas Semiconductor DS275S+
- A 3.3V microcontroller cannot adequately drive an RS-232 line, so this little IC translates the logic levels up from 3V to 5V. It also eliminates the need for a negative voltage supply.
Building the hardware
Initially, I built a prototype on a breadboard, but of course I couldn't build the entire circuit that way. So on to the final hardware.
Because of the size of the board, it was cost-prohibitive to have just one professionally manufactured. Instead, I etched the board myself. I used a vector graphics program named CorelDRAW! to draw the two sides of the circuit board, then printed it onto transparencies. I actually sized the traces rather thick, because I wasn't sure about the quality I could achieve. I used the photographic method (presensitized board, light exposure, developer, then etchant) and came up with an acceptable board.
I used SOICs for most of the IC's, but all of the other components were through-hole. I used a low-speed drill press and a tiny bit to drill the board. I soldered the components to the board with a little 12W iron, and used short bits of wire to connect the vias through the board.
Future improvements
If I want to make this thing sellable, I'll need to add a few features. It'll be easier, knowing what I do now.
- USB communication - I have a PIC18 programmed as a working UART-to-USB converter.
- Crystal-governed timing - The USB requires a crystal that I can also use for timing accuracy.
- More appropriate power circuit - Voltage regulators sized for the job, and even a boost circuit for the larger LEDs.
- Different LED driver IC's - Better, maybe cheaper, too.