Project 124: DataCache

This project is an experiment to create a variation on the popular "GeoCaching" pastime. With Geocaching, players use a GPS device to fnd a small container with a logbook and possibly some small items hidden at specific coordinates. It often involves hiking or walking long distances to out of the way places to get to the cache, and once found, successful players can add their name to the logbook.

My idea was to do something slightly different, and modernise this idea somewhat. I have added some small solar panels, batteries, an Atmel Atmega328 microcontroller, an SD card reader, and a bluetooth transceiver to a small waterproof box.

The idea is that anyone with a mobile phone or other bluetooth enabled device in range of the Cache will be able to pair with it, and read the information on the SD card. They can wirelessly read messages left by other players, or add their own. Given the large data storage capacity of SD cards, it is possible that this could be expanded to allow users to leave longer messages, or possibly photographs or sound files. The solar panels would keep the device powered without requiring human maintenance.

The device is the same size as a conventional geocache, and can be accessed by any bluetooth enabled device, provided software is available on the device to parse the data stream from the cache. This would be in the form of a free app.

Geocaching is a very popular activity, and by taking the first steps into "modernising" it, I think there is a lot of potential here to do something interesting. For example, what about adding a cellular link to the geocache, so that it can post a record online whenever someone finds it?

It could also be used as a modern form of "letterboxing". Years ago, people would leave stamped, addressed postcards or letters in boxes like this, in the middle of nowhere, and the idea was that when someone found the box, they would take one of the letters, and post it, leaving one of their own behind. People would often leave letters addressed to themselves, and receive a reply months, or years later. Using email technology, the same thing could be accomplised with a datacache much more easily.

The build was more difficult than I thought. Firstly, the chip I used is designed for 5V, and the solar panels are only producing about 3-4V, so I had to find a special low voltage chip that runs on 1.8-5V, and then use 2.6v batteries. This may not be enough power, so I may have to use a boost converter to increase the voltage from 2.6 to 5V.

Secondly, transferring the project from an Arduino Nano, which I was using for prototyping, to the finished PCB is proving to be much more difficult that I thought. There are various "fuse" settings on the Atmel chip that have to be correct in order for the chip to operate at a high enough frequency for components like the bluetooth module to work. I believe it has to do with the timing used by the stack on the bluetooth tranceiver.

Thirdly, I had a lot of trouble getting the SD card reader to work. This mainly stemmed from the fact that SD cards are 3.3v devices, while the Arduino and the Atmega328 (which is the chip used in the Arduino) are 5V devices. The SD card reader that I am using (An LC Studio version, very cheap, but more or less ok) has both a 3.3V and 5V input, but these inputs only power the chip. What I didn't realise at first is that the *signal* voltages (Chip Select, MISO, MOSI, and SCK) are also in 5V, and the LC Studio SD card does nothing to convert them! I spend hours trying to find the problem, until I eventualy realised what was happening and build a simple resistor voltage divider circuit, which dropped the 5V signals from the chip down to 3.3V for the SD card. This now works. Using a Logic Level shifter is a preferred method of reducing signal voltages like this, resistor dividers are crude and may not work on newer, faster cards, but at the speeds I am working with it seems reliable enough.

The fourth problem was the 3.3V power input to the SD card. I added some diodes in series to reduce the 5V power to 3.3V for the SD card (based on my research, it seems resistor dividers are used only to reduce voltage for data signals, not for powering devices), but the SD card did not work. The problems turned out to be that the SD card draws more current than I thought, so even though the voltage was 3.3V when the reader was connected, when it was in use, the voltage dropped below this level, making it not function. I reduced the number of diodes in series, and the SD card is now running correctly.

I am very close to finishing this project now, I just need to solder in some components, possibly a boost converter, and then debug some code and seal the gaps on the box with hot glue. I can then test it propely in "real world" conditions. I am going to use some silica packs to absorb moisture in the cache, but even so, I don't know how long this will last out doors.

This simple prototype allows the user to use an Android App which I have written to pair with the cache, connect to it, read a message from the cache itself, and then view or add to the Cache's log, all wirelessly.

You must be a member of this blog to see the comments. Log in now!