Feb 252010

So, it was pinewood derby time for the Cub Scouts again. My son’s pack has a race for the adult kids too. I had been plotting my car since last years races. I wanted to really light the thing up.  Last year I had working head and tail lights, but this time I wanted bigger and better. I was just not sure what form it would take. I had considered many options. The most predominant idea was using an accelerometer to change the light settings based on force. The problem was that I wanted the lighting to stay very minimal until race time so that the surprise factor would be maximized. I was leaning heavily towards the Arduino Pro 3v due to it’s nice and tidy size. After more thought I started heading away from the accelerometer and started thinking about using an XBee to control the Arduino remotely.  Then while shopping at Sparkfun one day, I stumbled upon the Funnle IO board and that locked the plan together.

Funnel is an Arduino based board, with the added benefit of having an on board Xbee socket. Plus it is tiny, has a 3.2v line in (for  LiPo), and a LiPo charger onboard too.

I ordered the stuff from Sparkfun and started designing the circuits. The mental picture was to make 2 stripes that ran down the sides of the car. These would be able to blink, pulse, fade, and ripple. Then on the 4 corners I wanted to have a very bright strobe light effect that would strobe at about 1 pulse per second. The idea was something like a jet preparing to take off and the taxiing lights. I put together a breadboard mockup.  I decided to use the 6 PWM outputs for the stripes. This way I could make them flow however I wanted. I worked on many different ideas for making a slow PWM roll. I finally found that to make the lights really roll along, I needed to have more than one set as the rolling motion is much more pronounced when repeated in a longer strip. The thing started to take form.

I decided to use 3 sets of 6 LEDs on each side, but instead of running down the sides, they would actually sit on top of the car like some evil menacing engine. I did not want big bumpy 5mm LEDs all over it (which actually might just be cool), so I went with surface mount. All the LEDs and resistors are 1206. 36 LEDs at 20ma each would easily exceed the max draw for the Funnel, so I built a driver board to take the load off of the FIO. The driver board was nothing fancy, just a few small 2222 transistors (sot-23).

One thing I had a great amount of fun with was designing empty spaces on the board. Once the board was designed, it was quickly clear that though functional, it was hardly cool looking. There was a still ton of blank space, so I decided to decorate the PCB. It was arts n crafts time with Eagle Cad. So, I spent a couple of hours just playing with shapes. By about noon the next day, I had the board etched, and all soldered up, and was ready to start testing. I uploaded the code to the funnel and started to play. I had some problems with one the channels of strip lights. It turned out to be a transistor that was not completely seated on the board. It looked soldered, but when I heated it up and pushed down on it, it just sank. It was a quick fix and it worked great from there on out.  I made sure that the xBee was working, but mainly stayed on the ftdi cable during the remainder of programming and testing.

After designing the car, I needed to route out the innards where everything would fit. This was a little easier on paper than it was in wood. Eventually, it started to come together. Making a long story short, I got everything together and it worked great. This was my first real Xbee project. I really liked that I got feedback from the car which was sitting like 60 feet from me. Of course I had to program the Arduino to do so. All I needed to do to trigger an effect was just type a letter into the serial command box in the Arduino IDE. I had about 14 different things I could have it do.

Edit: (News) – My car is on Sparkfun’s Front Page!!! Call it my Andy Warhol 15 seconds. :0)

Edit: (Clarification) – No, I am not employing a “joule thief” circuit in the car. We get to name the cars, and I felt that the name fit. Some folks have asked if this is an “official scout issued” PWD kit. Yes it is, but I used 2 kits. The finished car is legal weight, but just scraping by. The wood weighs almost nothing as it is more or less, a shell.  When I weighed it after finally getting all together, it was over by quite a bit. I had to hollow out just about every place that was thick enough to be drilled. I avoided the spaces right around the wheel grooves as I did not want it to bust through during the race. If you look at the front picture on the video, in the reflection in the glass you can see where I had hollowed out the sides. Drilling a car that was already completed was a pucker factor of about 12. I really thought I was going to blow out one of the sides. But even that was not enough, when it raced, it did not have the left screw in place as it pushed the car over the legal weight of 5 oz..

Eagle Boards, Schematics, and Arduino Code

  7 Responses to “Pinewood Derby… How can I make it better? Toss in an Arduino!”

  1. This is simply gorgeous… do you mind sharing the pcb files and the code?

  2. Sure, let me hunt it down and figure out how to post it. The code is a little goofy, but it works.

  3. The code and boards are now up. I went through the code and commented it a little more. Hopefully it is clear
    The LED board is connected to the driver board by wire. Due to the space needed inside the car, I was worried about wiring right up to the edge. I did not know how much space I would have as I was building the board weeks before the car was even out of the box. I tried to keep everything as close to the center as possible. The pads in the center (back) are there for attaching a wire to say line 1, then line 7, then line 13. All 3 are attached by 1 wire to the driver channel. Yes there are more elegant ways I could have wired it, but it was only intended to be a 1 off. Also, because of this, Eagle gets a little fussy because it would like to see everything connected. This is why you will still see air wires. On the driver board I made a cut out where the programming header is connected to the FIO so that I did not have to disconnect the board every time I wanted to upload new code. It is still a tight fit, but it works. +3v runs down the center line. There are 3 empty header pads on the driver board to make wiring a little easier. I like to have all my wires come from roughly the same place. Also I brought out the switch pins as well. I did not have time to do this, but it would have been nice to have an on/off switch say under the car so I would not have to take the car apart every time I want to turn it on or off.

  4. How did you etch your board? I have found various etching methods online, but have been unable to get that clean an etch. I mean that board looks fantastic, good clean lines. Can you share your secret?

  5. I use the PulsarFX printer sheets. I tried many other flavors and they always look like I scribbled them with a crayon. I had hovered over the pulsar website off and on for like a half year. Finally I gave in. My boards have never been better. I mean, you spend all this time in eagle making all the traces look nice (er… em… I’m not the only one am I) just to goof it up on magazine covers.

    The other thing I found was the actual toner makes a big difference. I found out quite by accident. I was printing at home with frustrating results. I was working late one night and made a print at work. When I transfered that one it was much more solid. I went to Frys and bought a name brand (not generic) toner cartridge and got the same results at home. The Pulsar stuff took it from better to darned near perfect.

    I have actually been working on a post that will kind of line out how I do them. More, It is a double sided board. I looked like mad to try to find something that clearly showed how to do a double sided board without massive headaches. I tried a number of ways, but the best way I found was actually a couple of extra steps in Photoshop. It makes life much easier. Well, you will still get a minor sinus infection, but not a migraine. :0) I have mass hours at work these days, but will finish the post up ASAP.

  6. awesome,

    ya know you could sell these ! cost for one ? im a big pinewood derby racer and pine head and my kids also.

  7. Thanks. I suppose so, but being the tech support would be a bear. Asside from that, all the componants make the car design rough due to the weight. Skinning that thing down to weight was rough. Not saying that I wouldn’t, but I made it because I had an image in my head I had to make. I love the pursuit of the dream. Doing it repeatedly for a buck would take so much out of it. The files are there, you are welcome to download it and make one. If I can make it, I am sure you could too.

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>



This blog is kept spam free by WP-SpamFree.