The transceiver I created for the original solution was based on an Arduino Uno with an Xbee shield. I put the assembly inside a Sparkfun Arduino Project Enclosure which measures 87x64x28mm. This has worked well for about 1.5 years now, but there is room for improvement:
1. I’d like to shrink the enclosure so it takes less room on the dashboard
2. I’d like to be able to raise the antenna to the vertical position. The windshield prevents this with the current configuration.
After much research, I decided to build the new transceiver using the Arduino Fio. The Fio is a great platform for my needs because it is a small Arduino form factors with an integrated Xbee connector. Unfortunately, the Fio’s spec sheet is wrong. It promises the Fio can handle up to 12VDC. Using my bench power supply, I slowly raised the voltage and got to about 10.5VDC before the “magic smoke” escaped from the Fio and it stopped working permanently. So, I purchased another Fio and wired in a 5V voltage regulator to a barrel plug pigtail with a JST connector that fits perfectly into the Fio. I now can handle up to 18VDC input without worry (except for potentially melting the case) – way more than a car battery will put out.
The next challenge was to find a new project enclosure to fit the Fio. I tried several that were too small including Sparkfun’s Soap Box Project Enclosure and Hammond Manufacturing 1553AABK. Ultimately, I settled on the Hammond Manufacturing 1551KBK box. It measures 80 x 40.1 x 20 mm which is about half the size of the original box. It’s got a screw-on top which is more secure than the other box as well.
Next, I drilled holes in the lid and mounted the LED and buzzer. Then, I transplanted the Xbee Pro XCS module and the U.FL antenna. I place the antenna on the side of the box instead of the top so it can be mounted vertically. Based on what I’ve read, the vertical mounting should give me a bit more range since it is the same as the antenna orientation in the house-based module.
Finally, I put the new transceiver into the car and powered it up – no smoke, so now it’s time to test.
Jan 1 Update: Range testing
I drove around my house to test the range and was disappointed to find that the new transceiver’s range was less than half of the old one. My thought was that it was not getting enough current from the 3.3V voltage regulator on the Fio (limit 100 mA per pin – yuck!). So, I cut the connection to Pin 1 of the Xbee and wired up a voltage divider using 2 resistors to get the 5V input down to 3.3V needed by the Xbee. The voltage without load was fine, but when I connected the Xbee, it lacked the voltage to drive the chip (measured .7V across the + and – pin, needed to be a full 3.3V). So, I pulled out the voltage divider resistors and replace the 5V voltage regulator with a nice 3.3V voltage regulator that I didn’t know I had (I certainly should have started with this instead of the 5V regulator). I wired the power to Xbee Pin 1 directly to the 3.3V voltage regulator and went out to test again. Now the Xbee could pull up to 2 Amps if it wanted – way more than the max 256mA stated in the specs. Hmm – no change in range.
Really frustrated, I started to probe my old Arduino Uno-based transceiver to see where I was going wrong. The only thing I could see that was different was a 100uF electrolytic capacitor. How much of an impact could a capacitor have? Just for fun, I decided to go a bit bigger and soldered in a 220uF capacitor. I went back out for a 3rd drive – wow! The range was amazing. I’d estimate the range is extended at least .25 miles in every direction at least (about 1.5 miles), with strong, but irregular signals as much as 1.8 miles away. I can’t say for certain if the improvement is due to the increased capacitance or the vertical antenna position. Regardless – I got the results I wanted. Lesson learned – capacitors are awesome!
Finished product with antenna attached.