Building the Radio Cache
Creating the Radio Cache
by David Rea (dave (at) daverea (dot) com)
The LunchBreak Engineering series is a collection of pseudo-journals that I’ve assembled. Each pseudo-journal describes a project that has been designed, assembled and tested largely during my lunch breaks.
The Radio Cache combines two long-time hobbies of mine: Geocaching and amateur radio. Geocaching is a half-hobby, half-sport where participants seek hidden “caches” using a GPS receiver. The coordinates for a cache location are posted on the Internet (see http://www.geocaching.com/) and are freely avaialble to all who wish to seek out the cache.
In this project, Geocaching meets a particular facet of amateur radio called “radio direction-finding”. RDF’ing involves finding a hidden radio transmitter using other radio equipment. There are many ways to “RDF” but the easiest method is called bodyblocking. To employ this method, one tunes a receiver to the frequency of the hidden transmitter. They then hold the receiver close to their torso, and turn slowly in a 360° circle. As the operator’s body comes between the transmitter and reciver, a “null” (weak spot) will be heard on the received audio. If the receiver has an “S-meter” indicating signal strength, a dip will usually be observed as well. When this null/dip is observed, the transmitter is located immediately behind the operator. Several such “readings” can be taken at different positions in order to approximate the location of the hidden transmitter.
The Radio Cache (hereafter referred to by its Geocaching nickname, “Marconi’s Revenge”) combines these two concepts as a geocache that can only be found using RDF techniques. The cache coordinates posted on the Internet lead the viewer to a small cache commonly known as a “microcache” containing the frequency at which they should search for a hidden transmitter. In order to allow common FM radios (such as personal stereos, walkmans, etc.) to be used, this frequency is tuned within the FM broadcast band.
After tuning to the hidden transmitter’s frequency, searchers use the bodyblock technique (explained on the cache’s web site) to locate the hidden transmitter. The transmitter’s box is sealed and locked, to prevent tampering or moisture problems, but clearly indicates the GPS coordinates for the final cache location. At the final cache location, a full-size ammo box is hidden to allow trade of radio-related items.
Lunchbreak #1 // 2005-01-24 // 11:30AM
Today marks the beginning of “Project Marconi’s Revenge”. Kicked things off (after being repeatedly chided by Brogan this past weekend) by starting this web page and nailing down some design requirements:
- Cache must employ a FM transmitter in the FM broadcast band (88~108MHz)
- Transmitter and control circuits must be 100% solar-powred
- Transmitter should transmit (2KHz tone, beeping at roughly 1Hz) for 10 seconds, then shut down for 10 seconds
- No batteries required – shutdown at night is OK
- All parts must be spec’d to operate down to 0°F if possible, but operation down to 32°F is acceptable.
I purchased the CanaKit CK108 transmitter kit from Hobbytron a few months ago. It is designed to run from 6-9VDC and has a range of roughly 300 yards. This is a nice working voltage range for the solar cells, also purchased a few months ago, whose specs I have long since forgotten. Need to test them for open-circuit voltage and short-circuit current. Will need to solder leads on first.
Planning on using an Atmel ATTINY26L microcontroller for the control portion. I am comfortable programming this controller in C, have a working toolchain on my laptop, and a nice in-system programmer from work. The controller only draws 2.2mA in active mode, and I can put it into a sub-microamp sleep mode to save power between audio and transmitter cycles.
Planning on spending the remainder of today’s lunch break soldering down the ATTINY and a programming header on a Radio Shack copper-clad prototyping board. Don’t think I’ll have much time tonight at the base, but if I get a few extra minutes I’ll start in on assembling the transmitter kit.
Update // 1:45PM
I located the specs for the solar cells on the All-Electronics web site. They are reportedly capable of 3V @ 40mA. The plan currently is to connect two in series for a total of 6V @ 40mA. These will be used to charge a storage capacitor (through a current-limiting resistor) as well as drive the transmitter circuit directly. I’ll use a low-dropout regulator to provide 5VDC to the microcontroller.
I noticed that several “user reviews” were included with the tech data for the solar cells. One user reported that they quickly degraded when used outdoors, becoming cloudy when exposed to the weather. Evidently, a clear-plastic sealed enclosure is in order. A CD jewel case, sealed with hot glue, could be just the thing for this given the low profile of the solar cells. Alternately, I may head over to Wal-Mart this weekend and browse around for a slightly more robust solution.
Lunchbreak #2 // 2005-01-25 // 11:45AM
As predicted, I didn’t have time to do any work down at the ambulance base last night. On the plus side, I did get a little exercise lugging the soldering station down there and back!
For today’s lunch break, I’m planning on doing the assembly of the transmitter kit.
We have a large stock of the National Semiconductor LM1084IS-5.0 low-dropout voltage regulator on hand here, but after glancing over the datasheet it looks like the dropout voltage will be too high. 0.9V is cutting it a little close given a 6V nominal input and a 5V desired output. Instead of installing the ’1084 on the microcontroller board today, I’ll round out today’s lunch break with a quick search around TI’s web site and (hopefully) I’ll place a sample order.
The sample should arrive tomorrow, allowing me to install the regulator and verify the microcontroller board tomorrow. If I’ve done everything correctly, the programmer should see it without any problems. If all goes well to that point, Thursday will bring a trip to Glenwood Sales to snag some big capacitors. But I’m getting ahead of myself… off to start soldering!
Update // 1:15PM
Transmitter board is assembled, but I wasn’t able to test for lack of 4 AA batteries. If there was a FM receiver here at the office I could test it with a bench supply, but it looks like for now testing will have to wait until this evening.
I did some browsing on the TI web site and came up with the TPS7350 low-dropout regulator. It seems a little finicky about its outboard output capacitance, but the dropout is in the tens of millivolts and it has a RESET# output for the microcontroller.
So far, it looks as if the radio cache will work well below the freezing mark. The microcontroller and low-dropout regulator are spec’d down to -40°C, and while I can’t find a definitive spec for the RF transistors used on the kit, their NTE replacement part is spec’d down to -55°C. As far as I can tell, the efficiency of non-amorphous solar cells actually increases as the ambient temperature drops. The only problem at this point looks to be the potential for frequency drift with temperature changes.
Update // 2005-01-27 // 11:00AM
Busy day at work yesterday – didn’t manage to take a lunch break!
Today doesn’t look any better – need to spend the lunch hour doing some Valentine’s Day gift shopping… [grin]
The TI sample didn’t arrive yesterday, so it will most likely be on my doorstep on returning from work today. Tomorrow, with any luck, I should get some time to test the transmitter and install the new regulator on the microcontroller board. Assuming no work project explode before lunch!
Update // 2005-01-30 // 8:45PM
Had a good, busy weekend and managed to catch up on a little sleep by some manner of miracle. Did a little final touch-up with the soldering iron tonight, and powered up the transmitter for the first time. Running with 4 AA batteries, its signal was barely audible on my home stereo with no FM antenna connected. Moving out to my car, I was able to tune into it and hear audio from the internal microphone clear as a bell.
So with the transmitter working, it’s time to go on to the microcontroller board. It needs its low-dropout regulator installed, and the firmware needs to be written – in that order. In order to program the controller, given the programmer at my disposal, the board must be powered externally. Some of our other programmers will supply 5V to the board, but this one isn’t among them.
Kelly (my lovely girlfriend and always-welcome source of distraction from projects) asked a good question earlier this weekend: What happens if snow covers up the solar cells, and only a litle light can get through?
To answer this, I think I’m going to need to modify (and slightly complicate) the original design. Since the voltage and current capacities of the solar cells look like (in an outdoor environment) they’ll fluctuate more than I expected, I’m going to expand the power section a bit.
I’m planning on moving up to 4 solar cells, direct-connected in series to a set of large storage capacitors. If the cells are able to charge the caps beyond the dropout voltage of the regulator, then it will power up the microcontroller. I could have the controller fire up the transmitter at this point and start beeping, but I could easily get into a low grade oscillation doing this. Instead, the controller should boot and wait until the capacitor voltage (cut through a voltage divider) reaches a certain threshold. Since the charge on the capacitor(s) is directly proportional to the voltage (C=QV) this threshold can be selected so that the charge is sufficient to run the transmitter for 10 seconds.
From there, the controller waits for 10 seconds or a sufficient time for the capacitor(s) to regain a threshold charge…whichever is longer. If by some miscalculation, the transmit interval drains the caps beyond the regulator’s dropout voltage, then everything shuts down and the cycle starts over.
This works to two different advantages. First, the problem of power supply charge/discharge oscillation is eliminated. Second, the searcher is guaranteed to always have a 10-second transmit time as long as some light is falling on the solar cells. The time between transmissions will vary depending on the amount of incident light.
So this is all spiffy and fantastic, it means a little more coding for me, but fortunately I can re-use a good chunk of analog-to-digital converter code that I wrote for a work project. I’m planning on finishing off the microcontroller board during tomorrow’s lunch break, since I don’t have a bench supply here at home, nor do I have the (seemingly rudimentary) capability to measure the regulator’s output voltage. Maybe I should buy a DVM. Nahhhh…
Update // 2005-02-05 // 12:10AM
Sorry for the conspicuous lack of updates over the past several days; impending crises at work and a week heavy with evening commitments has forced Marconi’s Revenge temporarily to the back burner. But (technically) it’s Saturday now and I’m determined to make some progress this weekend.
Lunchbreak #3 // 2005-02-09 // 2:15PM
Progress, progress! Over this past weekend, I managed to get the voltage regulator installed on the microcontroller board. Unfortunately, I had no high-spec 10uF capacitors in my basement “stockroom”, so I had to look elsewhere. Didn’t want to pay shipping to order some in from DigiKey, so I figured a Glenwood run early in the week would be necessary.
Glenwood Sales is a surplus warehouse located in a so-so part of town just West of downtown Rochester. I headed up there for today’s lunch break, and picked up the following:
- Tantalum 10uF 35V capacitors, for voltage regulator stabilization
- 47000uF 25V storage capacitors
- 5600uF 30V storage capacitors
- Capscrews for large capacitors
- Lugs for capacitor connections
- “Sun-resistant” cable (18-2) to run between transmitter and solar array
- A few random audio cables to push my balance over $20 so I could use my credit card!
Now that I’ve got the requisite capacitors, I should be able to finish the microcontroller board and start coding up some firmware. Given that all the analog-to-digital converter code is already done, I should be able to get the firmware done and happy in an evening or two. Or maybe a lunch break or two!
Update // 2005-03-05 // 1:40AM
Sorry for the conspicuous lack of updates here – I’ve been out of town on business, as evidenced by my weblog. Expect more soon!
Update // 2005-06-15 // 10:30AM
Wow – over three months have gone by with … hmmm … zero progress! In my book, that’s a Bad Thing(tm). Now that the weather is warm and the caching community is out of hibernation, it seems like a good time to finish this thing off and set it up!
Today’s lunchbreak will be consumed by a meeting, so AVR coding will start tomorrow!
This work is licensed under a Creative Commons License.